1. 13 May, 2008 1 commit
    • unknown's avatar
      Fixed bug #36488: regexp returns false matches, concatenating · 66367aee
      unknown authored
                        with previous rows.
      
      The WHERE clause containing expression:
        CONCAT(empty_field1, empty_field2, ..., 'literal constant', ...)
          REGEXP 'regular expression'
      may return wrong matches.
      
      Optimization of the CONCAT function has been fixed.
      
      
      
      mysql-test/r/func_concat.result:
        Added test case for bug #36488.
      mysql-test/t/func_concat.test:
        Added test case for bug #36488.
      sql/item_strfunc.cc:
        Fixed bug #36488.
        The Item_func_concat::val_str method is optimized to
        use first non-empty argument of the CONCAT function for in-place
        result accumulation. This optimization is acceptable if that
        first argument is not a constant.
        However, current implementation checks this condition only for
        the first actual argument of the CONCAT function.
        So, the Item_func_concat::val_str method can corrupt values
        of, for example, literal strings by appending random data.
        
        The Item_func_concat::val_str method has been modified to take
        into account the ability to be modified in-place for the first
        non-empty argument.
      66367aee
  2. 06 May, 2008 2 commits
    • unknown's avatar
      revert the push of bug 35616. · 65a310fe
      unknown authored
      65a310fe
    • unknown's avatar
      Bug#35616: memory overrun on 64-bit linux on setting large values for keybuffer-size · 55c336fd
      unknown authored
      We could allocate chunks larger than 4GB, but did our size-accounting in 32-bit
      values. This could lead to spurious warnings, inaccurate accounting, and, in
      theory, data loss.
      
      Affected: 64-bit platforms. Debug-build (with safemalloc). At least one buffer
      larger than 4GB. For potential data loss, a re-alloc on such a buffer would be
      necessary.
      
      
      mysys/my_static.c:
        Make memory-accounting 64-bit safe.
      mysys/my_static.h:
        Make memory-accounting 64-bit safe.
        Move in struct for better alignment when 64-bit.
      55c336fd
  3. 05 May, 2008 1 commit
  4. 02 May, 2008 5 commits
  5. 01 May, 2008 4 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-bugteam · abf8b70a
      unknown authored
      into  pcrews-mac-local.local:/Users/pcrews/usr/local/bin/data0/build_work/mysql-5.0-trigs
      
      
      abf8b70a
    • unknown's avatar
      Bug#36026 - Test funcs_1.<engine>_trig_03 failing on Windows · 38c28141
      unknown authored
      Bug#36028 - Test funcs_1.<engine>_trig_03e failing on Windows
      Bug#36029 - Test funcs_1.<engine>_trig_0407 failing on Windows
      Bug#36030 - Test funcs_1.<engine>_trig_08 failing on Windows
      
      Adding $MASTER_MYSOCK to init_win_path()
      When path names are short, master.sock ends up in MYSQL_TMP_DIR, but with longer path names,
      master.sock ends up in /tmp/<random_string>/ and these tests will fail due to path delimiter difference.
      
      New changeset to start with 5.0 -- Not all of these tests are present in 5.0, but want to keep mysqltest the same
      
      
      38c28141
    • unknown's avatar
      Fix for bug #35298: GROUP_CONCAT with DISTINCT can crash the server · 1a68ec28
      unknown authored
      The bug is a regression introduced by the patch for bug32798.
      
      The code in Item_func_group_concat::clear() relied on the 'distinct'
      variable to check if 'unique_filter' was initialized. That, however,
      is not always valid because Item_func_group_concat::setup() can do
      shortcuts in some cases w/o initializing 'unique_filter'.
      
      Fixed by checking the value of 'unique_filter' instead of 'distinct'
      before dereferencing.
      
      
      mysql-test/r/func_gconcat.result:
        Added test cases for bugs #35298 and #36024.
      mysql-test/t/func_gconcat.test:
        Added test cases for bugs #35298 and #36024.
      sql/item_sum.cc:
        Check if unique_filter != NULL before dereferencing it. Non-zero value
        of distinct does not always mean that unique_filter is initialized
        because Item_func_group_concat::setup() can do shortcuts is some cases
      1a68ec28
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0 · cf2b2cc5
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/work/merge-5.0-bugteam
      
      
      cf2b2cc5
  6. 30 Apr, 2008 1 commit
  7. 28 Apr, 2008 5 commits
  8. 24 Apr, 2008 1 commit
    • unknown's avatar
      Bug#36023: Incorrect handling of zero length caused an assertion to fail. · 89b866e7
      unknown authored
      When a zero length is provided to the my_decimal_length_to_precision
      function along with unsigned_flag set to false it returns a negative value.
      For queries that employs temporary tables may cause failed assertion or
      excessive memory consumption while temporary table creation.
      
      Now the my_decimal_length_to_precision and the my_decimal_precision_to_length
      functions take unsigned_flag into account only if the length/precision
      argument is non-zero.
      
      
      mysql-test/t/type_decimal.test:
        Added a test case for the bug#36023: Incorrect handling of zero length caused
         an assertion to fail.
      mysql-test/r/type_decimal.result:
        Added a test case for the bug#36023: Incorrect handling of zero length caused
         an assertion to fail.
      sql/my_decimal.h:
        Bug#36023: Incorrect handling of zero length caused an assertion to fail.
        Now the my_decimal_length_to_precision and the my_decimal_precision_to_length
        functions take unsigned_flag into account only if the length/precision
        argument is non-zero.
      89b866e7
  9. 23 Apr, 2008 2 commits
  10. 22 Apr, 2008 3 commits
    • unknown's avatar
      Merge host.loc:/home/uchum/work/5.0-bugteam-35993 · c2d1ac6e
      unknown authored
      into  host.loc:/home/uchum/work/5.0-bugteam
      
      
      c2d1ac6e
    • unknown's avatar
      Fixed bug#36005: server crashes inside NOT IN clause subquery with · 73f7de59
      unknown authored
                       impossible WHERE/HAVING clause
                       (subselect_single_select_engine::exec).
      
      Allocation and initialization of joined table list t1, t2... of
      subqueries like:
      
          NOT IN (SELECT ... FROM t1,t2,... WHERE 0)
      
      is optimized out, however server tries to traverse this list.
      
      
      mysql-test/r/subselect3.result:
        Added test case for bug#36005.
      mysql-test/t/subselect3.test:
        Added test case for bug#36005.
      sql/sql_select.cc:
        Fixed bug#36005.
        
        1. JOIN::prepare initializes JOIN::table counter (actually a size
           of the JOIN::join_tab array) and sets it to a number of joined tables.
        
        2. The make_join_statistics function (when called from JOIN::optimize)
           allocates and fills the JOIN::join_tab array.
           However, when optimizing subselect has impossible (definite false)
           WHERE or HAVING clause, optimizer skips call to make_join_statistics
           and leaves JOIN::join_tab == NULL.
        
        3. subselect_single_select_engine::exec does traversal of the JOIN::join_tab
           array and the server dies because array is not allocated but array
           counter is greater than 0.
        
        The JOIN::optimize method has been modified to reset the JOIN::table
        counter to 0 in cause of impossible WHERE/HAVING clause.
      73f7de59
    • unknown's avatar
      Fixed bug #35993: memory corruption and crash with multibyte conversion. · d8ebf276
      unknown authored
      Grouping or ordering of long values in not indexed BLOB/TEXT columns
      with GBK or BIG5 charsets crashes the server.
      
      MySQL server uses sorting (the filesort procedure) in the temporary
      table to evaluate the GROUP BY clause in case of lack of suitable index.
      That procedure takes into account only first @max_sort_length bytes
      (system variable, usually 1024) of TEXT/BLOB sorting key string.
      The my_strnxfrm_gbk and my_strnxfrm_big5 fill temporary keys
      with data of whole blob length instead of @max_sort_length bytes
      length. That buffer overrun has been fixed.
      
      
      mysql-test/r/ctype_gbk.result:
        Added test case for bug #35993.
      mysql-test/t/ctype_gbk.test:
        Added test case for bug #35993.
      strings/ctype-big5.c:
        Fixed bug #35993: memory corruption and crash with multibyte conversion.
        
        Buffer overrun has been fixed in the my_strnxfrm_big5 function.
      strings/ctype-gbk.c:
        Fixed bug #35993: memory corruption and crash with multibyte conversion.
        
        Buffer overrun has been fixed in the my_strnxfrm_gbk function.
      d8ebf276
  11. 21 Apr, 2008 1 commit
    • unknown's avatar
      BUG#36139 "float, zerofill, crash with subquery" · 1c1f0a62
      unknown authored
      - Make convert_zerofill_number_to_string() take into account that the 
        constant it is converting may evaluate to NULL.
      
      
      mysql-test/r/subselect.result:
        BUG#36139 "float, zerofill, crash with subquery"
        - Testcase
      mysql-test/t/subselect.test:
        BUG#36139 "float, zerofill, crash with subquery"
        - Testcase
      1c1f0a62
  12. 18 Apr, 2008 1 commit
  13. 17 Apr, 2008 1 commit
    • unknown's avatar
      Fix for Bug #34291 compile-amd64-debug-max-no-ndb missing · d4e5ae56
      unknown authored
          
      Include several "BUILD/compile-*" files in a source tarball ("make dist" target)
      which might be useful to community users who want to build from source.
      
      When merging this up, the "BUILD/compile-*" file list needs to be checked.
      
      
      BUILD/Makefile.am:
        Fix for   Bug #34291  compile-amd64-debug-max-no-ndb missing
        
        Include several "BUILD/compile-*" files in a source tarball ("make dist" target)
        which might be useful to community users who want to build from source.
      d4e5ae56
  14. 10 Apr, 2008 2 commits
  15. 09 Apr, 2008 3 commits
    • unknown's avatar
      Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my50-bug15776 · e2420997
      unknown authored
      into  zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776-encore/my50-bug15776-encore
      
      
      sql/field.cc:
        Auto merged
      sql/item_create.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      sql/share/errmsg.txt:
        Auto merged
      sql/unireg.h:
        Auto merged
      mysql-test/r/type_blob.result:
        manual merge.
      mysql-test/t/type_blob.test:
        manual merge.
      e2420997
    • unknown's avatar
      Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my50-bug15776 · a16a72b6
      unknown authored
      into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-build
      
      
      mysql-test/r/type_blob.result:
        Auto merged
      mysql-test/t/type_blob.test:
        Auto merged
      sql/field.cc:
        Auto merged
      sql/unireg.h:
        Auto merged
      a16a72b6
    • unknown's avatar
      Follow-up to B-g#15776, test failures on 64-bit linux. · 2bc7179d
      unknown authored
      Make maximum blob size to be 2**32-1, regardless of word size.
      
      Fix failure of timestamp with size of 2**31-1.  The method of
      rounding up to the nearest even number would overflow.
      
      
      mysql-test/r/type_blob.result:
        2**32-1 is not a special case for timestamp.
        
        Test 2**32-1 and 2**64 as the reliable test points for both 32-
        and 64-bit machines.  I'd like to test 2**32, but that would make 
        tests that vary between architectures.
        
        I'd like to generalize the tests by pulling the max blob size from
        the server, and then "eval"ing N-1, N, and N+1 instead of all these
        literal numbers, but I have not found a way to get UINT_MAX.
      mysql-test/t/type_blob.test:
        2**32-1 is not a special case for timestamp.
        
        Test 2**32-1 and 2**64 as the reliable test points for both 32-
        and 64-bit machines.  I'd like to test 2**32, but that would make 
        tests that vary between architectures.
        
        I'd like to generalize the tests by pulling the max blob size from
        the server, and then "eval"ing N-1, N, and N+1 instead of all these
        literal numbers, but I have not found a way to get UINT_MAX.
      sql/field.cc:
        Fix a bug where the round-to-even code for TIMESTAMP fields
        failed where the size would overflow the size to zero and then
        fail.
        
        Also, since we silently truncate the size of TIMESTAMP fields, set
        the maximum size we report is allowable to be the largest parsable
        number.
      sql/unireg.h:
        Make BLOB size the maximum that the packed value in 
        field_blob::get_length() allows.
      2bc7179d
  16. 04 Apr, 2008 3 commits
  17. 03 Apr, 2008 4 commits