1. 29 Aug, 2006 7 commits
    • unknown's avatar
      Remove the fix for Bug#10668 "CREATE USER does not enforce username · 3e0fcd91
      unknown authored
      length limit", it's superseded by the fix for Bug#16899 "Possible buffer
      overflow in handling of DEFINER-clause". Update test results.
      
      
      mysql-test/r/grant.result:
        A post-merge fix.
      mysql-test/t/grant.test:
        A new error is returned, use the default database after drop database.
      sql/sql_acl.cc:
        Remove an unneeded check.
      3e0fcd91
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 8ea5f31a
      unknown authored
      into  bodhi.local:/opt/local/work/mysql-5.0-14897
      
      
      configure.in:
        Auto merged
      mysql-test/mysql-test-run.pl:
        Auto merged
      mysql-test/r/im_life_cycle.result:
        Auto merged
      mysql-test/t/im_life_cycle.imtest:
        Auto merged
      sql/field.cc:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/item_cmpfunc.cc:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/item_strfunc.cc:
        Auto merged
      sql/item_strfunc.h:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/sql_acl.cc:
        Auto merged
      sql/sql_class.cc:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_view.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      sql/share/errmsg.txt:
        Auto merged
      mysql-test/r/grant.result:
        Manual merge.
      mysql-test/r/view.result:
        Manual merge.
      mysql-test/t/grant.test:
        Manual merge.
      mysql-test/t/view.test:
        Manual merge.
      8ea5f31a
    • unknown's avatar
      A fix for Bug#14897 "ResultSet.getString("table.column") sometimes · 4355ea5a
      unknown authored
      doesn't find the column"
      
      When a user was using 4.1 tables with VARCHAR column and 5.0 server
      and a query that used a temporary table to resolve itself, the
      table metadata for the varchar column sent to client was incorrect:
      MYSQL_FIELD::table member was empty.
      
      The bug was caused by implicit "upgrade" from old VARCHAR to new
      VARCHAR hard-coded in Field::new_field, which did not preserve
      the information about the original table. Thus, the field metadata
      of the "upgraded" field pointed to an auxiliary temporary table
      created for query execution.
      
      The fix is to copy the pointer to the original table to the new field.
      
      
      mysql-test/r/type_varchar.result:
        Update test results (Bug#14897)
      mysql-test/t/type_varchar.test:
        Add a test case for Bug#14897 "ResultSet.getString("table.column") 
        sometimes doesn't find the column"
      sql/field.cc:
        Preserve the original table name when converting fields from 
        old VARCHAR to new VARCHAR.
      mysql-test/std_data/14897.frm:
        New BitKeeper file ``mysql-test/std_data/14897.frm''
      4355ea5a
    • unknown's avatar
      Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0 · c923270f
      unknown authored
      into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug17591
      
      
      c923270f
    • unknown's avatar
      Preliminary patch for the following bugs: · 33294b1b
      unknown authored
        - BUG#15934: Instance manager fails to work;
        - BUG#18020: IM connect problem;
        - BUG#18027: IM: Server_ID differs;
        - BUG#18033: IM: Server_ID not reported;
        - BUG#21331: Instance Manager: Connect problems in tests;
      
      The only test suite has been changed
      (server codebase has not been modified).
      
      
      BitKeeper/deleted/.del-im_check_os.inc:
        Rename: mysql-test/include/im_check_os.inc -> BitKeeper/deleted/.del-im_check_os.inc
      mysql-test/include/im_check_env.inc:
        Include only this file from all IM-tests.
      mysql-test/lib/mtr_io.pl:
        Update mtr_get_pid_from_file() to workaround race,
        described in BUG#21884.
      mysql-test/lib/mtr_process.pl:
        Refactor im_start()/im_stop() so that they will be more
        reliable. There are the following user-visible changes:
          - if one of these functions fails, the test suite
            is aborted;
          - mtr_im_stop() now determines whether the component is
            alive or not not only by checking PID, but also by trying
            to connect to the component;
          - after starting IM, the test suite waits for it to start
            accepting client connections and to start all its guarded
            mysqld instances;
          - a lot of debug-logs have been added in order to simplify
            investigation of future failures.
      mysql-test/mysql-test-run.pl:
        1. Get rid of kill_and_cleanup();
        2. Move im_start()/im_stop() to mtr_process.pl;
        3. Change default IM port to 9311 so that it does not interfere
           with default slave port;
      mysql-test/r/im_daemon_life_cycle.result:
        Updated result file.
      mysql-test/r/im_life_cycle.result:
        Updated result file.
      mysql-test/r/im_options_set.result:
        Updated result file.
      mysql-test/r/im_options_unset.result:
        Updated result file.
      mysql-test/r/im_utils.result:
        Updated result file.
      mysql-test/t/im_daemon_life_cycle.imtest:
        Updated IM-test.
      mysql-test/t/im_life_cycle.imtest:
        Updated IM-test.
      mysql-test/t/im_options_set.imtest:
        Updated IM-test.
      mysql-test/t/im_options_unset.imtest:
        Updated IM-test.
      mysql-test/t/im_utils.imtest:
        Updated IM-test.
      33294b1b
    • unknown's avatar
      Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0 · b2d1f7a4
      unknown authored
      into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug17591
      
      
      mysql-test/r/view.result:
        Manual merge.
      mysql-test/t/view.test:
        Manual merge.
      b2d1f7a4
    • unknown's avatar
      BUG#17591: Updatable view not possible with trigger or stored function · 7a5a2544
      unknown authored
      When a view was used inside a trigger or a function, lock type for
      tables used in a view was always set to READ (thus making the view
      non-updatable), even if we were trying to update the view.
      
      The solution is to set lock type properly.
      
      
      mysql-test/r/view.result:
        Add result for bug#17591: Updatable view not possible with trigger
        or stored function.
      mysql-test/t/view.test:
        Add test case for bug#17591: Updatable view not possible with trigger
        or stored function.
      sql/sql_view.cc:
        Move the code that sets requested lock type before the point where
        we exit from mysql_make_view() when we process a placeholder for
        prelocked table.
      7a5a2544
  2. 28 Aug, 2006 1 commit
  3. 26 Aug, 2006 3 commits
  4. 25 Aug, 2006 7 commits
    • unknown's avatar
      Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 3cd6015c
      unknown authored
      into  example.com:/work/mysql-5.0-runtime
      
      
      3cd6015c
    • unknown's avatar
      Fix for bug#21795: SP: sp_head::is_not_allowed_in_function() contains · 133d2aa5
      unknown authored
      erroneous check
      
      Problem: Actually there were two problems in the server code. The check
      for SQLCOM_FLUSH in SF/Triggers were not according to the existing
      architecture which uses sp_get_flags_for_command() from sp_head.cc .
      This function was also missing a check for SQLCOM_FLUSH which has a
      problem combined with prelocking. This changeset fixes both of these
      deficiencies as well as the erroneous check in
      sp_head::is_not_allowed_in_function() which was a copy&paste error.
      
      
      mysql-test/r/sp-error.result:
        update result
      mysql-test/r/trigger.result:
        update result
      mysql-test/t/sp-error.test:
        FLUSH can create a problem with prelocking, hence it's disabled.
        There is a better way to check this than a check in the parser.
        Now we use sp_get_flags_for_command() and the error returned is
        different.
      mysql-test/t/trigger.test:
        FLUSH can create a problem with prelocking, hence it's disabled.
        There is a better way to check this than a check in the parser.
        Now we use sp_get_flags_for_command() and the error returned is
        different.
      sql/sp_head.cc:
        FLUSH and RESET are not allowed inside a SF/Trigger.
        Because they don't imply a COMMIT sp_head::HAS_COMMIT_OR_ROLLBACK
        cannot be used. Two new flags were introduced for that reason.
      sql/sp_head.h:
        Don't check m_type as this check is erroneous. This is probably
        a copy and paste error when moving code from somewhere else. Another
        fact which supports this was prefixing the enum value with the name
        of class sp_head.
        
        Adding two new flags HAS_SQLCOM_RESET and HAS_SQLCOM_FLUSH. The values
        are 2048 and 4096 because in the 5.1 branch there are already new flags
        which are with values up-to 1024.
      sql/sql_parse.cc:
        FLUSH can cause a problem with prelocking in SF/Trigger and
        therefore is already disabled. RESET is also disabled because
        is handled by the same code as FLUSH. We won't allow RESET inside
        SF/Trigger at that stage without thorough analysis. The check for
        them is already done in the parser by calling
        is_not_allowed_in_function()
      sql/sql_yacc.yy:
        By listing SQLCOM_FLUSH as command which implies COMMIT
        in sp_get_flags_for_command() the check in sql_yacc.yy is
        obsolete.
      133d2aa5
    • unknown's avatar
      Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 7e9ed378
      unknown authored
      into  mysql.com:/home/psergey/mysql-5.0-bug16255-merge
      
      
      7e9ed378
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 1b6d9589
      unknown authored
      into  alik.:/mnt/raid/alik/MySQL/devel/5.0-rt-bug16899
      
      
      1b6d9589
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 75865af6
      unknown authored
      into  rurik.mysql.com:/home/igor/mysql-5.0-opt
      
      
      75865af6
    • unknown's avatar
      Fixed bug #21390: wrong estimate of rows after elimination of · f121994d
      unknown authored
      const tables. This resulted in choosing extremely inefficient
      execution plans in same cases when distribution of data in
      joined were skewed (see the customer test case for the bug).
      
      
      
      mysql-test/r/select.result:
        Added a test case for bug #21390: wrong estimate of rows
        after elimination of const tables.
        Includded a test case that checks the code added by the patch
        that handles outer joins with no matches after substitution of
        a const table in an efficient way.
      mysql-test/t/select.test:
        Added a test case for bug #21390: wrong estimate of rows
        after elimination of const tables.
        Included a test case that checks the code added by the patch
        that handles outer joins with no matches after substitution of
        a const table in an efficient way.
      sql/sql_select.cc:
        Fixed bug #21390: wrong estimate of rows after elimination of
        const tables. This resulted in choosing extremely inefficient
        execution plans in same cases when distribution of data in
        joined were skewed (see the customer test case for the bug).
        Also added the code to handle outer joins with no matches after
        substitution of a const table in an efficient way. 
        Corrected calculation of the null rejecting key conditions.
      f121994d
    • unknown's avatar
      Comment cleanup after push of bug#21166. · 5d37fce9
      unknown authored
      5d37fce9
  5. 24 Aug, 2006 8 commits
    • unknown's avatar
      opt_range.cc: · da2e23f1
      unknown authored
        Corrected fix for bug#18165
      
      
      sql/opt_range.cc:
        Corrected fix for bug#18165
      da2e23f1
    • unknown's avatar
      opt_range.cc: · 84a65393
      unknown authored
        Corrected fix for bug#18165
      
      
      sql/opt_range.cc:
        Corrected fix for bug#18165
      84a65393
    • unknown's avatar
      Fix for bug#21416 SP: Recursion level higher than zero needed for non-recursive call · 807ecdf4
      unknown authored
      The following procedure was not possible if max_sp_recursion_depth is 0
      create procedure show_proc() show create procedure show_proc;
        
      Actually there is no recursive call but the limit is checked.
        
      Solved by temporarily increasing the thread's limit just before the fetch from cache
      and decreasing after that.
      
      
      mysql-test/r/sp.result:
        update result
      mysql-test/t/sp.test:
        Test for bug #21416 SP: Recursion level higher than zero needed for non-recursive call
      sql/sp.cc:
        Increase the max_sp_recursion_depth temporarily for SHOW CREATE PROCEDURE call.
        This call is in fact not recursive but is counted as such. Outcome, it will work
        always but if max_sp_recursion_depth is reached we are going to cache one more
        sp_head instance.
      807ecdf4
    • unknown's avatar
      BUG#16255: Merge to 5.0 · 251409bb
      unknown authored
      251409bb
    • unknown's avatar
      BUG#16255: Post-review fixes: adjust the testcase. · f895a16c
      unknown authored
      
      mysql-test/r/subselect.result:
        BUG#16255: A proper testcase
      mysql-test/t/subselect.test:
        BUG#16255: A proper testcase
      f895a16c
    • unknown's avatar
      Bug #16255: Subquery in WHERE (the cset by Georgi Kodinov) · c74c8195
      unknown authored
       Must not use Item_direct_ref in HAVING because it points to
       the new value (witch is not yet calculated for the first row).
      
      
      mysql-test/r/subselect.result:
        Bug #16255: Subquery in where
         - test case
      mysql-test/t/subselect.test:
        Bug #16255: Subquery in where
         - test case
      sql/item_subselect.cc:
        Bug #16255: Subquery in where
         Must not use Item_direct_ref in HAVING because it points to
         the new value (witch is not yet calculated for the first row).
      c74c8195
    • unknown's avatar
      Polishing (was the part of original patch for BUG#16899): · 2f0a610f
      unknown authored
      Changed trigger-handling code so that there will be the one
      place for generate statement string for replication log
      and for trigger file.
      
      
      sql/sql_trigger.cc:
        Changed trigger-handling code so that there will be the one
        place for generate statement string for replication log
        and for trigger file.
      sql/sql_trigger.h:
        Changed trigger-handling code so that there will be the one
        place for generate statement string for replication log
        and for trigger file.
      2f0a610f
    • unknown's avatar
      BUG#21166: Prepared statement causes signal 11 on second execution · 965a3970
      unknown authored
      Changes in an item tree done by optimizer weren't properly
      registered and went unnoticed, which resulted in preliminary freeing
      of used memory.
      
      
      mysql-test/r/ps.result:
        Add result for bug#21166: Prepared statement causes signal 11
        on second execution.
      mysql-test/t/ps.test:
        Add test case for bug#21166: Prepared statement causes signal 11
        on second execution.
      sql/item.cc:
        Move Item::transform() and Item_default_value::transform() from
        item.h here and use THD::change_item_tree() instead of plain
        assignment.
        Change Item_field::set_no_const_sub() to be used with Item::walk()
        instead of Item::transform().
      sql/item.h:
        Move definition of Item::transform() and Item_default_value::transform()
        to item.cc.
        Change Item::set_no_const_sub() to be used with Item::walk()
        instead of Item::transform().
      sql/item_cmpfunc.cc:
        Use Item::walk() to execute Item::set_no_const_sub().
        Use THD::change_item_tree() instead of plain assignment.
      sql/item_func.cc:
        Add assert and comment to Item_func::traverse_cond().
      sql/item_row.cc:
        Use THD::change_item_tree() instead of plain assignment.
      sql/item_strfunc.cc:
        Move Item_func_make_set::transform() from item_strfunc.h here and use
        THD::change_item_tree() instead of plain assignment.
      sql/item_strfunc.h:
        Move definition of Item_func_make_set::transform() to item_strfunc.cc.
      965a3970
  6. 23 Aug, 2006 5 commits
    • unknown's avatar
      view.result, view.test: · d0394c70
      unknown authored
        Corrected test case for the bug#21261
      sql_parse.cc:
        Corrected fix for bug#21261
      
      
      mysql-test/t/view.test:
        Corrected test case for the bug#21261
      mysql-test/r/view.result:
        Corrected test case for the bug#21261
      sql/sql_parse.cc:
        Corrected fix for bug#21261
      d0394c70
    • unknown's avatar
      Fix for BUG#16899: Possible buffer overflow in handling of DEFINER-clause · f96ee72f
      unknown authored
        
      User name (host name) has limit on length. The server code relies on these
      limits when storing the names. The problem was that sometimes these limits
      were not checked properly, so that could lead to buffer overflow.
      
      The fix is to check length of user/host name in parser and if string is too
      long, throw an error.
      
      
      mysql-test/r/grant.result:
        Updated result file.
      mysql-test/r/sp.result:
        Updated result file.
      mysql-test/r/trigger.result:
        Updated result file.
      mysql-test/r/view.result:
        Updated result file.
      mysql-test/t/grant.test:
        Added test for BUG#16899.
      mysql-test/t/sp.test:
        Added test for BUG#16899.
      mysql-test/t/trigger.test:
        Added test for BUG#16899.
      mysql-test/t/view.test:
        Added test for BUG#16899.
      sql/mysql_priv.h:
        Added prototype for new function.
      sql/share/errmsg.txt:
        Added new resources.
      sql/sql_acl.cc:
        Remove outdated checks.
      sql/sql_parse.cc:
        Add a new function for checking string length.
      sql/sql_yacc.yy:
        Check length of user/host name.
      f96ee72f
    • unknown's avatar
      Merge lamia.home:/home/timka/mysql/src/4.1-bug-21456 · e3181c59
      unknown authored
      into  lamia.home:/home/timka/mysql/src/5.0-bug-21456
      
      
      mysql-test/r/distinct.result:
        Merge the fix for BUG#21456
      mysql-test/t/distinct.test:
        Merge the fix for BUG#21456
      sql/sql_select.cc:
        Merge the fix for BUG#21456
      e3181c59
    • unknown's avatar
      Bug #21456: SELECT DISTINCT(x) produces incorrect results when using order by · 2baf2fdf
      unknown authored
      GROUP BY/DISTINCT pruning optimization must be done before ORDER BY 
      optimization because ORDER BY may be removed when GROUP BY/DISTINCT
      sorts as a side effect, e.g. in 
        SELECT DISTINCT <non-key-col>,<pk> FROM t1
        ORDER BY <non-key-col> DISTINCT
      must be removed before ORDER BY as if done the other way around
      it will remove both.
      
      
      mysql-test/r/distinct.result:
        Test for BUG#21456.
      mysql-test/t/distinct.test:
        Test for BUG#21456.
      sql/sql_select.cc:
        Bug #21456: SELECT DISTINCT(x) produces incorrect results when using order by
        
        GROUP BY/DISTINCT pruning optimization must be done before ORDER BY 
        optimization because ORDER BY may be removed when GROUP BY/DISTINCT
        sorts as a side effect.
      2baf2fdf
    • unknown's avatar
      Bug#8153 (Stored procedure with subquery and continue handler, wrong result) · 09e9b2f6
      unknown authored
      Implemented code review comments
      Test cleanup
      
      
      sql/protocol.cc:
        Bug#8153 (Stored procedure with subquery and continue handler, wrong result)
        
        Implemented code review comments
      09e9b2f6
  7. 22 Aug, 2006 9 commits
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · e8bb0c92
      unknown authored
      into  moonbone.local:/work/21475-fix-5.0-opt-mysql
      
      
      e8bb0c92
    • unknown's avatar
      item_cmpfunc.cc, item.cc: · d8c9de79
      unknown authored
        Additional fix for bug #21475
      item_func.h, item_func.cc:
        Additional fix for bug#16861
      
      
      sql/item_func.h:
        Additional fix for bug#16861
      sql/item_func.cc:
        Additional fix for bug#16861
      sql/item_cmpfunc.cc:
        Additional fix for bug #21475
      sql/item.cc:
        Additional fix for bug #21475
      d8c9de79
    • unknown's avatar
      Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 5e1039b2
      unknown authored
      into  weblab.(none):/home/marcsql/TREE/mysql-5.0-8153
      
      
      mysql-test/r/sp.result:
        Auto merged
      mysql-test/t/sp.test:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      5e1039b2
    • unknown's avatar
      Merge salvation.intern.azundris.com:/home/tnurnberg/work/mysql-5.0-maint-20411 · f40b6c27
      unknown authored
      into  salvation.intern.azundris.com:/home/tnurnberg/work/mysql-5.0-maint-20987
      
      
      f40b6c27
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint · e0a6e183
      unknown authored
      into  salvation.intern.azundris.com:/home/tnurnberg/work/mysql-5.0-maint-20987
      
      
      e0a6e183
    • unknown's avatar
      Merge zippy.cornsilk.net:/home/cmiller/work/mysql/merge/mysql-5.0-maint · 7d70273e
      unknown authored
      into  zippy.cornsilk.net:/home/cmiller/work/mysql/merge/mysql-5.0
      
      
      7d70273e
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · bbda4dd3
      unknown authored
      into  rurik.mysql.com:/home/igor/mysql-5.0-opt
      
      
      bbda4dd3
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 3a23139a
      unknown authored
      into  sunlight.local:/local_work/16861-bug-5.0-mysql
      
      
      sql/sql_select.cc:
        Auto merged
      3a23139a
    • unknown's avatar
      Fixed bug#16861: User defined variable can have a wrong value if a tmp table was · c623e54f
      unknown authored
      used.
      
      Sorting by RAND() uses a temporary table in order to get a correct results.
      User defined variable was set during filling the temporary table and later
      on it is substituted for its value from the temporary table. Due to this
      it contains the last value stored in the temporary table.
      
      Now if the result_field is set for the Item_func_set_user_var object it 
      updates variable from the result_field value when being sent to a client.
      
      The Item_func_set_user_var::check() now accepts a use_result_field
      parameter. Depending on its value the result_field or the args[0] is used
      to get current value.
      
      
      mysql-test/r/user_var.result:
        Added a test case for bug#16861: User defined variable can have a wrong value if a tmp table was used.
      mysql-test/t/user_var.test:
        Added a test case for bug#16861: User defined variable can have a wrong value if a tmp table was used.
      sql/item_func.cc:
        Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
        Now if the result_field is set for the Item_func_set_user_var object it 
        updates variable from the result_field value when being sent to a client.
        
        The Item_func_set_user_var::check() now accepts a use_result_field
        parameter. Depending on its value the result_field or the args[0] is used
        to get current value.
      sql/item_func.h:
        Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
        Added a new SUSERVAR_FUNC function type.
        Updated the Item_func_set_user_var::check() function declaration.
        Added the Item_func_set_user_var::send() member function.
      sql/set_var.cc:
        Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
        Modified to use updated Item_func_set_user_var::check() function.
      sql/sql_class.cc:
        Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
        Modified to use updated Item_func_set_user_var::check() function.
      sql/sql_select.cc:
        Fixed bug#16861: User defined variable can have a wrong value if a tmp table was used.
        Now an Item_func_set_user_var object isn't substituted for an Item_field object after filling a temporary table.
      c623e54f