1
0
mirror of https://github.com/MariaDB/server.git synced 2025-05-07 04:01:59 +03:00

30 Commits

Author SHA1 Message Date
Rohit Kalhans
586c0c0ef6 BUG#11758262 - 50439: MARK INSERT...SEL...ON DUP KEY UPD,REPLACE...SEL,CREATE...[IGN|REPL] SEL
Problem: The following statements can cause the slave to go out of sync 
if logged in statement format: 
INSERT IGNORE...SELECT 
INSERT ... SELECT ... ON DUPLICATE KEY UPDATE 
REPLACE ... SELECT 
UPDATE IGNORE :
CREATE ... IGNORE SELECT 
CREATE ... REPLACE SELECT  
           
Background: Since the order of the rows returned by the SELECT 
statement or otherwise may differ on master and slave, therefore
the above statements may cuase the salve to go out of sync with
the master. 
      
Fix:
Issue a warning when statements like the above are exectued and 
the bin-logging format is statement. If the logging format is mixed,
use row based logging. Marking a statement as unsafe has been 
done in the sql/sql_parse.cc instead of sql/sql_yacc.cc, because while
parsing for a token has been done we cannot be sure if the parsing
of the other tokens has been done as well.
      
Six new warning  messages has been added for each unsafe statement. 
      
binlog.binlog_unsafe.test has been updated to incoporate these additional unsafe statments.


******
BUG#11758262 - 50439: MARK INSERT...SEL...ON DUP KEY UPD,REPLACE...SEL,CREATE...[IGN|REPL] SEL 
Problem: The following statements can cause the slave to go out of sync 
if logged in statement format: 
INSERT IGNORE...SELECT 
INSERT ... SELECT ... ON DUPLICATE KEY UPDATE 
REPLACE ... SELECT 
UPDATE IGNORE :
CREATE ... IGNORE SELECT 
CREATE ... REPLACE SELECT  
           
Background: Since the order of the rows returned by the SELECT 
statement or otherwise may differ on master and slave, therefore
the above statements may cuase the salve to go out of sync with
the master. 
      
Fix:
Issue a warning when statements like the above are exectued and 
the bin-logging format is statement. If the logging format is mixed,
use row based logging. Marking a statement as unsafe has been 
done in the sql/sql_parse.cc instead of sql/sql_yacc.cc, because while
parsing for a token has been done we cannot be sure if the parsing
of the other tokens has been done as well.
      
Six new warning  messages has been added for each unsafe statement. 
      
binlog.binlog_unsafe.test has been updated to incoporate these additional unsafe statments.



mysql-test/extra/rpl_tests/rpl_insert_duplicate.test:
  Test removed: Added the test to rpl.rpl_insert_ignore.test
  
  
  
  ******
  Test removed: the test is redundant as the same is being tested in rpl.rpl_insert_ignore.
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  Warnings disabled for the unsafe statements.
mysql-test/extra/rpl_tests/rpl_insert_ignore.test:
  1. Disabled warnings while  for unsafe statements
  2. As INSERT...IGNORE is an unsafe statement, an insert ignore not changing any rows, 
  will not be logged in the binary log, in the ROW and MIXED modes. It will however be logged
  in STATEMENT mode.
mysql-test/r/commit_1innodb.result:
  updated result file
  
  
  
  ******
  updated result file
mysql-test/suite/binlog/r/binlog_stm_blackhole.result:
  Updated result file.
mysql-test/suite/binlog/r/binlog_unsafe.result:
  updated result file
mysql-test/suite/binlog/t/binlog_unsafe.test:
   added tests for the statements marked as unsafe.
mysql-test/suite/rpl/r/rpl_insert_duplicate.result:
  File Removed :Result file of rpl_insert_duplicate, which has been removed.
mysql-test/suite/rpl/r/rpl_insert_ignore.result:
  Added the content of rpl.rpl_insert_duplicate here.
mysql-test/suite/rpl/r/rpl_insert_select.result:
  Result file removed as the corresponding test has beenn removed.
mysql-test/suite/rpl/r/rpl_known_bugs_detection.result:
  Updated result file.
mysql-test/suite/rpl/t/rpl_insert_duplicate.test:
  File Removed: this was a wrapper for rpl.rpl_insert_duplicate.test, which has been removed.
mysql-test/suite/rpl/t/rpl_insert_select.test:
  File Removed: This test became redundant after this fix, This test showed how INSERT IGNORE...SELECT break replication, which has been handled in this fix.
mysql-test/suite/rpl/t/rpl_known_bugs_detection.test:
  Since all the tests are statement based bugs are being tested, having mixed format
  forces the event to be written in row format. When the statement and causes the
  test to fail as certain known bugs do not occur when the even is logged in row format.
sql/share/errmsg-utf8.txt:
  added 6 new Warning messages.
  
  
  
  ******
  added 6 new Warning messages.
sql/sql_lex.cc:
  Added 6 new error Identifier [ER_BINLOG_STMT_UNSAFEE_*]
sql/sql_lex.h:
  Added 6 new BINLOG_STMT_UNSAFE_* enums to identify the type of unsafe statement dealt with in this bug.
  
  
  ******
  Added 6 new BINLOG_STMT_UNSAFE_* enums to identify the type of unsafe statement dealt with in this bug.
sql/sql_parse.cc:
  added check for specific queries and marked them as unsafe.
  
  
  ******
  added check for specific queries and marked them as unsafe.
2011-09-29 14:47:27 +05:30
Sven Sandberg
1bd213aec3 Merged BUG#49978 from 5.1-bugteam to 5.5-bugteam. 2010-12-19 18:15:12 +01:00
Sven Sandberg
8b27f9a05e BUG#49978: Replication tests don't clean up replication state at the end
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
2010-12-19 18:07:28 +01:00
Sven Sandberg
cf5ebc5821 BUG#50670: Slave stops with error code 1644
Clarified error messages related to unsafe statements:
 - avoid the internal technical term "row injection"
 - use 'binary log' instead of 'binlog'
 - avoid the word 'unsafeness'


mysql-test/extra/binlog_tests/blackhole.test:
  updated suppression pattern
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
  updated suppression pattern
mysql-test/extra/rpl_tests/rpl_binlog_max_cache_size.test:
  updated suppression pattern
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  updated suppression pattern
mysql-test/extra/rpl_tests/rpl_loaddata.test:
  updated suppression pattern
mysql-test/extra/rpl_tests/rpl_mixing_engines.test:
  updated suppression pattern
mysql-test/extra/rpl_tests/rpl_start_stop_slave.test:
  updated suppression pattern
mysql-test/extra/rpl_tests/rpl_stm_000001.test:
  updated suppression pattern
mysql-test/extra/rpl_tests/rpl_stop_middle_group.test:
  updated suppression pattern
mysql-test/r/archive.result:
  updated result file
mysql-test/r/commit_1innodb.result:
  updated result file
mysql-test/r/ctype_cp932_binlog_stm.result:
  updated result file
mysql-test/r/partition_innodb_stmt.result:
  updated result file
mysql-test/suite/binlog/r/binlog_innodb.result:
  updated result file
mysql-test/suite/binlog/r/binlog_killed.result:
  updated result file
mysql-test/suite/binlog/r/binlog_multi_engine.result:
  updated result file
mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
  updated result file
mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result:
  updated result file
mysql-test/suite/binlog/r/binlog_stm_blackhole.result:
  updated result file
mysql-test/suite/binlog/r/binlog_stm_do_db.result:
  updated result file
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
  updated result file
mysql-test/suite/binlog/r/binlog_stm_ps.result:
  updated result file
mysql-test/suite/binlog/r/binlog_stm_row.result:
  updated result file
mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result:
  updated result file
mysql-test/suite/binlog/r/binlog_unsafe.result:
  updated result file
mysql-test/suite/binlog/t/binlog_killed.test:
  updated suppression pattern
mysql-test/suite/binlog/t/binlog_multi_engine.test:
  updated suppression pattern
mysql-test/suite/binlog/t/binlog_statement_insert_delayed.test:
  updated suppression pattern
mysql-test/suite/binlog/t/binlog_stm_ps.test:
  updated suppression pattern
mysql-test/suite/binlog/t/binlog_stm_row.test:
  updated suppression pattern
mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test:
  updated suppression pattern
mysql-test/suite/binlog/t/binlog_tmp_table.test:
  updated suppression pattern
mysql-test/suite/binlog/t/binlog_unsafe.test:
  updated suppression pattern
mysql-test/suite/ndb/r/ndb_binlog_format.result:
  updated result file
mysql-test/suite/ndb/t/ndb_binlog_format.test:
  updated suppression pattern
mysql-test/suite/perfschema/r/binlog_stmt.result:
  updated result file
mysql-test/suite/perfschema/t/binlog_stmt.test:
  updated suppression pattern
mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result:
  updated result file
mysql-test/suite/rpl/r/rpl_blackhole.result:
  updated result file
mysql-test/suite/rpl/r/rpl_concurrency_error.result:
  updated result file
mysql-test/suite/rpl/r/rpl_get_lock.result:
  updated result file
mysql-test/suite/rpl/r/rpl_insert_id.result:
  updated result file
mysql-test/suite/rpl/r/rpl_insert_ignore.result:
  updated result file
mysql-test/suite/rpl/r/rpl_misc_functions.result:
  updated result file
mysql-test/suite/rpl/r/rpl_mixed_binlog_max_cache_size.result:
  updated result file
mysql-test/suite/rpl/r/rpl_mixed_mixing_engines.result:
  updated result file
mysql-test/suite/rpl/r/rpl_mysql_upgrade.result:
  updated result file
