1. 26 Mar, 2008 1 commit
    • unknown's avatar
      Fixed bug #35193. · b6bf896b
      unknown authored
      View definition as SELECT ... FROM DUAL WHERE ... has
      valid syntax, but use of such view in SELECT or
      SHOW CREATE VIEW syntax causes unexpected syntax error.
      
      Server omits FROM DUAL clause when storing view body
      string in a .frm file for further evaluation.
      However, syntax of SELECT-witout-FROM query is more
      restrictive than SELECT FROM DUAL syntax, and doesn't
      allow the WHERE clause.
      
      NOTE: this syntax difference is not documented.
      
      
      View registration procedure has been modified to
      preserve original structure of view's body.
      
      
      
      mysql-test/r/view.result:
        Added test case for bug #35193.
      mysql-test/t/view.test:
        Added test case for bug #35193.
      sql/sql_select.cc:
        Fixed bug #35193.
        The st_select_lex::print function always omits FROM DUAL clause,
        even if original SELECT query has the WHERE clause.
        
        The mysql_register_view function uses this function to reconstruct
        a body of view's AS clause for further evaluation and stores that
        reconstructed clause in a .frm file.
        
        SELECT without FROM syntax is more restrictive than 
        SELECT FROM DUAL syntax: second one allows
        the WHERE clause, but first one is not.
        
        Use of this view in SELECT or SHOW CREATE VIEW queries
        causes unexpected syntax errors.
        
        
        The st_select_lex::print function has been modified to
        reconstruct FROM DUAL clause in queries when needed.
        
        
        TODO: Syntax difference is not documented and should be
        eliminated, however improvement of
        the SELECT-without-FROM syntax is not trivial and leads to
        significant modification of grammar file because of additional
        shift/reduce conflicts.
      b6bf896b
  2. 25 Mar, 2008 1 commit
    • unknown's avatar
      information_schema.test, information_schema.result: · a9b04d58
      unknown authored
        Minor test case cleanup after bug#34529.
      
      
      mysql-test/r/information_schema.result:
        Minor test case cleanup after bug#34529.
      mysql-test/t/information_schema.test:
        Minor test case cleanup after bug#34529.
      a9b04d58
  3. 24 Mar, 2008 1 commit
  4. 23 Mar, 2008 1 commit
  5. 21 Mar, 2008 2 commits
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · d4efe068
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B26461-5.0-opt
      
      d4efe068
    • unknown's avatar
      Bug #26461: Intrinsic data type bool (1 byte) redefined to BOOL (4 bytes) · edd613be
      unknown authored
      The bool data type was redefined to BOOL (4 bytes on windows).
      Removed the #define and fixed some of the warnings that were uncovered
      by this.
      Note that the fix also disables 2 warnings :
      4800 : 'type' : forcing value to bool 'true' or 'false' (performance warning)
      4805: 'operation' : unsafe mix of type 'type' and type 'type' in operation
      
      These warnings will be handled in a separate bug, as they are performance related or bogus.
      
      Fixed to int the return type of functions that return more than 
      2 distinct values.
      
      
      CMakeLists.txt:
        Bug #26461: disable the C4800 and C4805 warnings temporarily
      include/config-win.h:
        Bug #26461: 
         - no need for this define for Windows.
         - windows C++ compilers have a bool type
      include/my_global.h:
        Bug #26461: removed bool_defined (no longer needed)
      sql/handler.h:
        Bug #26461: bool functions must return boolean values
      sql/mysql_priv.h:
        Bug #26461: fixed return type of functions that return more than
        2 distinct values.
      sql/procedure.h:
        Bug #26461: fixed return type of functions that return more than
        2 distinct values.
      sql/sql_acl.cc:
        Bug #26461: fixed return type of functions that return more than
        2 distinct values.
      sql/sql_acl.h:
        Bug #26461: fixed return type of functions that return more than
        2 distinct values.
      sql/sql_analyse.cc:
        Bug #26461: fixed return type of functions that return more than
        2 distinct values.
      sql/sql_analyse.h:
        Bug #26461: fixed return type of functions that return more than
        2 distinct values.
      sql/sql_base.cc:
        Bug #26461: fixed return type of functions that return more than
        2 distinct values.
      sql/sql_db.cc:
        Bug #26461: fixed return type of functions that return more than
        2 distinct values.
      sql/sql_delete.cc:
        Bug #26461: fixed return type of functions that return more than
        2 distinct values.
      sql/sql_load.cc:
        Bug #26461: fixed return type of functions that return more than
        2 distinct values.
      sql/sql_parse.cc:
        Bug #26461: fixed return type of functions that return more than
        2 distinct values.
      sql/sql_prepare.cc:
        Bug #26461: fixed return type of functions that return more than
        2 distinct values.
      sql/sql_update.cc:
        Bug #26461: fixed return type of functions that return more than
        2 distinct values.
      edd613be
  6. 19 Mar, 2008 4 commits
    • unknown's avatar
      Merge host.loc:/home/uchum/work/PA/5.0-opt-34763 · 622aec64
      unknown authored
      into  host.loc:/home/uchum/work/5.0-opt
      
      
      sql/item.cc:
        Auto merged
      622aec64
    • unknown's avatar
      Bug#34529: Crash on complex Falcon I_S select after ALTER .. PARTITION BY · 53d310a2
      unknown authored
        
      When swapping out heap I_S tables to disk, this is done after plan refinement.
      Thus, READ_RECORD::file will still point to the (deleted) heap handler at start
      of execution. This causes segmentation fault if join buffering is used and the 
      query is a star query where the result is found to be empty before accessing
      some table. In this case that table has not been initialized (i.e. had its 
      READ_RECORD re-initialized) before the cleanup routine tries to close the handler.
      Fixed by updating READ_RECORD::file when changing handler.
      
      
      mysql-test/r/information_schema.result:
        Bug#34529: Test result.
      mysql-test/t/information_schema.test:
        Bug#34529: Test case.
      sql/sql_show.cc:
        Bug#34529: The fix.
      53d310a2
    • unknown's avatar
      Merge kaamos.(none):/data/src/opt/bug34512/my50 · 6245765c
      unknown authored
      into  kaamos.(none):/data/src/opt/mysql-5.0-opt
      
      6245765c
    • unknown's avatar
      Bug #33334 mysqltest_embedded crashes when disconnecting before reap. · ac397634
      unknown authored
      Before breaking the connection we have to check that there's no query
        executing at the moment. Otherwise it can lead to crash in embedded server.
      
      
      client/mysqltest.c:
        Bug #33334 mysqltest_embedded crashes when disconnecting before reap.
        
        Wait until the query thread is finished before we break the connection.
        Waiting part moved to a separate wait_query_thread_end() function
      mysql-test/r/flush.result:
        Bug #33334 mysqltest_embedded crashes when disconnecting before reap.
        
        test result
      mysql-test/t/flush.test:
        Bug #33334 mysqltest_embedded crashes when disconnecting before reap.
        
        test case
      ac397634
  7. 14 Mar, 2008 1 commit
    • unknown's avatar
      Fixed bug #34763. · a000e8f0
      unknown authored
      Queries like:
      
        SELECT ROW(1, 2) IN (SELECT t1.a, 2)
          FROM t1 GROUP BY t1.a
      
      or 
      
        SELECT ROW(1, 2) IN (SELECT t1.a, 2 FROM t2)
          FROM t1 GROUP BY t1.a
      
      lead to assertion failure in the
      Item_in_subselect::row_value_transformer method in debugging
      build, or to unexpected error message in release build:
      
        ERROR 1247 (42S22): Reference '<list ref>' not supported (forward
                            reference in item list)
      
      Unexpected error message and assertion failure have been
      eliminated.
      
      
      mysql-test/r/subselect3.result:
        Added test case for bug #34763.
      mysql-test/t/subselect3.test:
        Added test case for bug #34763.
      sql/item.cc:
        Fixed bug #34763.
        The Item_ref::fix_fields method has been modified to silently
        ignore not fixed outer references: by the definition, those
        references should be fixed later by the call to the
        fix_inner_refs function.
      sql/item_subselect.cc:
        Fixed bug #34763.
        The Item_in_subselect::row_value_transformer method has been
        modified to eliminate assertion failure on not fixed outer
        references: by the definition those references are allowed in
        this context and should be fixed later by the call to the
        fix_inner_refs function.
      a000e8f0
  8. 13 Mar, 2008 1 commit
  9. 12 Mar, 2008 4 commits
  10. 10 Mar, 2008 2 commits
  11. 08 Mar, 2008 1 commit
  12. 07 Mar, 2008 3 commits
  13. 06 Mar, 2008 2 commits
    • unknown's avatar
      Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 4b9aa6a4
      unknown authored
      into  mysql.com:/home/psergey/mysql-5.0-bug34945
      
      4b9aa6a4
    • unknown's avatar
      Fix for bug #34512: CAST( AVG( double ) AS DECIMAL ) · 92221346
      unknown authored
                          returns wrong results
      
      Casting AVG() to DECIMAL led to incorrect results when the arguments
      had a non-DECIMAL type, because in this case
      Item_sum_avg::val_decimal() performed the division by the number of
      arguments twice.
      
      Fixed by changing Item_sum_avg::val_decimal() to not rely on
      Item_sum_sum::val_decimal(), i.e. calculate sum and divide using
      DECIMAL arithmetics for DECIMAL arguments, and utilize val_real() with
      subsequent conversion to DECIMAL otherwise.
      
      
      mysql-test/r/func_group.result:
        Added a test case for bug #34512.
      mysql-test/t/func_group.test:
        Added a test case for bug #34512.
      sql/item_sum.cc:
        Do not use Item_sum_sum::val_decimal() in Item_sum_avg::val_decimal()
        because the first one, depending on the arguments type, may return
        either the sum of the arguments, or the average calculated by the
        virtual val_real() method of Item_sum_avg. Instead, do our own
        calculation based on the arguments type.
      92221346
  14. 05 Mar, 2008 1 commit
    • unknown's avatar
      Fix for bug #34889: mysql_client_test::test_mysql_insert_id test fails · 5c94cde7
      unknown authored
                          sporadically
      
      Under some circumstances, the mysql_insert_id() value after SELECT ...
      INSERT could return a wrong value. This could happen when the last
      SELECT ... INSERT did not involve an AUTO_INCREMENT column, but the
      value of mysql_insert_id() was changed by some previous statements.
      
      Fixed by checking the value of thd->insert_id_used in
      select_insert::send_eof() and returning 0 for mysql_insert_id() if it
      is not set.
      
      
      sql/sql_insert.cc:
        Do not return thd->last_insert_id unconditionally in
        select_insert::send_eof(). First check if thd->insert_id_used is
        non-zero, and return 0 otherwise.
      tests/mysql_client_test.c:
        Added a test case for bug #34889.
      5c94cde7
  15. 03 Mar, 2008 5 commits
    • unknown's avatar
      Raise the version number after cloning 5.0.58 · d336e13b
      unknown authored
      d336e13b
    • unknown's avatar
      BUG#34945: "ref_or_null queries that are null_rejecting and have a null value crash mysql" · 2caf10ee
      unknown authored
      - Apply Eric Bergen's patch: in join_read_always_key(), move ha_index_init() call
        to before the late NULLs filtering code.
      - Backport function comments from 6.0.
      
      
      mysql-test/r/null_key.result:
        BUG#34945: "ref_or_null queries that are null_rejecting and have a null value crash mysql"
        - Testcase
      mysql-test/t/null_key.test:
        BUG#34945: "ref_or_null queries that are null_rejecting and have a null value crash mysql"
        - Testcase
      sql/sql_select.cc:
        BUG#34945: "ref_or_null queries that are null_rejecting and have a null value crash mysql"
        - Apply Eric Bergen's patch: in join_read_always_key(), move ha_index_init() call
          to before the late NULLs filtering code.
        - Backport function comments from 6.0
      2caf10ee
    • unknown's avatar
      Merge kaamos.(none):/data/src/opt/bug31781/my50 · bcf0b119
      unknown authored
      into  kaamos.(none):/data/src/opt/mysql-5.0-opt
      
      bcf0b119
    • unknown's avatar
      Fix for bug #31781: multi-table UPDATE with temp-pool enabled fails · 810c40ab
      unknown authored
                          with errno 17
      
      my_create() did not perform any checks for the case when a file is
      successfully created by a call to open(), but the call to
      my_register_filename() later fails because the number of open files
      has exceeded the my_open_files limit. This can happen on platforms 
      which do not have getrlimit(), and hence we do not know the real limit
      for open files. In such a case an error was returned to a caller
      although the file has actually been created. Since callers assume
      my_create() to return an error only when it failed to create a file,
      they did not perform any cleanups, leaving an 'orphaned' file on the
      file system.
      
      Fixed by adding a check for the above case to my_create() and ensuring
      the newly created file is deleted before returning an error.
      
      Creating a deterministic test case in the test suite is impossible,
      because the exact steps required to reproduce the above situation
      depend on the platform and/or environment (OS per-user limits, queries
      executed by previous tests, startup parameters). The patch was
      manually tested on Windows using examples posted in the bug report.
      
      
      mysys/my_create.c:
        Ensure that, if the call to my_register_filename() in my_create()
        failed, but the previous open() called succeeded, the newly created
        file is deleted before returning an error.
      810c40ab
    • unknown's avatar
      test case fix · c024555a
      unknown authored
      c024555a
  16. 01 Mar, 2008 1 commit
  17. 29 Feb, 2008 8 commits
    • unknown's avatar
      Merge host.loc:/home/uchum/work/PP/5.0-opt-34620 · e6a4c0ba
      unknown authored
      into  host.loc:/home/uchum/work/5.0-opt-34763
      
      e6a4c0ba
    • unknown's avatar
      wrong merge fix · 88790657
      unknown authored
      88790657
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/4.1-opt · a1003a6c
      unknown authored
      into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt
      
      
      mysql-test/t/symlink.test:
        Auto merged
      mysql-test/r/symlink.result:
        after merge fix
      a1003a6c
    • unknown's avatar
      test fix · cdcbcc5a
      unknown authored
      
      mysql-test/r/symlink.result:
        result fix
      cdcbcc5a
    • unknown's avatar
      Fixed bug #34830: mixed table and field names in Item_ref · fe65567e
      unknown authored
                        and Item_direct_ref constructor calls.
      
      Order of ref->field_name and ref->table_name arguments
      is of Item_ref and Item_direct_ref in the fix_inner_refs
      function is inverted.
      
      
      sql/sql_select.cc:
        Fixed bug #34830: mixed table and field names in Item_ref
                          and Item_direct_ref constructor calls.
        
        Order of ref->field_name and ref->table_name arguments
        is of Item_ref and Item_direct_ref in the fix_inner_refs
        function is inverted. See definitions:
        
          Item_ref(Name_resolution_context *context_arg, Item **item,
                   const char *table_name_arg, const char *field_name_arg,
                   bool alias_name_used_arg= FALSE)
          and
        
          Item_direct_ref(Name_resolution_context *context_arg, Item **item,
                          const char *table_name_arg,
                          const char *field_name_arg,
                          bool alias_name_used_arg= FALSE)
      fe65567e
    • unknown's avatar
      after merge fix · c2b51c23
      unknown authored
      c2b51c23
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/4.1-opt · 88cee26e
      unknown authored
      into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt
      
      
      sql/mysql_priv.h:
        Auto merged
      mysql-test/r/symlink.result:
        manual merge
      mysql-test/t/symlink.test:
        manual merge
      sql/mysqld.cc:
        manual merge
      sql/sql_parse.cc:
        manual merge
      88cee26e
    • unknown's avatar
      Bug#32167 another privilege bypass with DATA/INDEX DIRECORY(ver 4.1,5.0) · 69289dbf
      unknown authored
      added new function test_if_data_home_dir() which checks that
      path does not contain mysql data home directory.
      Using of mysql data home directory in
      DATA DIRECTORY & INDEX DIRECTORY is disallowed.
      
      
      mysql-test/r/symlink.result:
        test result
      mysql-test/t/symlink.test:
        test case
      sql/mysql_priv.h:
        new variable mysql_unpacked_real_data_home
      sql/mysqld.cc:
        new variable mysql_unpacked_real_data_home
      sql/sql_parse.cc:
        added new function test_if_data_home_dir() which checks that
        path does not contain mysql data home directory.
        Using of mysql data home directory in
        DATA DIRECTORY & INDEX DIRECTORY is disallowed.
      69289dbf
  18. 28 Feb, 2008 1 commit