irrelevant to execute since the charset information does not
affect replication for row-based replication. The row-based
versions of the tests were removed, and the statement-based
version of the test was made executable by all three modes.
This involves removing any lines that causes the test to be
dependent on the contents of the binary log, and instead we
just check that the replication works as it should.
BitKeeper/deleted/.del-rpl_ndb_charset.test:
Delete: mysql-test/suite/rpl_ndb/t/rpl_ndb_charset.test
BitKeeper/deleted/.del-rpl_ndb_charset.result:
Delete: mysql-test/suite/rpl_ndb/r/rpl_ndb_charset.result
BitKeeper/deleted/.del-rpl_row_charset.test:
Delete: mysql-test/extra/rpl_tests/rpl_row_charset.test
BitKeeper/deleted/.del-rpl_row_charset.test~739be9df1baaee3e:
Delete: mysql-test/suite/rpl/t/rpl_row_charset.test
BitKeeper/deleted/.del-rpl_row_charset_innodb.test:
Delete: mysql-test/suite/rpl/t/rpl_row_charset_innodb.test
BitKeeper/deleted/.del-rpl_row_charset_innodb-master.opt:
Delete: mysql-test/suite/rpl/t/rpl_row_charset_innodb-master.opt
BitKeeper/deleted/.del-rpl_row_charset_innodb-slave.opt:
Delete: mysql-test/suite/rpl/t/rpl_row_charset_innodb-slave.opt
BitKeeper/deleted/.del-rpl_row_charset_innodb.result:
Delete: mysql-test/suite/rpl/r/rpl_row_charset_innodb.result
BitKeeper/deleted/.del-rpl_row_charset.result:
Delete: mysql-test/suite/rpl/r/rpl_row_charset.result
mysql-test/extra/rpl_tests/rpl_charset.test:
Test is not dependent on binlog format any more.
Using --echo instead of "select" to print text.
Removing lines causing the test to be dependent on binlog contents.
mysql-test/suite/rpl/r/rpl_charset.result:
Result change.
mysql-test/suite/rpl/t/rpl_charset.test:
Using renamed version of test file.
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/suite/ndb_team/r/rpl_ndb_dd_advance.result:
Auto merged
mysql-test/suite/rpl_ndb/t/disabled.def:
Auto merged
sql/log_event.cc:
Auto merged
mysql-test/suite/rpl_ndb/r/rpl_ndb_transaction.result:
Result change
mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test:
Removing duplicate DROP TABLE causing test to fail.
into dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Auto merged
mysql-test/suite/binlog/r/binlog_row_binlog.result:
Auto merged
mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
Auto merged
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
Auto merged
mysql-test/suite/binlog/t/binlog_row_mix_innodb_myisam.test:
Auto merged
mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam.test:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/slave.cc:
Auto merged
mysql-test/include/have_multi_ndb.inc:
Manual merge.
mysql-test/suite/rpl_ndb/r/rpl_ndb_transaction.result:
Manual merge.
mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test:
Manual merge.
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Fixing test file to use different positions depending
on binlog format.
mysql-test/suite/binlog/r/binlog_row_binlog.result:
Result change.
mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
Result change.
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
Result change.
mysql-test/suite/binlog/t/binlog_row_mix_innodb_myisam.test:
Removing part of test that does not work any more.
mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam.test:
Removing part of test that does not work any more.
mysql-test/suite/rpl_ndb/r/rpl_ndb_transaction.result:
Result change.
mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test:
Dropping tables on both master and slave, and not only on slave.
mysql-test/r/binlog_start_comment.result:
Result change.
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
Result change.
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
Result change.
mysql-test/suite/rpl/r/rpl_timezone.result:
Result change.
mysql-test/suite/rpl_ndb/r/rpl_ndb_transaction.result:
Result change.
mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test:
Masking out columns with binlog positions from slave status.
mysql-test/t/binlog_start_comment.test:
Added missing drop table causing subsequent tests to fail.
sql/log_event.cc:
Changing last_err* fields to client_last_err*
sql/log_event_old.cc:
Changing last_err* fields to client_last_err*
mysql-test/suite/binlog/r/binlog_row_binlog.result:
updated result file.
This part of the test was created in parallel with the fix to bug#26395,
which modifies the output of mysqlbinlog and hence the output of many
tests, including this one.
mysql-test/suite/rpl_ndb/r/rpl_ndb_transaction.result:
updated result file
mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test:
1. replaced include/show_slave_status.inc by more specific tests for the
SQL error and IO error, as well as Slave_IO_State.
2. drop all tables at the end of test.
into dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
mysql-test/include/have_multi_ndb.inc:
Auto merged
mysql-test/lib/mtr_cases.pl:
Auto merged
mysql-test/lib/mtr_report.pl:
Auto merged
mysql-test/suite/binlog/r/binlog_stm_blackhole.result:
Auto merged
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
Auto merged
mysql-test/suite/rpl_ndb/t/disabled.def:
Auto merged
sql/ha_ndbcluster_binlog.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log_event_old.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/rpl_rli.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_binlog.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_string.cc:
Auto merged
mysql-test/Makefile.am:
SCCS merged
mysql-test/mysql-test-run.pl:
Manual merge.
mysql-test/suite/binlog/t/disabled.def:
Manual merge.
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
Manual merge.
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
Manual merge.
sql/log_event.cc:
Manual merge.
,
Now, every transaction (including autocommit transactions) starts with
a BEGIN and ends with a COMMIT/ROLLBACK in the binlog.
Added a test case, and updated lots of test case result files.
mysql-test/r/multi_update.result:
Updated result file
mysql-test/r/sp_trans_log.result:
Updated result file
mysql-test/suite/binlog/r/binlog_innodb.result:
Updated result file
mysql-test/suite/binlog/r/binlog_multi_engine.result:
Updated result file
mysql-test/suite/binlog/r/binlog_stm_blackhole.result:
Updated result file
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
Updated result file
mysql-test/suite/ndb/r/ndb_binlog_format.result:
Updated result file
mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result:
Updated result file
mysql-test/suite/rpl/r/rpl_row_charset_innodb.result:
Updated result file
mysql-test/suite/rpl/r/rpl_row_create_table.result:
Updated result file
mysql-test/suite/rpl/r/rpl_row_log_innodb.result:
Updated result file
mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result:
Updated result file
mysql-test/suite/rpl/r/rpl_truncate_3innodb.result:
Updated result file
mysql-test/suite/rpl/t/rpl_row_create_table.test:
Updated result file
mysql-test/suite/rpl_ndb/r/rpl_ndb_stm_innodb.result:
Updated result file
sql/log.cc:
- Always write BEGIN and COMMIT around statements, even in autocommit
mode.
- Added comments for binlog_commit and binlog_rollback.
sql/log_event.cc:
Added debug trigger to avoid writing xid events to the binlog.
mysql-test/suite/rpl_ndb/r/rpl_ndb_transaction.result:
Results for new test case
mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction-master.opt:
Options for new test case
mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction-slave.opt:
Options for new test case
mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test:
Added new test case.
into mysql.com:/home/bar/mysql-work/mysql-5.1.b29562v2
mysql-test/suite/rpl_ndb/t/disabled.def:
Auto merged
sql/ha_ndbcluster_binlog.cc:
Auto merged
sql/log_event.cc:
Auto merged
mysql-test/extra/rpl_tests/rpl_row_basic.test:
changes due to the strict mode gets default. This hunk is being added after merging
with changes from another bug fixes.
mysql-test/suite/rpl/r/rpl_ignore_table.result:
results changed
mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
results changed
mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
results changed
mysql-test/suite/rpl/t/rpl_ignore_table.test:
two queries on mysql db tables are replicated according to binlog_format, ie
in row-based when that is requested. Due to cancelling the idempotent default
row based events that previously exectuted successfully now stop the slave sql
thread.
We have to explicitly request the idempotent slave execution mode.
mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_advance.result:
results changed. They are being committed only now since there was another
bug which fixes my working clone did not have.
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
results changed
sql/log_event.cc:
typo in manual merge earlier
into dl145j.mysql.com:/tmp/andrei/bug31552
mysql-test/extra/rpl_tests/rpl_row_basic.test:
Auto merged
mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
Auto merged
mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
Auto merged
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
Auto merged
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
Auto merged
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/sql_class.h:
Auto merged
sql/log_event.cc:
manual merge
without PK
Bug#31609 Not all RBR slave errors reported as errors
bug#32468 delete rows event on a table with foreign key constraint fails
The first two bugs comprise idempotency issues.
First, there was no error code reported under conditions of the bug
description although the slave sql thread halted.
Second, executions were different with and without presence of prim key in
the table.
Third, there was no way to instruct the slave whether to ignore an error
and skip to the following event or to halt.
Fourth, there are handler errors which might happen due to idempotent
applying of binlog but those were not listed among the "idempotent" error
list.
All the named issues are addressed.
Wrt to the 3rd, there is the new global system variable, changeble at run
time, which controls the slave sql thread behaviour.
The new variable allows further extensions to mimic the sql_mode
session/global variable.
To address the 4th, the new bug#32468 had to be fixed as it was staying
in the way.
include/my_bitmap.h:
basic operations with bits of an integer type are added.
mysql-test/extra/rpl_tests/rpl_foreign_key.test:
regression test for bug#32468
mysql-test/extra/rpl_tests/rpl_row_basic.test:
changes due to bug#31552/31609 idempotency is not default any longer
mysql-test/extra/rpl_tests/rpl_row_tabledefs.test:
changes due to bug#31552/31609 idempotency is not default any longer
mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result:
results changed
mysql-test/suite/rpl/r/rpl_idempotency.result:
results changed
mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result:
results changed
mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
results changed
mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
results changed
mysql-test/suite/rpl/r/rpl_row_mystery22.result:
results changed
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
results changed
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
results changed
mysql-test/suite/rpl/r/rpl_temporary_errors.result:
results changed
mysql-test/suite/rpl/t/rpl_idempotency.test:
extenstions to the test providing testing of complements to the
idempotent error set and checking how slave halts when it faces an error
from the list when the mode is STRICT.
mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test:
changes due to bug#31552/31609 idempotency is not default any longer.
mysql-test/suite/rpl/t/rpl_row_mystery22.test:
changes due to bug#31552/31609 idempotency is not default any longer
mysql-test/suite/rpl/t/rpl_temporary_errors.test:
changes due to bug#31552/31609 idempotency is not default any longer
mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_advance.result:
results changed
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
results changed
sql/log_event.cc:
the fix for bug#32468 delete rows event on a table with foreign key constraint fails
ensures the flags are set at proper time so that their values will be caught
by innodb.
reseting the flags is done along the common error and errorless execution
path.
The list of idempotent error is extended with foreign keys related items.
NDB engine write events are designed with the replace sematics in mind.
Therefore the corrsponding ndb handler's flag are (re)set regardless of
the slave's execution mode.
Rows_log_event::write_row() starts using the bool replace argument as its
caller sets it depending on the event's execution mode.
sql/log_event.h:
adding a new member to hold the slave's mode during execution of the event.
sql/mysql_priv.h:
changes to link the command line option with the new global sys var.
sql/mysqld.cc:
introduction of the new command line option.
providing its initialization to a default.
changes to link the command line option with the new global sys var.
sql/rpl_rli.cc:
rli post-event-execution cleanup restores the default bits.
sql/set_var.cc:
The new "standard" sys_var_set class' and the new global system var related
declarations and definitions.
fix_slave_exec_mode() is used as with the update method of a new class so
as at time of the command line arguments parsing.
sql/set_var.h:
new declarations. The class for the new global sys var is based on
yet another new "standard" one.
sql/share/errmsg.txt:
slave_exec_mode setting error;
slave inconsistency error which may be not an error when the intention
is "idempotent". I.e consisting of row-based events binlog is being
applied for the 2nd (more) time.
sql/sql_class.h:
The names for the bits of the new sever slave_exec_mode_options.
mysql-test/suite/rpl/t/rpl_idempotency-master.opt:
innodb is necessary
mysql-test/suite/rpl/t/rpl_idempotency-slave.opt:
innodb is necessary, as well as the tests start with non-default
IDEMPOTENT slave execution mode.
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test:
Auto merged
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraColMaster.result:
Auto merged
mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result:
manual merge
mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result:
manual merge
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/mysqld.cc:
Auto merged
Problem: some pieces of code relied on the default character
set settings, which didn't work in case of default character set
ucs2.
Fix: Specifying character set explicitly, not to depend on
the default settings.
mysql-test/suite/rpl_ndb/r/rpl_ndb_ctype_ucs2_def.result:
Recording correct test result
mysql-test/suite/rpl_ndb/t/disabled.def:
Enabling test
sql/ha_ndbcluster_binlog.cc:
Character set of the NDB helper tables should
not rely of the default settings, to avoid creating
tables in different character sets on master and slave.
Adding explicit character set. UTF8 should be fine.
character_set_client should not rely on the default
character set settings, which can be ucs2. Helper SQL queries
sent by NDB are all in pure ASCII. Setting client_character_set
to latin1.
sql/log_event.cc:
Adding assert to make sure that binary log does not have
queries in character set which parser does not understand
(e.g. ucs2).
into dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
client/mysql.cc:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/r/mysql.result:
Auto merged
mysql-test/suite/ndb/r/ndb_dd_basic.result:
Auto merged
mysql-test/suite/rpl/r/rpl_extraCol_innodb.result:
Auto merged
mysql-test/suite/rpl/r/rpl_extraCol_myisam.result:
Auto merged
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
Auto merged
mysql-test/t/ctype_uca.test:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
mysql-test/t/innodb.test:
Auto merged
mysql-test/t/mysql.test:
Auto merged
mysql-test/t/partition.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
sql/field.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/innodb.result:
Manual merge.
into mysql.com:/home/gluh/MySQL/Merge/5.1-opt
BitKeeper/etc/ignore:
auto-union
mysql-test/r/events_bugs.result:
Auto merged
mysql-test/r/partition.result:
Auto merged
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/t/partition.test:
Auto merged
mysql-test/t/subselect.test:
Auto merged
mysql-test/t/variables.test:
Auto merged
sql/field.cc:
Auto merged
sql/ha_partition.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_partition.cc:
Auto merged
sql/sql_plugin.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_udf.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/share/errmsg.txt:
Auto merged
tests/mysql_client_test.c:
Auto merged
mysql-test/r/select.result:
manual merge
mysql-test/t/select.test:
manual merge
into dl145h.mysql.com:/data0/mkindahl/mysql-5.1-new-rpl
mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/suite/rpl/include/rpl_mixed_dml.inc:
Auto merged
mysql-test/suite/rpl/r/rpl_bug31076.result:
Auto merged
mysql-test/suite/rpl/t/rpl_bug31076.test:
Auto merged
mysql-test/suite/rpl/t/rpl_innodb_bug28430.test:
Auto merged
mysql-test/suite/rpl_ndb/t/disabled.def:
Auto merged
sql/field.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/log_event_old.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
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/sql_yacc.yy:
Auto merged
mysql-test/t/partition.test:
Manual merge.
BitKeeper/deleted/.del-rpl_row_extraColmaster_ndb.result~a2c64bae75b49d2:
Manual merge.
mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result:
Manual merge.
mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result:
Manual merge.
mysql-test/suite/rpl/t/disabled.def:
Manual merge.
sql/sql_delete.cc:
Manual merge.
Pushing test case for bug only. Bug already fixed as a result of the patch for BUG#19958.
mysql-test/extra/rpl_tests/rpl_row_basic.test:
Adding test to see that no error is given on slave when deleting
rows that don't exist on table without primary key.
mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
Result change.
mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
Result change.
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
Result change.
- Add test case
---
Bug#28170 replicate-ignore-db=mysql should not ignore mysql.ndb_apply_status
- Add test case
mysql-test/suite/rpl_ndb/r/rpl_ndb_apply_status.result:
New BitKeeper file ``mysql-test/suite/rpl_ndb/r/rpl_ndb_apply_status.result''
mysql-test/suite/rpl_ndb/t/rpl_ndb_apply_status-master.opt:
New BitKeeper file ``mysql-test/suite/rpl_ndb/t/rpl_ndb_apply_status-master.opt''
mysql-test/suite/rpl_ndb/t/rpl_ndb_apply_status.test:
New BitKeeper file ``mysql-test/suite/rpl_ndb/t/rpl_ndb_apply_status.test''
into mysql.com:/usr/clones/rpl-push
mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
Auto merged
mysql-test/suite/rpl/r/rpl_extraCol_innodb.result:
Auto merged
mysql-test/suite/rpl/r/rpl_extraCol_myisam.result:
Auto merged
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
Auto merged
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
mysql-test/suite/rpl/r/rpl_bug31076.result:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/sql_update.cc:
Auto merged
storage/ndb/include/ndbapi/Ndb.hpp:
Auto merged
mysql-test/suite/rpl/t/rpl_bug31076.test:
manual merge
into kindahl-laptop.dnsalias.net:/home/bk/b28618-mysql-5.1-rpl
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
Auto merged
sql/log_event.cc:
Auto merged
sql/log_event.h:
Auto merged
sql/rpl_rli.h:
Auto merged
sql/slave.cc:
Auto merged
is possible):
When skipping the beginning of a transaction starting with BEGIN, the OPTION_BEGIN
flag was not set correctly, which caused the slave to not recognize that it was
inside a group. This patch sets the OPTION_BEGIN flag for BEGIN, COMMIT, ROLLBACK,
and XID events. It also adds checks if inside a group before decreasing the
slave skip counter to zero.
Begin_query_log_event was not marked that it could not end a group, which is now
corrected.
mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
Correcting slave skip counter to get the correct behaviour.
mysql-test/suite/rpl/r/rpl_slave_skip.result:
Result change.
mysql-test/suite/rpl/t/rpl_slave_skip.test:
Adding tests to check that skipping works for transactions:
- Skipping one group with BEGIN first
- Skipping two groups with BEGIN first
- Skipping one group without BEGIN first but with AUTOCOMMIT=0
- LOAD DATA INFILE under statement-based replication
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
Result change.
sql/log_event.cc:
Adding checks if we're in a group when the slave skip counter is 1.
In that case, we should keep going.
Adding helping member function Log_event::continue_group() denoting
that this event cannot end a group, and if the skip counter indicates
that the group ends after this event, it should not decrease the skip
counter.
Query_log_event will change the OPTION_BEGIN flag for BEGIN, COMMIT, and
ROLLBACK, even when skipping because of a positive skip count, and
Xid_log_event will also affect the OPTION_BEGIN flag, even when being
skipped.
Begin_load_query_log_event cannot end a group, so it is marked to
continue the group.
sql/log_event.h:
Adding helper function Log_event::continue_group().
sql/rpl_rli.h:
Adding Relay_log_info::get_flag() to get the value of a
replication flag.
sql/slave.cc:
Adding debug output and changing debug message.
mysql-test/suite/rpl/data/rpl_bug28618.dat:
New BitKeeper file ``mysql-test/suite/rpl/data/rpl_bug28618.dat''
mysql-test/suite/rpl/t/rpl_slave_skip-slave.opt:
New BitKeeper file ``mysql-test/suite/rpl/t/rpl_slave_skip-slave.opt''
Back porting NDB test case
mysql-test/suite/rpl_ndb/t/rpl_ndb_extraColMaster.test:
Back porting NDB test case
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraColMaster.result:
Back porting NDB test case
mysql-test/suite/rpl_ndb/t/rpl_ndb_charset.test:
Updated test to run for both row and mixed replication testing
mysql-test/suite/rpl_ndb/r/rpl_ndb_charset.result:
Updated results file
mysql-test/extra/rpl_tests/rpl_row_charset.test:
Updated test to specify the engine in the create. In addition had to add BIG SQL for NDB
mysql-test/suite/rpl/r/rpl_row_charset.result:
Updated results file
mysql-test/suite/rpl/t/rpl_row_charset_innodb.test:
Created a wrapper to test innodb storage engine as well
mysql-test/suite/rpl/t/rpl_row_charset_innodb-master.opt:
Option file to ensure innodb on master
mysql-test/suite/rpl/t/rpl_row_charset_innodb-slave.opt:
Option file to ensure innodb on slave
mysql-test/suite/rpl/r/rpl_row_charset_innodb.result:
New results file for innodb test case
Merge with 5.0-opt.
mysql-test/r/binlog_unsafe.result:
Merge with 5.0-opt.
mysql-test/r/events_bugs.result:
Merge with 5.0-opt.
mysql-test/r/events_trans.result:
Merge with 5.0-opt.
mysql-test/r/sp.result:
Merge with 5.0-opt.
mysql-test/r/sp_gis.result:
Merge with 5.0-opt.
mysql-test/r/xml.result:
Merge with 5.0-opt.
mysql-test/suite/rpl/r/rpl_incident.result:
Merge with 5.0-opt.
mysql-test/suite/rpl/r/rpl_loaddata_fatal.result:
Merge with 5.0-opt.
mysql-test/suite/rpl/r/rpl_udf.result:
Merge with 5.0-opt.
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
Merge with 5.0-opt.
mysql-test/suite/ndb/r/ndb_dd_basic.result:
Merge with 5.0-opt.
mysql-test/suite/ndb/r/ndb_dd_ddl.result:
Merge with 5.0-opt.
mysql-test/suite/ndb/r/ndb_gis.result:
Merge with 5.0-opt.
mysql-test/suite/ndb/r/ndb_row_format.result:
Merge with 5.0-opt.
mysql-test/suite/ndb/r/ndb_single_user.result:
Merge with 5.0-opt.
into sita.local:/Users/tsmith/m/bk/maint/51
sql/field.cc:
Auto merged
sql/log_event_old.cc:
Auto merged
sql/rpl_record.h:
Auto merged
sql/rpl_utility.cc:
Auto merged
sql/rpl_utility.h:
Auto merged
sql/slave.h:
Auto merged
storage/innobase/handler/ha_innodb.cc:
Auto merged
sql/log_event.cc:
Manual merge
sql/log_event.h:
Manual merge
sql/log_event_old.h:
Manual merge
sql/rpl_record.cc:
Manual merge
sql/slave.cc:
Manual merge
into ramayana.hindu.god:/home/tsmith/m/bk/maint/51
configure.in:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/r/partition_pruning.result:
Auto merged
mysql-test/r/select.result:
Auto merged
mysql-test/suite/rpl/include/rpl_mixed_ddl.inc:
Auto merged
mysql-test/suite/rpl/include/rpl_mixed_dml.inc:
Auto merged
mysql-test/suite/rpl/r/rpl_timezone.result:
Auto merged
mysql-test/suite/rpl/t/rpl_relayspace.test:
Auto merged
mysql-test/suite/rpl/t/rpl_timezone.test:
Auto merged
mysql-test/t/select.test:
Auto merged
netware/BUILD/compile-netware-END:
Auto merged
netware/Makefile.am:
Auto merged
sql/field.cc:
Auto merged
sql/ha_partition.cc:
Auto merged
sql/ha_partition.h:
Auto merged
sql/item.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/time.cc:
Auto merged
storage/innobase/handler/ha_innodb.cc:
Auto merged
storage/innobase/log/log0recv.c:
Auto merged
storage/innobase/srv/srv0srv.c:
Auto merged
storage/innobase/trx/trx0trx.c:
Auto merged
mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result:
manual merge (use remote)
mysql-test/suite/rpl/t/disabled.def:
Manual merge - both rpl_innodb_mixed_ddl and rpl_innodb_mixed_dml
are fixed, and should be run as part of the rpl suite.
using TPC-B):
Problem: A RBR event can contain incomplete row data (only key value and
fields which have been changed). In that case, when the row is unpacked
into record and written to a table, the missing fields get incorrect NULL
values leading to master-slave inconsistency.
Solution: Use values found in slave's table for columns which are not given
in the rows event. The code for writing a single row uses the following
algorithm:
1. unpack row_data into table->record[0],
2. try to insert record,
3. if duplicate record found, fetch it into table->record[0],
4. unpack row_data into table->record[0],
5. write table->record[0] into the table.
Where row_data is the row as stored in the data area of a rows event.
Thus:
a) unpacking of row_data happens at the time when row is written into
a table,
b) when unpacking (in step 4), only columns present in row_data are
overwritten - all other columns remain as they were found in the table.
Since all data needed for the above algorithm is stored inside
Rows_log_event class, functions which locate and write rows are turned
into methods of that class.
replace_record() -> Rows_log_event::write_row()
find_and_fetch_row() -> Rows_log_event::find_row()
Both methods take row data from event's data buffer - the row being
processed is pointed by m_curr_row. They unpack the data as needed into
table's record buffers record[0] or record[1]. When row is unpacked,
m_curr_row_end is set to point at next row in the data buffer.
Other changes introduced in this changeset:
- Change signature of unpack_row(): don't report errors and don't
setup table's rw_set here. Errors can happen only when setting default
values in prepare_record() function and are detected there.
- In Rows_log_event and derived classes, don't pass arguments to
the execution primitives (do_...() member functions) but use class
members instead.
- Move old row handling code into log_event_old.cc to be used by
*_rows_log_event_old classes.
Also, a new test rpl_ndb_2other is added which tests basic replication
from master using ndb tables to slave storing the same tables using
(possibly) different engine (myisam,innodb).
Test is based on existing tests rpl_ndb_2myisam and rpl_ndb_2innodb.
However, these tests doesn't work for various reasons and currently are
disabled (see BUG#19227).
The new test differs from the ones it is based on as follows:
1. Single test tests replication with different storage engines on slave
(myisam, innodb, ndb).
2. Include file extra/rpl_tests/rpl_ndb_2multi_eng.test containing
original tests is replaced by extra/rpl_tests/rpl_ndb_2multi_basic.test
which doesn't contain tests using partitioned tables as these don't work
currently. Instead, it tests replication to a slave which has more or
less columns than master.
3. Include file include/rpl_multi_engine3.inc is replaced with
include/rpl_multi_engine2.inc. The later differs by performing slightly
different operations (updating more than one row in the table) and
clearing table with "TRUNCATE TABLE" statement instead of "DELETE FROM"
as replication of "DELETE" doesn't work well in this setting.
4. Slave must use option --log-slave-updates=0 as otherwise execution of
replication events generated by ndb fails if table uses a different
storage engine on slave (see BUG#29569).
sql/log_event.cc:
- Initialization of new Rows_log_event members.
- Fixing some typos in documentation.
In Rows_log_event::do_apply_event:
- Set COMPLETE_ROWS_F flag (when master and slave have the same number of
columns and all colums are present in the row)
- Move initialization of tables write/read sets here, outside the rows
processing loop (and out of unpack_row() function).
- Remove calls to do_prepare_row() - no longer needed.
- Add code managing m_curr_row and m_curr_row_end pointers.
- Change signatures of row processing methods of Rows_log_event and it
descendants - now most arguments are taken from class members.
- Remove do_prepare_row() methods which are no longer used.
- The auto_afree_ptr template is moved to rpl_utility.h (so that it can
be used in log_event_old.cc).
- Removed copy_extra_fields() function - no longer used.
In Rows_log_event::write_row (former replace_record):
- The old code is moved to log_event_old.cc.
- Use prepare_record() and non-destructive unpack_current_row() to fill record
with data.
- In case a record being inserted already exists on slave and row data is
incomplete use the record found and non-destructive unpack_current_row() to
combine new column values with existing ones.
- More debug info added.
In Rows_log_event::find_row (former find_and_fetch_row function):
- The old code is moved to log_event_old.cc.
- Unpacking of the row is moved here.
- In case of search using PK, the key data is prepared here.
- More debug info added.
- Remove initialization of Rows_log_event::m_after_image buffer which is no
longer used.
- Use new row unpacking methods in Update_rows_log_event::do_exec_row() to
create before and after image.
Note: all existing code used by Rows_log_event::do_apply_event() has been moved
to log_event_old.cc to be used by *_rows_log_event_old classes.
sql/log_event.h:
- Add new COMPLETE_ROWS_F flag in Rows_log_event.
- Add Rows_log_event members describing the row being processed.
- Add a pointer to key buffer which is used in derived classes.
- Add new methods: find__row(), write_row() and unpack_current_row().
- Change signatures of do_...() methods (replace method arguments by
class members).
- Remove do_prepare_row() method which is no longer used.
- Update method documentation.
- Add Old_rows_log_event class, which contains the old row processing code, as
a friend of Rows_log_event so that it can access all members of an event
instance.
sql/log_event_old.cc:
Move here old implementation of Rows_log_event::do_apply_event() and
helper methods.
sql/log_event_old.h:
- Define new class Old_rows_log_event encapsulating old version of
Rows_log_event::do_apply_event() and the helper methods.
- Add the Old_rows_log_event class as a base for *_old versions of RBR event
classes, ensure that the old version of do_apply_event() is called.
- For *_old classes, declare the helper methods used in the old version of
do_apply_event().
sql/rpl_record.cc:
- Make unpack_row non-destructive for columns not present in the row.
- Don't fill read/write set here as it is done outside these functions.
- Move initialization of a record with default values to a separate
function prepare_record().
sql/rpl_record.h:
- Change signature of unpack_row().
- Declare function prepare_record().
sql/rpl_utility.cc:
Make tabe_def::calc_field_size() a const method.
sql/rpl_utility.h:
Make table_def::calc_field_size() a const method.
Move auto_afree_ptr template here so that it can be re-used (currently
in log_event.cc and log_event_old.cc). Similar with DBUG_PRINT_BITSET
macro.
mysql-test/extra/rpl_tests/rpl_ndb_2multi_basic.test:
Modification of rpl_ndb_2multi_eng test. Tests with partitioned tables
are removed and a setup with slave having different number of columns
than master is added.
mysql-test/include/rpl_multi_engine2.inc:
Modification of rpl_multi_engine3.inc which operates on more rows and
replaces "DELETE FROM t1" with "TRUNCATE TABLE t1" as the first form
doesn't replicate in NDB -> non-NDB setting (BUG#28538).
mysql-test/suite/rpl_ndb/r/rpl_ndb_2other.result:
Results of the test.
mysql-test/suite/rpl_ndb/t/rpl_ndb_2other-slave.opt:
Test options. --log-slave-updates=0 is compulsory as otherwise non-NDB
slave applying row events from NDB master will fail when trying to log
them.
mysql-test/suite/rpl_ndb/t/rpl_ndb_2other.test:
Test replication of NDB table to slave using other engine. The main test
is in extra/rpl_tests/rpl_ndb_2multi_basic.test. It is included here
several times with different settings of default storage engine on slave.
into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
mysql-test/suite/rpl/r/rpl_extraCol_innodb.result:
Auto merged
mysql-test/suite/rpl/r/rpl_extraCol_myisam.result:
Auto merged
mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
Auto merged
sql/field.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/field.h:
Manual merge