mysql-test/suite/rpl/r/rpl_non_direct_mixed_mixing_engines.result:
  updated result file
mysql-test/suite/rpl/r/rpl_non_direct_row_mixing_engines.result:
  updated result file
mysql-test/suite/rpl/r/rpl_non_direct_stm_mixing_engines.result:
  updated result file
mysql-test/suite/rpl/r/rpl_nondeterministic_functions.result:
  updated result file
mysql-test/suite/rpl/r/rpl_read_only.result:
  updated result file
mysql-test/suite/rpl/r/rpl_row_binlog_max_cache_size.result:
  updated result file
mysql-test/suite/rpl/r/rpl_row_inexist_tbl.result:
  updated result file
mysql-test/suite/rpl/r/rpl_row_mixing_engines.result:
  updated result file
mysql-test/suite/rpl/r/rpl_slow_query_log.result:
  updated result file
mysql-test/suite/rpl/r/rpl_sp.result:
  updated result file
mysql-test/suite/rpl/r/rpl_stm_000001.result:
  updated result file
mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result:
  updated result file
mysql-test/suite/rpl/r/rpl_stm_binlog_max_cache_size.result:
  updated result file
mysql-test/suite/rpl/r/rpl_stm_loadfile.result:
  updated result file
mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result:
  updated result file
mysql-test/suite/rpl/r/rpl_stm_start_stop_slave.result:
  updated result file
mysql-test/suite/rpl/r/rpl_stm_stop_middle_group.result:
  updated result file
mysql-test/suite/rpl/r/rpl_temp_temporary.result:
  updated result file
mysql-test/suite/rpl/r/rpl_variables_stm.result:
  updated result file
mysql-test/suite/rpl/t/rpl000013.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_blackhole.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_concurrency_error.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_err_ignoredtable.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_get_lock.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_insert.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_insert_id.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_insert_ignore.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_invoked_features.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_misc_functions.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_mixed_bit_pk.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_mysql_upgrade.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_nondeterministic_functions.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_optimize.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_read_only.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_semi_sync.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_semi_sync_event.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_session_var.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_slow_query_log.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_sp.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_stm_auto_increment_bug33029.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_stm_found_rows.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_stm_insert_delayed.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_stm_loadfile.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_temp_table.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_temp_temporary.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_temporary.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_timezone.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_trigger.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_udf.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_user_variables.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_variables_stm.test:
  updated suppression pattern
mysql-test/suite/rpl/t/rpl_view_multi.test:
  updated suppression pattern
mysql-test/suite/rpl_ndb/r/rpl_ndb_binlog_format_errors.result:
  updated result file
mysql-test/suite/rpl_ndb/t/rpl_ndb_binlog_format_errors.test:
  updated suppression pattern
mysql-test/suite/rpl_ndb/t/rpl_ndb_stm_innodb.test:
  updated suppression pattern
mysql-test/suite/sys_vars/t/rpl_init_slave_func.test:
  updated suppression pattern
mysql-test/t/archive.test:
  updated suppression pattern
mysql-test/t/commit_1innodb.test:
  updated suppression pattern
mysql-test/t/create_select_tmp.test:
  updated suppression pattern
mysql-test/t/ctype_cp932_binlog_stm.test:
  updated suppression pattern
mysql-test/t/lock_sync.test:
  updated suppression pattern
mysql-test/t/mysqlbinlog.test:
  updated suppression pattern
mysql-test/t/mysqldump.test:
  updated suppression pattern
mysql-test/t/sp_trans.test:
  updated suppression pattern
sql/log_event.cc:
  Clarified error message.
sql/share/errmsg-utf8.txt:
  Clarified error messages.
2010-04-28 14:47:49 +02:00
Alfranio Correia
5dcb0e447f merge mysql-5.1-rep+2-delivery1 --> mysql-5.1-rpl-merge
Conflicts:

Text conflict in .bzr-mysql/default.conf
Text conflict in mysql-test/extra/rpl_tests/rpl_loaddata.test
Text conflict in mysql-test/r/mysqlbinlog2.result
Text conflict in mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result
Text conflict in mysql-test/suite/binlog/r/binlog_unsafe.result
Text conflict in mysql-test/suite/rpl/r/rpl_insert_id.result
Text conflict in mysql-test/suite/rpl/r/rpl_loaddata.result
Text conflict in mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result
Text conflict in mysql-test/suite/rpl/r/rpl_udf.result
Text conflict in mysql-test/suite/rpl/t/rpl_slow_query_log.test
Text conflict in sql/field.h
Text conflict in sql/log.cc
Text conflict in sql/log_event.cc
Text conflict in sql/log_event_old.cc
Text conflict in sql/mysql_priv.h
Text conflict in sql/share/errmsg.txt
Text conflict in sql/sp.cc
Text conflict in sql/sql_acl.cc
Text conflict in sql/sql_base.cc
Text conflict in sql/sql_class.h
Text conflict in sql/sql_db.cc
Text conflict in sql/sql_delete.cc
Text conflict in sql/sql_insert.cc
Text conflict in sql/sql_lex.cc
Text conflict in sql/sql_lex.h
Text conflict in sql/sql_load.cc
Text conflict in sql/sql_table.cc
Text conflict in sql/sql_update.cc
Text conflict in sql/sql_view.cc
Conflict adding files to storage/innobase.  Created directory.
Conflict because storage/innobase is not versioned, but has versioned children.  Versioned directory.
Conflict adding file storage/innobase.  Moved existing file to storage/innobase.moved.
Conflict adding files to storage/innobase/handler.  Created directory.
Conflict because storage/innobase/handler is not versioned, but has versioned children.  Versioned directory.
Contents conflict in storage/innobase/handler/ha_innodb.cc
2010-01-07 15:39:11 +00:00
Alexander Nozdrin
988b25cee1 Manual merge from mysql-next-mr.
Conflicts:
  - sql/sql_yacc.yy
2009-12-02 18:50:14 +03:00
Andrei Elkin
23438dacf0 merging 5.1->rep+2->rep+3 2009-12-02 14:17:07 +02:00
unknown
0d46e5880e Backport Bug #45827 Stmt using two autoinc values does not produce unsafe warning
One statement that have more than one different tables to update with 
autoinc columns just was marked as unsafe in mixed mode, so the unsafe 
warning can't be produced in statement mode.
      
To fix the problem, mark the statement as unsafe in statement mode too.


mysql-test/extra/rpl_tests/rpl_insert_id.test:
  The test case is updated due to the patch of bug#45827.
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
  The test result is updated due to the patch of bug#45827.
mysql-test/suite/binlog/r/binlog_unsafe.result:
  Test result for bug#45827.
mysql-test/suite/binlog/t/binlog_unsafe.test:
  Added test to verify if stmt that have more than one
  different tables to update with autoinc columns will 
  produce unsafe warning
mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result:
  The test result is updated due to the patch of bug#45827.
mysql-test/suite/rpl/t/rpl_trigger.test:
  The test case is updated due to the patch of bug#45827.
mysql-test/suite/rpl/t/rpl_variables_stm.test:
  The test case is updated due to the patch of bug#45827.
sql/sql_base.cc:
  Reomved the 'set_current_stmt_binlog_row_based_if_mixed' function 
  for producing unsafe warnings by executing 'decide_logging_format' 
  function later in statement mode
2009-11-13 16:29:35 +08:00
Alexey Botchkov
d9ea0d0cd5 Bug#41371 Select returns 1 row with condition "col is not null and col is null"
For application compatibility reasons  MySQL converts "<autoincrement_column> IS NULL"
    predicates to "<autoincrement_column> = LAST_INSERT_ID()" in the first SELECT following an
    INSERT regardless of whether they're top level predicates or not. This causes wrong and
    obscure results when these predicates are combined with others on the same columns. Fixed
    by only doing the transformation on a single top-level predicate if a special SQL mode is
    turned on (sql_auto_is_null).
    Also made sql_auto_is_null off by default.

per-file comments:
  mysql-test/r/func_isnull.result
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
    test result updated

  mysql-test/t/func_isnull.test
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
    test case added

  sql/mysqld.cc
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
    sql_auto_is_null now is OFF by default.

  sql/sql_select.cc
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
    remove_eq_conds() split in two parts - one only checks the upper condition,
    the req_remove_eq_conds() recursively checks all the condition tree.

  mysql-test/extra/rpl_tests/rpl_insert_id.test
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
        test fixed (set the sql_auto_is_null variable)

  mysql-test/r/mysqlbinlog.result
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
        result updated

  mysql-test/r/mysqlbinlog2.result
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
        result updated

  mysql-test/r/odbc.result
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
        result updated

  mysql-test/r/query_cache.result
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
        result updated

  mysql-test/r/user_var-binlog.result
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
        result updated

  mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
        result updated

  mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
        result updated

  mysql-test/suite/rpl/r/rpl_insert_id.result
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
        result updated

  mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
        result updated

  mysql-test/suite/rpl/r/rpl_sp.result
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
        result updated

  mysql-test/t/odbc.test
Bug#41371      Select returns 1 row with condition "col is not null and col is null"
        test fixed (set the sql_auto_is_null variable)
2009-11-03 17:54:41 +04:00
Georgi Kodinov
6d54b0443a Bug #32124: crash if prepared statements refer to variables in the where clause
The code to get read the value of a system variable was extracting its value 
on PREPARE stage and was substituting the value (as a constant) into the parse tree.
Note that this must be a reversible transformation, i.e. it must be reversed before
each re-execution.
Unfortunately this cannot be reliably done using the current code, because there are
other non-reversible source tree transformations that can interfere with this
reversible transformation.
Fixed by not resolving the value at PREPARE, but at EXECUTE (as the rest of the 
functions operate). Added a cache of the value (so that it's constant throughout
the execution of the query). Note that the cache also caches NULL values.
Updated an obsolete related test suite (variables-big) and the code to test the 
result type of system variables (as per bug 74).

