An error occurred fetching the project authors.
  1. 23 Feb, 2007 1 commit
    • unknown's avatar
      Bug#25197 repeat function returns null when using table field directly as count · d79f0973
      unknown authored
       - Return empty string also if count is unsigned and value is 0
      
      
      mysql-test/r/func_str.result:
        Update test result
      mysql-test/t/func_str.test:
        Add test case for using an unsigned value as count parameter
        for REPEAT
      sql/item_strfunc.cc:
        The repeat function should return the emptystring if
        count is unsigned and equal to zero or
        count is signed and less than or equal to zero
      d79f0973
  2. 24 Jan, 2007 1 commit
  3. 12 Jan, 2007 1 commit
    • unknown's avatar
      func_str.result: · 6746efb1
      unknown authored
        After merge fix
      
      
      mysql-test/r/func_str.result:
        After merge fix
      6746efb1
  4. 11 Jan, 2007 1 commit
    • unknown's avatar
      Bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed · 52c100ae
      unknown authored
      correctly.
      
      The Item_func::print method was used to print the Item_func_encode and the
      Item_func_decode objects. The last argument to ENCODE and DECODE functions
      is a plain C string and thus Item_func::print wasn't able to print it.
      
      The print() method is added to the Item_func_encode class. It correctly
      prints the Item_func_encode and the Item_func_decode objects.
      
      
      mysql-test/t/func_str.test:
        Added a test case for bug#23409: Arguments of the ENCODE() and the
        > DECODE() functionswere not printed correctly.
      mysql-test/r/func_str.result:
        Added a test case for bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed correctly.
      sql/item_strfunc.h:
        Bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed correctly.
        The print() method is added to the Item_func_encode class.
      sql/item_strfunc.cc:
        Bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed correctly.
        The print() method is added to the Item_func_encode class. It correctly
        prints the Item_func_encode and the Item_func_decode objects.
      52c100ae
  5. 19 Dec, 2006 1 commit
    • unknown's avatar
      Bug #24947: REPEAT function returns NULL when passed a field as the count parameter · f8920dd5
      unknown authored
      Handling of large signed/unsigned values was not consistent, so some string functions could return bogus results.
      The current fix is to simply patch up the val_str() methods for those string items.
      It would be good clean this code up in general, to make similar problems much harder to make.  This is left as an exercise for the reader.
      
      
      mysql-test/r/func_str.result:
        Update test results for bug #24947
      mysql-test/t/func_str.test:
        Add test case for bug #24947
      sql/item_strfunc.cc:
        Adjust some string function Items' val_str() methods to handle large signed/unsigned arguments properly
      f8920dd5
  6. 29 Nov, 2006 1 commit
    • unknown's avatar
      A post-merge fix. · 21fdaf5e
      unknown authored
      mysql-test/r/func_str.result:
        Update results (a post-merge fix).
      21fdaf5e
  7. 16 Nov, 2006 3 commits
    • unknown's avatar
      Bug#22684 (BENCHMARK, ENCODE, DECODE and FORMAT are not real functions) · 2975d65c
      unknown authored
      Before this change, the functions BENCHMARK, ENCODE, DECODE and FORMAT could
      only accept a constant for some parameters.
      
      After this change, this restriction has been removed. An implication is that
      these functions can also be used in prepared statements.
      
      The change consist of changing the following classes:
      - Item_func_benchmark
      - Item_func_encode
      - Item_func_decode
      - Item_func_format
      to:
      - only accept Item* in the constructor,
      - and evaluate arguments during calls to val_xxx()
      which fits the general design of all the other functions.
      
      The 'TODO' items identified in item_create.cc during the work done for
      Bug 21114 are addressed by this fix, as a natural consequence of aligning
      the design.
      
      In the 'func_str' test, a single very long test line involving an explain
      extended select with many functions has been rewritten into multiple
      separate tests, to improve maintainability.
      The result of explain extended select decode(encode(...)) has changed,
      since the encode and decode functions now print all their parameters.
      
      
      mysql-test/r/func_str.result:
        Bug#22684 (BENCHMARK, ENCODE, DECODE and FORMAT are not real functions)
      mysql-test/r/parser.result:
        Bug#22684 (BENCHMARK, ENCODE, DECODE and FORMAT are not real functions)
      mysql-test/r/ps.result:
        Bug#22684 (BENCHMARK, ENCODE, DECODE and FORMAT are not real functions)
      mysql-test/t/func_str.test:
        Bug#22684 (BENCHMARK, ENCODE, DECODE and FORMAT are not real functions)
      mysql-test/t/parser.test:
        Bug#22684 (BENCHMARK, ENCODE, DECODE and FORMAT are not real functions)
      mysql-test/t/ps.test:
        Bug#22684 (BENCHMARK, ENCODE, DECODE and FORMAT are not real functions)
      sql/item_create.cc:
        Bug#22684 (BENCHMARK, ENCODE, DECODE and FORMAT are not real functions)
      sql/item_func.cc:
        Bug#22684 (BENCHMARK, ENCODE, DECODE and FORMAT are not real functions)
      sql/item_func.h:
        Bug#22684 (BENCHMARK, ENCODE, DECODE and FORMAT are not real functions)
      sql/item_strfunc.cc:
        Bug#22684 (BENCHMARK, ENCODE, DECODE and FORMAT are not real functions)
      sql/item_strfunc.h:
        Bug#22684 (BENCHMARK, ENCODE, DECODE and FORMAT are not real functions)
      2975d65c
    • unknown's avatar
      Fix after manual merge. · 9d4d6ffe
      unknown authored
      9d4d6ffe
    • unknown's avatar
      Add 5.0 part of fix for bug 17047. · af22eb35
      unknown authored
      mysql-test/r/func_str.result:
        Add result for bug#17047: CHAR() and IN() can return NULL without
        signaling NULL result.
      mysql-test/t/func_str.test:
        Add test case for bug#17047: CHAR() and IN() can return NULL without
        signaling NULL result.
      sql/item_strfunc.cc:
        Add Item_str_func::fix_fields() implementation, and set maybe_null to
        TRUE if we are in the SQL mode that requires some functions to return
        null even if they normally do not.
      sql/item_strfunc.h:
        Add declaration of Item_str_func::fix_fields().
        Do not reset maybe_null in Item_func_char::fix_length_and_dec().
      af22eb35
  8. 08 Nov, 2006 1 commit
    • unknown's avatar
      Bug#10963: LEFT/RIGHT/SUBSTR/.. string functions returns wrong result \ · 3a867382
      unknown authored
        on large length
        
      Problem:  Most (all) of the numeric inputs were being coerced into
      int (32 bit) sized variables.  Works OK for sane inputs; any input
      larger than 2^32 (or 2^31 for signed vars) exihibited predictable
      wrapping behavior (up to about 10^18) and then started having really
      strange behaviour past that point (since the conversion to 64 bit int
      from the DECIMAL type can do weird things on out of range numbers).
      
      Solution: 1)  Add many tests.  2)  Convert input from (u)long type to
      (u)longlong.  3)  Do (sometimes multiple) sanity checks on input,
      keeping in mind that sometimes a negative longlong is not a negative
      longlong (if the unsigned_flag is set).  4) Emulate existing behavior
      w/rt negative and "small" out-of-bounds values.
      
      
      mysql-test/r/func_str.result:
        Additional test results for #10963
      mysql-test/t/func_str.test:
        Additional test results for #10963
      sql/item_func.cc:
        Used larger type for counting, to avoid truncation.
      sql/item_strfunc.cc:
        Fix for #10963, including comments and cleaned up logic
      3a867382
  9. 16 Oct, 2006 1 commit
    • unknown's avatar
      Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on · ffc1facc
      unknown authored
                   strings
      MySQL is setting the flag HA_END_SPACE_KEYS for all the keys that reference
      text or varchar columns with collation different than binary.
      This was done to handle correctly the situation where a lookup on such a key
      may return more than 1 row because of the presence of many rows that differ
      only by the amount of trailing space in the table's string column.
      Inserting such values however appears to violate the unique checks on 
      INSERT/UPDATE. Thus that flag must not be set as it will prevent the optimizer
      from choosing a faster access method.
      This fix removes the setting of the HA_END_SPACE_KEYS flag.
      
      
      include/my_base.h:
        Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on 
                     strings
         - disabled HA_END_SPACE_KEY as it's no longer needed
      mysql-test/r/func_str.result:
        Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on 
                     strings
         - fixed explain in an existing case
      mysql-test/r/merge.result:
        Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on 
                     strings
         - fixed explain in an existing case
      mysql-test/r/select.result:
        Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on 
                     strings
         - test case
      mysql-test/r/subselect.result:
        Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on 
                     strings
         - fixed explain in an existing case
      mysql-test/t/select.test:
        Bug #22367: Optimizer uses ref join type instead of eq_ref for simple join on 
                     strings
         - test case
      ffc1facc
  10. 18 Sep, 2006 1 commit
  11. 09 Sep, 2006 1 commit
  12. 07 Sep, 2006 1 commit
    • unknown's avatar
      Fixed bug #21698: erroneously a field could be replaced by an · 87166702
      unknown authored
      equal constant under any circumstances.
      In fact this substitution can be allowed if the field is
      not of a type string or if the field reference serves as 
      an argument of a comparison predicate.  
      
      
      mysql-test/r/func_str.result:
        Added test cases for bug #21698.
      mysql-test/r/heap_hash.result:
        Adjusted results after the fix for bug #21198.
      mysql-test/t/func_str.test:
        Added test cases for bug #21698.
      sql/item.cc:
        Fixed bug #21198.
        Added a method to check whether a field reference can be 
        substituted for a constant equal to the field.
        This substitution is allowed if the field is not of a type string
        or if the field reference serves as an argument of a comparison
        predicate.
      sql/item.h:
        Fixed bug #21698.
        Added a new virtual transformation method for a item 'compile'
        with two callback function parameters.
        Added a new virtual method 'subst_argument_checker' to be used
        as an amnalyzer method.
        This method is supposed to set its in/out argument to NULL for
        the nodes where substitution of a string field for a constant
        is not valid.
      sql/item_cmpfunc.cc:
        Fixed bug #21698.
        Added an implementation of the compile method for class Item_cond.
        First it processes the Item_cond node with a callback function and if
        the latter returns TRUE it proceeds with a transformation performed by
        another callback function.
      sql/item_cmpfunc.h:
        Fixed bug #21698.
        Added the implementations of 'subst_argument_checker'
        for the Item_func and Item_cond classes.
        This method is supposed to set its in/out argument to NULL for
        the nodes where substitution of a string field for a constant
        is not valid.
        Added the declaration of an implementation of the compile method for 
        class Item_cond.
        First it processes the Item_cond node with a callback function and if
        the latter returns TRUE it proceeds with a transformation performed by
        another callback function.
      sql/item_func.cc:
        Fixed bug #21698.
        Added an implementation of the compile method for class Item_func.
        First it processes the Item_func node with a callback function and if
        the latter returns TRUE it proceeds with a transformation performed by
        another callback function.
      sql/item_func.h:
        Fixed bug #21698.
        Added the declaration of the implementation of the compile method for
        class Item_func.
        First it processes the Item_func node with a callback function and if
        the latter returns TRUE it proceeds with a transformation performed by
        another callback function.
      sql/sql_select.cc:
        Fixed bug #21698.
        Limited the conditions at which a field can be substituted 
        a for an equal constant in a formula. 
        This substitution is allowed if the field is not of a type string
        or if the field reference serves as an argument of a comparison
        predicate.
      87166702
  13. 01 Aug, 2006 1 commit
    • unknown's avatar
      func_str.result: · a03006eb
      unknown authored
        After merge fix
      
      
      mysql-test/r/func_str.result:
        After merge fix
      a03006eb
  14. 28 Jul, 2006 1 commit
    • unknown's avatar
      BUG#14940 "MySQL choose wrong index", v.2 · ef452e19
      unknown authored
      - Make the range-et-al optimizer produce E(#table records after table 
                                                 condition is applied),
      - Make the join optimizer use this value,
      - Add "filtered" column to EXPLAIN EXTENDED to show 
        fraction of records left after table condition is applied
      - Adjust test results, add comments
      
      
      mysql-test/r/archive_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/auto_increment.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/bdb_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/bench_count_distinct.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/binlog_stm_blackhole.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/case.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/cast.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/compress.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ctype_collate.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ctype_cp1250_ch.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/date_formats.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/distinct.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/fulltext.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_compress.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_crypt.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_default.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_encrypt.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_gconcat.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_group.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_if.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_in.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_like.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_math.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_op.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_regexp.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_set.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_str.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_system.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_test.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_time.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/group_by.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/group_min_max.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/having.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/heap.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/heap_hash.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/index_merge.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/index_merge_innodb.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/index_merge_ror.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/innodb_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/insert_update.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/join.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/join_nested.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/key_diff.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/myisam.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ndb_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/negation_elimination.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/null.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/olap.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/partition_pruning.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/query_cache.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/row.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/rpl_get_lock.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/rpl_master_pos_wait.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/select.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ssl.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ssl_compress.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/subselect.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/type_blob.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/union.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/varbinary.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/variables.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/view.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/ctype_cp1250_ch.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/func_like.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/group_min_max.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/index_merge_ror.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/index_merge_ror_cpk.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/join.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/partition_pruning.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      sql/opt_range.cc:
        BUG#14940: Make range/index_merge/group-min-max optimizer produce TABLE::quick_condition_rows -
          estimate of #records that will match the table condition.
      sql/sql_class.cc:
        BUG#14940: Add "filtered" column to output of EXPLAIN EXTENDED
      sql/sql_select.cc:
        BUG#14940: 
        - Make the join optimizer to use TABLE::quick_condition_rows=
          = E(#table records after filtering with table condition) 
        - Add "filtered" column to output of EXPLAIN EXTENDED
      sql/sql_select.h:
        BUG#14940: Added comments
      sql/table.h:
        BUG#14940: Added comments
      ef452e19
  15. 19 Jul, 2006 2 commits
    • unknown's avatar
      Added a test case with views for bug #17526. · f8dda7bf
      unknown authored
      mysql-test/r/func_str.result:
        Adjusted results for the test case of bug 17526.
      sql/item_strfunc.cc:
        Post-merge modification
      f8dda7bf
    • unknown's avatar
      Fixed bug #17526: incorrect print method · 6ec7976d
      unknown authored
      for class Item_func_trim. 
      For 4.1 it caused wrong output for EXPLAIN EXTENDED commands
      if expressions with the TRIM function of two arguments were used.
      For 5.0 it caused an error message when trying to select
      from a view with the TRIM function of two arguments.
      This unexpected error message was due to the fact that the
      print method for the class Item_func_trim was inherited from
      the class Item_func. Yet the TRIM function does not take a list
      of its arguments. Rather it takes the arguments in the form:
        [{BOTH | LEADING | TRAILING} [remstr] FROM] str) |
        [remstr FROM] str
      
      
      mysql-test/r/func_str.result:
        Added a test case for bug #17526: uncorrect print method
        for class Item_func_trim.
      mysql-test/t/func_str.test:
        Added a test case for bug #17526: incorrect print method
        for class Item_func_trim.
      sql/item_strfunc.cc:
        Fixed bug #17526: incorrect print method
        for class Item_func_trim.
            
        Added an implementation for the virtual function print
        in the class Item_func_trim.
        The implementation takes into account the fact the TRIM
        function takes the arguments in the following forms:
          [{BOTH | LEADING | TRAILING} [remstr] FROM] str) |
          [remstr FROM] str
      sql/item_strfunc.h:
        Fixed bug #17526: incorrect print method
        for class Item_func_trim.
            
        Added an implementation for the virtual function print
        in the class Item_func_trim.
        Declared a virtual method to return the mode of the TRIM 
        function: LEADING, TRAILING or BOTH.
        Added implementations of this method for Item_func_trim and
        its descendants Item_func_ltrim and Item_func_rtrim.
      6ec7976d
  16. 07 Jul, 2006 1 commit
    • unknown's avatar
      func_str.result, func_str.test: · 613cbb62
      unknown authored
        Adding test case.
      item_strfunc.cc:
        bug#11728 string function LEFT, strange undocumented behaviour
        Fixing LEFT and RIGHT return NULL if the second
        argument is NULL.
      
      
      sql/item_strfunc.cc:
        bug#11728 string function LEFT, strange undocumented behaviour
        Fixing LEFT and RIGHT return NULL if the second
        argument is NULL.
      mysql-test/t/func_str.test:
        Adding test case.
      mysql-test/r/func_str.result:
        Adding test case.
      613cbb62
  17. 06 Jul, 2006 1 commit
    • unknown's avatar
      Fixed bug #18243. · cf7627bc
      unknown authored
      The implementation of the method Item_func_reverse::val_str
      for the REVERSE function modified the argument of the function.
      This led to wrong results for expressions that contained
      REVERSE(ref) if ref occurred somewhere else in the expressions.
      
      
      mysql-test/r/func_str.result:
        Added a test case for bug #18243.
      mysql-test/t/func_str.test:
        Added a test case for bug #18243.
      sql/item_strfunc.cc:
        Fixed bug #18243.
        The implementation of the method Item_func_reverse::val_str
        for the REVERSE function modified the argument of the function.
        This led to wrong results for expressions that contained
        REVERSE(ref) if ref occurred somewhere else in the expressions.
        
        The implementation of Item_func_reverse::val_str has been changed
        to make the argument intact.
      sql/item_strfunc.h:
        Fixed bug #18243.
        Added tmp_value to the Item_func_reverse class to store
        the result of the function. It erroneously replaced the 
        argument before this fix.
      cf7627bc
  18. 13 Jun, 2006 1 commit
    • unknown's avatar
      Fix for bug #12728: Very strange behaviour of ELT · 05750704
      unknown authored
      mysql-test/r/func_str.result:
        Fix for bug #12728: Very strange behaviour of ELT
          - test case
      mysql-test/t/func_str.test:
        Fix for bug #12728: Very strange behaviour of ELT
          - test result
      sql/item_strfunc.cc:
        Fix for bug #12728: Very strange behaviour of ELT
          - Item_func_elt::eq() introduced: check 'item' member as well
            (to distinguish for instance elt(1, 'a', 'b') and elt(2, 'a', 'b')
      sql/item_strfunc.h:
        Fix for bug #12728: Very strange behaviour of ELT
          - Item_func_elt::eq() introduced: check 'item' member as well
            (to distinguish for instance elt(1, 'a', 'b') and elt(2, 'a', 'b')
      05750704
  19. 28 May, 2006 1 commit
    • unknown's avatar
      Fixed bug#15351: Wrong collation used for comparison of md5() and sha() · fd7d4d74
      unknown authored
      argument can lead to a wrong result.
      
      md5() and sha() functions treat their arguments as case sensitive strings.
      But when they are compared their arguments were compared as a case
      insensitive strings which leads to two functions with different arguments
      and thus different results to being identical. This can lead to a wrong
      decision made in the range optimizer and thus lead to a wrong result set.
      
      Item_func_md5::fix_length_and_dec() and Item_func_sha::fix_length_and_dec()
      functions now set binary collation on their arguments.
      
      
      sql/item_strfunc.cc:
        Fixed bug#15351: Wrong collation used for comparison of md5() and sha()
        argument can lead to a wrong result.
        Item_func_md5::fix_length_and_dec() and Item_func_sha::fix_length_and_dec()
        functions now set binary collation on their arguments.
      mysql-test/r/func_str.result:
         Added test case for the bug#15351: Wrong collation used for comparison of md5() and sha()
        argument can lead to a wrong result.
      mysql-test/t/func_str.test:
        Added test case for the bug#15351: Wrong collation used for comparison of md5() and sha()
        argument can lead to a wrong result.
      fd7d4d74
  20. 18 May, 2006 1 commit
    • unknown's avatar
      Bug #13975: "same string" + 0 has 2 different results · 573d9e47
      unknown authored
        The 'decimals' member of Item_func was being improperly initialized,
        which resulted in improper results when handling large numeric values.
      
      
      mysql-test/r/func_str.result:
        Add test results
      mysql-test/t/func_str.test:
        Add new regression test
      sql/item_strfunc.h:
        Remove unnecessary reset of decimals in Item_func_conv::fix_length_and_dec().
      573d9e47
  21. 08 May, 2006 1 commit
    • unknown's avatar
      Bug#10418: LOAD_FILE does not behave like in manual if file does not exist · dd934da9
      unknown authored
      load_file() string-function should return NULL rather than throw an error if
      the file doesn't exist, as per the manual.
      
      
      mysql-test/t/outfile.test:
        expect NULL rather than error if file given to load_file() doesn't exist
      mysql-test/t/func_str.test:
        show that load_file() will return NULL rather than throw an error
        if file doesn't exist
      mysql-test/r/outfile.result:
        expect NULL rather than error if file given to load_file() doesn't exist
      mysql-test/r/func_str.result:
        expect NULL rather than error if file given to load_file() doesn't exist
      sql/item_strfunc.cc:
        load_file() should return NULL as per the docs if file not found,
        rather than throw an error
      dd934da9
  22. 14 Mar, 2006 1 commit
    • unknown's avatar
      Bug #17043: Casting trimmed string to decimal loses precision · d48cfa8a
      unknown authored
        Results of string functions were being converted to decimals by first
        being converted to integers, resulting in a loss of precision.
      
      
      mysql-test/r/func_str.result:
        Add new results
      mysql-test/t/func_str.test:
        Add new regression test
      sql/item_strfunc.cc:
        Convert string function results to decimal using string-to-decimal conversion
      sql/item_strfunc.h:
        Add Item_str_func::val_decimal()
      d48cfa8a
  23. 22 Feb, 2006 1 commit
    • unknown's avatar
      Bug#10460 SHOW CREATE TABLE uses inconsistent upper/lower case · 31a7a0d6
      unknown authored
      mysql-test/r/alter_table.result:
        Update test result
      mysql-test/r/analyse.result:
        Update test result
      mysql-test/r/archive.result:
        Update test result
      mysql-test/r/archive_bitfield.result:
        Update test result
      mysql-test/r/archive_gis.result:
        Update test result
      mysql-test/r/bdb.result:
        Update test result
      mysql-test/r/bdb_gis.result:
        Update test result
      mysql-test/r/bigint.result:
        Update test result
      mysql-test/r/binary.result:
        Update test result
      mysql-test/r/case.result:
        Update test result
      mysql-test/r/cast.result:
        Update test result
      mysql-test/r/constraints.result:
        Update test result
      mysql-test/r/create.result:
        Update test result
      mysql-test/r/ctype_collate.result:
        Update test result
      mysql-test/r/ctype_create.result:
        Update test result
      mysql-test/r/ctype_latin1_de.result:
        Update test result
      mysql-test/r/ctype_many.result:
        Update test result
      mysql-test/r/ctype_mb.result:
        Update test result
      mysql-test/r/ctype_recoding.result:
        Update test result
      mysql-test/r/ctype_sjis.result:
        Update test result
      mysql-test/r/ctype_tis620.result:
        Update test result
      mysql-test/r/ctype_ucs.result:
        Update test result
      mysql-test/r/ctype_ujis.result:
        Update test result
      mysql-test/r/ctype_utf8.result:
        Update test result
      mysql-test/r/default.result:
        Update test result
      mysql-test/r/events.result:
        Update test result
      mysql-test/r/federated.result:
        Update test result
      mysql-test/r/fulltext.result:
        Update test result
      mysql-test/r/func_gconcat.result:
        Update test result
      mysql-test/r/func_group.result:
        Update test result
      mysql-test/r/func_math.result:
        Update test result
      mysql-test/r/func_misc.result:
        Update test result
      mysql-test/r/func_str.result:
        Update test result
      mysql-test/r/func_system.result:
        Update test result
      mysql-test/r/gis-rtree.result:
        Update test result
      mysql-test/r/heap.result:
        Update test result
      mysql-test/r/index_merge_innodb.result:
        Update test result
      mysql-test/r/information_schema.result:
        Update test result
      mysql-test/r/innodb.result:
        Update test result
      mysql-test/r/innodb_gis.result:
        Update test result
      mysql-test/r/key.result:
        Update test result
      mysql-test/r/merge.result:
        Update test result
      mysql-test/r/myisam.result:
        Update test result
      mysql-test/r/mysqldump-max.result:
        Update test result
      mysql-test/r/mysqldump.result:
        Update test result
      mysql-test/r/ndb_bitfield.result:
        Update test result
      mysql-test/r/ndb_gis.result:
        Update test result
      mysql-test/r/ndb_partition_key.result:
        Update test result
      mysql-test/r/null.result:
        Update test result
      mysql-test/r/partition.result:
        Update test result
      mysql-test/r/partition_02myisam.result:
        Update test result
      mysql-test/r/partition_mgm_err.result:
        Update test result
      mysql-test/r/partition_range.result:
        Update test result
      mysql-test/r/ps_2myisam.result:
        Update test result
      mysql-test/r/ps_3innodb.result:
        Update test result
      mysql-test/r/ps_4heap.result:
        Update test result
      mysql-test/r/ps_5merge.result:
        Update test result
      mysql-test/r/ps_6bdb.result:
        Update test result
      mysql-test/r/rpl_mixed_ddl_dml.result:
        Update test result
      mysql-test/r/rpl_multi_engine.result:
        Update test result
      mysql-test/r/rpl_ndb_UUID.result:
        Update test result
      mysql-test/r/show_check.result:
        Update test result
      mysql-test/r/sp-vars.result:
        Update test result
      mysql-test/r/sp.result:
        Update test result
      mysql-test/r/sql_mode.result:
        Update test result
      mysql-test/r/strict.result:
        Update test result
      mysql-test/r/subselect.result:
        Update test result
      mysql-test/r/symlink.result:
        Update test result
      mysql-test/r/synchronization.result:
        Update test result
      mysql-test/r/system_mysql_db.result:
        Update test result
      mysql-test/r/temp_table.result:
        Update test result
      mysql-test/r/trigger.result:
        Update test result
      mysql-test/r/type_binary.result:
        Update test result
      mysql-test/r/type_bit.result:
        Update test result
      mysql-test/r/type_bit_innodb.result:
        Update test result
      mysql-test/r/type_blob.result:
        Update test result
      mysql-test/r/type_decimal.result:
        Update test result
      mysql-test/r/type_enum.result:
        Update test result
      mysql-test/r/type_float.result:
        Update test result
      mysql-test/r/type_nchar.result:
        Update test result
      mysql-test/r/type_newdecimal.result:
        Update test result
      mysql-test/r/type_set.result:
        Update test result
      mysql-test/r/type_timestamp.result:
        Update test result
      mysql-test/r/type_varchar.result:
        Update test result
      mysql-test/r/union.result:
        Update test result
      mysql-test/r/user_var.result:
        Update test result
      mysql-test/r/variables.result:
        Update test result
      sql/sql_show.cc:
        Make ouput from SHOW CREATE TABLE use uppercase for "CHARACTER SET", "COLLATE", "DEFAULT", "ON UPDATE" and "AUTO_INCREMENT"
      31a7a0d6
  24. 02 Dec, 2005 1 commit
    • unknown's avatar
      Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE · ca34f415
      unknown authored
        -issue more correct message for incorrect date|datetime|time values
        -ER_WARN_DATA_OUT_OF_RANGE message is changed
        -added new error message
      
      
      mysql-test/r/auto_increment.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/bigint.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/ctype_ucs.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/date_formats.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/func_sapdb.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/func_str.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/func_time.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/insert.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/loaddata.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/mysqldump.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/ps_2myisam.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/ps_3innodb.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/ps_4heap.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/ps_5merge.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/ps_6bdb.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/ps_7ndb.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/rpl_rewrite_db.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/sp.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/strict.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/timezone2.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/timezone_grant.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/type_bit.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/type_bit_innodb.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/type_date.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/type_datetime.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/type_decimal.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/type_float.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/type_newdecimal.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/type_ranges.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/type_time.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/type_uint.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/view.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      mysql-test/r/warnings.result:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          result change
      sql/share/errmsg.txt:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          -ER_WARN_DATA_OUT_OF_RANGE message is changed
          -added new error message
      sql/time.cc:
        Fix for bug#8294 Traditional: Misleading error message for invalid CAST to DATE
          issue more correct message for incorrect date|datetime|time values
      ca34f415
  25. 24 Nov, 2005 1 commit
    • unknown's avatar
      Fix possible corruption of results from SUBSTRING_INDEX(). (Bug #14676) · 046f82e3
      unknown authored
      mysql-test/r/func_str.result:
        Add new results
      mysql-test/t/func_str.test:
        Add new test
      sql/item_strfunc.cc:
        Mark tmp_value in Item_func_substr_index as const so that we don't
        overwrite the contents of another String when getting the delimiter.
        Fix typo in variable names (delimeter -> delimiter).
      046f82e3
  26. 11 Oct, 2005 1 commit
    • unknown's avatar
      Reviewing new pushed code · 0ce12f70
      unknown authored
      - CHAR() now returns binary string as default
      - CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
      - Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
        (Some old systems returns ETIME and it's safer to test for both values
         than to try to write a wrapper for each old system)
      - Fixed new introduced bug in NOT BETWEEN X and X
      - Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
      - Use octet2hex() for all conversion of string to hex
      - Simplify and optimize code
      
      
      client/mysqldump.c:
        Simple optimizations of new code
        Indentation fixes
      client/mysqltest.c:
        Removed not needed variable
      include/mysql_com.h:
        Made octec2hex() more usable
      mysql-test/r/ctype_utf8.result:
        CHAR() now returns binary string as default
      mysql-test/r/func_str.result:
        CHAR() now returns binary string as default
      mysql-test/r/range.result:
        Added test to verify new introduced bug in NOT BETWEEN X and X
      mysql-test/r/user_var-binlog.result:
        CHAR() now returns binary string as default
      mysql-test/r/view.result:
        More tests of view rename
      mysql-test/t/ctype_utf8.test:
        CHAR() now returns binary string as default
      mysql-test/t/func_str.test:
        CHAR() now returns binary string as default
      mysql-test/t/range.test:
        Added test to verify new introduced bug in NOT BETWEEN X and X
      mysql-test/t/view.test:
        More tests of view rename
      mysys/mf_keycache.c:
        Indentation changes
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      mysys/my_os2cond.c:
        Fix to MySQL coding style
        Optimized functions
      mysys/thr_lock.c:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      mysys/thr_mutex.c:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      server-tools/instance-manager/instance.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      server-tools/instance-manager/thread_registry.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/ha_federated.cc:
        Use octet2hex()
      sql/ha_ndbcluster.cc:
        Removed not used variable
      sql/handler.cc:
        Simplify code
        Use *NONE* instead of 'none' for not existing storage engine
        Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
      sql/item.h:
        Remove not needed test for *ref.  (If ref is set, it should never point at 0)
      sql/item_func.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
        Simplify code
        More comments
        Require that last argument to find_and_check_access() is given
        (Made code shorter and faster)
      sql/item_strfunc.cc:
        Changed CHAR() to return result in binary collation
        CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
        
        Bar will shortly add the following syntax:
        CHAR(.... USING character_set)
        and ensure that
        CONVERT(CHAR(....) USING utf8) cuts not legal utf8 strings
        Use ocet2hex()
      sql/item_strfunc.h:
        CHAR() now returns a binary string
      sql/log_event.cc:
        Use octet2hex()
        Simplify code
      sql/parse_file.cc:
        Indentation fixes
        Use for() instead of while()
      sql/password.c:
        Make octet2hex() more generally usable by returning pointer to end 0
      sql/slave.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_base.cc:
        Indentation fixes
      sql/sql_insert.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_manager.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_parse.cc:
        Don't check thd->db when checking for function privileges
      sql/sql_prepare.cc:
        Fixed wrong merge
      sql/sql_select.cc:
        Fixed new bug for NOT BETWEEN X and X
      sql/sql_show.cc:
        Removed not used variable
      sql/sql_table.cc:
        Indentation fixed
        Removed DBUG_PRINT that is obvious from context
      sql/sql_view.cc:
        Simplify code
      sql/unireg.cc:
        Use octet2hex()
      0ce12f70
  27. 06 Oct, 2005 1 commit
    • unknown's avatar
      Review of code pushed since last 5.0 pull: · c807724f
      unknown authored
      Ensure that ccache is also used for C programs
      mysql: Ensure that 'delimiter' works the same way in batch mode as in normal mode
      mysqldump: Change to use ;; (instead of //) as a stored procedure/trigger delimiter
      Fixed test cases by adding missing DROP's and rename views to be of type 'v#'
      Removed MY_UNIX_PATH from fn_format()
      Removed current_db_used from TABLE_LIST
      Removed usage of 'current_thd' in Item_splocal
      Removed some compiler warnings
      A bit faster longlong2str code
      
      
      
      BUILD/FINISH.sh:
        Ensure that ccache is also used for C programs
      BUILD/SETUP.sh:
        Ensure that ccache is also used for C programs
      client/mysql.cc:
        More debugging
        Ensure that 'delimiter' works the same way in batch mode as in normal mode.
        Compare 'delimiter' command case-insensitive.
        The above fixes the delimiter bugs so that we can now use ;; as a trigger/SP function delimiter in mysqldump.
      client/mysqldump.c:
        Indentation fixes
        Use ;; as a delmimiter for stored procedures and triggers instead of //
      client/mysqltest.c:
        Indentation fixes
      include/my_sys.h:
        Remove not needed MY_UNIX_PATH parameter
      mysql-test/r/alter_table.result:
        Better to reuse mysqltest database (test didn't properly delete mysqltest1 at start)
      mysql-test/r/func_str.result:
        More testing of CONV() (to ensure that longlong2str() works correctly)
      mysql-test/r/information_schema.result:
        Drop all used tables and views
        Rename view tables to 'v#' to ensure that if this test fails, not a lot of other test fails
      mysql-test/r/information_schema_inno.result:
        Drop all used tables
      mysql-test/r/multi_statement.result:
        Drop used tables
      mysql-test/r/mysql.result:
        Add error messages to result
      mysql-test/r/mysqldump.result:
        ;; is now used as SP/trigger delimiter
      mysql-test/r/mysqlshow.result:
        Drop used tables
      mysql-test/r/temp_table.result:
        Drop used views
        Rename views to v#
      mysql-test/t/alter_table.test:
        Better to reuse mysqltest database (test didn't properly delete mysqltest1 at start)
      mysql-test/t/func_str.test:
        More testing of CONV() (to ensure that longlong2str() works correctly)
      mysql-test/t/information_schema.test:
        Drop all used tables and views
        Rename view tables to 'v#' to ensure that if this test fails, not a lot of other test fails
      mysql-test/t/information_schema_inno.test:
        Drop all used tables
      mysql-test/t/multi_statement.test:
        Drop used tables
      mysql-test/t/mysql.test:
        Add error messages to result
      mysql-test/t/mysqlshow.test:
        Drop used tables
      mysql-test/t/temp_table.test:
        Drop used views
        Rename views to v#
      mysys/mf_format.c:
        Remove not needed MY_UNIX_PATH parameter
        (This goes against how fn_format() is supposed to work and also conflicts with other options like MY_RETURN_REAL_PATH)
      sql/ha_federated.cc:
        Removed extra empty line
      sql/item.cc:
        Use 'str_value' instead of 'str_value_ptr' to hold result for Item_splocal
        Remove some calls to 'thd' in Item_splocal by making 'thd' a class variable
        One doesn't have to set 'null_value' when calling 'is_null()'
      sql/item.h:
        Add THD as a class variable to Item_splocal
        Use 'str_value' instead of 'str_value_ptr' to hold temp result
        Fixed bug in Item_hex when used in CAST()
      sql/item_func.cc:
        Optimize new code
      sql/log_event.cc:
        Move 'to_unix_path()' out of fn_format()
      sql/opt_range.cc:
        Simplify code
      sql/sp_head.cc:
        Ensure that Item_splocal has thd set before we call '->this_item()'
      sql/sql_class.cc:
        Return error if Statement::insert() fails in either hash_insert()
      sql/sql_parse.cc:
        Remove 'current_db_used' as we can trivially check if db table qualifier was used without this.
        Simplify code
      sql/sql_prepare.cc:
        Use enum instead of const int, to avoid ugly code for VC++
      sql/structs.h:
        Remove compiler warnings when using STRING_WITH_LEN() with constant strings.
      sql/table.cc:
        Fixed indentation
      sql/table.h:
        Remove not needed current_db_used
      strings/decimal.c:
        Simplify code
      strings/longlong2str-x86.s:
        A bit faster longlong2str.
        (Took some ideas from Peter Gulutzan's code)
      strings/my_strtoll10.c:
        Simplify code for MetroWerks compiler
      c807724f
  28. 22 Sep, 2005 1 commit
  29. 27 Aug, 2005 1 commit
    • unknown's avatar
      func_str.result, null.result: · 28920f59
      unknown authored
        Corrected results after the fix for bug #12791.
      func_test.result, func_test.test:
        Added test cases for bug #12791.
      item_func.h, item_func.cc:
        Fixed bug #12791.
        Made LEAST/GREATES fully Oracle compliant.
        LEAST/GREATEST did not return NULL if only some
        arguments were NULLs. This did not comply with Oracle.
      
      
      sql/item_func.cc:
        Fixed bug #12791.
        Made LEAST/GREATES fully Oracle compliant.
        LEAST/GREATEST did not return NULL if only some
        arguments were NULLs. This did not comply with Oracle.
      sql/item_func.h:
        Fixed bug #12791.
        Made LEAST/GREATES fully Oracle compliant.
        LEAST/GREATEST did not return NULL if only some
        arguments were NULLs. This did not comply with Oracle.
      mysql-test/t/func_test.test:
        Added test cases for bug #12791.
      mysql-test/r/func_test.result:
        Added test cases for bug #12791.
      mysql-test/r/null.result:
        Corrected results after the fix for bug #12791.
      mysql-test/r/func_str.result:
        Corrected results after the fix for bug #12791.
      28920f59
  30. 08 Aug, 2005 1 commit
    • unknown's avatar
      item_strfunc.cc: · 10805ec2
      unknown authored
        BUG #11104 
            Took out the offset-=delimiter_length-1 out of the for loop. It was causing
            basically this: 
            select substring_index('the king of the the hill', 'the', -2) to not work.
            The first iteration, offset would be initialised to 24, then strstr would 
            point at 'the king of the the* hill' ('*'means right before the 
            character following), returning a offset of 16. The for loop would then 
            decrement offset by two (3 - 1), to 14, now pointing at 
            "the king of th*e the hill", _skipping_ past the 'e' in the second to last
            'the', and therefore strstr would never have a chance of matching the 
            second to last 'the', then moving on to the 'the' at the begginning of the 
            string!
            In a nutshell, offset was being decremented by too great a value, preventing
            the second to last 'the' from being ever found, hence the result of 
            'king of the the hill' from the query that is reported in the bug report
      func_str.test:
        BUG #11104
        Added tests to make sure fix addresses issues in original bug report
      func_str.result:
        BUG #11104 
        New results for new tests
      
      
      mysql-test/r/func_str.result:
        BUG #11104 
        
        New results for new tests
      mysql-test/t/func_str.test:
        BUG #11104
        
        Added tests to make sure fix addresses issues in original bug report
      sql/item_strfunc.cc:
        BUG #11104 
            Took out the offset-=delimiter_length-1 out of the for loop. It was causing
            basically this: 
            select substring_index('the king of the the hill', 'the', -2) to not work.
            The first iteration, offset would be initialised to 24, then strstr would 
            point at 'the king of the the* hill' ('*'means right before the 
            character following), returning a offset of 16. The for loop would then 
            decrement offset by two (3 - 1), to 14, now pointing at 
            "the king of th*e the hill", _skipping_ past the 'e' in the second to last
            'the', and therefore strstr would never have a chance of matching the 
            second to last 'the', then moving on to the 'the' at the begginning of the 
            string!
        
            In a nutshell, offset was being decremented by too great a value, preventing
            the second to last 'the' from being ever found, hence the result of 
            'king of the the hill' from the query that is reported in the bug report
      10805ec2
  31. 01 Aug, 2005 1 commit
    • unknown's avatar
      BUG 11104 (same as changeset 1.1891 on the 5.0 tree, but realised this · 16c45930
      unknown authored
      needed to be fixed in earlier versions)
      Fixed the iteration of how substrings are handled with negative indexes in 
      SUBSTRING_INDEX
      
      
      mysql-test/r/func_str.result:
        New results for the fix to substring_index
      mysql-test/t/func_str.test:
        Added tests for fix to substring_index, various lenth search patterns. Also included
        are the queuries the user who reported the bug listed in the bug report
      sql/item_strfunc.cc:
        Fix to BUG 11104 
            Took out the offset-=delimiter_length-1 out of the for loop. It was causing
            basically this: 
            select substring_index('the king of the the hill', 'the', -2) to not work.
            The first iteration, offset would be initialised to 24, then strstr would 
            point at 'the king of the the* hill' ('*'means right before the 
            character following), returning a offset of 16. The for loop would then 
            decrement offset by two (3 - 1), to 14, now pointing at 
            "the king of th*e the hill", _skipping_ past the 'e' in the second to last
            'the', and therefore strstr would never have a chance of matching the 
            second to last 'the', then moving on to the 'the' at the begginning of the 
            string!
        
            In a nutshell, offset was being decremented by too great a value, preventing
            the second to last 'the' from being ever found, hence the result of 
            'king of the the hill' from the query that is reported in the bug report
      16c45930
  32. 22 Jul, 2005 1 commit
    • unknown's avatar
      Fix calculation for length of LPAD() and RPAD() reported to · 657a5346
      unknown authored
      client via mysql_fetch_fields(). (Bug #11311)
      
      
      mysql-test/r/func_str.result:
        Add new results
      mysql-test/t/func_str.test:
        Add new regression test
      sql/item_strfunc.cc:
        Fix length reported for LPAD() and RPAD() -- they always truncate to the
        length that is given.
      657a5346
  33. 13 Jul, 2005 1 commit
  34. 29 Jun, 2005 1 commit
    • unknown's avatar
      func_str.test: · 3dcf7083
      unknown authored
        Added test cases for bug #11469.
      item_strfunc.h:
        Fixed bug #11469: wrong implementation of the not_null_tables
        method for CONCAT_WS.
      
      
      sql/item_strfunc.h:
        Fixed bug #11469: wrong implementation of the not_null_tables
        method for CONCAT_WS.
      mysql-test/t/func_str.test:
        Added test cases for bug #11469.
      3dcf7083
  35. 28 Jun, 2005 1 commit
  36. 23 Jun, 2005 1 commit
    • unknown's avatar
      func_str.result, func_str.test: · 98253bd6
      unknown authored
        Added a test case for bug #10124.
      sql_select.h, item_subselect.cc, sql_select.cc:
        Fixed bug #10124.
        The copy method of the store_key classes can return
        STORE_KEY_OK=0, STORE_KEY_FATAL=1, STORE_KEY_CONV=2 now.
      field.cc:
        Fixed bug #10124.
        When ussuing a warning the store methods return 2 instead of 1 now.
      
      
      sql/field.cc:
        Fixed bug #10124.
        When ussuing a warning the store methods return 2 instead of 1 now.
      sql/sql_select.cc:
        Fixed bug #10124.
        The copy method of the store_key classes can return
        STORE_KEY_OK=0, STORE_KEY_FATAL=1, STORE_KEY_CONV=2 now.
      sql/item_subselect.cc:
        Fixed bug #10124.
        The copy method of the store_key classes can return
        STORE_KEY_OK=0, STORE_KEY_FATAL=1, STORE_KEY_CONV=2 now.
      sql/sql_select.h:
        Fixed bug #10124.
        The copy method of the store_key classes can return
        STORE_KEY_OK=0, STORE_KEY_FATAL=1, STORE_KEY_CONV=2 now.
      mysql-test/t/func_str.test:
        Added a test case for bug #10124.
      mysql-test/r/func_str.result:
        Added a test case for bug #10124.
      98253bd6
  37. 20 Jun, 2005 1 commit
    • unknown's avatar
      bug#10466: Datatype "timestamp" displays "YYYYMMDDHHMMSS" irrespective of display sizes. · d2b52d19
      unknown authored
       - Print warning that says display width is not supported for datatype TIMESTAMP, if user tries to create a TIMESTAMP column with display width.
       - Use display width for TIMESTAMP only in type_timestamp test to make sure warning is displayed correctly.
      
      
      mysql-test/include/ps_create.inc:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/alias.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/func_date_add.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/func_str.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/func_time.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/group_by.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/innodb.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/ps.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/ps_1general.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/ps_2myisam.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/ps_3innodb.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/ps_4heap.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/ps_5merge.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/ps_6bdb.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/ps_7ndb.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/select.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/r/type_timestamp.result:
        When display width is used for a TIMESTAMP column a warning is printed that the display width will be ignored.
      mysql-test/r/update.result:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/t/alias.test:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/t/func_date_add.test:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/t/func_str.test:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/t/func_time.test:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/t/group_by.test:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/t/innodb.test:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/t/ps.test:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/t/ps_4heap.test:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/t/ps_5merge.test:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/t/select.test:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      mysql-test/t/update.test:
        Reove all uses of display width in for TIMESTAMP columns, except in the type_timestamp test.
      sql/share/errmsg.txt:
        Correct swedish error message
      sql/sql_parse.cc:
        Print warning if datatype is TIMESTAMP and display width is used.
      d2b52d19