1. 27 Nov, 2007 2 commits
    • unknown's avatar
      Merge gleb.loc:/work/bk/5.0-opt-32403 · 39940f73
      unknown authored
      into  gleb.loc:/work/bk/5.0-opt
      
      
      sql/opt_range.cc:
        Auto merged
      39940f73
    • unknown's avatar
      Fixed bug #32403: query causes a crash due to stack and · f95a0ca6
      unknown authored
                        memory corruptions.
      
      The right pointer field of the SEL_ARG structure was not
      initialized in the constructor and sometimes that led to
      server crashes.
      
      There is no testcase because the bug occurs only when
      uninitialized memory has particular values, which can't be
      re-created in the test suite.
      
      
      sql/opt_range.cc:
        Fixed bug #32403.
        
        The eq_tree function requires that SEL_ARG::left and
        SEL_ARG::right are equal to null pointer if SEL_ARG
        type is MAYBE_KEY, but SEL_ARG::right was not initialized
        and contained garbage.
      f95a0ca6
  2. 26 Nov, 2007 6 commits
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/opt/bug28837/my50-bug29131 · de75ba2d
      unknown authored
      into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
      
      
      sql/ha_myisam.cc:
        Auto merged
      mysql-test/r/merge.result:
        Manual merge.
      mysql-test/r/myisam.result:
        Manual merge.
      mysql-test/t/merge.test:
        Manual merge.
      mysql-test/t/myisam.test:
        Manual merge.
      de75ba2d
    • unknown's avatar
      Fix for bug #28837: MyISAM storage engine error (134) doing delete with · 60a1e86c
      unknown authored
      self-join
      
      When doing DELETE with self-join on a MyISAM or MERGE table, it could
      happen that a record being retrieved in join_read_next_same() has
      already been deleted by previous iterations. That caused the engine's
      index_next_same() method to fail with HA_ERR_RECORD_DELETED error and
      the whole DELETE query to be aborted with an error.
      
      Fixed by suppressing the HA_ERR_RECORD_DELETED error in
      hy_myisam::index_next_same() and ha_myisammrg::index_next_same(). Since
      HA_ERR_RECORD_DELETED can only be returned by MyISAM, there is no point
      in filtering this error in the SQL layer.
      
      
      mysql-test/r/merge.result:
        Added a test case for bug #28837.
      mysql-test/r/myisam.result:
        Added a test case for bug #28837.
      mysql-test/t/merge.test:
        Added a test case for bug #28837.
      mysql-test/t/myisam.test:
        Added a test case for bug #28837.
      sql/ha_myisam.cc:
        Skip HA_ERR_RECORD_DELETED silently when calling mi_rnext_same().
      sql/ha_myisammrg.cc:
        Skip HA_ERR_RECORD_DELETED silently when calling mi_rnext_same().
      60a1e86c
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 6c15f84b
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B32036-5.0-opt
      
      6c15f84b
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 3996a746
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B32036-5.0-opt
      
      
      mysql-test/r/subselect.result:
        merge of fix for bug 32036 to 5.0-opt
      mysql-test/t/subselect.test:
        merge of fix for bug 32036 to 5.0-opt
      3996a746
    • unknown's avatar
      Bug #32036: EXISTS within a WHERE clause with a UNION · 3315addf
      unknown authored
        crashes MySQL 5.122
      There was a difference in how UNIONs are handled
      on top level and when in sub-query.
      Because the rules for sub-queries were syntactically
      allowing cases that are not currently supported by
      the server we had crashes (this bug) or wrong results
      (bug 32051).
      Fixed by making the syntax rules for UNIONs match the 
      ones at top level.
      
      These rules however do not support nesting UNIONs, e.g.
      (SELECT a FROM t1 UNION ALL SELECT b FROM t2) 
       UNION
      (SELECT c FROM t3 UNION ALL SELECT d FROM t4)
      Supports for statements with nested UNIONs will be
      added in a future version.
      
      
      mysql-test/r/subselect.result:
        Bug #32036: test case
      mysql-test/t/subselect.test:
        Bug #32036: test case
      sql/sql_yacc.yy:
        Bug #32036: Make the syntax rules for UNIONs in subqueries the same
        as for top level UNIONs.
      3315addf
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 5ab07bf3
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B32268-5.0-opt
      
      
      sql/sql_select.cc:
        Auto merged
      5ab07bf3
  3. 24 Nov, 2007 5 commits
  4. 23 Nov, 2007 1 commit
  5. 22 Nov, 2007 5 commits
  6. 21 Nov, 2007 3 commits
    • unknown's avatar
      Fixed bug #32556: assert in "using index for group-by" : · d408a401
      unknown authored
                        is_last_prefix <= 0, file .\opt_range.cc.
      
      SELECT ... GROUP BY bit field failed with an assertion if the
      bit length of that field was not divisible by 8.
      
      
      
      sql/key.cc:
        Fixed bug #32556.
        Copying of "uneven" bits of a bit field was duplicated in the
        key_copy() and in the Field_bit::get_key_image().
        So, instead of copying of the rest of a bit field, 
        Field_bit::get_key_image() copied "uneven" bits to key image again,
        and the lowest field byte was not copied to key at all.
        
        Duplicated code has been removed from the key_copy function.
      mysql-test/t/type_bit.test:
        Added test case for bug #32556.
      mysql-test/r/type_bit.result:
        Added test case for bug #32556.
      d408a401
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 3fdc12ca
      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
      3fdc12ca
    • unknown's avatar
      Bug #30788: Inconsistent retrieval of char/varchar · f3637af4
      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.
      f3637af4
  7. 20 Nov, 2007 10 commits
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · f339b1d3
      unknown authored
      into  moonbone.local:/work/31048-bug-5.0-opt-mysql
      
      f339b1d3
    • unknown's avatar
      sql_select.cc: · 9ec0b739
      unknown authored
        Additional stack check for the bug#31048.
      
      
      sql/sql_select.cc:
        Additional stack check for the bug#31048.
      9ec0b739
    • unknown's avatar
      Bug #32400: Complex SELECT query returns correct result · 5a49b5f0
      unknown authored
       only on some occasions
      
      Referencing an element from the SELECT list in a WHERE 
      clause is not permitted. The namespace of the WHERE
      clause is the table columns only. This was not enforced
      correctly when resolving outer references in sub-queries.
      
      Fixed by not allowing references to aliases in a 
      sub-query in WHERE.
      
      
      mysql-test/include/ps_query.inc:
        Bug #32400: fixed old test queries
      mysql-test/r/ps_2myisam.result:
        Bug #32400: fixed old test queries
      mysql-test/r/ps_3innodb.result:
        Bug #32400: fixed old test queries
      mysql-test/r/ps_4heap.result:
        Bug #32400: fixed old test queries
      mysql-test/r/ps_5merge.result:
        Bug #32400: fixed old test queries
      mysql-test/r/ps_6bdb.result:
        Bug #32400: fixed old test queries
      mysql-test/r/ps_7ndb.result:
        Bug #32400: fixed old test queries
      mysql-test/r/subselect.result:
        Bug #32400: test case
      mysql-test/t/subselect.test:
        Bug #32400: test case
      sql/item.cc:
        Bug #32400: don't allow references to aliases in WHERE
      tests/mysql_client_test.c:
        Bug #32400: fixed old test queries
      5a49b5f0
    • unknown's avatar
      Merge gleb.loc:/work/bk/5.0-opt-32533 · 80077e9b
      unknown authored
      into  gleb.loc:/work/bk/5.0-opt
      
      80077e9b
    • unknown's avatar
      Fixed bug #32533. · 61e5a65b
      unknown authored
      8bit escape characters, termination and enclosed characters
      were silently ignored by SELECT INTO query, but LOAD DATA INFILE
      algorithm is 8bit-clean, so data was corrupted during 
      encoding.
      
      
      sql/sql_class.cc:
        Fixed bug #32533.
        SELECT INTO OUTFILE encoding was not 8bit clear, it
        has been fixed for a symmetry with the LOAD DATA INFILE
        decoding algorithm.
      mysql-test/t/outfile_loaddata.test:
        Added test case for bug #32533.
      mysql-test/r/outfile_loaddata.result:
        Added test case for bug #32533.
      61e5a65b
    • unknown's avatar
      Bug #32268: Indexed queries give bogus MIN and MAX results · 162f8bed
      unknown authored
      Loose index scan does the grouping so the temp table does 
      not need to do it, even when sorting.
      Fixed by checking if the grouping is already done before
      doing sorting and grouping in a temp table and do only 
      sorting.
      
      
      mysql-test/r/group_min_max.result:
        Bug #32268: test case
      mysql-test/t/group_min_max.test:
        Bug #32268: test case
      sql/sql_select.cc:
        Bug #32268: don't group in the temp table if already done
      162f8bed
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.0-opt · 44b4a799
      unknown authored
      into  mysql.com:/home/hf/work/mysql-5.0-opt
      
      44b4a799
    • unknown's avatar
      test case added for the bug #31155 · 2a525960
      unknown authored
      
      mysql-test/r/gis.result:
        test result complete
      mysql-test/t/gis.test:
        test case added for the bug
      2a525960
    • unknown's avatar
      Merge mysql.com:/home/hf/work/31868/my41-31868 · fa2185df
      unknown authored
      into  mysql.com:/home/hf/work/31868/my50-31868
      
      
      sql/sql_table.cc:
        merging
      fa2185df
    • unknown's avatar
      Merge mysql.com:/home/hf/work/32063/my41-32063 · 3ad728e6
      unknown authored
      into  mysql.com:/home/hf/work/31868/my41-31868
      
      3ad728e6
  8. 19 Nov, 2007 8 commits
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · e424e732
      unknown authored
      into  moonbone.local:/work/31048-bug-5.0-opt-mysql
      
      e424e732
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 0438da39
      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
      0438da39
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 4efdde4f
      unknown authored
      into  moonbone.local:/work/30384-bug-5.0-opt-mysql
      
      
      sql/sql_class.h:
        Auto merged
      4efdde4f
    • unknown's avatar
      Bug#30384: Having SQL_BUFFER_RESULT option in the CREATE .. KEY(..) .. SELECT · c3bbe760
      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.
      c3bbe760
    • unknown's avatar
      Bug#31048: Many nested subqueries may cause server crash. · 54393c2f
      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.
      54393c2f
    • unknown's avatar
      Fixed bug #32282: TEXT silently truncates when value is exactly 65536 · e145597f
      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.
      e145597f
    • unknown's avatar
      Fix for bug #32221: bug25714, mytest, mysql_client_test complaints and · 53dfb5a9
      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.
      53dfb5a9
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/opt/bug32376/my50-bug26215 · 9eb49c48
      unknown authored
      into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
      
      
      client/mysql.cc:
        Auto merged
      9eb49c48