mysql-test/extra/rpl_tests/rpl_insert_id.test:
  Bug #32124: removed ambiguous testcase
mysql-test/r/innodb_data_home_dir_basic.result:
  Bug #32124: fixed wrong test case
mysql-test/r/innodb_flush_method_basic.result:
  Bug #32124: fixed wrong test case
mysql-test/r/ps_11bugs.result:
  Bug #32124: test case
mysql-test/r/ssl_capath_basic.result:
  Bug #32124: fixed wrong test case
mysql-test/r/ssl_cipher_basic.result:
  Bug #32124: fixed wrong test case
mysql-test/r/variables.result:
  Bug #32124: system vars are shown as such in EXPLAIN EXTENDED, not as constants.
mysql-test/suite/rpl/r/rpl_insert_id.result:
  Bug #32124: removed ambiguous testcase
mysql-test/t/ps_11bugs.test:
  Bug #32124: test case
sql/item.cc:
  Bug #32124: placed the code to convert string to longlong or double 
  to a function (so that it can be reused)
sql/item.h:
  Bug #32124: placed the code to convert string to longlong or double 
  to a function (so that it can be reused)
sql/item_func.cc:
  Bug #32124: moved the evaluation of system variables at runtime (val_xxx).
sql/item_func.h:
  Bug #32124: moved the evaluation of system variables at runtime (val_xxx).
sql/set_var.cc:
  Bug #32124: removed the code that calculated the system variable's value 
  at PREPARE
sql/set_var.h:
  Bug #32124: removed the code that calculated the system variable's value 
  at PREPARE
tests/mysql_client_test.c:
  Bug #32124 : removed the reading of the system variable, because its max
  length is depended on the system charset and client charset and can't be
  easily calculated.
2008-10-08 14:23:53 +03:00
unknown
65677ea535 Fixes to make rpl_insert_id pass in 5.1-bugteam.
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  Moving save and restore of @@global.concurrent_insert into the same
  session thread.
mysql-test/suite/rpl/r/rpl_insert_id.result:
  Result file change.
mysql-test/suite/rpl/t/rpl_insert_id.test:
  ***MISSING TEXT***
2008-05-16 16:08:24 +02:00
unknown
c25bd6fcf8 BUG#36433: rpl_insert_id detects inconsistency on master
Problem: If INSERT is immediately followed by SELECT in another thread,
the newly inserted rows may not be returned by the SELECT statement, if
ENGINE=myisam and @@concurrent_insert=1. This caused sporadic errors in
rpl_insert_id.
Fix: The test now uses ENGINE=$engine_type when creating tables (so that
innodb is used). It also turns off @@concurrent_insert around the critical
place, so that it works if someone in the future writes a test that sets
$engine_type=myisam before sourcing extra/rpl_tests/rpl_insert_id.test.
It also adds ORDER BY to all SELECTs so that the result is deterministic.


mysql-test/extra/rpl_tests/rpl_insert_id.test:
  - Use ENGINE=$engine_type when creating tables, since that's expected by
  suite/rpl/t/rpl_insert_id.test.
  - Use ORDER BY to avoid nondeterministic results from SELECT.
  - Set @@concurrent_insert=0 before doing SELECT after INSERT in another
  client.
mysql-test/suite/rpl/r/rpl_insert_id.result:
  Update result file.
2008-05-15 17:22:53 +02:00
unknown
0f6047e455 Bug #28842 Different 'duplicate key' error code between 5.0 and 5.1
The patch for WL 1563 added a new duplicate key error message so that the
  key name could be provided instead of the key number. But the error code
  for the new message was used even though that did not need to change.

  This could cause unnecessary problems for applications that used the old
  ER_DUP_ENTRY error code to detect duplicate key errors.


mysql-test/t/auto_increment.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/create.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/create_select_tmp.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/ctype_ucs2_def.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/ctype_utf8.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/delayed.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/heap.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/heap_btree.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/heap_hash.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/innodb.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/insert_select.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/insert_update.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/join_outer.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/key.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/merge.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/myisam.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/ndb_basic.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/ndb_charset.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/ndb_index_unique.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/ndb_insert.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/ndb_replace.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/ndb_update.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/replace.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/rpl_err_ignoredtable.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/rpl_ndb_do_table.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/rpl_row_create_table.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/rpl_sp.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/show_check.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/sp-error.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/sp.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/sp_trans.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/sp_trans_log.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/temp_table.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/type_binary.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/type_bit.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/type_bit_innodb.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/type_blob.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/t/type_varchar.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/r/create.result:
  Update ER_DUP_ENTRY-related error message values
mysql-test/r/rpl_sp.result:
  Update ER_DUP_ENTRY-related error message values
mysql-test/r/sp.result:
  Update ER_DUP_ENTRY-related error message values
mysql-test/include/mix1.inc:
  Update ER_DUP_ENTRY-related error message values
mysql-test/include/mix2.inc:
  Update ER_DUP_ENTRY-related error message values
mysql-test/include/ps_modify.inc:
  Update ER_DUP_ENTRY-related error message values
mysql-test/include/query_cache.inc:
  Update ER_DUP_ENTRY-related error message values
mysql-test/include/varchar.inc:
  Update ER_DUP_ENTRY-related error message values
mysql-test/extra/binlog_tests/insert_select-binlog.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/extra/rpl_tests/rpl_auto_increment.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/extra/rpl_tests/rpl_foreign_key.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/extra/rpl_tests/rpl_insert_delayed.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/extra/rpl_tests/rpl_insert_id_pk.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/extra/rpl_tests/rpl_loaddata.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/extra/rpl_tests/rpl_row_basic.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test:
  Update ER_DUP_ENTRY-related error message values
mysql-test/extra/rpl_tests/rpl_trig004.test:
  Update ER_DUP_ENTRY-related error message values
sql/handler.cc:
  Restore use of ER_DUP_ENTRY error code even when ER_DUP_ENTRY_WITH_KEY_NAME
  error message is being used. (Bug #28842)
2007-06-06 10:57:07 -07:00
unknown
2a86b8ecfc Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.1-new-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge


client/mysqlbinlog.cc:
  Auto merged
include/my_global.h:
  Auto merged
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  Auto merged
mysql-test/t/show_check.test:
  Auto merged
mysys/mf_iocache2.c:
  Auto merged
sql/field.cc:
  Auto merged
sql/item_xmlfunc.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/log_event.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/slave.cc:
  Auto merged
sql/slave.h:
  Auto merged
sql/sql_show.cc:
  Auto merged
mysql-test/t/disabled.def:
  Manual merge
sql/log.cc:
  Manual merge
sql/sql_insert.cc:
  Manual merge
2007-02-24 11:52:08 +01:00
unknown
af71cac0e4 Manual merge from 5.0-rpl, of fixes for:
1)
  BUG#25507 "multi-row insert delayed + auto increment causes
  duplicate key entries on slave" (two concurrrent connections doing
  multi-row INSERT DELAYED to insert into an auto_increment column,
  caused replication slave to stop with "duplicate key error" (and
  binlog was wrong), and BUG#26116 "If multi-row INSERT
  DELAYED has errors, statement-based binlogging breaks" (the binlog
  was not accounting for all rows inserted, or slave could stop).
  The fix is that: in statement-based binlogging, a multi-row INSERT
  DELAYED is silently converted to a non-delayed INSERT.
  This is supposed to not affect many 5.1 users as in 5.1, the default
  binlog format is "mixed", which does not have the bug (the bug is
  only with binlog_format=STATEMENT).
  We should document how the system delayed_insert thread decides of
  its binlog format (which is not modified by this patch):
  this decision is taken when the thread is created
  and holds until it is terminated (is not affected by any later change
  via SET GLOBAL BINLOG_FORMAT). It is also not affected by the binlog
  format of the connection which issues INSERT DELAYED (this binlog
  format does not affect how the row will be binlogged).
  If one wants to change the binlog format of its server with SET
  GLOBAL BINLOG_FORMAT, it should do FLUSH TABLES to be sure all
  delayed_insert threads terminate and thus new threads are created,
  taking into account the new format.
2)
  BUG#24432
  "INSERT... ON DUPLICATE KEY UPDATE skips auto_increment values".
  When in an INSERT ON DUPLICATE KEY UPDATE, using
  an autoincrement column, we inserted some autogenerated values and
  also updated some rows, some autogenerated values were not used
  (for example, even if 10 was the largest autoinc value in the table
  at the start of the statement, 12 could be the first autogenerated
  value inserted by the statement, instead of 11). One autogenerated
  value was lost per updated row. Led to exhausting the range of the
  autoincrement column faster.
  Bug introduced by fix of BUG#20188; present since 5.0.24 and 5.1.12.
  This bug breaks replication from a pre-5.0.24/pre-5.1.12 master.
  But the present bugfix, as it makes INSERT ON DUP KEY UPDATE
  behave like pre-5.0.24/pre-5.1.12, breaks replication from a
  [5.0.24,5.0.34]/[5.1.12,5.1.15]
  master to a fixed (5.0.36/5.1.16) slave! To warn users against this when
  they upgrade their slave, as agreed with the support team, we add
  code for a fixed slave to detect that it is connected to a buggy
  master in a situation (INSERT ON DUP KEY UPDATE into autoinc column)
  likely to break replication, in which case it cannot replicate so
  stops and prints a message to the slave's error log and to SHOW SLAVE
  STATUS.
  For 5.0.36->[5.0.24,5.0.34] replication or 5.1.16->[5.1.12,5.1.15]
  replication we cannot warn as master
  does not know the slave's version (but we always recommended to users
  to have slave at least as new as master).
  As agreed with support, I have asked for an alert to be put into
  the MySQL Network Monitoring and Advisory Service.
