1. 07 Jan, 2011 1 commit
  2. 23 Dec, 2010 2 commits
  3. 21 Dec, 2010 5 commits
    • Sergey Glukhov's avatar
      automerge · ab2f1fdc
      Sergey Glukhov authored
      ab2f1fdc
    • Sergey Glukhov's avatar
      test case fix · 18c28c47
      Sergey Glukhov authored
      18c28c47
    • Sven Sandberg's avatar
      BUG#59084: rpl_do_grant started to fail on FreeBSD (presumably after BUG#49978) · 165b3240
      Sven Sandberg authored
      Problem: master executed a statement that would fail on slave
      (namely, DROP USER 'create_rout_db'@'localhost').
      Then the test did:
        --let $rpl_only_running_threads= 1
        --source include/rpl_reset.inc
      rpl_reset.inc calls rpl_sync.inc, which first checks which of
      the threads are running and then syncs those threads that are
      running. If the SQL thread fails after the check, the sync will
      fail. So there was a race in the test and it failed on some
      slow hosts.
      Fix: Don't replicate the failing statement.
      165b3240
    • Sergey Glukhov's avatar
      Bug#58030 crash in Item_func_geometry_from_text::val_str · 8246b5a4
      Sergey Glukhov authored
      Item_sum_max/Item_sum_min incorrectly set null_value flag and
      attempt to get result in parent functions leads to crash.
      This happens due to double evaluation of the function argumet.
      First evaluation happens in the comparator and second one
      happens in Item_cache::cache_value().
      The fix is to introduce new Item_cache object which
      holds result of the argument and use this cached value
      as an argument of the comparator.
      
      mysql-test/r/func_group.result:
        test case
      mysql-test/t/func_group.test:
        test case
      sql/item.cc:
        added assertion that ether we have some result or result is NULL.
      sql/item_sum.cc:
        introduce new Item_cache object which
        holds result of the argument and use this cached value
        as an argument of the comparator.
      sql/item_sum.h:
        introduce new Item_cache object which
        holds result of the argument and use this cached value
        as an argument of the comparator.
      8246b5a4
    • unknown's avatar
      Bug #56662 Assertion failed: next_insert_id == 0, file .\handler.cc · 10092e7c
      unknown authored
      Normally, auto_increment value is generated for the column by
      inserting either NULL or 0 into it. NO_AUTO_VALUE_ON_ZERO
      suppresses this behavior for 0 so that only NULL generates
      the auto_increment value. This behavior is also followed by
      a slave, specifically by the SQL Thread, when applying events
      in the statement format from a master. However, when applying
      events in the row format, the flag was ignored thus causing
      an assertion failure:
      "Assertion failed: next_insert_id == 0, file .\handler.cc"
      
      In fact, we never need to generate a auto_increment value for
      the column when applying events in row format on slave. So we
      don't allow it to happen by using 'MODE_NO_AUTO_VALUE_ON_ZERO'.
      
      Refactoring: Get rid of all the sql_mode checks to rows_log_event
      when applying it for avoiding problems caused by the inconsistency
      of the sql_mode on slave and master as the sql_mode is not set for
      Rows_log_event.
      
      mysql-test/extra/rpl_tests/rpl_auto_increment.test:
        Added test to verify if the assertion of "next_insert_id == 0"
        will fail in ha_external_lock() function.
      mysql-test/suite/rpl/r/rpl_auto_increment.result:
        Test result for bug#56662.
      sql/log_event.cc:
        Added code to not allow generation of auto_increment value when
        processing rows event by adding 'MODE_NO_AUTO_VALUE_ON_ZERO' to
        sql_mode.
      sql/rpl_record.cc:
        Added code to get rid of the 'MODE_STRICT_TRANS_TABLES'  and
        MODE_STRICT_ALL_TABLES check to the table when appling the
        rows event and treat it as no strict.
      10092e7c
  4. 20 Dec, 2010 1 commit
    • Sven Sandberg's avatar
      Fixed pb failure. · 6d608408
      Sven Sandberg authored
      Problem: Warnings for truncated data were generated on hosts with
      long host names because @@hostname was inserted into a CHAR(40) column.
      Fix: Change CHAR(40) to TEXT.
      6d608408
  5. 19 Dec, 2010 1 commit
    • Sven Sandberg's avatar
      BUG#49978: Replication tests don't clean up replication state at the end · b1d18e73
      Sven Sandberg authored
      Major replication test framework cleanup. This does the following:
       - Ensure that all tests clean up the replication state when they
         finish, by making check-testcase check the output of SHOW SLAVE STATUS.
         This implies:
          - Slave must not be running after test finished. This is good
            because it removes the risk for sporadic errors in subsequent
            tests when a test forgets to sync correctly.
          - Slave SQL and IO errors must be cleared when test ends. This is
            good because we will notice if a test gets an unexpected error in
            the slave threads near the end.
          - We no longer have to clean up before a test starts.
       - Ensure that all tests that wait for an error in one of the slave
         threads waits for a specific error. It is no longer possible to
         source wait_for_slave_[sql|io]_to_stop.inc when there is an error
         in one of the slave threads. This is good because:
          - If a test expects an error but there is a bug that causes
            another error to happen, or if it stops the slave thread without
            an error, then we will notice.
          - When developing tests, wait_for_*_to_[start|stop].inc will fail
            immediately if there is an error in the relevant slave thread.
            Before this patch, we had to wait for the timeout.
       - Remove duplicated and repeated code for setting up unusual replication
         topologies. Now, there is a single file that is capable of setting
         up arbitrary topologies (include/rpl_init.inc, but
         include/master-slave.inc is still available for the most common
         topology). Tests can now end with include/rpl_end.inc, which will clean
         up correctly no matter what topology is used. The topology can be
         changed with include/rpl_change_topology.inc.
       - Improved debug information when tests fail. This includes:
          - debug info is printed on all servers configured by include/rpl_init.inc
          - User can set $rpl_debug=1, which makes auxiliary replication files
            print relevant debug info.
       - Improved documentation for all auxiliary replication files. Now they
         describe purpose, usage, parameters, and side effects.
       - Many small code cleanups:
          - Made have_innodb.inc output a sensible error message.
          - Moved contents of rpl000017-slave.sh into rpl000017.test
          - Added mysqltest variables that expose the current state of
            disable_warnings/enable_warnings and friends.
          - Too many to list here: see per-file comments for details.
      
      
      client/mysqltest.cc:
        Added the following variables:
         $ENABLED_WARNINGS
         $ENABLED_QUERY_LOG
         $ENABLED_RESULT_LOG
         $ENABLED_ABORT_ON_ERROR
         $ENABLED_INFO
         $ENABLED_METADATA
        Each variable is 0 or 1, depending on if the corresponding
        mysqltest feature is on or off.
      mysql-test/extra/rpl_tests/rpl_EE_err.test:
        Made test clean up after itself and removed outdated comments.
      mysql-test/extra/rpl_tests/rpl_auto_increment.test:
        - Use rpl_reset.inc instead of master-slave-reset.inc
        - diff_tables.inc now takes only one parameter.
        Made test clean up after itself and removed outdated comments.
      mysql-test/extra/rpl_tests/rpl_auto_increment_insert_view.test:
        diff_tables.inc now takes only one parameter.
      mysql-test/extra/rpl_tests/rpl_auto_increment_invoke_trigger.test:
        diff_tables.inc now takes only one parameter.
      mysql-test/extra/rpl_tests/rpl_autoinc_func_invokes_trigger.test:
        diff_tables.inc now takes only one parameter.
      mysql-test/extra/rpl_tests/rpl_charset.test:
        Made test clean up after itself and removed unnecessary cleanup in beginning.
      mysql-test/extra/rpl_tests/rpl_commit_after_flush.test:
        cosmetic fixes
      mysql-test/extra/rpl_tests/rpl_conflicts.test:
        cosmetic fixes
      mysql-test/extra/rpl_tests/rpl_ddl.test:
        Don't clean up replication here since this file does not setup
        replication. The main test now has to both setup and clean up
        replication.
        cosmetic fixes
      mysql-test/extra/rpl_tests/rpl_deadlock.test:
        make test clean up after itself
      mysql-test/extra/rpl_tests/rpl_extra_col_master.test:
        cosmetic fixes
      mysql-test/extra/rpl_tests/rpl_extra_col_slave.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/extra/rpl_tests/rpl_failed_optimize.test:
        made test clean up after itself
      mysql-test/extra/rpl_tests/rpl_flsh_tbls.test:
        made test clean up after itself
      mysql-test/extra/rpl_tests/rpl_foreign_key.test:
        made test clean up after itself
      mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test:
         - Replace 'start slave; wait_for_slave_to_start.inc' by
           include/start_slave.inc.
         - Use new file rpl_connect.inc to reconnect on all connections, since the
           connections are used by rpl_end.inc.
         - Use wait_for_slave_param.inc instead of wait_for_slave_io_to_start.inc,
           since wait_for_slave_io_to_start.inc now fails if the IO thread has
           an error. In this particular test case, it is normal that the IO thread
           has an error.
         - Changed wait_for_slave_io_error.inc so that it waits
           for the IO thread to stop. However, in this test case,
           the IO thread only gets a non-fatal error, so it does
           not stop. So we set $slave_io_error_is_nonfatal=1 to
           prevent wait_for_slave_io_error.inc from waiting.
      mysql-test/extra/rpl_tests/rpl_insert_id.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/extra/rpl_tests/rpl_insert_id_pk.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/extra/rpl_tests/rpl_loaddata.test:
         - Use wait_for_slave_sql_error.inc to wait for errors
           instead of wait_for_slave_sql_to_stop.inc
         - Use check_slave_no_error.inc instead of print errors
           to the log.
         - Use rpl_reset.inc instead of master-slave-reset.inc
           This means we have to clear the error from the slave
           threads by calling RESET SLAVE explicitly.
         - diff_tables.inc now takes only one parameter.
      mysql-test/extra/rpl_tests/rpl_log.test:
        replace master-slave-reset.inc by rpl_reset.inc
      mysql-test/extra/rpl_tests/rpl_max_relay_size.test:
        made test clean up after itself
        cosmetic fix
      mysql-test/extra/rpl_tests/rpl_multi_query.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/extra/rpl_tests/rpl_multi_update.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/extra/rpl_tests/rpl_ndb_apply_status.test:
        replace master-slave-reset.inc by rpl_reset.inc
      mysql-test/extra/rpl_tests/rpl_not_null.test:
        - replace master-slave-reset.inc by rpl_reset.inc
        - diff_tables.inc now takes only one parameter.
      mysql-test/extra/rpl_tests/rpl_record_compare.test:
        - replace master-slave-reset.inc by rpl_reset.inc
        - diff_tables.inc now takes only one parameter.
      mysql-test/extra/rpl_tests/rpl_reset_slave.test:
        - replace wait_for_slave_io_error.inc+stop_slave.inc by
          wait_for_slave_io_error_and_stop.inc+stop_slave_sql.inc
          since stop_slave.inc now fails when the io thread has an
          error.
        - replace stop_slave.inc by STOP SLAVE +
          wait_for_slave_sql_to_stop.inc +
          wait_for_slave_param. stop_slave.inc would fail since
          the IO thread has an error.
        - add include/rpl_end.inc to clean up replication state
      mysql-test/extra/rpl_tests/rpl_row_UUID.test:
        Don't clean up replication here since this file does not setup
        replication. The main test now has to both setup and clean up
        replication.
      mysql-test/extra/rpl_tests/rpl_row_basic.test:
        - replaced reset_master_and_slave.inc by rpl_reset.inc
        - replaced sequence of reset master+reset slave by rpl_reset.inc
        - diff_tables.inc now takes only one parameter.
      mysql-test/extra/rpl_tests/rpl_row_delayed_ins.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/extra/rpl_tests/rpl_row_sp002.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/extra/rpl_tests/rpl_row_sp007.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/extra/rpl_tests/rpl_set_null.test:
        - replaced master-slave-reset.inc by rpl_reset.inc
        - diff_tables.inc now takes only one parameter.
      mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test:
        - Made test clean up replication state.
      mysql-test/extra/rpl_tests/rpl_stm_create_if_not_exists.test:
        replaced rpl_diff_tables.inc by diff_tables.inc
      mysql-test/extra/rpl_tests/rpl_stop_slave.test:
        changed protocol for diff_tables.inc
      mysql-test/extra/rpl_tests/rpl_sv_relay_space.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/extra/rpl_tests/rpl_test_framework.inc:
        Auxiliary file used by rpl_test_framework.test.
        This checks that rpl_change_topology.inc works correctly.
      mysql-test/extra/rpl_tests/rpl_truncate.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/extra/rpl_tests/rpl_truncate_helper.test:
        - replace reset_master_and_slave.inc by rpl_reset.inc
        - diff_tables.inc now takes only one parameter.
      mysql-test/include/analyze-sync_with_master.test:
        - improved debug output printed when sync_slave_with_master or
          sync_with_master fails
        - Added documentation
      mysql-test/include/assert.inc:
        Added file to facilitate assertions.
      mysql-test/include/begin_include_file.inc:
        New auxiliary file to be used by replication helper files like
        rpl_init.inc, stop_slave.inc, wait_for_slave_*.inc, etc. Such
        helper files should source rpl_begin_include_file.inc at the
        beginning and rpl_end_include_file.inc at the end. That adds the
        following features:
         - When a test sources the file, the file name is printed to the
           result file. This is good because it makes result files easier to
           follow.
         - When a helper file sources a second helper file recursively, then
           the name of the second file is not printed. This is good because
           it would make the result file harder to follow if all the internal
           calls of all helper files were printed.
         - When $rpl_debug is set, all internal calls are printed to the
           result file. This is good because it helps when debugging test
           cases. (With $rpl_debug=1, many of the helper files now print other
           relevant debug info too.)
         - When a file needs to turn off the query log or the warning log
           (disable_query_log/disable_warnings), then the file can tell
           rpl_begin_include_file.inc about it. Then rpl_begin_include_file.inc
           will turn off the log correctly, and rpl_end_include_file.inc
           will turn on the log correctly. Note that if rpl_a.inc sources
           rpl_b.inc and both files need to turn off the log, then the
           log is not turned on when rpl_b.inc ends (because rpl_a.inc
           still needs the log off). This makes it easier to program
           replication helper files.
      mysql-test/include/check-testcase.test:
        Made check-testcase ensure that the slave status is reset
        after the test has finished.
      mysql-test/include/check_slave_is_running.inc:
        - Use existing framework (check_slave_param.inc) instead of ad-hoc code
          to check value of slave parameters.
        - Use rpl_begin_include_file.inc to improve debug capabilities.
        - improve documentation.
      mysql-test/include/check_slave_no_error.inc:
        - Use rpl_begin_include_file.inc to improve debug capabilities.
        - improve documentation.
      mysql-test/include/check_slave_param.inc:
        - Use rpl_begin_include_file.inc to improve debug capabilities.
        - improve documentation.
      mysql-test/include/cleanup_fake_relay_log.inc:
        - Use RESET SLAVE instead of manual file removal. This also
          resets other replication state.
        - verify that RESET SLAVE correctly removed files.
      mysql-test/include/diff_tables.inc:
         - Use rpl_begin_include_file.inc to improve debug capabilities.
         - Improved documentation.
         - file now supports an arbitrary number of tables
           (not just two). The tables are now given as a comma-separated
           list instead of as two variables.
         - You no longer have to specify database name for each table.
           If no database is specified, it defaults to the current
           database.
         - File now restores the connection at the end.
      mysql-test/include/end_include_file.inc:
        New file to be sourced at the end of auxiliary replication include
        files. See include/rpl_begin_include_file.inc for details.
      mysql-test/include/file_does_not_exist.inc:
        Added .inc file to check that a given file is removed.
      mysql-test/include/force_restart.inc:
        Added file to force server restart after test
      mysql-test/include/force_restart_if_skipped.inc:
        Added file to force server restart after test, if the test is skipped
      mysql-test/include/have_innodb.inc:
        Made have_innodb.inc print sensible message when innodb is
        not supported.
      mysql-test/include/io_thd_fault_injection.inc:
        Use rpl_server_restart.inc instead of restart_mysqld.inc in rpl tests
      mysql-test/include/kill_query_and_diff_master_slave.inc:
        Renamed diff_master_slave.inc to rpl_diff.inc
      mysql-test/include/master-slave.inc:
        - Use new rpl_init.inc file
        - Now, we don't do 'drop table' in master-slave.inc any more. That's good
          because drop table has nothing to do with configuring replication servers.
        - master-slave.inc now supports the additional parameter
          $rpl_server_count. By default, master-slave.inc only
          configures two servers; if $rpl_server_count is set, it
          configures that many servers. Only the second server is
          a slave; the rest are not part of the replication topology.
      mysql-test/include/mtr_check.sql:
        Removed unneeded SP (use include/force_restart.inc instead)
      mysql-test/include/mysqldump.inc:
        diff_tables.inc now takes only one parameter.
      mysql-test/include/ndb_master-slave.inc:
        use master-slave.inc instead of ad-hoc calls to 'connect'
      mysql-test/include/ndb_master-slave_2ch.inc:
        use rpl_init.inc instead of ad-hoc setup
      mysql-test/include/ndb_not_readonly.inc:
        turn off query log while executing this script.
        this was previously done by the caller. now it's done in the script.
      mysql-test/include/report-features.test:
        add newline at end of file
      mysql-test/include/reset_master_and_slave.inc:
        rpl_reset.inc replaces this file
      mysql-test/include/restart_mysqld.inc:
        force caller to use rpl_restart_server.inc instead if replication is configured
      mysql-test/include/rpl_change_topology.inc:
        New file to change replication topology on the fly. This is used
        by rpl_init.inc internally, but is also used by test cases
        that need to change topology (e.g., rpl.rpl_circular_for_4_hosts, which
        reconfigures the topology to make a failover).
      mysql-test/include/rpl_connect.inc:
        New file to create a named connection. This file knows about a number
        of "standard" connections (master, slave, server_1, etc), and knows how
        each of them should normally be created. This is mostly used internally
        (e.g., by rpl_init.inc, master-slave.inc, ndb_master-slave_2ch.inc etc),
        but can also be used by tests that need to bring a connection up after
        disconnecting.
      mysql-test/include/rpl_connection.inc:
        New file to change connection. This prints the name of the connection.
        However, for files that source rpl_begin_include_file.inc, it does not
        print the name of the connection unless $rpl_debug=1. This is good
        because printing something every time the .inc file changed connection
        would make the result log harder to read.
      mysql-test/include/rpl_diff.inc:
         - Made file capable to compare many servers
         - Hence renamed it to rpl_diff.inc
         - If no server list is specified, use all servers from
           server_1 to server_$rpl_server_count
         - It now writes the statement to file before executing it.
           That means it will be subject to SQL string interpolation,
           but not shell string interpolation (which may be
           platform-dependent)
      mysql-test/include/rpl_diff_tables.inc:
        Removed this file, since its functionality has been merged into
        diff_tables.inc.
      mysql-test/include/rpl_end.inc:
        Renamed master-slave-end.inc to rpl_end.inc, and made it
        work with arbitrary replication topologies (as configured
        with rpl_init.inc and possibly rpl_change_topology.inc). Also
        made it assert that no slave thread has an error. Made it
        assert that no slave thread is stopped, unless
        $rpl_only_running_threads=1.
      mysql-test/include/rpl_for_each_slave.inc:
        New test script that executes a command once for each slave.
        This is used by include/rpl_start_slaves.inc and
        include/rpl_stop_slaves.inc and could possibly be useful for other
        custom scripts too.
      mysql-test/include/rpl_generate_sync_chain.inc:
        New file that computes the variable $rpl_sync_chain. This variable
        determines in what order slaves are synced by include/rpl_sync.inc.
        The variable is recomputed the first time that include/rpl_sync.inc
        is called after rpl_change_topology.inc.
      mysql-test/include/rpl_init.inc:
        Made file work for arbitrary topologies instead of just 4-server
        circle. This file is used by master-slave.inc, rpl_master-slave_2ch.inc
        etc, and also by tests that need other specific replication topologies.
      mysql-test/include/rpl_reconnect.inc:
        New auxiliary file that will reconnect many clients to a given
        server. All clients configured by rpl_init.inc will reconnect.
      mysql-test/include/rpl_reset.inc:
        Made file work for arbitrary replication topologies,
        check for errors, and sync all threads. Also removed
        'drop table' because that has nothing to do with replication.
      mysql-test/include/rpl_restart_server.inc:
        New auxiliary file that restarts a server.
      mysql-test/include/rpl_start_server.inc:
        New auxiliary file that starts a server that has been shut down.
      mysql-test/include/rpl_start_slaves.inc:
        New auxiliary file to start all slaves configured by rpl_init.inc
        This is used internally by rpl_init.inc but may also be used by tests
        that want to bring all slaves up.
      mysql-test/include/rpl_stop_server.inc:
        New auxiliary file that shuts down a server.
      mysql-test/include/rpl_stop_slaves.inc:
        New auxiliary file to stop all slaves configured rpl_init.inc. This
        is used internally by rpl_end.inc, but may also be used by tests that
        want to stop all slaves.
      mysql-test/include/rpl_sync.inc:
        Made file work for arbitrary replication topologies (as configured
        by rpl_init.inc and possibly rpl_change_topology.inc) instead of
        just 4-server circle.
      mysql-test/include/save_master_pos.inc:
        Auxiliary file to save the master position.
      mysql-test/include/setup_fake_relay_log.inc:
        - Moved complicated logic to write to file into
          write_var_to_file.inc, so that it can be re-used by
          other tests.
        - Added call to show_rpl_debug_info and die in error case.
      mysql-test/include/show_rpl_debug_info.inc:
        - Made file print NOW()
        - Made file print both SHOW MASTER STATUS, SHOW SLAVE HOSTS,
          and SHOW SLAVE STATUS.
        - Made file print debug info for all servers configured by
          rpl_init.inc
      mysql-test/include/show_slave_status.inc:
        - Made file use echo instead of SELECT to print variables.
        - Improved comments.
        - Use variable names that are less likely to be used by other tests.
      mysql-test/include/start_slave.inc:
        - Made test use rpl_begin_include_file.inc to improve debug
          capabilities.
        - improved documentation
      mysql-test/include/stop_slave.inc:
        - Made script capable to detect which threads are running
          and stop only those.
        - Improved documentation
      mysql-test/include/stop_slave_io.inc:
        Added file to stop the slave IO thread.
      mysql-test/include/stop_slave_sql.inc:
        Added file to stop the slave SQL thread.
      mysql-test/include/sync_io_with_master.inc:
        Added file to sync the IO thread of the current connection, up to
        a previously saved position.
      mysql-test/include/sync_slave_io_with_master.inc:
        - Made file work with arbitrarily-named connections.
        - Made file use rpl_begin_include_file.inc to improve debug
          capabilities.
      mysql-test/include/sync_slave_sql_with_io.inc:
        Added file to sync only the SQL thread, up to the position copied
        in the IO thread.
      mysql-test/include/wait_for_query_to_fail.inc:
        Added file to wait for a query to fail.
      mysql-test/include/wait_for_slave_io_error.inc:
        - Use rpl_begin_include_file.inc to improve debug capabilities.
        - Use existing atom include/show_slave_status.inc to print error
          message.
        - Improve comments.
        
        ******
         - This file now waits until the slave IO thread has completely
           stopped (to avoid races in tests).
         - Some IO thread errors are non-fatal and don't cause the slave
           IO thread to stop. To allow tests to wait for such errors, we
           add the parameters $slave_io_error_is_nonfatal. If
           $slave_io_error_is_nonfatal is set, this script does not wait
           for the IO thread to stop.
      mysql-test/include/wait_for_slave_io_to_start.inc:
        - Made script fail if the IO thread has an error.
        - Use rpl_begin_include_file.inc to improve debug capabilities.
        - Improved documentation.
      mysql-test/include/wait_for_slave_io_to_stop.inc:
        - Fail if server is not configured as slave. Previously, the
          script accepted servers not configured as slave because there
          was cleanup code called from master-slave.inc that would execute
          STOP SLAVE on both master and slave. Now all tests have to
          clean up after themselves, so we don't have to call stop slave
          at the beginning of tests. Hence, we disallow calling this
          script on servers not configured as slaves.
        - Use rpl_begin_include_file.inc to improve debug capabilities.
        - Improved documentation.
      mysql-test/include/wait_for_slave_param.inc:
        - Added $slave_error_param. This variable can be set to
          Slave_IO_Errno or Slave_SQL_Errno, in which case the
          script fails if the corresponding column in the output from
          SHOW SLAVE STATUS is nonzero.
        - Replaced exit by die.
        - Made it print timeout seconds correctly in error message.
        - Removed $slave_error_message. This is not needed.
        - Use rpl_begin_include_file.inc for better debug capabilities.
      mysql-test/include/wait_for_slave_sql_error.inc:
        - Use rpl_begin_include_file.inc for better debug capabilities.
        - Improve documentation
        - Use existing atom show_slave_status.inc to print error.
      mysql-test/include/wait_for_slave_sql_error_and_skip.inc:
        - Use rpl_begin_include_file.inc and rpl_connection.inc for better
          debug capabilities.
        - Improve documentation
      mysql-test/include/wait_for_slave_sql_to_start.inc:
        - Use rpl_begin_include_file.inc for better debug capabilities.
        - Improve documentation
      mysql-test/include/wait_for_slave_sql_to_stop.inc:
        - Fail if Last_SQL_Errno is nonzero.
        - Fail if server is not configured as slave. Previously, the
          script accepted servers not configured as slave because there
          was cleanup code called from master-slave.inc that would execute
          STOP SLAVE on both master and slave. Now all tests have to
          clean up after themselves, so we don't have to call stop slave
          at the beginning of tests. Hence, we disallow calling this
          script on servers not configured as slaves.
        - Use rpl_begin_include_file.inc for better debug capabilities.
        - Improve documentation
      mysql-test/include/wait_for_slave_to_start.inc:
        - Use rpl_begin_include_file.inc for better debug capabilities.
        - Improve documentation
      mysql-test/include/wait_for_slave_to_stop.inc:
        - Use rpl_begin_include_file.inc for better debug capabilities.
        - Improve documentation
      mysql-test/include/write_var_to_file.inc:
        Added file to write contents of a mysqltest variable to file.
        (This was previously in setup_fake_relay_log.inc)
      mysql-test/mysql-test-run.pl:
        Allow tests to require restart in case the test is skipped.
      mysql-test/r/init_file.result:
        updated result file
      mysql-test/r/mysqldump_restore.result:
        update result file
      mysql-test/suite/binlog/r/binlog_drop_if_exists.result:
        Moved test that does not use replication to binlog suite.
      mysql-test/suite/binlog/r/binlog_old_versions.result:
        updated result file
      mysql-test/suite/binlog/r/binlog_query_filter_rules.result:
        Moved test that does not use replication to binlog suite.
      mysql-test/suite/binlog/r/binlog_server_id.result:
        Moved test that does not use replication to binlog suite.
      mysql-test/suite/binlog/r/binlog_sf.result:
        Moved test that does not use replication to binlog suite.
      mysql-test/suite/binlog/r/binlog_sql_mode.result:
        updated result file
      mysql-test/suite/binlog/t/binlog_auto_increment_bug33029-master.opt:
        This test replicates, so it should be in the rpl suite.
        Then we can remove this .opt file too.
      mysql-test/suite/binlog/t/binlog_drop_if_exists.test:
        Moved test that does not use replication to binlog suite.
      mysql-test/suite/binlog/t/binlog_old_versions.test:
        cosmetic fixes
      mysql-test/suite/binlog/t/binlog_query_filter_rules-master.opt:
        Moved test that does not use replication to binlog suite.
      mysql-test/suite/binlog/t/binlog_query_filter_rules.test:
        Moved test that does not use replication to binlog suite.
      mysql-test/suite/binlog/t/binlog_server_id.test:
        Moved test that does not use replication to binlog suite.
      mysql-test/suite/binlog/t/binlog_sf.test:
        Moved test that does not use replication to binlog suite.
        Since test sets binlog_format internally, it's useless to
        re-run it. Hence we source have_binlog_format_statement.inc
      mysql-test/suite/binlog/t/binlog_sql_mode.test:
        - Test does not use replication, so we remove master-slave.inc.
        - mysqltest magically adds --force-if-open to $MYSQL_BINLOG in test
          files that source master-slave.inc. So now we have to add
          --force-if-open explicitly.
      mysql-test/suite/bugs/t/rpl_bug12691.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/suite/bugs/t/rpl_bug23533.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/suite/bugs/t/rpl_bug31582.test:
        made test clean up after itself
      mysql-test/suite/bugs/t/rpl_bug31583.test:
        made test clean up after itself
      mysql-test/suite/bugs/t/rpl_bug33029.test:
        made test clean up after itself
      mysql-test/suite/bugs/t/rpl_bug36391.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/suite/bugs/t/rpl_bug37426.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/suite/bugs/t/rpl_bug38205.test:
        made test clean up after itself
      mysql-test/suite/manual/t/rpl_replication_delay.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/suite/ndb_team/t/rpl_ndb_dd_advance.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/suite/ndb_team/t/rpl_ndb_extraColMaster.test:
        made test clean up after itself
      mysql-test/suite/ndb_team/t/rpl_ndb_mix_innodb.test:
        made test clean up after itself
        cosmetic fixes
      mysql-test/suite/parts/r/rpl_partition.result:
        updated result file
      mysql-test/suite/parts/t/rpl_partition.test:
        Make test clean up replication state.
        cosmetic fixes
      mysql-test/suite/rpl/include/rpl_mixed_ddl.inc:
        made test clean up after itself
        cosmetic fixes
      mysql-test/suite/rpl/include/rpl_mixed_dml.inc:
        made test clean up after itself
        cosmetic fixes
      mysql-test/suite/rpl/r/rpl_000010.result:
        update result file
      mysql-test/suite/rpl/r/rpl_000011.result:
        update result file
      mysql-test/suite/rpl/r/rpl_000013.result:
        update result file
      mysql-test/suite/rpl/r/rpl_000017.result:
        update result file
      mysql-test/suite/rpl/r/rpl_EE_err.result:
        update result file
      mysql-test/suite/rpl/r/rpl_LD_INFILE.result:
        update result file
      mysql-test/suite/rpl/r/rpl_alter.result:
        update result file
      mysql-test/suite/rpl/r/rpl_alter_db.result:
        update result file
      mysql-test/suite/rpl/r/rpl_auto_increment.result:
        update result file
      mysql-test/suite/rpl/r/rpl_auto_increment_11932.result:
        update result file
      mysql-test/suite/rpl/r/rpl_auto_increment_bug33029.result:
        update result file
      mysql-test/suite/rpl/r/rpl_auto_increment_update_failure.result:
        update result file
      mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result:
        update result file
      mysql-test/suite/rpl/r/rpl_binlog_corruption.result:
        Updated result file
      mysql-test/suite/rpl/r/rpl_binlog_errors.result:
        updated result file
      mysql-test/suite/rpl/r/rpl_binlog_grant.result:
        update result file
      mysql-test/suite/rpl/r/rpl_binlog_max_cache_size.result:
        Updated result file
      mysql-test/suite/rpl/r/rpl_bit.result:
        update result file
      mysql-test/suite/rpl/r/rpl_bit_npk.result:
        update result file
      mysql-test/suite/rpl/r/rpl_blackhole.result:
        update result file
      mysql-test/suite/rpl/r/rpl_bug26395.result:
        update result file
      mysql-test/suite/rpl/r/rpl_bug31076.result:
        update result file
      mysql-test/suite/rpl/r/rpl_bug33931.result:
        updated result file
      mysql-test/suite/rpl/r/rpl_bug38694.result:
        update result file
      mysql-test/suite/rpl/r/rpl_change_master.result:
        update result file
      mysql-test/suite/rpl/r/rpl_charset.result:
        update result file
      mysql-test/suite/rpl/r/rpl_charset_sjis.result:
        update result file
      mysql-test/suite/rpl/r/rpl_circular_for_4_hosts.result:
        Updated result file
      mysql-test/suite/rpl/r/rpl_colSize.result:
        update result file
      mysql-test/suite/rpl/r/rpl_commit_after_flush.result:
        update result file
      mysql-test/suite/rpl/r/rpl_concurrency_error.result:
        update result file
      mysql-test/suite/rpl/r/rpl_conditional_comments.result:
        update result file
      mysql-test/suite/rpl/r/rpl_create_database.result:
        update result file
      mysql-test/suite/rpl/r/rpl_create_if_not_exists.result:
        update result file
      mysql-test/suite/rpl/r/rpl_create_tmp_table_if_not_exists.result:
        update result file
      mysql-test/suite/rpl/r/rpl_cross_version.result:
        Updated result file
      mysql-test/suite/rpl/r/rpl_current_user.result:
        update result file
      mysql-test/suite/rpl/r/rpl_deadlock_innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_delete_no_where.result:
        update result file
      mysql-test/suite/rpl/r/rpl_do_grant.result:
        updated result file
      mysql-test/suite/rpl/r/rpl_drop.result:
        update result file
      mysql-test/suite/rpl/r/rpl_drop_db.result:
        update result file
      mysql-test/suite/rpl/r/rpl_drop_temp.result:
        update result file
      mysql-test/suite/rpl/r/rpl_drop_view.result:
        update result file
      mysql-test/suite/rpl/r/rpl_dual_pos_advance.result:
        update result file
      mysql-test/suite/rpl/r/rpl_empty_master_crash.result:
        update result file
      mysql-test/suite/rpl/r/rpl_err_ignoredtable.result:
        update result file
      mysql-test/suite/rpl/r/rpl_events.result:
        update result file
      mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result:
        update result file
      mysql-test/suite/rpl/r/rpl_extra_col_slave_innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_extra_col_slave_myisam.result:
        update result file
      mysql-test/suite/rpl/r/rpl_failed_optimize.result:
        update result file
      mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result:
        update result file
      mysql-test/suite/rpl/r/rpl_flushlog_loop.result:
        update result file
      mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_found_rows.result:
        update result file
      mysql-test/suite/rpl/r/rpl_free_items.result:
        update result file
      mysql-test/suite/rpl/r/rpl_geometry.result:
        update result file
      mysql-test/suite/rpl/r/rpl_get_lock.result:
        update result file
      mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result:
        update result file
      mysql-test/suite/rpl/r/rpl_grant.result:
        update result file
      mysql-test/suite/rpl/r/rpl_idempotency.result:
        update result file
      mysql-test/suite/rpl/r/rpl_ignore_grant.result:
        update result file
      mysql-test/suite/rpl/r/rpl_ignore_revoke.result:
        update result file
      mysql-test/suite/rpl/r/rpl_ignore_table.result:
        update result file
      mysql-test/suite/rpl/r/rpl_ignore_table_update.result:
        update result file
      mysql-test/suite/rpl/r/rpl_incident.result:
        update result file
      mysql-test/suite/rpl/r/rpl_init_slave.result:
        update result file
      mysql-test/suite/rpl/r/rpl_init_slave_errors.result:
        update result file
      mysql-test/suite/rpl/r/rpl_innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_innodb_bug28430.result:
        update result file
      mysql-test/suite/rpl/r/rpl_innodb_bug30888.result:
        update result file
      mysql-test/suite/rpl/r/rpl_innodb_mixed_ddl.result:
        update result file
      mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result:
        update result file
      mysql-test/suite/rpl/r/rpl_insert.result:
        update result file
      mysql-test/suite/rpl/r/rpl_insert_id.result:
        update result file
      mysql-test/suite/rpl/r/rpl_insert_id_pk.result:
        update result file
      mysql-test/suite/rpl/r/rpl_insert_ignore.result:
        update result file
      mysql-test/suite/rpl/r/rpl_insert_select.result:
        update result file
      mysql-test/suite/rpl/r/rpl_invoked_features.result:
        update result file
      mysql-test/suite/rpl/r/rpl_killed_ddl.result:
        update result file
      mysql-test/suite/rpl/r/rpl_known_bugs_detection.result:
        update result file
      mysql-test/suite/rpl/r/rpl_load_from_master.result:
        update result file
      mysql-test/suite/rpl/r/rpl_load_table_from_master.result:
        update result file
      mysql-test/suite/rpl/r/rpl_loaddata.result:
        update result file
      mysql-test/suite/rpl/r/rpl_loaddata_charset.result:
        update result file
      mysql-test/suite/rpl/r/rpl_loaddata_concurrent.result:
        update result file
      mysql-test/suite/rpl/r/rpl_loaddata_fatal.result:
        update result file
      mysql-test/suite/rpl/r/rpl_loaddata_m.result:
        update result file
      mysql-test/suite/rpl/r/rpl_loaddata_map.result:
        update result file
      mysql-test/suite/rpl/r/rpl_loaddata_s.result:
        update result file
      mysql-test/suite/rpl/r/rpl_loaddata_simple.result:
        update result file
      mysql-test/suite/rpl/r/rpl_loaddata_symlink.result:
        update result file
      mysql-test/suite/rpl/r/rpl_loaddatalocal.result:
        update result file
      mysql-test/suite/rpl/r/rpl_loadfile.result:
        update result file
      mysql-test/suite/rpl/r/rpl_locale.result:
        update result file
      mysql-test/suite/rpl/r/rpl_log_pos.result:
        update result file
      mysql-test/suite/rpl/r/rpl_manual_change_index_file.result:
        update result file
      mysql-test/suite/rpl/r/rpl_many_optimize.result:
        update result file
      mysql-test/suite/rpl/r/rpl_master_pos_wait.result:
        update result file
      mysql-test/suite/rpl/r/rpl_misc_functions.result:
        update result file
      mysql-test/suite/rpl/r/rpl_mixed_bit_pk.result:
        update result file
      mysql-test/suite/rpl/r/rpl_mixed_ddl_dml.result:
        update result file
      mysql-test/suite/rpl/r/rpl_multi_delete.result:
        update result file
      mysql-test/suite/rpl/r/rpl_multi_delete2.result:
        update result file
      mysql-test/suite/rpl/r/rpl_multi_engine.result:
        update result file
      mysql-test/suite/rpl/r/rpl_multi_update.result:
        update result file
      mysql-test/suite/rpl/r/rpl_multi_update2.result:
        update result file
      mysql-test/suite/rpl/r/rpl_multi_update3.result:
        update result file
      mysql-test/suite/rpl/r/rpl_multi_update4.result:
        update result file
      mysql-test/suite/rpl/r/rpl_mysql_upgrade.result:
        update result file
      mysql-test/suite/rpl/r/rpl_name_const.result:
        update result file
      mysql-test/suite/rpl/r/rpl_nondeterministic_functions.result:
        update result file
      mysql-test/suite/rpl/r/rpl_not_null_innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_not_null_myisam.result:
        update result file
      mysql-test/suite/rpl/r/rpl_optimize.result:
        update result file
      mysql-test/suite/rpl/r/rpl_packet.result:
        update result file
      mysql-test/suite/rpl/r/rpl_plugin_load.result:
        update result file
      mysql-test/suite/rpl/r/rpl_ps.result:
        update result file
      mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result:
        update result file
      mysql-test/suite/rpl/r/rpl_read_only.result:
        update result file
      mysql-test/suite/rpl/r/rpl_relay_space_innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_relay_space_myisam.result:
        update result file
      mysql-test/suite/rpl/r/rpl_relayrotate.result:
        update result file
      mysql-test/suite/rpl/r/rpl_relayspace.result:
        update result file
      mysql-test/suite/rpl/r/rpl_replicate_do.result:
        update result file
      mysql-test/suite/rpl/r/rpl_replicate_ignore_db.result:
        update result file
      mysql-test/suite/rpl/r/rpl_report.result:
        update result file
      mysql-test/suite/rpl/r/rpl_rewrt_db.result:
        update result file
      mysql-test/suite/rpl/r/rpl_rotate_logs.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_001.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_4_bytes.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_NOW.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_USER.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_UUID.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_basic_8partition.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_blob_innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_blob_myisam.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_colSize.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_conflicts.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_delayed_ins.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_drop.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_find_row.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_flsh_tbls.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_func001.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_func002.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_func003.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_inexist_tbl.result:
        updated result file
      mysql-test/suite/rpl/r/rpl_row_insert_delayed.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_log.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_log_innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_max_relay_size.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_rec_comp_innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_rec_comp_myisam.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_reset_slave.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_sp001.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_sp003.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_sp005.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_sp007_innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_sp008.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_sp009.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_sp010.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_sp011.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_sp012.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_stop_middle_update.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_tbl_metadata.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_trig001.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_trig002.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_trig003.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_trig004.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_trunc_temp.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_unsafe_funcs.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_until.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_view01.result:
        update result file
      mysql-test/suite/rpl/r/rpl_row_wide_table.result:
        update result file
      mysql-test/suite/rpl/r/rpl_server_id1.result:
        update result file
      mysql-test/suite/rpl/r/rpl_server_id2.result:
        update result file
      mysql-test/suite/rpl/r/rpl_session_var.result:
        update result file
      mysql-test/suite/rpl/r/rpl_set_charset.result:
        update result file
      mysql-test/suite/rpl/r/rpl_set_null_innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_set_null_myisam.result:
        update result file
      mysql-test/suite/rpl/r/rpl_show_slave_running.result:
        update result file
      mysql-test/suite/rpl/r/rpl_skip_error.result:
        update result file
      mysql-test/suite/rpl/r/rpl_slave_grp_exec.result:
        update result file
      mysql-test/suite/rpl/r/rpl_slave_load_in.result:
        update result file
      mysql-test/suite/rpl/r/rpl_slave_load_remove_tmpfile.result:
        Updated result file
      mysql-test/suite/rpl/r/rpl_slave_load_tmpdir_not_exist.result:
        updated result file
      mysql-test/suite/rpl/r/rpl_slave_skip.result:
        update result file
      mysql-test/suite/rpl/r/rpl_slave_status.result:
        update result file
      mysql-test/suite/rpl/r/rpl_slow_query_log.result:
        update result file
      mysql-test/suite/rpl/r/rpl_sp.result:
        update result file
      mysql-test/suite/rpl/r/rpl_sp004.result:
        update result file
      mysql-test/suite/rpl/r/rpl_sp_effects.result:
        update result file
      mysql-test/suite/rpl/r/rpl_sporadic_master.result:
        update result file
      mysql-test/suite/rpl/r/rpl_ssl.result:
        update result file
      mysql-test/suite/rpl/r/rpl_ssl1.result:
        update result file
      mysql-test/suite/rpl/r/rpl_start_stop_slave.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_000001.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_EE_err2.result:
        updated result file
      mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_binlog_direct.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_conflicts.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_create_if_not_exists.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_flsh_tbls.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_insert_delayed.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_loadfile.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_log.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_max_relay_size.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_multi_query.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_no_op.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_reset_slave.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_sql_mode.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stm_until.result:
        update result file
      mysql-test/suite/rpl/r/rpl_stop_slave.result:
        update result file
      mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result:
        update result file
      mysql-test/suite/rpl/r/rpl_temp_table.result:
        update result file
      mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result:
        update result file
      mysql-test/suite/rpl/r/rpl_temporary.result:
        update result file
      mysql-test/suite/rpl/r/rpl_temporary_errors.result:
        update result file
      mysql-test/suite/rpl/r/rpl_test_framework.result:
        updated result file
      mysql-test/suite/rpl/r/rpl_timezone.result:
        Updated result file
      mysql-test/suite/rpl/r/rpl_tmp_table_and_DDL.result:
        update result file
      mysql-test/suite/rpl/r/rpl_trigger.result:
        update result file
      mysql-test/suite/rpl/r/rpl_trunc_temp.result:
        update result file
      mysql-test/suite/rpl/r/rpl_truncate_2myisam.result:
        update result file
      mysql-test/suite/rpl/r/rpl_truncate_3innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_typeconv_innodb.result:
        update result file
      mysql-test/suite/rpl/r/rpl_udf.result:
        update result file
      mysql-test/suite/rpl/r/rpl_user.result:
        update result file
      mysql-test/suite/rpl/r/rpl_user_variables.result:
        update result file
      mysql-test/suite/rpl/r/rpl_variables.result:
        update result file
      mysql-test/suite/rpl/r/rpl_variables_stm.result:
        update result file
      mysql-test/suite/rpl/r/rpl_view.result:
        update result file
      mysql-test/suite/rpl/t/rpl000017-slave.sh:
        Moved contents of -slave.sh into test.
      mysql-test/suite/rpl/t/rpl_000010-slave.opt:
        make all rpl tests use prefix rpl_
      mysql-test/suite/rpl/t/rpl_000010.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_000011.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_000013.test:
        Made test clean up replication state.
        Replaced save_master_pos/connection slave/sync_with_master
        by sync_slave_with_master.
      mysql-test/suite/rpl/t/rpl_000017-slave.opt:
        make all rpl tests use prefix rpl_
      mysql-test/suite/rpl/t/rpl_000017.test:
        Moved contents of -slave.sh into .test
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_EE_err.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_LD_INFILE.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_alter.test:
        made test clean up after itself
        replaced rpl_diff_tables by diff_tables
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_alter_db.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_auto_increment.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_auto_increment_11932.test:
        Made test clean up replication state.
        don't drop database twice
      mysql-test/suite/rpl/t/rpl_auto_increment_bug33029.test:
        - This test replicates, so moved it to rpl suite.
        - This test uses a fake relay log, so use
          include/setup_fake_relay_log.inc and cleanup_fake_relay_log.inc
          instead of ad-hoc code.
        - Made test clean up replication state (rpl_end.inc)
      mysql-test/suite/rpl/t/rpl_auto_increment_update_failure.test:
        - Made test clean up replication state.
        - diff_tables.inc now takes only one parameter.
      mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test:
        renamed rpl_end.inc to master-slave-end.inc
      mysql-test/suite/rpl/t/rpl_binlog_corruption-master.opt:
        Got rid of useless -master.opt file.
      mysql-test/suite/rpl/t/rpl_binlog_corruption.test:
        Made test clean up replication state.
        Made test execute on slave connection instead of on master connection.
        This allows us to get rid of -master.opt file.
      mysql-test/suite/rpl/t/rpl_binlog_errors.test:
        made test use rpl_restart_server.inc instead of restart_mysqld.inc
      mysql-test/suite/rpl/t/rpl_binlog_grant.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_binlog_max_cache_size.test:
        - Made test clean up replication state.
        - replaced wait_for_slave_sql_to_stop.inc by
          wait_for_slave_sql_error_and_skip.inc
        - renamed diff_master_slave.inc to rpl_diff.inc and
          renamed $diff_statement to $rpl_diff_statement
      mysql-test/suite/rpl/t/rpl_bit.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_bit_npk.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_blackhole.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_bug26395.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_bug31076.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_bug33931.test:
        Made test clean up replication state.
        Made test use source include/master-slave.inc instead of
        ad-hoc setup.
      mysql-test/suite/rpl/t/rpl_bug38694.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_change_master.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_charset.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_charset_sjis.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.cnf:
        Use new names of mtr variables (introduced by the changes in
        include/circular_rpl_init.inc).
      mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test:
        - Use rpl_init.inc instead of circular_rpl_for_4_hosts.inc.
          Connections have been renamed (server_[1234] instead of master_[abcd]),
          we use rpl_sync.inc instead of circular_rpl_for_4_hosts_sync.inc,
          we use the new rpl_end.inc to clean up instead of doing it
          manually, and we use rpl_change_topology.inc instead of manual
          reconfiguration.
        - Added comment to make test understandable.
        - the test contained a race condition. server_4 was not sync'ed. This could
          cause sql_slave_skip_counter to have the value 1 when the test ended, so
          check-testcase would complain. Added 'sync_slave_with_master server_4'.
      mysql-test/suite/rpl/t/rpl_colSize.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_commit_after_flush.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_concurrency_error.test:
        - Made test clean up replication state.
        - renamed diff_master_slave.inc to rpl_diff.inc and
          renamed $diff_statement to $rpl_diff_statement
      mysql-test/suite/rpl/t/rpl_conditional_comments.test:
        made test clean up after itself
        new protocol for diff_tables.inc
      mysql-test/suite/rpl/t/rpl_create_database.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_create_if_not_exists.test:
        renamed master-slave-end.inc to rpl_end.inc
      mysql-test/suite/rpl/t/rpl_create_tmp_table_if_not_exists.test:
        renamed master-slave-end.inc to rpl_end.inc
      mysql-test/suite/rpl/t/rpl_critical_errors.test:
        Made test clean up replication state.
        Fixed syntax error in test.
      mysql-test/suite/rpl/t/rpl_cross_version.test:
        Made test clean up replication state.
        Made test execute on slave connection instead of on master connection.
        This allows us to get rid of -master.opt file.
      mysql-test/suite/rpl/t/rpl_current_user.cnf:
        use environment variables recognized by rpl_init.inc
      mysql-test/suite/rpl/t/rpl_current_user.test:
        - Use rpl_init.inc instead of ad-hoc three-server setup.
          Hence, rename connection slave2 to server_3
        - don't drop lots of things at the beginning of the test
        - rpl_diff_tables.inc does not sync any more, so we have to
          sync here instead
        - renamed $diff_table to $rpl_diff_table and $diff_table_list
          to $rpl_diff_table_list
        - use diff_tables.inc instead of rpl_diff_tables.inc
      mysql-test/suite/rpl/t/rpl_ddl.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_deadlock_innodb.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_delete_no_where.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_do_grant.test:
        Made test clean up replication state.
        renamed master-slave-end.inc to rpl_end.inc
        use include/check_slave_no_error.inc instead of ad-hoc construction
      mysql-test/suite/rpl/t/rpl_drop.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_drop_db.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_drop_temp.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_drop_view.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_dual_pos_advance.test:
        Made test use the new framework for circular replication,
        instead of ad-hoc setup.
      mysql-test/suite/rpl/t/rpl_empty_master_crash.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_err_ignoredtable.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_events.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_extra_col_master_innodb.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_extra_col_master_myisam.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_extra_col_slave_innodb.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_extra_col_slave_myisam.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_failed_optimize.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test:
        renamed master-slave-end.inc to rpl_end.inc
      mysql-test/suite/rpl/t/rpl_flushlog_loop-master.opt:
        Removed useless options from -master.opt file.
      mysql-test/suite/rpl/t/rpl_flushlog_loop-master.sh:
        Removed useless -master.sh file
      mysql-test/suite/rpl/t/rpl_flushlog_loop-slave.opt:
        Removed useless options from -slave.opt file
      mysql-test/suite/rpl/t/rpl_flushlog_loop-slave.sh:
        Removed useless -slave.sh file
      mysql-test/suite/rpl/t/rpl_flushlog_loop.test:
        Made test use new framework for circular replication,
        instead of ad-hoc setup.
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_foreign_key_innodb.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_found_rows.test:
        Made test clean up replication state.
        replaced reset_master_and_slave.inc by rpl_reset.inc
      mysql-test/suite/rpl/t/rpl_free_items.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_geometry.test:
        replaced master-slave-end.inc by rpl_end.inc
      mysql-test/suite/rpl/t/rpl_get_lock.test:
        Made test clean up replication state.
        Replaced save_master_pos+connection slave+sync_with_master
        by sync_slave_with_master.
      mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test:
        Made test clean up replication state.
        Removed last part of test, because it was verbatim identical to
        rpl_server_id1.test
      mysql-test/suite/rpl/t/rpl_grant.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_idempotency.test:
        use check_slave_no_error.inc instead of ad-hoc tests
        use wait_for_slave_sql_error.inc instead of wait_for_slave_to_stop.inc
        replace master-slave-end.inc by rpl_end.inc
      mysql-test/suite/rpl/t/rpl_ignore_grant.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_ignore_revoke.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_ignore_table.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_ignore_table_update.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_incident.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_init_slave.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_init_slave_errors.test:
        Made test clean up replication state.
        Also replaced call to wait_for_slave_sql_to_stop.inc by
        call to wait_for_slave_sql_error.inc
      mysql-test/suite/rpl/t/rpl_innodb.test:
        replace master-slave-end.inc by rpl_end.inc
      mysql-test/suite/rpl/t/rpl_innodb_bug28430.test:
        replace master-slave-end.inc by rpl_end.inc
      mysql-test/suite/rpl/t/rpl_innodb_bug30888.test:
        replace master-slave-end.inc by rpl_end.inc
      mysql-test/suite/rpl/t/rpl_innodb_mixed_ddl.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_innodb_mixed_dml.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_insert.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_insert_id.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_insert_id_pk.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_insert_ignore.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_insert_select.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_invoked_features.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_killed_ddl.test:
        - Made test clean up replication state.
        - renamed diff_master_slave.inc to rpl_diff.inc and
          renamed $diff_statement to $rpl_diff_statement
      mysql-test/suite/rpl/t/rpl_known_bugs_detection.test:
        - Made test clean up replication state.
        - removed wait_for_slave_sql_to_stop.inc, because it already does
          wait_for_slave_sql_error.inc
      mysql-test/suite/rpl/t/rpl_load_from_master.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_load_table_from_master.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_loaddata.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_loaddata_charset.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_loaddata_fatal.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_loaddata_m.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_loaddata_map.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_loaddata_s.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_loaddata_simple.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_loaddata_symlink.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_loaddatalocal.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_loadfile.test:
        - Made test clean up replication state.
        - replace reset_master_and_slave.inc by rpl_reset.inc
        - diff_tables.inc now takes only one parameter.
        - diff_tables.inc also restores the connection to what it was before,
          so in this test we have to manually change connection
          after sourcing diff_tables.inc
      mysql-test/suite/rpl/t/rpl_locale.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_log_pos.test:
        Made test clean up replication state.
        replace stop_slave.inc by stop_slave_sql.inc since the io thread
        is already stopped.
      mysql-test/suite/rpl/t/rpl_manual_change_index_file.test:
        use wait_for_slave_io_error.inc instead of wait_for_slave_to_stop.inc
        replace master-slave-end.inc by rpl_end.inc
      mysql-test/suite/rpl/t/rpl_many_optimize.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_master_pos_wait.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_misc_functions.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_mixed_bit_pk.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_mixed_ddl_dml.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_multi_delete.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_multi_delete2.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_multi_engine.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_multi_update.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_multi_update2.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_multi_update3.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_multi_update4.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_mysql_upgrade.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_name_const.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_nondeterministic_functions.test:
        - Made test clean up replication state.
        - diff_tables.inc now takes only one parameter.
        - diff_tables.inc also restores the connection to what it was before,
          so in this test we have to manually change connection
          after sourcing diff_tables.inc
      mysql-test/suite/rpl/t/rpl_not_null_innodb.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_not_null_myisam.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_optimize.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_packet.test:
        - Made test clean up replication state.
        - replace wait_for_slave_io_to_stop.inc by wait_for_slave_io_error.inc
        - replace master-slave-reset.inc by rpl_reset.inc + drop table t1.
        - replaced save_master_pos/connection slave/sync_with_master
          by sync_slave_with_master.
        - added comment explaining why we need stop_slave_sql.inc
          (we shouldn't need it, it's a bug)
      mysql-test/suite/rpl/t/rpl_plugin_load.test:
        replace master-slave-end.inc by rpl_end.inc
      mysql-test/suite/rpl/t/rpl_ps.test:
        Made test clean up replication state.
        removed lots os useless junk
      mysql-test/suite/rpl/t/rpl_rbr_to_sbr.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_read_only.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_relay_space_innodb.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_relay_space_myisam.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_relayrotate.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_relayspace.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_replicate_do.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_replicate_ignore_db.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_report.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_rewrt_db.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_rotate_logs-slave.opt:
        Got rid of unnecessary -slave.opt file
      mysql-test/suite/rpl/t/rpl_rotate_logs-slave.sh:
        Got rid of unnecessary -slave.sh file
      mysql-test/suite/rpl/t/rpl_rotate_logs.test:
        - Made test clean up replication state.
        - replaced wait_for_slave_sql_to_stop.inc by
          wait_for_slave_sql_error_and_skip.inc
        - removed useless cleanup at beginning of test
        - did not make test use the standard replication framework
          (master-slave.inc + rpl_end.inc), because it won't work. i don't
          know why.
      mysql-test/suite/rpl/t/rpl_row_001.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_4_bytes.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_NOW.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_USER.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_UUID.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test:
        Made test clean up replication state.
        Removed unnecessary 'set binlog_format'.
        replaced master-slave-reset.inc by rpl_reset.inc
      mysql-test/suite/rpl/t/rpl_row_basic_2myisam.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_basic_3innodb.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_basic_8partition.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_blob_innodb.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_blob_myisam.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_colSize.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_conflicts.test:
        replace master-slave-end.inc by rpl_end.inc
      mysql-test/suite/rpl/t/rpl_row_create_table.test:
        replace master-slave-end.inc by rpl_end.inc
        replace master-slave-reset.inc by rpl_reset.inc
        replace long sequence of reset master+reset slave by rpl_reset.inc
      mysql-test/suite/rpl/t/rpl_row_delayed_ins.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_row_drop.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_find_row.test:
        - Made test clean up replication state.
        - replace master-slave-reset.inc by rpl_reset.inc
        - diff_tables.inc now takes only one parameter.
      mysql-test/suite/rpl/t/rpl_row_flsh_tbls.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_row_func001.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_func002.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_func003.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_inexist_tbl.test:
        Made test clean up replication state.
        replace wait_for_slave_sql_to_stop.inc by wait_for_slave_sql_error.inc
      mysql-test/suite/rpl/t/rpl_row_insert_delayed.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_log.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_log_innodb.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_rec_comp_innodb.test:
        Made test clean up replication state
      mysql-test/suite/rpl/t/rpl_row_rec_comp_myisam.test:
        - replace master-slave-reset.inc by rpl_reset.inc
        - Made test clean up replication state
        - diff_tables.inc now takes only one parameter.
      mysql-test/suite/rpl/t/rpl_row_sp001.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_sp002_innodb.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_row_sp003.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_sp005.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_sp006_InnoDB.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_sp007_innodb.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_row_sp008.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_sp009.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_sp010.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_sp011.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_sp012.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_stop_middle_update.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_tabledefs_2myisam.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_tabledefs_3innodb.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test:
        - replaced master-slave-reset.inc by rpl_reset.inc
        - replaced master-slave-end.inc by rpl_end.inc
        - diff_tables.inc now takes only one parameter.
      mysql-test/suite/rpl/t/rpl_row_trig001.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_trig002.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_trig003.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_trig004.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_trunc_temp.test:
        replaced master-slave-end.inc by rpl_end.inc
      mysql-test/suite/rpl/t/rpl_row_unsafe_funcs.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_until.test:
        Made test clean up replication state.
        Removed unused mtr variable $VERSION.
      mysql-test/suite/rpl/t/rpl_row_view01.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_row_wide_table.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_server_id1.test:
        - Replaced ad-hoc setup of circular replication by call to rpl_init.inc
        - Made test clean up replication state.
        - Replaced ad-hoc use of wait_for_slave_param.inc by
          wait_for_slave_io_error.inc
      mysql-test/suite/rpl/t/rpl_server_id2.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_session_var.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_set_charset.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_set_null_innodb.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_set_null_myisam.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_show_slave_running.test:
        made test clean up replication state
      mysql-test/suite/rpl/t/rpl_skip_error.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_slave_grp_exec.test:
        - Made test clean up replication state.
        - replaced wait_for_slave_sql_to_stop.inc by wait_for_slave_sql_error.inc
        - replaced stop_slave.inc by stop_slave_io.inc where the sql thread
          was already stopped.
      mysql-test/suite/rpl/t/rpl_slave_load_in.test:
        - Made test clean up replication state.
        - diff_tables.inc now takes only one parameter.
      mysql-test/suite/rpl/t/rpl_slave_load_remove_tmpfile.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_slave_load_tmpdir_not_exist.test:
        - Made test clean up replication state.
        - Replaced call to wait_for_slave_sql_to_stop.inc by call to
          wait_for_slave_sql_error.inc
        - Replaced ad-hoc repliction setup by call to master-slave.inc
      mysql-test/suite/rpl/t/rpl_slave_skip.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_slave_status.test:
        Made test clean up replication state.
        replaced check that IO thread has stopped by wait_for_slave_io_error.inc
        simplified cleanup code
      mysql-test/suite/rpl/t/rpl_slow_query_log.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_sp.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_sp004.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_sp_effects.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_sporadic_master.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_ssl.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_ssl1.test:
        Made test clean up replication state.
        Replaced save_master_pos+connection slave+sync_slave_with_master
        by sync_slave_with_master
      mysql-test/suite/rpl/t/rpl_start_stop_slave.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_stm_000001.test:
        The include file extra/rpl_tests/rpl_stm_000001.test was only
        sourced once, in suite/rpl/t/rpl_stm_000001.test.
        Moved extra/rpl_tests/rpl_stm_000001.test to
        suite/rpl/t/rpl_stm_000001.test and removed the old
        suite/rpl/t/rpl_stm_000001.test.
        Also made test clean up replication state, and replaced
        wait_for_slave_sql_to_stop.inc by wait_for_slave_sql_error_and_skip.inc
      mysql-test/suite/rpl/t/rpl_stm_000001.test:
        - The include file extra/rpl_tests/rpl_stm_000001.test was only
          sourced once, in suite/rpl/t/rpl_stm_000001.test.
          Moved extra/rpl_tests/rpl_stm_000001.test to
          suite/rpl/t/rpl_stm_000001.test and removed the old
          suite/rpl/t/rpl_stm_000001.test.
      mysql-test/suite/rpl/t/rpl_stm_auto_increment_bug33029.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_stm_binlog_direct.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_stm_conflicts.test:
        replaced master-slave-end.inc by rpl_end.inc
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_stm_create_if_not_exists.test:
        use rpl_end instead of master-slave-end.
      mysql-test/suite/rpl/t/rpl_stm_flsh_tbls.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_stm_insert_delayed.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_stm_loadfile.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_stm_log.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_stm_max_relay_size.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_stm_mixing_engines.test:
        - replaced master-slave-end.inc by rpl_end.inc
        - replaced master-slave-reset.inc by rpl_reset.inc
        - diff_tables.inc now takes only one parameter.
      mysql-test/suite/rpl/t/rpl_stm_multi_query.test:
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_stm_no_op.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_stm_sql_mode.test:
        made test clean up replication state
      mysql-test/suite/rpl/t/rpl_stm_until.test:
        - Made test clean up replication state.
        - replaced master-slave-reset.inc by rpl_reset.inc
        - the relay log is now called slave-relay-bin.000003 instead of .000004,
          because master-slave.inc doesn't rotate it as much as before.
      mysql-test/suite/rpl/t/rpl_stop_slave.test:
        use rpl_end instead of master-slav-end
      mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_temp_table.test:
        Made test clean up replication state.
        Replaced save_master_pos/connection slave/sync_with_master
        by sync_slave_with_master.
      mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test:
        Made test clean up replication state.
        replaced ad-hoc call to 'connect' by include/rpl_connect.inc
        replaced master-slave-reset.inc by rpl_reset.inc
      mysql-test/suite/rpl/t/rpl_temporary.test:
        - Made test clean up replication state.
        - This test sources include/delete_anonymous_users.inc on master.
          This means it updates the user table in the mysql database manually
          on the master. This causes failure in the slave sql thread when
          binlog_format=row. Hence, we stop the slave first and source
          include/delete_anonymous_users.inc on both master and slave.
      mysql-test/suite/rpl/t/rpl_temporary_errors.test:
        Made test clean up replication state.
        cosmetic fixes
      mysql-test/suite/rpl/t/rpl_test_framework.cnf:
        new cfg file for new test
      mysql-test/suite/rpl/t/rpl_test_framework.test:
        new test case that verifies that include/rpl_change_topology.inc
        works
      mysql-test/suite/rpl/t/rpl_timezone.test:
        - Made test clean up replication state.
        - stop slave before last sub-test, because that test does not use
          the slave connection.
      mysql-test/suite/rpl/t/rpl_tmp_table_and_DDL.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_trigger.test:
        - Made test clean up replication state.
        - replace master-slave-reset.inc by rpl_reset.inc
        - use new file rpl_reconnect.inc instead of ad-hoc code
        - diff_tables.inc now takes only one parameter.
      mysql-test/suite/rpl/t/rpl_trunc_temp.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_truncate_2myisam.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_truncate_3innodb.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_typeconv_innodb.test:
        - made test clean up replication state
        - removed unnecessary call to master-slave-reset.inc
        - diff_tables.inc now takes only one parameter.
      mysql-test/suite/rpl/t/rpl_udf.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_user.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_user_variables.test:
        Made test clean up replication state.
      mysql-test/suite/rpl/t/rpl_variables.test:
        - Made test clean up replication state.
        - replaced reset_master_and_slave.inc by rpl_reset.inc
        - diff_tables.inc now takes only one parameter.
      mysql-test/suite/rpl/t/rpl_variables_stm.test:
        - Made test clean up replication state.
        - diff_tables.inc now takes only one parameter.
      mysql-test/suite/rpl/t/rpl_view.test:
        Made test clean up replication state.
      mysql-test/suite/rpl_ndb/r/rpl_ndb_2other.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_UUID.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_apply_status.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_auto_inc.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_basic.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_blob.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_blob2.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_circular.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_2ch.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_simplex.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_commit_afterflush.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_ctype_ucs2_def.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_basic.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_ddl.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_delete_nowhere.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_do_db.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_do_table.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_func003.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_idempotent.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb_trans.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_insert_ignore.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_log.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_engines_transactions.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_mixed_tables.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_multi.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_multi_update2.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_multi_update3.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_rep_ignore.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_row_001.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_set_null.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_sp003.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_sp006.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_stm_innodb.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_sync.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_trig004.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_truncate_7ndb.result:
        updated result file
      mysql-test/suite/rpl_ndb/t/rpl_ndb_2innodb.test:
        made test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_2myisam.test:
        made test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_2ndb.test:
        made test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_2other.test:
        made test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_UUID.test:
        made test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_apply_status.test:
        made test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_auto_inc.test:
        made test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_bank.test:
        made test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_basic.test:
        - replaced master-slave-end.inc by rpl_end.inc
        - removed wait_for_slave_sql_to_stop since it is followed by
          wait_for_slave_sql_error.inc
      mysql-test/suite/rpl_ndb/t/rpl_ndb_blob.test:
        made test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_blob2.test:
        made test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_circular.test:
        made test use rpl_init.inc to setup circular replication, instead of ad-hoc setup
        made test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf:
        removed automatic configuration of server as slave. this is not
        needed because rpl_init.inc does it.
      mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.test:
        - made test clean up replication state
        - it seems that sync_slave_with_master does not work deterministically
          here, so instead we wait for 'drop table' to replicate by checking
          when the table disappears on slave.
        - diff_tables.inc now takes only one parameter.
      mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_simplex.test:
        make test clean up replication state
        use rpl_change_topology.inc to reconfigure replication topology,
        instead of ad-hoc call to change master
      mysql-test/suite/rpl_ndb/t/rpl_ndb_commit_afterflush.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_ctype_ucs2_def.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_basic.test:
        replace master-slave-end.inc by rpl_end.inc
      mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_ddl.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_delete_nowhere.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_do_db.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_do_table.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_extraCol.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_func003.test:
        replace master-slave-end.inc by rpl_end.inc
      mysql-test/suite/rpl_ndb/t/rpl_ndb_idempotent.test:
        replace master-slave-end.inc by rpl_end.inc
      mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb_trans.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_insert_ignore.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_load.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_log.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_engines_transactions.test:
        - replace master-slave-end.inc by rpl_end.inc
        - diff_tables.inc now takes only one parameter.
      mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_tables.test:
        - make test clean up replication state
        - diff_tables.inc now takes only one parameter.
      mysql-test/suite/rpl_ndb/t/rpl_ndb_multi.test:
        - make test clean up replication state
        - use rpl_change_topology.inc to change replication topology,
          instead of ad-hoc calls to change master
      mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_update2.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_update3.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_relayrotate.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_rep_ignore.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_row_001.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_set_null.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_sp003.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_sp006.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_stm_innodb.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_sync.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndb_trig004.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_ndbapi_multi.test:
        make test clean up replication state
      mysql-test/suite/rpl_ndb/t/rpl_row_basic_7ndb.test:
        replace master-slave-end.inc by rpl_end.inc
      mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb.test:
        replace master-slave-end.inc by rpl_end.inc
      mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb_2.test:
        make test clean up replication state
      mysql-test/suite/sys_vars/t/rpl_init_slave_func.test:
        made test clean up after itself
      mysql-test/t/init_file.test:
        use new file force_restart.inc instead of SP
      b1d18e73
  6. 17 Dec, 2010 8 commits
  7. 16 Dec, 2010 8 commits
    • Luis Soares's avatar
      BUG#46166 · ea3bf882
      Luis Soares authored
      Merging to latest mysql-5.1-bugteam.
      ea3bf882
    • Georgi Kodinov's avatar
      merge · 863f66df
      Georgi Kodinov authored
      863f66df
    • Kristofer Pettersson's avatar
      automerge · f533a683
      Kristofer Pettersson authored
      f533a683
    • Kristofer Pettersson's avatar
      Bug58747 57359 patch: breaks secure_file_priv+not secure yet+still accesses other folders · 7c8541f9
      Kristofer Pettersson authored
      "load data infile .."  allowed for access to 
      unautohorized tables.
      Due to a faulty if-statement it was possible to
      circumvent the secure_file_priv restriction.
      
      
      mysql-test/mysql-test-run.pl:
        * Add SECURE_LOAD_PATH environment variable to mtr test cases.
      mysql-test/suite/sys_vars/r/secure_file_priv2.result:
        * add test for bug58747
      mysql-test/suite/sys_vars/t/secure_file_priv2-master.opt:
        * add test for bug58747
      mysql-test/suite/sys_vars/t/secure_file_priv2.test:
        * add test for bug58747
      sql/sql_load.cc:
        * Correct faulty if-statement
        * fix indentation
        * move my_stat() block to after is_secure_file_path() check.
      7c8541f9
    • Martin Hansson's avatar
      Merge. · bcf75e85
      Martin Hansson authored
      bcf75e85
    • Martin Hansson's avatar
      Merge. · 663612d1
      Martin Hansson authored
      663612d1
    • Martin Hansson's avatar
      Null-merge of back-port of Bug#54568. · 5c3ff2d9
      Martin Hansson authored
      5c3ff2d9
    • Martin Hansson's avatar
      Bug#54568: create view cause Assertion failed: 0, · d24378d5
      Martin Hansson authored
      file .\item_subselect.cc, line 836
           
      IN quantified predicates are never executed directly. They are rather wrapped
      inside nodes called IN Optimizers (Item_in_optimizer) which take care of the
      execution. However, this is not done during query preparation. Unfortunately
      the LIKE predicate pre-evaluates constant right-hand side arguments even
      during name resolution. Likely this is meant as an optimization.
            
      Fixed by not pre-evaluating LIKE arguments in view prepare mode.
      
      Back-ported to 5.0s
      d24378d5
  8. 15 Dec, 2010 3 commits
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-5.0-security. · 052be71b
      Alexander Nozdrin authored
      052be71b
    • Alexander Nozdrin's avatar
      Patch for Bug#57952 (privilege change is not taken into account by EXECUTE). · 646078a2
      Alexander Nozdrin authored
      The user-visible problem was that changes to column-level privileges,
      happened in between of PREPARE and EXECUTE of a prepared statement, were
      neglected. I.e. a prepared statement could be executed with the
      column-level privileges as of PREPARE-time. The problem existed for
      column-level privileges only.
      
      A similar problem existed for stored programs: the changes between
      executions didn't have an effect.
      
      Technically the thing is that table references are cached in
      Prepared_statement::prepare() call. In subsequent
      Prepared_statement::execute() calls those cached values are used.
      There are two functions to get a field by name: find_field_in_table() and
      find_field_in_table_ref(). On prepare-phase find_field_in_table_ref() is
      called, on execute-phase -- find_field_in_table() because the table is
      cached. find_field_in_table() does not check column-level privileges and
      expects the caller to do that. The problem was that this check was
      forgotten.
      
      The fix is to check them there as it happens in find_field_in_table_ref().
      646078a2
    • Sunanda Menon's avatar
      Merge from mysql-5.1.54-release · b3d7e9d9
      Sunanda Menon authored
      b3d7e9d9
  9. 14 Dec, 2010 10 commits
    • Gleb Shchepa's avatar
    • Gleb Shchepa's avatar
      backport of bug #54476 fix from 5.1-bugteam to 5.0-bugteam. · d92a7eb1
      Gleb Shchepa authored
      Original revid: alexey.kopytov@sun.com-20100723115254-jjwmhq97b9wl932l
      
       > Bug #54476: crash when group_concat and 'with rollup' in
       >                      prepared statements
       >
       > Using GROUP_CONCAT() together with the WITH ROLLUP modifier
       > could crash the server.
       >
       > The reason was a combination of several facts:
       >
       > 1. The Item_func_group_concat class stores pointers to ORDER
       > objects representing the columns in the ORDER BY clause of
       > GROUP_CONCAT().
       >
       > 2. find_order_in_list() called from
       > Item_func_group_concat::setup() modifies the ORDER objects so
       > that their 'item' member points to the arguments list
       > allocated in the Item_func_group_concat constructor.
       >
       > 3. In some cases (e.g. in JOIN::rollup_make_fields) a copy of
       > the original Item_func_group_concat object could be created by
       > using the Item_func_group_concat::Item_func_group_concat(THD
       > *thd, Item_func_group_concat *item) copy constructor. The
       > latter essentially creates a shallow copy of the source
       > object. Memory for the arguments array is allocated on
       > thd->mem_root, but the pointers for arguments and ORDER are
       > copied verbatim.
       >
       > What happens in the test case is that when executing the query
       > for the first time, after a copy of the original
       > Item_func_group_concat object has been created by
       > JOIN::rollup_make_fields(), find_order_in_list() is called for
       > this new object. It then resolves ORDER BY by modifying the
       > ORDER objects so that they point to elements of the arguments
       > array which is local to the cloned object. When thd->mem_root
       > is freed upon completing the execution, pointers in the ORDER
       > objects become invalid. Those ORDER objects, however, are also
       > shared with the original Item_func_group_concat object which is
       > preserved between executions of a prepared statement. So the
       > first call to find_order_in_list() for the original object on
       > the second execution tries to dereference an invalid pointer.
       >
       > The solution is to create copies of the ORDER objects when
       > copying Item_func_group_concat to not leave any stale pointers
       > in other instances with different lifecycles.
      
      
      mysql-test/r/func_gconcat.result:
        Test case for bug #54476.
      mysql-test/t/func_gconcat.test:
        Test case for bug #54476.
      sql/item_sum.cc:
        Copy the ORDER objects pointed to by the elements of the
        'order' array in the copy constructor of
        Item_func_group_concat.
      sql/table.h:
        Removed the unused 'item_copy' member of the ORDER class.
      d92a7eb1
    • Luis Soares's avatar
      BUG#46697 · 87daa6fe
      Luis Soares authored
      Autmoerging into latest mysql-5.1-bugteam.
      87daa6fe
    • Luis Soares's avatar
      BUG 46697 · 238ebf03
      Luis Soares authored
      Addressing review comments.
      238ebf03
    • Luis Soares's avatar
      fabbd244
    • Sergey Glukhov's avatar
      Bug#57818 string conversion function died · 122d9ab0
      Sergey Glukhov authored
      Bug#57913 large negative number to string conversion functions crash
      String object which is used as result container of the item
      has uninitialized 'str_charset' field. This object
      might be used later to preform some internal operations
      and str_charset field is involved in these operations.
      It leads to crash.
      The fix is to intialize str_charset in my_decimal2string() func.
      
      
      mysql-test/r/func_str.result:
        test case
      mysql-test/t/func_str.test:
        test case
      sql/my_decimal.cc:
        intialize str_charset field for result string
        in my_decimal2string() func.
      122d9ab0
    • Mattias Jonsson's avatar
      merge · 03ff2ca9
      Mattias Jonsson authored
      03ff2ca9
    • Mattias Jonsson's avatar
      merge · b395d434
      Mattias Jonsson authored
      b395d434
    • Mattias Jonsson's avatar
      Bug#45717: A few test cases are disabled due to closed Bug#30577 · 6eaf47e2
      Mattias Jonsson authored
      Backport from 5.5. OK from Anitha G. to push to 5.1.
      
      Removed floor(float_col) tests, enabled floor(decimal_col) tests
      6eaf47e2
    • Sergey Glukhov's avatar
      Fixed following problems: · dda99909
      Sergey Glukhov authored
      --Bug#52157 various crashes and assertions with multi-table update, stored function
      --Bug#54475 improper error handling causes cascading crashing failures in innodb/ndb
      --Bug#57703 create view cause Assertion failed: 0, file .\item_subselect.cc, line 846
      --Bug#57352 valgrind warnings when creating view
      --Recently discovered problem when a nested materialized derived table is used
        before being populated and it leads to incorrect result
      
      We have several modes when we should disable subquery evaluation.
      The reasons for disabling are different. It could be
      uselessness of the evaluation as in case of 'CREATE VIEW'
      or 'PREPARE stmt', or we should disable subquery evaluation
      if tables are not locked yet as it happens in bug#54475, or
      too early evaluation of subqueries can lead to wrong result
      as it happened in Bug#19077.
      Main problem is that if subquery items are treated as const
      they are evaluated in ::fix_fields(), ::fix_length_and_dec()
      of the parental items as a lot of these methods have
      Item::val_...() calls inside.
      We have to make subqueries non-const to prevent unnecessary
      subquery evaluation. At the moment we have different methods
      for this. Here is a list of these modes:
      
      1. PREPARE stmt;
      We use UNCACHEABLE_PREPARE flag.
      It is set during parsing in sql_parse.cc, mysql_new_select() for
      each SELECT_LEX object and cleared at the end of PREPARE in
      sql_prepare.cc, init_stmt_after_parse(). If this flag is set
      subquery becomes non-const and evaluation does not happen.
      
      2. CREATE|ALTER VIEW, SHOW CREATE VIEW, I_S tables which
         process FRM files
      We use LEX::view_prepare_mode field. We set it before
      view preparation and check this flag in
      ::fix_fields(), ::fix_length_and_dec().
      Some bugs are fixed using this approach,
      some are not(Bug#57352, Bug#57703). The problem here is
      that we have a lot of ::fix_fields(), ::fix_length_and_dec()
      where we use Item::val_...() calls for const items.
      
      3. Derived tables with subquery = wrong result(Bug19077)
      The reason of this bug is too early subquery evaluation.
      It was fixed by adding Item::with_subselect field
      The check of this field in appropriate places prevents
      const item evaluation if the item have subquery.
      The fix for Bug19077 fixes only the problem with
      convert_constant_item() function and does not cover
      other places(::fix_fields(), ::fix_length_and_dec() again)
      where subqueries could be evaluated.
      
      Example:
      CREATE TABLE t1 (i INT, j BIGINT);
      INSERT INTO t1 VALUES (1, 2), (2, 2), (3, 2);
      SELECT * FROM (SELECT MIN(i) FROM t1
      WHERE j = SUBSTRING('12', (SELECT * FROM (SELECT MIN(j) FROM t1) t2))) t3;
      DROP TABLE t1;
      
      4. Derived tables with subquery where subquery
         is evaluated before table locking(Bug#54475, Bug#52157)
      
      Suggested solution is following:
      
      -Introduce new field LEX::context_analysis_only with the following
       possible flags:
       #define CONTEXT_ANALYSIS_ONLY_PREPARE 1
       #define CONTEXT_ANALYSIS_ONLY_VIEW    2
       #define CONTEXT_ANALYSIS_ONLY_DERIVED 4
      -Set/clean these flags when we perform
       context analysis operation
      -Item_subselect::const_item() returns
       result depending on LEX::context_analysis_only.
       If context_analysis_only is set then we return
       FALSE that means that subquery is non-const.
       As all subquery types are wrapped by Item_subselect
       it allow as to make subquery non-const when
       it's necessary.
      
      
      mysql-test/r/derived.result:
        test case
      mysql-test/r/multi_update.result:
        test case
      mysql-test/r/view.result:
        test case
      mysql-test/suite/innodb/r/innodb_multi_update.result:
        test case
      mysql-test/suite/innodb/t/innodb_multi_update.test:
        test case
      mysql-test/suite/innodb_plugin/r/innodb_multi_update.result:
        test case
      mysql-test/suite/innodb_plugin/t/innodb_multi_update.test:
        test case
      mysql-test/t/derived.test:
        test case
      mysql-test/t/multi_update.test:
        test case
      mysql-test/t/view.test:
        test case
      sql/item.cc:
        --removed unnecessary code
      sql/item_cmpfunc.cc:
        --removed unnecessary checks
        --THD::is_context_analysis_only() is replaced with LEX::is_ps_or_view_context_analysis()
      sql/item_func.cc:
        --refactored context analysis checks
      sql/item_row.cc:
        --removed unnecessary checks
      sql/item_subselect.cc:
        --removed unnecessary code
        --added DBUG_ASSERT into Item_subselect::exec()
          which asserts that subquery execution can not happen
          if LEX::context_analysis_only is set, i.e. at context
          analysis stage.
        --Item_subselect::const_item()
          Return FALSE if LEX::context_analysis_only is set.
          It prevents subquery evaluation in ::fix_fields &
          ::fix_length_and_dec at context analysis stage.
      sql/item_subselect.h:
        --removed unnecessary code
      sql/mysql_priv.h:
        --Added new set of flags.
      sql/sql_class.h:
        --removed unnecessary code
      sql/sql_derived.cc:
        --added LEX::context_analysis_only analysis intialization/cleanup
      sql/sql_lex.cc:
        --init LEX::context_analysis_only field
      sql/sql_lex.h:
        --New LEX::context_analysis_only field
      sql/sql_parse.cc:
        --removed unnecessary code
      sql/sql_prepare.cc:
        --removed unnecessary code
        --added LEX::context_analysis_only analysis intialization/cleanup
      sql/sql_select.cc:
        --refactored context analysis checks
      sql/sql_show.cc:
        --added LEX::context_analysis_only analysis intialization/cleanup
      sql/sql_view.cc:
        --added LEX::context_analysis_only analysis intialization/cleanup
      dda99909
  10. 13 Dec, 2010 1 commit
    • Tor Didriksen's avatar
      Bug #58426 Crashing tests not failing as they are supposed to on Solaris 10 debug · 1bc16930
      Tor Didriksen authored
        
      On this platform we seem to get lots of other signals
      while waiting for SIGKILL to be delivered.
      
      Solution: use sigsuspend(<all signals blocked>)
      
      
      
      dbug/dbug.c:
        New function _db_suicide_() which does kill(myself, -9) and then waits forever.
      include/my_dbug.h:
        Let DBUG_SUICE wait forever until the KILL signal is delivered, and process dies.
      1bc16930