1. 19 Nov, 2007 1 commit
    • unknown's avatar
      Bug#31048: Many nested subqueries may cause server crash. · 13105534
      unknown authored
      This bug is actually two. The first one manifests itself on an EXPLAIN
      SELECT query with nested subqueries that employs the filesort algorithm.
      The whole SELECT under explain is marked as UNCACHEABLE_EXPLAIN to preserve
      some temporary structures for explain. As a side-effect of this values of
      nested subqueries weren't cached and subqueries were re-evaluated many
      times. Each time buffer for filesort was allocated but wasn't freed because
      freeing occurs at the end of topmost SELECT. Thus all available memory was
      eaten up step by step and OOM event occur.
      The second bug manifests itself on SELECT queries with conditions where
      a subquery result is compared with a key field and the subquery itself also
      has such condition. When a long chain of such nested subqueries is present
      the stack overrun occur. This happens because at some point the range optimizer
      temporary puts the PARAM structure on the stack. Its size if about 8K and
      the stack is exhausted very fast.
      
      Now the subselect_single_select_engine::exec function allows subquery result
      caching when the UNCACHEABLE_EXPLAIN flag is set.
      Now the SQL_SELECT::test_quick_select function calls the check_stack_overrun
      function for stack checking purposes to prevent server crash.
      
      
      mysql-test/t/subselect.test:
        Added a test case for the bug#31048: Many nested subqueries may cause server crash.
      mysql-test/r/subselect.result:
        Added a test case for the bug#31048: Many nested subqueries may cause server crash.
      sql/opt_range.cc:
        Bug#31048: Many nested subqueries may cause server crash.
        Now the SQL_SELECT::test_quick_select function calls the check_stack_overrun
        function for stack checking purposes to preven server crash.
      sql/item_subselect.cc:
        Bug31048: Many nested subqueries may cause server crash.
        Now the subselect_single_select_engine::exec function allows subquery result
        caching when the UNCACHEABLE_EXPLAIN flag is set.
      13105534
  2. 23 Oct, 2007 18 commits
  3. 22 Oct, 2007 4 commits
    • unknown's avatar
      Bug #28687: Search fails on '0000-00-00' date after sql_mode change · 849bcf94
      unknown authored
      When doing indexed search the server constructs a key image for 
      faster comparison to the stored keys. While doing that it must not
      perform (and stop if they fail) the additional date checks that can 
      be turned on by the SQL mode because there already may be values in 
      the table that don't comply with the error checks.
      Fixed by ignoring these SQL mode bits while making the key image.
      
      
      mysql-test/r/type_date.result:
        Bug #28687: test case
      mysql-test/t/type_date.test:
        Bug #28687: test case
      sql/item.cc:
        Bug #28687: no invalid date warnings
      849bcf94
    • unknown's avatar
      Fix for bug #31742: delete from ... order by function call that causes · bbce18c3
      unknown authored
      an error, asserts server
      
      In case of a fatal error during filesort in find_all_keys() the error
      was returned without the necessary handler uninitialization.
      Fixed by changing the code so that handler uninitialization is performed
      before returning the error.
      
      
      mysql-test/r/delete.result:
        Added a test case for bug #31742.
      mysql-test/t/delete.test:
        Added a test case for bug #31742.
      sql/filesort.cc:
        In case of a fatal error in find_all_keys() do not return before doing
        the necessary handler uninitialization steps.
      bbce18c3
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.0-opt · 578c2386
      unknown authored
      into  mysql.com:/home/hf/work/30638/my50-30638
      
      
      578c2386
    • unknown's avatar
      Merge mysql.com:/home/hf/work/29801/my50-29801 · dda58628
      unknown authored
      into  mysql.com:/home/hf/work/30638/my50-30638
      
      
      dda58628
  4. 21 Oct, 2007 3 commits
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · e763badf
      unknown authored
      into  mysql.com:/scratch/tnurnberg/31588/50-31588
      
      
      e763badf
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/opt/bug28550/my50-bug28550 · fb434504
      unknown authored
      into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
      
      
      fb434504
    • unknown's avatar
      Bug #28550 "Potential bugs related to the return type of the CHAR function". · 04311fab
      unknown authored
        
      Since, as of MySQL 5.0.15, CHAR() arguments larger than 255 are converted into multiple result bytes, a single CHAR() argument can now take up to 4 bytes. This patch fixes Item_func_char::fix_length_and_dec() to take this into account.
        
      This patch also fixes a regression introduced by the patch for bug21513. As now we do not always have the 'name' member of Item set for Item_hex_string and Item_bin_string, an own print() method has been added to Item_hex_string so that it could correctly be printed by Item_func::print_args().
      
      
      mysql-test/r/func_str.result:
        Import patch bug288550.patch
      mysql-test/t/func_str.test:
        Import patch bug288550.patch
      sql/item.cc:
        Import patch bug288550.patch
      sql/item.h:
        Import patch bug288550.patch
      sql/item_strfunc.h:
        Import patch bug288550.patch
      04311fab
  5. 19 Oct, 2007 3 commits
  6. 18 Oct, 2007 8 commits
    • unknown's avatar
      Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-base · d9274610
      unknown authored
      into  lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-rt-merge
      
      
      mysql-test/r/udf.result:
        Auto merged
      mysql-test/t/udf.test:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/udf_example.c:
        Auto merged
      sql/udf_example.def:
        Auto merged
      d9274610
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 0a47c29f
      unknown authored
      into  mysql.com:/scratch/tnurnberg/31588/50-31588
      
      
      0a47c29f
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · d5819c1f
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B31221-5.0-opt
      
      
      d5819c1f
    • unknown's avatar
      Bug #31221: Optimizer incorrectly identifies impossible WHERE clause · 787a4b48
      unknown authored
       No warning was generated when a TIMESTAMP with a non-zero time part
       was converted to a DATE value. This caused index lookup to assume
       that this is a valid conversion and was returning rows that match 
       a comparison between a TIMESTAMP value and a DATE keypart.
       Fixed by generating a warning on such a truncation.
      
      
      mysql-test/r/derived.result:
        Bug #31221: fixed an existing not-precise test case
      mysql-test/r/ps_2myisam.result:
        Bug #31221: Warnings cased by existing tests
      mysql-test/r/ps_3innodb.result:
        Bug #31221: Warnings cased by existing tests
      mysql-test/r/ps_4heap.result:
        Bug #31221: Warnings cased by existing tests
      mysql-test/r/ps_5merge.result:
        Bug #31221: Warnings cased by existing tests
      mysql-test/r/ps_6bdb.result:
        Bug #31221: Warnings cased by existing tests
      mysql-test/r/ps_7ndb.result:
        Bug #31221: Warnings cased by existing tests
      mysql-test/r/type_date.result:
        Bug #31221: Warnings cased by existing tests
      mysql-test/r/type_datetime.result:
        Bug #31221: test case
      mysql-test/t/derived.test:
        Bug #31221: fixed an existing not-precise test case
      mysql-test/t/type_date.test:
        Bug #31221: test case
      sql/field.cc:
        Bug #31221: 
         - Upgraded fix for bug 29729
         - issue a warning only if the hh:mm:ss.msec is not zero consistently 
           for all the Field_newdate::store function
      sql/item_timefunc.cc:
        Bug #31221: don't ignore the errors when storing data
      787a4b48
    • unknown's avatar
      Bug #30638 why doesn't > 4294967295 rows work in myisam on windows. · fffd105f
      unknown authored
      The BIG_TABLES define wasn't enabled on Windows.
      #define added
      
      
      include/config-win.h:
        Bug #30638 why doesn't > 4294967295 rows work in myisam on windows.
        
        BIG_TABLES enabled on Windows
      fffd105f
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 78a13fa4
      unknown authored
      into  sin.intern.azundris.com:/misc/mysql/31588/41-31588
      
      
      78a13fa4
    • unknown's avatar
      Merge sin.intern.azundris.com:/misc/mysql/31588/41-31588 · b0889672
      unknown authored
      into  sin.intern.azundris.com:/misc/mysql/31588/50-31588
      
      
      sql/set_var.cc:
        Auto merged
      mysql-test/r/variables.result:
        SCCS merged
      mysql-test/t/variables.test:
        SCCS merged
      b0889672
    • unknown's avatar
      Bug#31588: buffer overrun when setting variables · cd9d89a7
      unknown authored
      Buffer used when setting variables was not dimensioned to accomodate
      trailing '\0'. An overflow by one character was therefore possible.
      CS corrects limits to prevent such overflows.
      
      
      mysql-test/r/variables.result:
        Try to overflow buffer used for setting system variables.
        Unpatched server should throw a valgrind warning here.
        Actual value and error message irrelevant, only length counts.
      mysql-test/t/variables.test:
        Try to overflow buffer used for setting system variables.
      sql/set_var.cc:
        Adjust maximum number of characters we can store in 'buff' by one
        as strmake() will write a terminating '\0'.
      cd9d89a7
  7. 17 Oct, 2007 3 commits
    • unknown's avatar
      Bug #29804 UDF parameters don't contain correct string length · 367fc73e
      unknown authored
          
      Previously, UDF *_init functions were passed constant strings with erroneous lengths. The length came from the containing variable's size, not the length of the value itself.
          
      Now the *_init functions get the constant as a null terminated string with the correct length supplied too.
      
      
      mysql-test/r/udf.result:
        Test case to check constants passed UDFs.
      mysql-test/t/udf.test:
        Test case to check constants passed UDFs.
      sql/item_func.cc:
        UDF _init functions are now passed the length of the constants, rather than the max length of the var containing the constant.
      sql/udf_example.c:
        Added check_const_len functions. The check_const_len_init functions checks that lengths of constants are correctly passed.
      sql/udf_example.def:
        Add new example functions to windows dll export list.
      367fc73e
    • unknown's avatar
      Fix syntax error build problem on Windows (variable was defined · a634d1bf
      unknown authored
      in middle of block)
      
      
      libmysql/libmysql.c:
        Fix syntax error - don't define new variables in the middle of a block.
        
        Also, use size_t instead of uint to avoid unnecessary casting.
      a634d1bf
    • unknown's avatar
      Bug#31568 Some "information_schema" entries suddenly report a NULL default · 62a7e160
      unknown authored
      updated result files
      
      
      mysql-test/suite/funcs_1/r/innodb__datadict.result:
        updated result file
      mysql-test/suite/funcs_1/r/memory__datadict.result:
        updated result file
      mysql-test/suite/funcs_1/r/myisam__datadict.result:
        updated result file
      62a7e160