3) note that I'll re-enable rpl_insert_id as soon as 5.1-rpl gets
  the changes from the main 5.1.


BitKeeper/deleted/.del-rpl_insert_delayed.result:
  Delete: mysql-test/r/rpl_insert_delayed.result
mysql-test/extra/rpl_tests/rpl_insert_delayed.test:
  tests for BUG#25507 (lauch many concurrent INSERT DELAYED into an auto_inc
  column and see if they cause duplicates) and BUG#26116 (see if one error
  at first row on master makes the slave's data incorrect).
  It is then incorporated into a statement-based and mixed binlogging
  test, and into a row-based test.
  It is in fact mysql-test/t/rpl_insert_delayed.test from 5.0, renamed
  and extended to test BUG#25507.
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  manual merge of test for BUG#24432
  "INSERT... ON DUPLICATE KEY UPDATE skips auto_increment values"
  from 5.0
mysql-test/r/rpl_insert_id.result:
  result update (it automerged from 5.0, contrary to the test file)
mysql-test/r/rpl_known_bugs_detection.result:
  result update (binlog event sizes differ from 5.0)
mysql-test/t/disabled.def:
  rpl_insert_id tests statement-based replication of INSERT ON
  DUPLICATE KEY UPDATE. This type of INSERT had BUG#24432, which is
  fixed in 5.1.16; we made the slave detect if it is connected to a
  <5.1.16 master and if so refuse to replicate.
  The problem is that this 5.1-rpl tree, even though it will produce
  the 5.1.16 release, still has a 5.1.15 version in configure.in.
  Thus rpl_insert_id fails. So I disable it. As soon as the 5.1-rpl
  tree gets the changesets from the main 5.1, its version will change
  to 5.1.16 and so I'll be able to re-enable the test.
mysql-test/t/rpl_known_bugs_detection.test:
  only in statement-based; row-based has no bug so test would fail.
sql/slave.cc:
  slave_print_msg(ERROR_LEVEL) calls my_error(ER_UNKNOWN_ERROR);
  so, for our my_printf_error(), which has a nicer message than this
  my_error(), to have any effect, it must be 
  called before slave_print_msg()
sql/sql_insert.cc:
  manual merge from 5.0 of a piece of the fixes for
  BUG#24432 "INSERT... ON DUPLICATE KEY UPDATE skips auto_increment values"
  BUG#25507 "multi-row insert delayed + auto increment causes
  duplicate key entries on slave"
  BUG#26116 "If multi-row INSERT DELAYED has errors, statement-based
  binlogging breaks".
  The other pieces (e.g. log_event.cc) automerged from 5.0.
mysql-test/r/rpl_row_insert_delayed.result:
  result
mysql-test/r/rpl_stm_insert_delayed.result:
  result. Note how "mixed" and "statement" insert different data in
  the table.
mysql-test/t/rpl_row_insert_delayed.test:
  wrapper to test INSERT DELAYED binlogging in row-based mode
mysql-test/t/rpl_stm_insert_delayed.test:
  wrapper to test INSERT DELAYED binlogging in statement-based and mixed
  mode
2007-02-15 20:28:58 +01:00
unknown
b4f80eedf3 Give warnings for unused objects
Changed error message to be compatible with old error file
Added new error message for new DUP_ENTRY syntax


BUILD/SETUP.sh:
  Give warnings for unused objects
mysql-test/extra/binlog_tests/insert_select-binlog.test:
  Changed to use new error message
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
  Changed to use new error message
mysql-test/extra/rpl_tests/rpl_auto_increment.test:
  Changed to use new error message
mysql-test/extra/rpl_tests/rpl_foreign_key.test:
  Changed to use new error message
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  Changed to use new error message
mysql-test/extra/rpl_tests/rpl_insert_id_pk.test:
  Changed to use new error message
mysql-test/extra/rpl_tests/rpl_loaddata.test:
  Changed to use new error message
mysql-test/extra/rpl_tests/rpl_row_basic.test:
  Changed to use new error message
mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test:
  Changed to use new error message
mysql-test/extra/rpl_tests/rpl_trig004.test:
  Changed to use new error message
mysql-test/include/mix1.inc:
  Changed to use new error message
mysql-test/include/mix2.inc:
  Changed to use new error message
mysql-test/include/ps_modify.inc:
  Changed to use new error message
mysql-test/include/query_cache.inc:
  Changed to use new error message
mysql-test/include/varchar.inc:
  Changed to use new error message
mysql-test/r/create.result:
  Changed to use new error message
mysql-test/r/rpl_sp.result:
  Changed to use new error message
mysql-test/r/sp.result:
  Changed to use new error message
mysql-test/r/view.result:
  Changed to use new error message
mysql-test/t/auto_increment.test:
  Changed to use new error message
mysql-test/t/create.test:
  Changed to use new error message
mysql-test/t/create_select_tmp.test:
  Changed to use new error message
mysql-test/t/ctype_utf8.test:
  Changed to use new error message
mysql-test/t/delayed.test:
  Changed to use new error message
mysql-test/t/heap.test:
  Changed to use new error message
mysql-test/t/heap_btree.test:
  Changed to use new error message
mysql-test/t/heap_hash.test:
  Changed to use new error message
mysql-test/t/innodb.test:
  Changed to use new error message
mysql-test/t/insert_select.test:
  Changed to use new error message
mysql-test/t/insert_update.test:
  Changed to use new error message
mysql-test/t/join_outer.test:
  Changed to use new error message
mysql-test/t/key.test:
  Changed to use new error message
mysql-test/t/merge.test:
  Changed to use new error message
mysql-test/t/myisam.test:
  Changed to use new error message
mysql-test/t/ndb_charset.test:
  Changed to use new error message
mysql-test/t/ndb_index_unique.test:
  Changed to use new error message
mysql-test/t/ndb_insert.test:
  Changed to use new error message
mysql-test/t/ndb_replace.test:
  Changed to use new error message
mysql-test/t/ndb_update.test:
  Changed to use new error message
mysql-test/t/replace.test:
  Changed to use new error message
mysql-test/t/rpl_err_ignoredtable.test:
  Changed to use new error message
mysql-test/t/rpl_row_create_table.test:
  Changed to use new error message
mysql-test/t/rpl_skip_error-slave.opt:
  Changed to use new error message
mysql-test/t/rpl_sp.test:
  Changed to use new error message
mysql-test/t/show_check.test:
  Changed to use new error message
mysql-test/t/sp-error.test:
  Changed to use new error message
mysql-test/t/sp.test:
  Changed to use new error message
mysql-test/t/sp_trans.test:
  Changed to use new error message
mysql-test/t/temp_table.test:
  Changed to use new error message
mysql-test/t/type_binary.test:
  Changed to use new error message
mysql-test/t/type_bit.test:
  Changed to use new error message
mysql-test/t/type_bit_innodb.test:
  Changed to use new error message
mysql-test/t/type_blob.test:
  Changed to use new error message
mysql-test/t/type_varchar.test:
  Changed to use new error message
mysql-test/t/view.test:
  Changed to use new error message
sql/handler.cc:
  ER_DUP_ENTRY -> ER_DUP_ENTRY_WITH_KEY_NAME
sql/share/errmsg.txt:
  Changed error message to be compatible with old error file
  Added new error message for new DUP_ENTRY syntax
sql/sql_table.cc:
  ER_DUP_ENTRY -> ER_DUP_ENTRY_WITH_KEY_NAME
sql-bench/example:
  Example file for how to run tests
2007-01-22 18:42:52 +02:00
unknown
0416b69da6 After merge fix.
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  Enhance test for bug#21726 to cover statement-based replication of
  function calls.
sql/sql_class.cc:
  Fix typo and whitespace.
2006-10-03 17:07:30 +04:00
unknown
d224f22157 Fix after manual merge: add tests from 5.0.
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  Add test case for bug#21726: Incorrect result with multiple invocations
  of LAST_INSERT_ID, and 5.0 version of test case for bug#20339: stored
  procedure using LAST_INSERT_ID() does not replicate statement-based.
mysql-test/r/rpl_insert_id.result:
  Update result.
2006-10-02 15:26:01 +04:00
unknown
7466b75079 After merge fixes 2006-09-21 14:19:17 +02:00
unknown
76fa1d4381 Fixing problems I identified in my auto_increment work pushed in July
(as part of the auto_increment cleanup of WL#3146; let's not be
sad, that monster push still removed serious bugs):
one problem with INSERT DELAYED (unexpected interval releases),
one with stored functions (wrong auto_inc binlogging).
These bugs were not released.


mysql-test/extra/binlog_tests/binlog_insert_delayed.test:
      more tests of binlogging of INSERT DELAYED: with multi-row INSERTs.
      I identified why sleeps are needed to get a repeatable row-based
      binlogged: because without sleeps rows sometimes get groupped
      and so generate different row based events.
mysql-test/extra/rpl_tests/rpl_foreign_key.test:
  don't forget to drop tables on slave too, otherwise it leaves
  an orphan innodb table leading to rpl_insert_id failing sometimes
  (like in pushbuild "sapsrv2 -max").
