1. 27 Oct, 2010 1 commit
  2. 25 Oct, 2010 2 commits
  3. 23 Oct, 2010 2 commits
    • unknown's avatar
      Manual merge · 089ab763
      unknown authored
      089ab763
    • unknown's avatar
      Bug#27606 GRANT statement should be replicated with DEFINER information · 06c49d57
      unknown authored
      "Grantor" columns' data is lost when replicating mysql.tables_priv.
      Slave SQL thread used its default user ''@'' as the grantor of GRANT|REVOKE
      statements executing on it.
      
      In this patch, current user is put in query log event for all GRANT and REVOKE
      statement, SQL thread uses the user in query log event as grantor.
      
      
      mysql-test/suite/rpl/r/rpl_do_grant.result:
        Add test for this bug.
      mysql-test/suite/rpl/t/rpl_do_grant.test:
        Add test for this bug.
      sql/log_event.cc:
        Refactoring THD::current_user_used and related functions.
        current_user_used is used to judge if current user should be
        binlogged in query log event. So it is better to call it m_binlog_invoker.
        The related functions are renamed too.
      sql/sql_class.cc:
        Refactoring THD::current_user_used and related functions.
        current_user_used is used to judge if current user should be
        binlogged in query log event. So it is better to call it m_binlog_invoker.
        The related functions are renamed too.
      sql/sql_class.h:
        Refactoring THD::current_user_used and related functions.
        current_user_used is used to judge if current user should be
        binlogged in query log event. So it is better to call it m_binlog_invoker.
        The related functions are renamed too.
      sql/sql_parse.cc:
        Call binlog_invoker() for GRANT and REVOKE statements.
      06c49d57
  4. 22 Oct, 2010 3 commits
    • Jon Olav Hauglid's avatar
      Merge from mysql-5.5-runtime to mysql-5.5-bugteam · 1ecc1773
      Jon Olav Hauglid authored
      No conflicts
      1ecc1773
    • Davi Arnaut's avatar
      Bug#37780: Make KILL reliable (main.kill fails randomly) · 2881b801
      Davi Arnaut authored
      - A prerequisite cleanup patch for making KILL reliable.
      
      The test case main.kill did not work reliably.
      
      The following problems have been identified:
      
      1. A kill signal could go lost if it came in, short before a
      thread went reading on the client connection.
      
      2. A kill signal could go lost if it came in, short before a
      thread went waiting on a condition variable.
      
      These problems have been solved as follows. Please see also
      added code comments for more details.
      
      1. There is no safe way to detect, when a thread enters the
      blocking state of a read(2) or recv(2) system call, where it
      can be interrupted by a signal. Hence it is not possible to
      wait for the right moment to send a kill signal. It has been
      decided, not to fix it in the code.  Instead, the test case
      repeats the KILL statement until the connection terminates.
      
      2. Before waiting on a condition variable, we register it
      together with a synchronizating mutex in THD::mysys_var. After
      this, we need to test THD::killed again. At some places we did
      only test it in a loop condition before the registration. When
      THD::killed had been set between this test and the registration,
      we entered waiting without noticing the killed flag. Additional
      checks ahve been introduced where required.
      
      In addition to the above, a re-write of the main.kill test
      case has been done. All sleeps have been replaced by Debug
      Sync Facility synchronization. A couple of sync points have
      been added to the server code.
      
      To avoid further problems, if the test case fails in spite of
      the fixes, the test case has been added to the "experimental"
      list for now.
      
      - Most of the work on this patch is authored by Ingo Struewing
      
      
      mysql-test/t/kill.test:
        Re-wrote test case to use Debug Sync points instead of sleeps
      sql/event_queue.cc:
        Fixed kill detection in Event_queue::cond_wait() by adding a check
        after enter_cond().
      sql/lock.cc:
        Moved Debug Sync points behind enter_cond().
        Fixed comments.
      sql/slave.cc:
        Fixed kill detection in start_slave_thread() by adding a check
        after enter_cond().
      sql/sql_class.cc:
        Swapped order of kill and close in THD::awake().
        Added comments.
      sql/sql_class.h:
        Added a comment to THD::killed.
      sql/sql_parse.cc:
        Added a sync point in do_command().
      sql/sql_select.cc:
        Added a sync point in JOIN::optimize().
      2881b801
    • Horst.Hunger's avatar
      Due to issues with merge. · d63cbdde
      Horst.Hunger authored
      d63cbdde
  5. 21 Oct, 2010 12 commits
    • Jon Olav Hauglid's avatar
      Merge from mysql-5.5-bugteam to mysql-5.5-runtime · a776e5f3
      Jon Olav Hauglid authored
      No conflicts
      a776e5f3
    • Jon Olav Hauglid's avatar
      Merge from mysql-5.5-innodb to mysql-5.5-bugteam · 346b7301
      Jon Olav Hauglid authored
      No conflicts
      346b7301
    • Vladislav Vaintroub's avatar
      merge · 00490194
      Vladislav Vaintroub authored
      00490194
    • Sunny Bains's avatar
      Bug #57243 Inconsistent use of trans_register_ha() API in InnoDB · 38f54271
      Sunny Bains authored
      Remove trx_t::active_trans. Split into two separate fields with distinct
      responsibilities. trx_t::is_registered and trx_t::owns_prepare_mutex.
      There are wrapper functions for using this fields in ha_innodb.cc. The
      wrapper functions check for invariants.
      
      Fix some formatting to conform to InnoDB guidelines.
      
      Remove innobase_register_stmt() and innobase_register_trx_and_stmt().
      
      Add:
      trx_is_started()
      trx_deregister_from_2pc()
      trx_register_for_2pc()
      trx_is_registered_for_2pc()
      trx_owns_prepare_commit_mutex_set()
      trx_has_prepare_commit_mutex()
      
      rb://479, Approved by Jimmy Yang.
      38f54271
    • Dmitry Shulga's avatar
      Fixed bug#45445 - cannot execute procedures with thread_stack · 89e43c84
      Dmitry Shulga authored
      set to 128k.
      
      sql/sp.cc:
        Added checking for stack overrun at functions
        db_load_routine/sp_find_routine.
      sql/sp_head.cc:
        sp_head::execute() modified: pass constant value STACK_MIN_SIZE
        instead of 8 * STACK_MIN_SIZE  as second argument value
        in call to check_stack_overrun. Added checking for stack overrun
        at functions sp_lex_keeper::reset_lex_and_exec_core/sp_instr_stmt::execute.
      sql/sql_parse.cc:
        check_stack_overrun modified: allocate buffer for error message
        at heap instead of stack.
        parse_sql modified: added call to check_stack_overrun() before
        parsing of sql statement.
      89e43c84
    • Marko Mäkelä's avatar
      Fix a sys_vars.all_vars failure caused by Bug #56680 instrumentation. · d1a34932
      Marko Mäkelä authored
      The variable innodb_change_buffering_debug is only present in debug builds.
      Hide it from the test, so that the test passes in both debug and non-debug.
      d1a34932
    • Marko Mäkelä's avatar
      Remove files that are no longer needed. · ed55f540
      Marko Mäkelä authored
      These files were needed when InnoDB Plugin was maintained and distributed
      separately from the MySQL 5.1 source tree. They have never been needed in
      MySQL 5.5.
      
      storage/innobase/mysql-test:
       Patches to the test suite.
      
      storage/innobase/handler/mysql_addons.cc:
       Wrappers for private MySQL functions.
      ed55f540
    • Marko Mäkelä's avatar
      lock_rec_validate_page(): Disable the debug printout. · ea6b469d
      Marko Mäkelä authored
      It is filling the error log when testing the debug version of the server.
      The printout only seems to be useful when debugging a crash, not when
      testing an instrumented version of the server.
      ea6b469d
    • unknown's avatar
      Manual Merge · 70ac1c71
      unknown authored
      70ac1c71
    • unknown's avatar
      Bug#55478 Row events wrongly apply on the temporary table of the same name · 6646fecc
      unknown authored
      Rows events were applied wrongly on the temporary table with the same name.
      But rows events are generated only for base tables. As temporary
      table's data never be binlogged on row mode. Normally, base table of the
      same name cannot be updated if a temporary table has the same name.
      But there are two cases which can generate rows events on 
      the base table of same name.
            
      Case1: 'CREATE TABLE ... SELECT' statement.
      In mixed format, it will generate rows events if it is unsafe.
            
      Case2: Drop a transactional temporary table in a transaction
             (happens only on 5.5+).
      BEGIN;
      DROP TEMPORARY TABLE t1;       # t1 is a InnoDB table
      INSERT INTO t1 VALUES(rand()); # t1 is a MyISAM table
      COMMIT;
      'DROP TEMPORARY TABLE' will be put in the transaction cache and
      binlogged after the rows events generated by the 'INSERT' statement.
            
      After this patch, slave opens only base table when applying a rows event.
      6646fecc
    • Jimmy Yang's avatar
      b9217627
    • Jimmy Yang's avatar
      Fix Bug #57616 Sig 11 in dict_load_table() when failed to load · e8f228e7
      Jimmy Yang authored
      index or foreign key
      
      Approved by Sunny Bains
      e8f228e7
  6. 20 Oct, 2010 12 commits
  7. 19 Oct, 2010 8 commits