1. 27 Nov, 2007 1 commit
    • unknown's avatar
      Bug #30355: Incorrect ordering of UDF results · 63b65169
      unknown authored
      There's currently no way of knowing the determinicity of an UDF.
      And the optimizer and the sequence() UDFs were making wrong
      assumptions about what the is_const member means.
      Plus there was no implementation of update_system_tables()
      causing the optimizer to overwrite the information returned by
      the <udf>_init function.
      
      Fixed by equating the assumptions about the semantics of 
      is_const and providing a implementation of update_used_tables().
      Added a TODO item for the UDF API change needed to make a better 
      implementation.
      
      
      include/mysql_com.h:
        Bug #30355: comment added
      mysql-test/r/udf.result:
        Bug #30355: test case
      mysql-test/t/udf.test:
        Bug #30355: test case
      sql/item_func.cc:
        Bug #30355: keep const_item_cache and used_tables_cache in sync
      sql/item_func.h:
        Bug #30355: 
         - a better implementation of update_used_tables()
         - keep const_item_cache and used_tables_cache in sync
      sql/udf_example.c:
        Bug #30355: Wrong value for const_item fixed.
      63b65169
  2. 22 Nov, 2007 3 commits
  3. 21 Nov, 2007 2 commits
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · bb3e8781
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B30788-5.0-opt
      
      
      sql/item.h:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      mysql-test/r/subselect.result:
        merge of 5.0-opt
      mysql-test/t/subselect.test:
        merge of 5.0-opt
      bb3e8781
    • unknown's avatar
      Bug #30788: Inconsistent retrieval of char/varchar · e9832cee
      unknown authored
      Index lookup does not always guarantee that we can
      simply remove the relevant conditions from the WHERE
      clause. Reasons can be e.g. conversion errors, 
      partial indexes etc. 
      The optimizer was removing these parts of the WHERE 
      condition without any further checking.
      This leads to "false positives" when using indexes.
      Fixed by checking the index reference conditions
      (using WHERE) when using indexes with sub-queries.
      
      
      mysql-test/r/subselect.result:
        Bug #30788: 
         - using where
         - test case
      mysql-test/r/subselect3.result:
        Bug #30788: using where
      mysql-test/t/subselect.test:
        Bug #30788: test case
      sql/item.h:
        Bug #30788: 
         - Declare eq() method of Item_cache descendants : this is used in
         test_if_ref()
         - preserve the field that is being cached for type comparisions
      sql/sql_select.cc:
        Bug #30788: Don't remove the WHERE when using index lookup 
        with subqueries.
      e9832cee
  4. 20 Nov, 2007 8 commits
  5. 19 Nov, 2007 9 commits
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 524e1cd9
      unknown authored
      into  moonbone.local:/work/31048-bug-5.0-opt-mysql
      
      
      524e1cd9
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · b3347a6a
      unknown authored
      into  moonbone.local:/work/31048-bug-5.0-opt-mysql
      
      
      sql/item_subselect.cc:
        Auto merged
      mysql-test/r/subselect.result:
        Manual merge
      mysql-test/t/subselect.test:
        Manual merge
      b3347a6a
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 1c232504
      unknown authored
      into  moonbone.local:/work/30384-bug-5.0-opt-mysql
      
      
      sql/sql_class.h:
        Auto merged
      1c232504
    • unknown's avatar
      Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT · 4addb6b7
      unknown authored
      led to creating corrupted index.
      
      Corrected fix. The new method called prepare2 is added to the select_create
      class. As all preparations are done by the select_create::prepare function
      it doesn't do anything. Slightly changed algorithm of calling the 
      start_bulk_insert function. Now it's called from the select_insert::prepare2
      function when the SQL_BUFFER_RESULT flags is set.
      The is_bulk_insert_mode flag is removed as it is not needed anymore.
      
      
      sql/sql_class.h:
        Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT
        led to creating corrupted index.
        Corrected fix. The new method called prepare2 is added to the select_create
        class. As all preparetions are done by the select_create::prepare function
        it doesn't do anything.
        The is_bulk_insert_mode flag is removed as it is not needed anymore.
      sql/sql_insert.cc:
        Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT
        led to creating corrupted index. Slightly changed algorithm of calling the
        start_bulk_insert function. Now it's called from the select_insert::prepare2
        function when the SQL_BUFFER_RESULT flags is set.
        Corrected fix. The is_bulk_insert_mode flag is removed as it is not needed
        anymore.
      4addb6b7
    • 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
    • unknown's avatar
      Fixed bug #32282: TEXT silently truncates when value is exactly 65536 · ea739898
      unknown authored
      bytes length.
      
      The server has been modified to report warnings on truncation to
      65536 bytes as usual.
      
      
      
      sql/sql_string.cc:
        Fixed bug #32282.
        The well_formed_copy_nchars function returned an incorrect value
        of copied bytes of the truncated input string: extra length of
        the first truncated character added to the *from_end_pos pointer.
        That has been fixed.
      mysql-test/r/type_blob.result:
        Added test case for bug #32282.
      mysql-test/t/type_blob.test:
        Added test case for bug #32282.
      ea739898
    • unknown's avatar
      Fix for bug #32221: bug25714, mytest, mysql_client_test complaints and · c4d0901d
      unknown authored
      crashes.
      
      MySQL distributions contain a number of programs that are used only by
      the MySQL test suite internally, i.e. they are not indended to be
      invoked directly by a user. As a result, such programs are not
      documented, do not have any built-in help or proper error reporting,
      which may confuse users.
      
      This patch fixes the problem with the following changes:
      - mytest, libmysqltest and all references to them were removed from the
      distribution since they are not used anymore
      - bug25714 now displays an error message when run with incorrect
      arguments or with the --help option
      - mysql_client_test now does not call abort() in case of errors,
      instead it does a clean exit() with a proper error status.
      
      
      BitKeeper/deleted/.del-mytest.c:
        Delete: libmysql/mytest.c
      BitKeeper/deleted/.del-myTest-package.dsp:
        Delete: VC++Files/libmysqltest/myTest-package.dsp
      BitKeeper/deleted/.del-myTest-package_ia64.dsp:
        Delete: VC++Files/libmysqltest/myTest-package_ia64.dsp
      BitKeeper/deleted/.del-myTest.dsp~4a8c480769193952:
        Delete: VC++Files/libmysqltest/myTest.dsp
      BitKeeper/deleted/.del-myTest.vcproj:
        Delete: VC++Files/libmysqltest/myTest.vcproj
      BitKeeper/deleted/.del-myTest_ia64.dsp:
        Delete: VC++Files/libmysqltest/myTest_ia64.dsp
      BitKeeper/deleted/.del-mytest.c~9a99338689e5de8:
        Delete: VC++Files/libmysqltest/mytest.c
      BitKeeper/deleted/.del-mytest.dsw~2324698861155335:
        Delete: VC++Files/libmysqltest/mytest.dsw
      VC++Files/copy_mysql_files.bat:
        Removed references to libmysqltest.
      libmysql/CMakeLists.txt:
        Removed rules for myTest.
      libmysql/Makefile.am:
        Removed mytest.c from EXTRA_DIST.
      tests/bug25714.c:
        Display a meaningful error message when run incorrectly or with the --help option.
      tests/mysql_client_test.c:
        In case of error, don't cause abnormal program termination, do a clean exit() with an error status.
      c4d0901d
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/opt/bug32376/my50-bug26215 · ac0612f5
      unknown authored
      into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
      
      
      client/mysql.cc:
        Auto merged
      ac0612f5
    • unknown's avatar
      Changed the help text for --comments to make it clear which option · 1f7678fe
      unknown authored
      disables the option explicitely.
      Changed the option location in code so that --help will show it in
      lexical option order.
      
      This is for bug #26215: mysql command line client should not strip
      comments from SQL statements
      
      
      client/mysql.cc:
        Changed the help text for --comments to make it clear which option
        disables the option explicitely.
        Changed the option location in code so that --help will show it in
        lexical option order.
      1f7678fe
  6. 17 Nov, 2007 7 commits
    • unknown's avatar
      Merge gleb.loc:/work/bk/5.0-opt-32335 · f978c7cd
      unknown authored
      into  gleb.loc:/work/bk/5.0-opt
      
      
      f978c7cd
    • unknown's avatar
      Fixed bug #32335. · 99054db6
      unknown authored
      Comparison of a BIGINT NOT NULL column with a constant arithmetic
      expression that evaluates to NULL caused error 1048: "Column '...'
      cannot be null".
      
      Made convert_constant_item() check if the constant expression is NULL
      before attempting to store it in a field. Attempts to store NULL in a
      NOT NULL field caused query errors.
      
      
      sql/item_cmpfunc.cc:
        Fixed bug #32335.
        1. Made convert_constant_item() check if the constant expression is NULL
           before attempting to store it in a field. Attempts to store NULL in
           a NOT NULL field caused query errors.
        
        2. Also minor bug has been fixed: the thd->count_cuted_fields value
           was not restored in case of successful conversion.
      mysql-test/t/select.test:
        Added test case for bug #32335.
      mysql-test/r/select.result:
        Added test case for bug #32335.
      99054db6
    • unknown's avatar
      Merge mysql.com:/home/hf/work/31158/my41-31158 · 71232b16
      unknown authored
      into  mysql.com:/home/hf/work/31158/my50-31158
      
      
      71232b16
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-4.1-opt · d28ae94e
      unknown authored
      into  mysql.com:/home/hf/work/31158/my41-31158
      
      
      d28ae94e
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.0-opt · dd07707b
      unknown authored
      into  mysql.com:/home/hf/work/31158/my50-31158
      
      
      sql/field.cc:
        Auto merged
      dd07707b
    • unknown's avatar
      merging · 8a8d634b
      unknown authored
      8a8d634b
    • unknown's avatar
      Merge mysql.com:/home/hf/work/31158/my41-31158 · 75b8713b
      unknown authored
      into  mysql.com:/home/hf/work/31158/my50-31158
      
      
      mysql-test/t/gis.test:
        Auto merged
      sql/field.h:
        Auto merged
      sql/item_geofunc.cc:
        Auto merged
      mysql-test/r/gis.result:
        merging
      sql/field.cc:
        merging
      75b8713b
  7. 16 Nov, 2007 4 commits
  8. 15 Nov, 2007 1 commit
  9. 14 Nov, 2007 4 commits
  10. 13 Nov, 2007 1 commit