mysql-test/extra/rpl_tests/rpl_insert_id.test:
      testing that if some statement does not update any row, it does
      not pollute the auto_inc binlog variables of the next statement;
      the test has to use stored procedures because with plain statements,
      mysql_reset_thd_for_next_command() does the resetting (and thus
      there is no problem); mysql_reset_thd_for_next_command() is not
      called inside routines.
mysql-test/r/binlog_row_binlog.result:
  result additions
mysql-test/r/binlog_statement_insert_delayed.result:
  result additions
mysql-test/r/binlog_stm_binlog.result:
  result additions
mysql-test/r/rpl_insert_id.result:
  result additions
mysql-test/r/rpl_loaddata.result:
      With the change to log.cc reverted, the result changes and is better:
      the change to log.cc had caused some INSERT_ID events to disappear
      though they were necessary (but testsuite could not catch that because
      it's single-threaded).
mysql-test/r/rpl_ndb_insert_ignore.result:
  NDB is now like other engines regarding INSERT IGNORE: autoincrement
  values which caused a duplicate key are re-used for next row, not lost.
  rpl_ndb_insert_ignore.result is now identical to rpl_insert_ignore.result.
sql/log.cc:
      LOAD DATA INFILE is binlogged as several events, and the last of them must
      have the auto_inc id. So it's wrong to reset the auto_inc id after every
      binlog write (because then it's lost after the first event of LOAD
      DATA INFILE and so missing for the last one)/
      Another problem: MYSQL_LOG::write() is not always called (for example
      if no row was updated), so we were missing reset in some cases.
sql/sp_head.cc:
      SELECT func1(),func2() generates two binlog events, so needs to
      clear auto_increment binlog variables after each binlog event
      (it would be more natural to clear them in the log write code,
      but LOAD DATA INFILE would suffer from this see the cset comment
      for log.cc). Without the clearing, the problem is:
      > exec func1()
      >> call cleanup_after_query() (which does not clear our vars here)
      >> binlog SELECT func1()
      <
      > exec func2()
      and so SELECT func2() is binlogged with the auto_inc of SELECT func1().
sql/sql_class.cc:
      after every statement we should clear auto_inc variables used for
      binlogging, except if this was a function/trigger (in which case
      it may be "INSERT SELECT func()", where the cleanup_after_query()
      executed in func() should not reset the auto_inc binlog variables
      as they'll be necessary when binlogging the INSERT SELECT later).
sql/sql_insert.cc:
      - as INSERT DELAYED uses the same TABLE object as the delayed_insert
      system thread, we should not call ha_release_auto_increment()
      from INSERT DELAYED (and btw it's logical as we reserve nothing
      as we don't perform the insert). Calling the function caused us to
      release values being used by the delayed_insert thread.
      So I do the call only if this is a non-DELAYED INSERT.
      - Assuming two INSERT DELAYED which get grouped by the delayed_insert
      thread, the second may use values reserved by the first, which is ok
      per se, but is a problem in statement-based binlogging:
      the 2nd INSERT gets binlogged with the "interval start" value
      of the first INSERT (=> duplicate error in slave).
      - no reason to ha_release_auto_increment() after every inserted row
      in INSERT SELECT; more efficient to do it only when the statement ends
sql/sql_parse.cc:
  a comment
2006-09-12 15:42:13 +02:00
unknown
f75e79e0fc After merge fix 2006-08-01 08:49:43 +04:00
unknown
20c59f9c4b fixes after merge. Updates to test's results.
We now reset the THD members related to auto_increment+binlog in
MYSQL_LOG::write(). This is better than in THD::cleanup_after_query(),
which was not able to distinguish between SELECT myfunc1(),myfunc2()
and INSERT INTO t SELECT myfunc1(),myfunc2() from a binlogging point
of view.
Rows_log_event::exec_event() now calls lex_start() instead of
mysql_init_query() because the latter now does too much (it resets
the binlog format).


mysql-test/extra/rpl_tests/rpl_insert_id.test:
  fix after merge
mysql-test/mysql-test-run.pl:
  -v does not bring useful information when running valgrind; I remove it;
  if you think it's useful add it back.
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
  Position columns of SHOW BINLOG EVENTS are replaced by # (more robust
  if the size of an event changes).
mysql-test/r/rpl_insert_id.result:
  fix after merge
mysql-test/r/rpl_loaddata.result:
  The binlog positions change, because one event disappeared; indeed there
  was this in the binlog (in the current 5.1!):
  SET INSERT_ID=2;
  SET INSERT_ID=1;
  SET TIMESTAMP=1152540671;
  load data LOCAL INFILE '/tmp/SQL_LOAD_MB-1-2' INTO table t1;
  Two INSERT_ID events, useless and a bug. Goes away afer cleaning up
  auto_increment handling.
mysql-test/r/rpl_switch_stm_row_mixed.result:
  INSERT_ID=5 appears, it's a consequence of having merged the fix
  for BUG#20341
  "stored function inserting into one auto_increment puts bad data in slave".
  In mixed mode, if one substatement of a stored procedure requires row-based,
  the entire procedure uses row-based (was already true for stored functions);
  this is a consequence of not doing the resetting of binlog format inside
  lock_tables() (which didn't work with how the slave thread executes
  row-based binlog events).
mysql-test/t/rpl_switch_stm_row_mixed.test:
  removing the multi-row delayed insert because in RBR the number of events
  which it generates, is not repeatable (probably depends on how the delayed
  thread groups rows, i.e. dependent on timing).
sql/ha_partition.cc:
  update to new prototype
sql/ha_partition.h:
  update to new prototype of the handler:: method.
sql/handler.cc:
  after-merge fixes (manually merging part which was hard to merge in fmtool)
sql/log.cc:
  When we write to the binary log, THD's parameters which influenced this
  write are reset: stmt_depends_on_first_successful_insert_id_in_prev_stmt
  and auto_inc_intervals_in_cur_stmt_for_binlog. This is so that future
  writes are not influenced by those and can write their own values.
  As a consequence, when we don't write to the binlog we do not reset.
  This is to abide by the rule that in a complex statement (using triggers etc),
  the first top- or substatement to generate auto_increment ids
  wins their writing to the binlog (that writing may be done by the statement
  itself or by the caller); so for example for
  INSERT INTO t SELECT myfunc() where myfunc() inserts into auto_increment
  and INSERT INTO t does not, myfunc() will fill
  auto_inc_intervals_in_cur_stmt_for_binlog, which will not be reset when
  myfunc() ends, then INSERT INTO t will write to the binlog and thus
  write the preserved auto_inc_intervals_in_cur_stmt_for_binlog.
sql/log_event.cc:
  mysql_init_query() does too much now to be called in Rows_log_event::exec_event
  (it call mysql_reset_thd_for_next_command() which may switch
  the binlog format now).
  It's ok to call it in Table_map_log_event::exec_event() but its call must
  be before setting the binlog format to "row".
sql/sql_base.cc:
  Resetting the binlog format in lock_tables() was a bad idea of mine;
  it causes problems in execution of row-based binlog events, where
  the thread sets the binlog format by itself and does not want a next
  lock_tables() to reset the binlog format.
  It is also misleading, for a function named lock_tables(), to reset
  the binlog format.
  As a consequence of this change, in mixed binlogging mode, a routine
  is logged either entirely statement-based or entirely row-based, we
  don't switch in the middle (this was already true for prelocked routines,
  now it's also true for stored procedures).
sql/sql_class.cc:
  resetting of auto_increment variables used for binlogging is now done
  when writing to the binary log, no need to do the resetting at the end
  of the statement. It is also more correct this way; consider
  SELECT myfunc1(),myfunc2();
  where both functions insert into the same auto_increment column.
  Binlogging is done in 2 events: "SELECT myfunc1()" and "SELECT myfunc2()".
  So each of those needs to have, in binlog, the INSERT_ID which
  it inserted. But as the 2 function calls are executed under prelocked mode,
  the old code didn't reset auto_inc_intervals_in_cur_stmt_for_binlog
  after the first SELECT was binlogged, and so the INSERT_ID of the first
  SELECT was binlogged for the first SELECT and (wrong) also for the 2nd
  SELECT event.
  stmt_depends_on_first_... has the same logic.
sql/sql_class.h:
  clearer comment
sql/sql_delete.cc:
  unneeded #ifdef. As we temporarily change the binlog format to "statement"
  before calling mysql_delete(), we must restore it afterwards.
sql/sql_insert.cc:
  after-merge fixes.
  No need to reset auto_inc_intervals_in_cur_stmt_for_binlog for every
  row in the delayed insert system thread, because we already reset it
  when writing to the binlog.
sql/sql_parse.cc:
  unneeded #ifdef
2006-07-10 18:41:03 +02:00
unknown
9939a66bec Merge gbichot3.local:/home/mysql_src/mysql-5.1-interval-move-next-insert-id
into  gbichot3.local:/home/mysql_src/mysql-5.1


sql/ha_federated.cc:
  Auto merged
sql/ha_ndbcluster.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
sql/handler.cc:
  will fix by hand
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  merge
mysql-test/r/rpl_insert_id.result:
  merge
sql/sql_insert.cc:
  merge
2006-07-09 22:50:02 +02:00
unknown
9420186060 Manual merge of test from 5.0 (needs to be manual because the test files
were copied/split between 5.0 and 5.1).


mysql-test/extra/rpl_tests/rpl_auto_increment.test:
  manual merge of test from 5.0
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  manuel merge of test from 5.0
mysql-test/r/rpl_auto_increment.result:
  error messages changed compared to 5.0
2006-07-09 18:45:16 +02:00
unknown
60272e750e WL#3146 "less locking in auto_increment":
this is a cleanup patch for our current auto_increment handling:
new names for auto_increment variables in THD, new methods to manipulate them
(see sql_class.h), some move into handler::, causing less backup/restore
work when executing substatements. 
This makes the logic hopefully clearer, less work is is needed in
mysql_insert().
By cleaning up, using different variables for different purposes (instead
of one for 3 things...), we fix those bugs, which someone may want to fix
in 5.0 too:
BUG#20339 "stored procedure using LAST_INSERT_ID() does not replicate
statement-based"
BUG#20341 "stored function inserting into one auto_increment puts bad
data in slave"
BUG#19243 "wrong LAST_INSERT_ID() after ON DUPLICATE KEY UPDATE"
(now if a row is updated, LAST_INSERT_ID() will return its id)
and re-fixes:
BUG#6880 "LAST_INSERT_ID() value changes during multi-row INSERT"
(already fixed differently by Ramil in 4.1)
Test of documented behaviour of mysql_insert_id() (there was no test).
The behaviour changes introduced are:
- LAST_INSERT_ID() now returns "the first autogenerated auto_increment value
successfully inserted", instead of "the first autogenerated auto_increment
value if any row was successfully inserted", see auto_increment.test.
Same for mysql_insert_id(), see mysql_client_test.c.
- LAST_INSERT_ID() returns the id of the updated row if ON DUPLICATE KEY
UPDATE, see auto_increment.test. Same for mysql_insert_id(), see
mysql_client_test.c.
- LAST_INSERT_ID() does not change if no autogenerated value was successfully 
inserted (it used to then be 0), see auto_increment.test.
- if in INSERT SELECT no autogenerated value was successfully inserted,
mysql_insert_id() now returns the id of the last inserted row (it already
did this for INSERT VALUES), see mysql_client_test.c.
- if INSERT SELECT uses LAST_INSERT_ID(X), mysql_insert_id() now returns X
(it already did this for INSERT VALUES), see mysql_client_test.c.
- NDB now behaves like other engines wrt SET INSERT_ID: with INSERT IGNORE,
the id passed in SET INSERT_ID is re-used until a row succeeds; SET INSERT_ID
influences not only the first row now.

Additionally, when unlocking a table we check that the thread is not keeping
a next_insert_id (as the table is unlocked that id is potentially out-of-date);
forgetting about this next_insert_id is done in a new
handler::ha_release_auto_increment().

Finally we prepare for engines capable of reserving finite-length intervals
of auto_increment values: we store such intervals in THD. The next step
(to be done by the replication team in 5.1) is to read those intervals from
THD and actually store them in the statement-based binary log. NDB
will be a good engine to test that.


mysql-test/extra/binlog_tests/binlog.test:
  Testing that if INSERT_ID is set to a value too big for the
  column's type, the binlogged INSERT_ID is the truncated value
  (important if slave has a column of a "wider" numeric type).
  Testing binlogging of INSERT_ID with INSERT DELAYED, to be sure that 
  we binlog an INSERT_ID event only for the delayed rows which use one.
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  Testcase for BUG#20339 "stored procedure using
  LAST_INSERT_ID() does not replicate statement-based".
  Testcase for BUG#20341 "stored function inserting into one
  auto_increment puts bad data in slave".
mysql-test/extra/rpl_tests/rpl_loaddata.test:
  Test that LOAD DATA INFILE sets a value for a future LAST_INSERT_ID().
mysql-test/r/auto_increment.result:
  behaviour change: when INSERT totally fails (not even succeeds
  partially and then rolls back), don't change last_insert_id().
  Behaviour change: LAST_INSERT_ID() is now the first successfully inserted,
  autogenerated, id.
  Behaviour change: if INSERT ON DUPLICATE KEY UPDATE, if the table has auto_increment
  and a row is updated, then LAST_INSERT_ID() returns the id of this row.
mysql-test/r/binlog_row_binlog.result:
  result update
mysql-test/r/binlog_stm_binlog.result:
  result update
mysql-test/r/insert.result:
  result update
mysql-test/r/rpl_insert_id.result:
  result update
mysql-test/r/rpl_loaddata.result:
  result update
mysql-test/r/rpl_ndb_auto_inc.result:
  ndb's behaviour is now like other engines wrt SET INSERT_ID
  in a multi-row INSERT:
  - with INSERT IGNORE: the id passed in SET INSERT_ID is re-used until
  a row succeeds.
  - generally, SET INSERT_ID sets the first value and other values are
  simply computed from this first value, instead of previously where
  the 2nd and subsequent values where not influenced by SET INSERT_ID;
  this good change is due to the removal of "thd->next_insert_id=0"
  from ha_ndbcluster.
mysql-test/t/auto_increment.test:
  A testcase of BUG#19243: if ON DUPLICATE KEY UPDATE updates a row,
  LAST_INSERT_ID() now returns the id of the row.
  Test of new behaviour of last_insert_id() when no autogenerated value was
  inserted, or when only some autogenerated value (not the first of them) was
  inserted.
mysql-test/t/insert.test:
  testing INSERT IGNORE re-using generated values
sql/ha_federated.cc:
  update for new variables.
sql/ha_ndbcluster.cc:
  handler::auto_increment_column_changed not needed, equivalent to
  (insert_id_for_cur_row > 0).
  thd->next_insert_id=0 not needed anymore; it was used to force
  handler::update_auto_increment() to call ha_ndbcluster::get_auto_increment()
  for each row of a multi-row INSERT, now this happens naturally
  because NDB says "I have reserved you *one* value" in get_auto_increment(),
  so handler::update_auto_increment() calls again for next row.
sql/handler.cc:
  More comments, use of new methods and variables. Hopes to be clearer
  than current code.
  thd->prev_insert_id not in THD anymore: it is managed locally by inserters
  (like mysql_insert()).
  THD::clear_next_insert_id is now equivalent to
  handler::next_insert_id > 0.
  get_auto_increment() reserves an interval of values from the engine,
  uses this interval for next rows of the statement, until interval
  is exhausted then it asks for another interval (of a bigger size
  than the first one; size doubles until reaching 65535 then it stays constant).
  If doing statement-based binlogging, intervals are remembered in a list
  for storage in the binlog.
  For "forced" insert_id values (SET INSERT_ID or replication slave),
  forced_auto_inc_intervals is non-empty and the handler takes its intervals
  from there, without calling get_auto_increment().
  ha_release_auto_increment() resets the handler's auto_increment variables;
  it calls release_auto_increment() which is handler-dependent and
  serves to return to the engine any unused tail of the last used
  interval.
  If ending a statement, next_insert_id>0 means that autoinc values have been
  generated or taken from the master's binlog (in a replication slave) so
  we clear those values read from binlog, so that next top- or sub-
  statement does not use them.
sql/handler.h:
  handler::auto_increment_changed can be replaced by
  (handler::insert_id_for_cur_row > 0).
  THD::next_insert_id moves into handler (more natural, and prepares
  for the day when we'll support a single statement inserting into
  two tables - "multi-table INSERT" like we have UPDATE - will this
  happen?).
  This move makes the backup/restore of THD::next_insert_id when entering
  a substatement unneeded, as each substatement has its own handler
  objects.
sql/item_func.cc:
  new names for variables.
  For the setting of what mysql_insert_id() will return to the client,
  LAST_INSERT_ID(X) used to simply pretend that the generated autoinc
  value for the current row was X, but this led to having no reliable
  way to know the really generated value, so we now have a bool:
  thd->arg_of_last_insert_id_function which enables us to know that
  LAST_INSERT_ID(X) was called (and then X can be found in
  thd->first_successful_insert_id_in_prev_stmt).
sql/log.cc:
  new variable names for insert_ids. Removing some unused variables in the slow
  log.
sql/log_event.cc:
  new variable names, comments. Preparing for when master's won't binlog
  LAST_INSERT_ID if it was 0.
sql/set_var.cc:
  new variable names.
  The last change repeats how Bar fixed BUG#20392
  "INSERT_ID session variable has weird value" in 5.0.
sql/sql_class.cc:
  new variables for insert_id. In THD::cleanup_after_query() we fix
  BUG#20339 "stored procedure using LAST_INSERT_ID() does not replicate
  statement-based" (will one want to fix it in 5.0?). Many comments
  about what stored functions do to auto_increment.
  In reset|restore_sub_statement_state(), we need to backup less
  auto_inc variables as some of them have moved to the handler;
  we backup/restore those which are about the current top- or sub-
  statement, *not* those about the statement-based binlog
  (which evolve as the top- and sub-statement execute).
  Because we split THD::last_insert_id into 
  THD::first_successful_insert_id_in_prev_stmt and
  THD::auto_inc_intervals_for_binlog (among others), we fix
  BUG#20341 "stored function inserting into one auto_increment
  puts bad data in slave": indeed we can afford to not backup/restore
  THD::auto_inc_intervals_for_binlog (which fixes the bug) while still
  backing up / restoring THD::first_successful_insert_id_in_prev_stmt
  (ensuring that the top-level LAST_INSERT_ID() is not affected by INSERTs
  done by sub-statements, as is desirable and tested in rpl_insert_id.test).
sql/sql_class.h:
  new variables and methods for auto_increment.
  Some THD members move into handler (those which are really about
  the table being inserted), some stay in THD (those which are
  about what a future LAST_INSERT_ID() should return, or about
  what should be stored into the statement-based binlog).
  THD::next_insert_id moves to handler::.
  THD::clear_next_insert_id removed (had become equivalent
  to next_insert_id > 0).
  THD::last_insert_id becomes four:
  THD::first_successful_insert_id_in_cur_stmt,
  THD::auto_inc_intervals_for_binlog,
  handler::insert_id_for_cur_row,
  THD::first_successful_insert_id_in_prev_stmt.
  THD::current_insert_id becomes:
  THD::first_successful_insert_id_in_prev_stmt_for_binlog
  THD::prev_insert_id is removed, handler can just use
  handler::insert_id_for_cur_row instead (which is more accurate:
  for the first row, prev_insert_id was set before get_auto_increment
  was called, so was 0, causing a call to
  get_auto_increment() for the 2nd row if the 1st row fails;
  here we don't need the call as insert_id_for_cur_row has
  the value of the first row).
  THD::last_insert_id_used becomes: stmt_depends_on_first_row_in_prev_stmt
  THD::insert_id_used is removed (equivalent to
  auto_inc_intervals_for_binlog non empty).
  The interval returned by get_auto_increment() and currently being
  consumed is handler::auto_inc_interval_for_cur_row.
  Comments to explain each of them.
  select_insert::last_insert_id becomes autoinc_value_of_last_inserted_row.
sql/sql_insert.cc:
  the "id" variable is not changed for each row now; it used to compensate for
  this contradiction:
  - thd->last_insert_id supposed job was to keep the id of the first row
  - but it was updated for every row
  - so mysql_insert() made sure to catch its first value and restore it at the end of stmt.
  Now THD keeps the first value in first_successful_insert_id_in_cur_stmt,
  and value of the row in insert_id_for_cur_row. So "id" only serves to fill
  mysql_insert_id(), as depending on some conditions, "id" must be different
  values.
  Prev_insert_id moves from THD to write_record().
  We now set LAST_INSERT_ID() in ON DUPLICATE KEY UPDATE too (BUG#19243).
  In an INSERT DELAYED, we still "reset auto-increment caching" but differently
  (by calling ha_release_auto_increment()).
sql/sql_load.cc:
  no need to fiddle with "id", THD maintains
  THD::first_successful_insert_id_in_cur_stmt by itself and correctly now.
  ha_release_auto_increment() is now (logically) called before we unlock
  the table.
sql/sql_parse.cc:
  update to new variable names.
  Assertion that reset_thd_for_next_command() is not called for every
  substatement of a routine (I'm not against it, but if we do this change,
  statement-based binlogging needs some adjustments).
sql/sql_select.cc:
  update for new variable names
sql/sql_table.cc:
  next_insert_id not needed in mysql_alter_table(), THD manages.
sql/sql_update.cc:
  update for new variable names.
  Even though this is UPDATE, an insert id can be generated (by
  LAST_INSERT_ID(X)) and should be recorded because mysql_insert_id() wants
  to know about it.
sql/structs.h:
  A class for "discrete" intervals (intervals of integer numbers with a certain
  increment between them): Discrete_interval, and a class for a list of such
  intervals: Discrete_intervals_list
tests/mysql_client_test.c:
  tests of behaviour of mysql_insert_id(): there were no such tests, while in
  our manual we document its behaviour. In comments you'll notice the behaviour
  changes introduced (there are 5).
2006-07-09 17:52:19 +02:00
unknown
dd370c9a23 Merge from 5.0
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  Manual merge from 5.0. In 5.0 this was in another file.
sql/field.cc:
  Removed unused variable.
2006-05-31 11:18:58 +03:00
unknown
1e869b0e58 Post-merge fixes from 5.0.
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  Post-merge fix. Added new 5.0 test case manually.
sql/sql_yacc.yy:
  Post-merge fix. Removed GOTO/LABEL from parser.
2006-04-25 17:44:35 +02:00
unknown
043ad0670f Implement suggestions from lars review
mysql-test/extra/rpl_tests/rpl_row_blob.test:
  Changes that Larss requested
mysql-test/r/rpl_row_blob_innodb.result:
  Changes that Larss requested
mysql-test/r/rpl_row_blob_myisam.result:
  Changes that Larss requested
mysql-test/r/rpl_insert_id.result:
  updated results
mysql-test/extra/rpl_tests/rpl_insert_id_pk.test:
  Suggested PK test by Lars
mysql-test/t/rpl_insert_id_pk.test:
  Suggested PK test by Lars
mysql-test/t/rpl_insert_id_pk-slave.opt:
  Suggested PK test by Lars
mysql-test/r/rpl_insert_id_pk.result:
  Suggested PK test by Lars
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  updated per lars
2006-02-08 16:47:46 +01:00
unknown
68b51ff01c More updates for using NDB as default and some bug fixes along the way
mysql-test/extra/rpl_tests/rpl_insert_id.test:
  Updated wiht 1022 error, order by and PK for use with NDB engine
mysql-test/r/rpl_insert_id.result:
  Updated wiht 1022 error, order by and PK for use with NDB engine
mysql-test/t/rpl_skip_error.test:
  updated to wrk with ndb
mysql-test/r/rpl_skip_error.result:
  updated to wrk with ndb
mysql-test/t/rpl_sporadic_master.test:
  updated to wrk with ndb
mysql-test/r/rpl_sporadic_master.result:
  updated to wrk with ndb
mysql-test/t/rpl_row_trig002.test:
  updated to work with NDB engine
mysql-test/r/rpl_row_trig002.result:
  updated to work with NDB engine
mysql-test/t/rpl_temporary.test:
  updated to work with NDB engine
mysql-test/r/rpl_temporary.result:
  updated to work with NDB engine
mysql-test/extra/rpl_tests/rpl_row_001.test:
  updated to work with NDB as default engine
mysql-test/r/rpl_row_001.result:
  updated to work with NDB as default engine
mysql-test/t/rpl_row_blob_innodb.test:
  Fixed bug in test case
mysql-test/t/rpl_row_blob_innodb-slave.opt:
  Added slave option file to ensure correct engine type on slave
mysql-test/r/rpl_row_blob_innodb.result:
  Updated results
mysql-test/r/rpl_row_blob_myisam.result:
  Updated results
mysql-test/r/rpl_ndb_log.result:
  update results file
2006-02-08 13:08:19 +01:00
unknown
09346e6e2d WL#1012: All changes as one single changeset.
This includes both code and test cases.


BitKeeper/deleted/.del-ctype_ucs_binlog.result~280d136b1a0bcf17:
  Delete: mysql-test/r/ctype_ucs_binlog.result
BitKeeper/deleted/.del-rpl_delete_all.result~7c050d592614b3f:
  Delete: mysql-test/r/rpl_delete_all.result
BitKeeper/deleted/.del-rpl000013-slave.opt~18266ad8a2403e8d:
  Delete: mysql-test/t/rpl000013-slave.opt
BitKeeper/deleted/.del-rpl_delete_all.test~700a1490277780e0:
  Delete: mysql-test/t/rpl_delete_all.test
mysql-test/extra/binlog_tests/binlog.test:
  Import patch wl1012.patch
mysql-test/extra/binlog_tests/blackhole.test:
  Import patch wl1012.patch
mysql-test/extra/binlog_tests/ctype_cp932.test:
  Import patch wl1012.patch
mysql-test/extra/binlog_tests/ctype_cp932_binlog.test:
  Import patch wl1012.patch
mysql-test/extra/binlog_tests/ctype_ucs_binlog.test:
  Import patch wl1012.patch
mysql-test/extra/binlog_tests/drop_temp_table.test:
  Import patch wl1012.patch
mysql-test/extra/binlog_tests/insert_select-binlog.test:
  Import patch wl1012.patch
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_ddl.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_deadlock.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_err_ignoredtable.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_flsh_tbls.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_loaddata_m.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_log.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_max_relay_size.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_multi_query.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_reset_slave.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_stm_000001.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_stm_EE_err.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_stm_charset.test:
  Import patch wl1012.patch
mysql-test/extra/rpl_tests/rpl_user_variables.test:
  Import patch wl1012.patch
mysql-test/r/binlog_stm_binlog.result:
  Import patch wl1012.patch
mysql-test/r/binlog_stm_blackhole.result:
  Import patch wl1012.patch
mysql-test/r/binlog_stm_ctype_cp932.result:
  Import patch wl1012.patch
mysql-test/r/binlog_stm_ctype_ucs.result:
  Import patch wl1012.patch
mysql-test/r/binlog_stm_drop_tmp_tbl.result:
  Import patch wl1012.patch
mysql-test/r/binlog_stm_insert_select.result:
  Import patch wl1012.patch
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
  Import patch wl1012.patch
mysql-test/r/rpl_000012.result:
  Import patch wl1012.patch
mysql-test/r/rpl_000015.result:
  Import patch wl1012.patch
mysql-test/r/rpl_deadlock_innodb.result:
  Import patch wl1012.patch
mysql-test/r/rpl_flushlog_loop.result:
  Import patch wl1012.patch
mysql-test/r/rpl_loaddata_s.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_000001.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_EE_err.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_charset.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_ddl.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_err_ignoredtable.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_flsh_tbls.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_loaddata_m.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_log.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_max_relay_size.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_multi_query.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_mystery22.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_reset_slave.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_rewrt_db.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_sp.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_timezone.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_until.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_user_variables.result:
  Import patch wl1012.patch
mysql-test/r/rpl_stm_view.result:
  Import patch wl1012.patch
mysql-test/t/binlog_row_binlog-master.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_000012.test:
  Import patch wl1012.patch
mysql-test/t/rpl_000015-slave.sh:
  Import patch wl1012.patch
mysql-test/t/rpl_000015.slave-mi:
  Import patch wl1012.patch
mysql-test/t/rpl_000015.test:
  Import patch wl1012.patch
mysql-test/t/rpl_deadlock_innodb-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_flushlog_loop-master.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_flushlog_loop-master.sh:
  Import patch wl1012.patch
mysql-test/t/rpl_flushlog_loop-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_flushlog_loop-slave.sh:
  Import patch wl1012.patch
mysql-test/t/rpl_flushlog_loop.test:
  Import patch wl1012.patch
mysql-test/t/rpl_loaddata_s-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_loaddata_s.test:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_000001-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_err_ignoredtable-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_loaddata_m-master.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_log-master.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_log-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_mystery22.test:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_rewrt_db-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_rewrt_db.test:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_sp-master.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_sp-slave.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_sp.test:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_timezone-master.opt:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_timezone-slave.opt:
  Import patch wl1012.patch
BUILD/SETUP.sh:
  Import patch wl1012.patch
Makefile.am:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_timezone.test:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_until.test:
  Import patch wl1012.patch
mysql-test/t/rpl_stm_view.test:
  Import patch wl1012.patch
client/Makefile.am:
  Import patch wl1012.patch
client/client_priv.h:
  Import patch wl1012.patch
client/mysqlbinlog.cc:
  Import patch wl1012.patch
configure.in:
  Import patch wl1012.patch
include/Makefile.am:
  Import patch wl1012.patch
include/base64.h:
  Import patch wl1012.patch
include/config-win.h:
  Import patch wl1012.patch
include/my_base.h:
  Import patch wl1012.patch
include/my_global.h:
  Import patch wl1012.patch
mysql-test/Makefile.am:
  Import patch wl1012.patch
mysql-test/mysql-test-run.pl:
  Import patch wl1012.patch
mysql-test/mysql-test-run.sh:
  Import patch wl1012.patch
mysql-test/r/date_formats.result:
  Import patch wl1012.patch
mysql-test/r/flush_block_commit.result:
  Import patch wl1012.patch
mysql-test/r/innodb.result:
  Import patch wl1012.patch
mysql-test/r/rpl000017.result:
  Import patch wl1012.patch
mysql-test/r/rpl_change_master.result:
  Import patch wl1012.patch
mysql-test/r/rpl_commit_after_flush.result:
  Import patch wl1012.patch
mysql-test/r/rpl_create_database.result:
  Import patch wl1012.patch
mysql-test/r/rpl_do_grant.result:
  Import patch wl1012.patch
mysql-test/r/rpl_loaddata.result:
  Import patch wl1012.patch
mysql-test/r/rpl_log_pos.result:
  Import patch wl1012.patch
mysql-test/r/rpl_multi_delete.result:
  Import patch wl1012.patch
mysql-test/r/rpl_multi_update.result:
  Import patch wl1012.patch
mysql-test/r/rpl_openssl.result:
  Import patch wl1012.patch
mysql-test/r/rpl_replicate_do.result:
  Import patch wl1012.patch
mysql-test/r/rpl_rotate_logs.result:
  Import patch wl1012.patch
mysql-test/r/rpl_server_id1.result:
  Import patch wl1012.patch
mysql-test/r/rpl_server_id2.result:
  Import patch wl1012.patch
mysql-test/r/rpl_temporary.result:
  Import patch wl1012.patch
mysql-test/r/user_var-binlog.result:
  Import patch wl1012.patch
mysql-test/t/create_select_tmp.test:
  Import patch wl1012.patch
mysql-test/t/date_formats.test:
  Import patch wl1012.patch
mysql-test/t/disabled.def:
  Import patch wl1012.patch
mysql-test/t/innodb.test:
  Import patch wl1012.patch
mysql-test/t/mysqlbinlog.test:
  Import patch wl1012.patch
mysql-test/t/mysqlbinlog2.test:
  Import patch wl1012.patch
mysql-test/t/rpl000002.test:
  Import patch wl1012.patch
mysql-test/t/rpl000006.test:
  Import patch wl1012.patch
mysql-test/t/rpl000013.test:
  Import patch wl1012.patch
mysql-test/t/rpl000017.test:
  Import patch wl1012.patch
mysql-test/t/rpl_auto_increment.test:
  Import patch wl1012.patch
mysql-test/t/rpl_change_master.test:
  Import patch wl1012.patch
mysql-test/t/rpl_commit_after_flush.test:
  Import patch wl1012.patch
mysql-test/t/rpl_create_database.test:
  Import patch wl1012.patch
mysql-test/t/rpl_do_grant.test:
  Import patch wl1012.patch
mysql-test/t/rpl_drop.test:
  Import patch wl1012.patch
mysql-test/t/rpl_empty_master_crash.test:
  Import patch wl1012.patch
mysql-test/t/rpl_failed_optimize.test:
  Import patch wl1012.patch
mysql-test/t/rpl_heap.test:
  Import patch wl1012.patch
mysql-test/t/rpl_insert_id.test:
  Import patch wl1012.patch
mysql-test/t/rpl_insert_ignore.test:
  Import patch wl1012.patch
mysql-test/t/rpl_loaddata.test:
  Import patch wl1012.patch
mysql-test/t/rpl_log_pos.test:
  Import patch wl1012.patch
mysql-test/t/rpl_multi_delete.test:
  Import patch wl1012.patch
mysql-test/t/rpl_multi_update.test:
  Import patch wl1012.patch
mysql-test/t/rpl_multi_update2.test:
  Import patch wl1012.patch
mysql-test/t/rpl_multi_update3.test:
  Import patch wl1012.patch
mysql-test/t/rpl_openssl.test:
  Import patch wl1012.patch
mysql-test/t/rpl_redirect.test:
  Import patch wl1012.patch
mysql-test/t/rpl_relayrotate.test:
  Import patch wl1012.patch
mysql-test/t/rpl_replicate_do.test:
  Import patch wl1012.patch
mysql-test/t/rpl_rotate_logs.test:
  Import patch wl1012.patch
mysql-test/t/rpl_server_id1.test:
  Import patch wl1012.patch
mysql-test/t/rpl_sp_effects.test:
  Import patch wl1012.patch
mysql-test/t/rpl_temporary.test:
  Import patch wl1012.patch
mysql-test/t/rpl_trigger.test:
  Import patch wl1012.patch
mysql-test/t/sp.test:
  Import patch wl1012.patch
mysql-test/t/user_var-binlog.test:
  Import patch wl1012.patch
mysys/Makefile.am:
  Import patch wl1012.patch
mysys/base64.c:
  Import patch wl1012.patch
sql/Makefile.am:
  Import patch wl1012.patch
sql/ha_innodb.cc:
  Import patch wl1012.patch
sql/ha_innodb.h:
  Import patch wl1012.patch
sql/ha_partition.cc:
  Import patch wl1012.patch
sql/handler.cc:
  Import patch wl1012.patch
sql/handler.h:
  Import patch wl1012.patch
sql/item_sum.cc:
  Import patch wl1012.patch
sql/log.cc:
  Import patch wl1012.patch
sql/log_event.cc:
  Import patch wl1012.patch
sql/log_event.h:
  Import patch wl1012.patch
sql/mysql_priv.h:
  Import patch wl1012.patch
sql/mysqld.cc:
  Import patch wl1012.patch
sql/rpl_filter.h:
  Import patch wl1012.patch
sql/set_var.cc:
  Import patch wl1012.patch
sql/share/errmsg.txt:
  Import patch wl1012.patch
sql/slave.cc:
  Import patch wl1012.patch
sql/slave.h:
  Import patch wl1012.patch
sql/sp.cc:
  Import patch wl1012.patch
sql/sp_head.cc:
  Import patch wl1012.patch
sql/sql_acl.cc:
  Import patch wl1012.patch
sql/sql_base.cc:
  Import patch wl1012.patch
sql/sql_class.cc:
  Import patch wl1012.patch
sql/sql_class.h:
  Import patch wl1012.patch
sql/sql_delete.cc:
  Import patch wl1012.patch
sql/sql_insert.cc:
  Import patch wl1012.patch
sql/sql_lex.h:
  Import patch wl1012.patch
sql/sql_list.h:
  Import patch wl1012.patch
sql/sql_load.cc:
  Import patch wl1012.patch
sql/sql_parse.cc:
  Import patch wl1012.patch
sql/sql_plugin.cc:
  Import patch wl1012.patch
sql/sql_rename.cc:
  Import patch wl1012.patch
sql/sql_repl.h:
  Import patch wl1012.patch
sql/sql_select.cc:
  Import patch wl1012.patch
sql/sql_show.cc:
  Import patch wl1012.patch
sql/sql_table.cc:
  Import patch wl1012.patch
sql/sql_udf.cc:
  Import patch wl1012.patch
sql/sql_union.cc:
  Import patch wl1012.patch
sql/sql_update.cc:
  Import patch wl1012.patch
sql/sql_yacc.yy:
  Import patch wl1012.patch
sql/table.cc:
  Import patch wl1012.patch
sql/table.h:
  Import patch wl1012.patch
storage/innobase/include/lock0lock.h:
  Import patch wl1012.patch
storage/innobase/include/row0mysql.h:
  Import patch wl1012.patch
storage/innobase/include/row0vers.h:
  Import patch wl1012.patch
storage/innobase/lock/lock0lock.c:
  Import patch wl1012.patch
storage/innobase/row/row0mysql.c:
  Import patch wl1012.patch
storage/innobase/row/row0sel.c:
  Import patch wl1012.patch
storage/innobase/row/row0vers.c:
  Import patch wl1012.patch
2005-12-22 06:39:02 +01:00