Commit graph

58 commits

Author SHA1 Message Date
unknown
f343addfbd Merge poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-rpl-merge
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
2008-02-13 12:36:57 +01:00
unknown
4a7d3293b7 The test rpl_row_charset and it dependent rpl_ndb_charset is
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.
2008-02-13 11:37:06 +01:00
unknown
3b06c7f0c3 corrected really strange test 2008-02-12 14:50:36 +01:00
unknown
1be0f4f0bc Merge poseidon.ndb.mysql.com:/home/tomas/cge-5.1
into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge


sql/ha_ndbcluster.cc:
  Auto merged
storage/ndb/src/ndbapi/DictCache.cpp:
  Auto merged
2008-02-11 17:38:34 +01:00
unknown
9c99798b75 default changed not to run idempotent, but test requires it because of how ndb logs updates as write 2008-02-11 15:26:38 +01:00
unknown
07fa8dd1e8 correcting wrong test case 2008-02-11 15:06:07 +01:00
unknown
a0d88ebb0b Disable sporadically failing test cases (Bug#34454).
mysql-test/suite/rpl_ndb/t/disabled.def:
  Disable sporadically failing test cases.
2008-02-11 14:34:53 +03:00
unknown
263b4ff3de Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1
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
2008-02-06 16:16:49 +01:00
unknown
72de77987e Merge bk-internal:/home/bk/mysql-5.1-new-ndb
into  pilot.mysql.com:/data/msvensson/mysql/mysql-5.1-ndb


storage/ndb/src/common/util/OutputStream.cpp:
  Auto merged
2008-02-06 14:38:08 +01:00
unknown
5d66c3565a Bug #34244 Test ndb_binlog_log_bin fails for 'drop table if
exists t1,t2,t3'
Bug #34245 Test ndb_binlog_multi fails for 'CREATE TABLE'
Bug #34246 Test rpl_ndb_transaction fails with 'Failed to create
           'mysql/ndb_apply_status'

Tests cases didn't wait for cluster to come up due to a typo
in have_multi_ndb.inc.


mysql-test/include/have_multi_ndb.inc:
  SHOW TABLES is case-sensitive in the pattern to LIKE.
mysql-test/suite/ndb/t/disabled.def:
  Enabling tests.
mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test:
  Adding include of have_debug since test requires that.
sql/sql_repl.cc:
  Replacing 'return' with 'DBUG_RETURN' in debug-traced function.
2008-02-03 11:48:45 +01:00
unknown
a5c2f57694 Post-merge fixes to make tests pass.
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.
2008-01-13 22:13:17 +01:00
unknown
27e1a36df9 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
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.
2008-01-11 14:20:06 +01:00
unknown
1754c58d99 Post-merge fixes to make tests pass.
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.
2008-01-11 13:25:26 +01:00
unknown
ac167eca6e Post-merge fixes to make tests pass.
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*
2008-01-09 12:55:04 +01:00
unknown
6074712beb Bug#32648 Test failure between NDB Cluster and other engines
mysql-test/suite/ndb_team/t/rpl_ndb_extraColMaster.test:
  Rename: mysql-test/suite/rpl_ndb/t/rpl_ndb_extraColMaster.test -> mysql-test/suite/ndb_team/t/rpl_ndb_extraColMaster.test
mysql-test/suite/ndb_team/r/rpl_ndb_extraColMaster.result:
  Rename: mysql-test/suite/rpl_ndb/r/rpl_ndb_extraColMaster.result -> mysql-test/suite/ndb_team/r/rpl_ndb_extraColMaster.result
mysql-test/suite/ndb_team/t/rpl_ndb_mix_innodb-master.opt:
  Rename: mysql-test/suite/rpl_ndb/t/rpl_ndb_mix_innodb-master.opt -> mysql-test/suite/ndb_team/t/rpl_ndb_mix_innodb-master.opt
mysql-test/suite/ndb_team/t/rpl_ndb_mix_innodb.test:
  Rename: mysql-test/suite/rpl_ndb/t/rpl_ndb_mix_innodb.test -> mysql-test/suite/ndb_team/t/rpl_ndb_mix_innodb.test
mysql-test/suite/ndb_team/r/rpl_ndb_mix_innodb.result:
  Rename: mysql-test/suite/rpl_ndb/r/rpl_ndb_mix_innodb.result -> mysql-test/suite/ndb_team/r/rpl_ndb_mix_innodb.result
mysql-test/suite/ndb_team/t/rpl_ndb_dd_advance.test:
  Rename: mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_advance.test -> mysql-test/suite/ndb_team/t/rpl_ndb_dd_advance.test
mysql-test/suite/ndb_team/r/rpl_ndb_dd_advance.result:
  Rename: mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_advance.result -> mysql-test/suite/ndb_team/r/rpl_ndb_dd_advance.result
2008-01-04 15:33:01 +01:00
unknown
c9cbd6a48d Fixed errors in pushbuild by updating test and result files.
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.
2007-12-20 22:00:42 +01:00
unknown
48891f960b Merge bk-internal:/home/bk/mysql-5.1-new-ndb
into  pilot.mysql.com:/data/msvensson/mysql/mysql-5.1-ndb
2007-12-20 10:12:56 +01:00
unknown
047ec78f2c Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
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.
  ,
2007-12-19 18:51:46 +01:00
unknown
44efa9c18b BUG#26395: if crash during autocommit update to transactional table on master, slave fails
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.
2007-12-14 14:40:45 +01:00
unknown
f989bb4f54 Merge mysql.com:/home/bar/mysql-work/mysql-5.1.b29562
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
2007-12-14 13:41:36 +04:00
unknown
e63f750439 Enabled test rpl_ndb_ddl 2007-12-11 11:51:14 +01:00
unknown
7ed596398b bug#29562 default collation of ucs2_unicode_ci crashes slave
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).
2007-11-28 15:35:25 +04:00
unknown
72cafd4787 Disabling failing test that has been reported as bug.
mysql-test/suite/rpl_ndb/t/disabled.def:
  Disabling failing test.
2007-11-26 15:36:23 +01:00
unknown
850fed3e2a Post-merge fixes.
mysql-test/r/innodb.result:
  Result change.
mysql-test/suite/rpl/r/rpl_binlog_grant.result:
  Result change.
mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result:
  Result change.
mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result:
  Result change.
mysql-test/suite/rpl/t/disabled.def:
  Enabling some tests.
mysql-test/suite/rpl/t/rpl_binlog_grant.test:
  Adding missing master-slave.inc, causing previous tests to pollute
  the binary log.
mysql-test/suite/rpl_ndb/t/disabled.def:
  Enabling some tests.
2007-11-23 12:51:14 +01:00
unknown
19ef3ae88d Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1
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.
2007-11-14 11:07:30 +01:00
unknown
9fb3f9a8f4 Bug#28170 replicate-ignore-db=mysql should not ignore mysql.ndb_apply_status
- 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''
2007-11-02 13:07:14 +01:00
unknown
81246745a9 disable test 2007-11-01 17:24:21 +01:00
unknown
f75923b1b9 disable tests
BitKeeper/etc/ignore:
  Added libmysql_r/client_settings.h to the ignore list
2007-11-01 12:02:41 +01:00
unknown
7619a5efc6 Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into  kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl


sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/rpl_record.cc:
  Manual merge.
2007-10-12 13:24:28 +02:00
unknown
bc2ecae3e8 Merge kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl
into  kindahl-laptop.dnsalias.net:/home/bk/b29549-mysql-5.1-target-5.1.22


mysql-test/suite/rpl/t/disabled.def:
  Auto merged
mysql-test/suite/rpl_ndb/t/disabled.def:
  Auto merged
sql/log.cc:
  Auto merged
sql/rpl_record.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
BitKeeper/deleted/.del-rpl_ndb_innodb2ndb.result~1:
  Delete: mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result
BitKeeper/deleted/.del-rpl_ndb_myisam2ndb.result~1:
  Delete: mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result
mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb-slave.opt:
  Manual merge
mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test:
  Manual merge
mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-slave.opt:
  Manual merge
mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test:
  Manual merge
sql/log_event.cc:
  Manual merge
sql/field.cc:
  Manual merge and adding comment.
sql/field.h:
  Manual merge.
2007-10-12 09:40:24 +02:00
unknown
06fb8c2d10 BUG#29549 (Endians: test failures on Solaris):
Refactoring code to add parameter to pack() and unpack() functions with
purpose of indicating if data should be packed in little-endian or
native order. Using new functions to always pack data for binary log
in little-endian order. The purpose of this refactoring is to allow
proper implementation of endian-agnostic pack() and unpack() functions.

Eliminating several versions of virtual pack() and unpack() functions
in favor for one single virtual function which is overridden in
subclasses.

Implementing pack() and unpack() functions for some field types that
packed data in native format regardless of the value of the
st_table_share::db_low_byte_first flag.

The field types that were packed in native format regardless are:
Field_real, Field_decimal, Field_tiny, Field_short, Field_medium,
Field_long, Field_longlong, and Field_blob.

Before the patch, row-based logging wrote the rows incorrectly on
big-endian machines where the storage engine defined its own
low_byte_first() to be FALSE on big-endian machines (the default
is TRUE), while little-endian machines wrote the fields in correct
order. The only known storage engine that does this is NDB. In effect,
this means that row-based replication from or to a big-endian
machine where the table was using NDB as storage engine failed if the
other engine was either non-NDB or on a little-endian machine.

With this patch, row-based logging is now always done in little-endian
order, while ORDER BY uses the native order if the storage engine
defines low_byte_first() to return FALSE for big-endian machines.

In addition, the max_data_length() function available in Field_blob
was generalized to the entire Field hierarchy to give the maximum
number of bytes that Field::pack() will write.


mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test:
  Sorting by columns that produces deterministic order.
mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result:
  Result change.
mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result:
  Result change.
mysql-test/suite/rpl/r/rpl_row_extraColmaster_ndb.result:
  Result change.
mysql-test/suite/rpl/t/disabled.def:
  Enabling tests.
mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test:
  Adding missing sync_slave_with_master causing slave to keep tables
  after shutdown.
mysql-test/suite/rpl_ndb/t/disabled.def:
  Enabling tests.
mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb-slave.opt:
  Adding --new option
mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test:
  Adding have_log_bin.
mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-slave.opt:
  Adding --new option
mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test:
  Adding have_log_bin
mysql-test/t/partition.test:
  Adding have_archive, since that is used in the test.
sql/field.cc:
  Eliminating all two-argument pack() and unpack() functions and moving
  functionality into the four-argument version. The four argument version
  is introduced so that it is possible to avoid using the storage engine
  default when writing and reading the packed format (the unpacked format
  still uses the storage engine's default). This is used by row-based
  replication to write the fields in a storage engine- and endian-agnostic
  format.
  
  Packing integral and floating-point numbers in little-endian format
  (if requested).
  
  Using pad_char for the field instead of spaces (0x20) when unpacking.
  
  Adding some Doxygen documentation.
  ---
  Adding max_data_length() to denote the maximum number of bytes that
  pack() will write.
  
  Adding casts to remove warnings for debug printouts.
sql/field.h:
  Eliminating all virtual pack() and unpack() functions except the four-
  argument version, which now is the function that shall be overridden.
  The two-argument versions are convenience functions, to prevent changes
  to code that uses these.
  
  Adding code to pack integer numbers and floating-point numbers in
  little-endian format, if requested.
  ---
  Adding max_data_length() to denote the maximum number of bytes that
  pack() will write.
sql/log.cc:
  Removing debug printout causing crash when starting NDB on Solaris.
sql/log_event.cc:
  Adding missing #ifndef causing compile failure. Adding debug printouts.
sql/rpl_record.cc:
  Debriding code. Using new pack() and unpack() functions to always pack
  fields little-endian. Adding debug printouts.
  ---
  Using max_data_length() when packing field into row.
  
  Adding casts to debug printouts.
sql/sql_show.cc:
  Adding code that causes crash on Solaris machines since printf() cannot
  handle NULL values for strings properly.
mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result:
  New BitKeeper file ``mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result''
mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result:
  New BitKeeper file ``mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result''
2007-10-11 18:18:05 +02:00
unknown
2510ac8c4f rpl_ndb_extraColMaster.test, rpl_ndb_extraColMaster.result:
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
2007-10-10 17:22:21 +02:00
unknown
de4cce5288 Updated NDB test to run for both RBR and MBR testing. In addition added test for Innodb and updated results files for all tests.
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
2007-10-09 19:51:57 +02:00
unknown
4a3825c4de tests actually work in statement based 2007-09-05 18:44:47 +02:00
unknown
cd2450a163 correct include file 2007-09-05 17:31:26 +02:00
unknown
5231a4d90b Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-target-5.1.22
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
2007-09-04 22:25:23 +02:00
unknown
7de80833d9 Disable rpl_ndb_2other, which has never worked on bigendian machines. 2007-08-30 14:13:05 -06:00
unknown
3a4ee96a2c Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-target-5.1.22
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge


sql/field.cc:
  Auto merged
2007-08-29 12:51:25 +02:00
unknown
d27ec7a5e7 Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue
- reverting patch as there where unknows sideeffects that we do not have time to follow up on just now
2007-08-29 09:44:37 +02:00
unknown
dc4849576e Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-target-5.1.22
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge


sql/field.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/log_event.h:
  Auto merged
sql/rpl_record.cc:
  Auto merged
sql/rpl_utility.cc:
  Auto merged
sql/rpl_utility.h:
  Auto merged
2007-08-28 11:22:24 +02:00
unknown
0f950d6c38 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-target-5.1.22
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-target-5.1.22
2007-08-28 07:45:14 +02:00
unknown
9cbc7792e6 Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue
sql/field.cc:
  Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue
  - correct previous patch
2007-08-28 07:42:43 +02:00
unknown
76cf8367a6 Merge quant.(none):/ext/mysql/bk/mysql-5.1-bug21842-5.1.22
into  quant.(none):/ext/mysql/bk/mysql-5.1-bug21842-5.1.22-merge
2007-08-27 21:15:20 +02:00
unknown
2bf5b1aa6c Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue
sql/field.cc:
  - always pack in little endian, irrespective of starage engine native format
  - always unpack as if it is atored in little endian, and unpack it to storage engine native format
2007-08-27 15:40:49 +02:00
unknown
3abd50cbf9 repair some rpl_ndb test cases
BitKeeper/deleted/.del-rpl_ndb_myisam2ndb-master.opt:
  Delete: mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-master.opt
mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result:
  BitKeeper file /home/tomas/mysql-5.1-target-5.1.22/mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result
mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result:
  BitKeeper file /home/tomas/mysql-5.1-target-5.1.22/mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result
2007-08-27 13:13:00 +02:00
unknown
642eda2229 BUG#21842 (Cluster fails to replicate to innodb or myisam with err 134
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.
2007-08-26 14:31:10 +02:00
unknown
96e63d07dd rpl_ndb_dd_partitions-slave.opt:
Rename: mysql-test/t/rpl_ndb_dd_partitions-slave.opt -> mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions-slave.opt
.del-rpl_stm_extraColmaster_ndb.result:
  Delete: mysql-test/r/rpl_stm_extraColmaster_ndb.result
.del-rpl_extraColmaster_myisam.test:
  Delete: mysql-test/t/rpl_extraColmaster_myisam.test
ndb_bug26793.result:
  Rename: mysql-test/r/ndb_bug26793.result -> mysql-test/suite/ndb/r/ndb_bug26793.result
.del-rpl_extraColmaster_innodb-slave.opt:
  Delete: mysql-test/t/rpl_extraColmaster_innodb-slave.opt
.del-rpl_extraColmaster_innodb-master.opt:
  Delete: mysql-test/t/rpl_extraColmaster_innodb-master.opt
.del-rpl_row_extraColmaster_ndb.test:
  Delete: mysql-test/t/rpl_row_extraColmaster_ndb.test
.del-rpl_row_extraColmaster_ndb.result:
  Delete: mysql-test/r/rpl_row_extraColmaster_ndb.result
.del-rpl_stm_extraColmaster_ndb.test:
  Delete: mysql-test/t/rpl_stm_extraColmaster_ndb.test
.del-rpl_extraColmaster_innodb.test:
  Delete: mysql-test/t/rpl_extraColmaster_innodb.test
ndb_bug26793.test:
  Rename: mysql-test/t/ndb_bug26793.test -> mysql-test/suite/ndb/t/ndb_bug26793.test
rpl_ndb_dd_partitions-master.opt:
  Rename: mysql-test/t/rpl_ndb_dd_partitions-master.opt -> mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions-master.opt
.del-rpl_colSize.test~d9690ba9ffd2b048:
  Delete: mysql-test/t/rpl_colSize.test


BitKeeper/deleted/.del-rpl_colSize.test~d9690ba9ffd2b048:
  Delete: mysql-test/t/rpl_colSize.test
BitKeeper/deleted/.del-rpl_extraColmaster_innodb-master.opt:
  Delete: mysql-test/t/rpl_extraColmaster_innodb-master.opt
BitKeeper/deleted/.del-rpl_extraColmaster_innodb-slave.opt:
  Delete: mysql-test/t/rpl_extraColmaster_innodb-slave.opt
BitKeeper/deleted/.del-rpl_extraColmaster_innodb.test:
  Delete: mysql-test/t/rpl_extraColmaster_innodb.test
BitKeeper/deleted/.del-rpl_extraColmaster_myisam.test:
  Delete: mysql-test/t/rpl_extraColmaster_myisam.test
BitKeeper/deleted/.del-rpl_row_extraColmaster_ndb.test:
  Delete: mysql-test/t/rpl_row_extraColmaster_ndb.test
BitKeeper/deleted/.del-rpl_stm_extraColmaster_ndb.test:
  Delete: mysql-test/t/rpl_stm_extraColmaster_ndb.test
mysql-test/suite/ndb/t/ndb_bug26793.test:
  Rename: mysql-test/t/ndb_bug26793.test -> mysql-test/suite/ndb/t/ndb_bug26793.test
mysql-test/suite/ndb/r/ndb_bug26793.result:
  Rename: mysql-test/r/ndb_bug26793.result -> mysql-test/suite/ndb/r/ndb_bug26793.result
BitKeeper/deleted/.del-rpl_row_extraColmaster_ndb.result:
  Delete: mysql-test/r/rpl_row_extraColmaster_ndb.result
BitKeeper/deleted/.del-rpl_stm_extraColmaster_ndb.result:
  Delete: mysql-test/r/rpl_stm_extraColmaster_ndb.result
mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions-master.opt:
  Rename: mysql-test/t/rpl_ndb_dd_partitions-master.opt -> mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions-master.opt
mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions-slave.opt:
  Rename: mysql-test/t/rpl_ndb_dd_partitions-slave.opt -> mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions-slave.opt
2007-08-21 16:26:00 +02:00
unknown
975acfbb60 Merge kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl
into  kindahl-laptop.dnsalias.net:/home/bk/b27972-mysql-5.1-rpl


mysql-test/suite/rpl_ndb/t/disabled.def:
  Auto merged
2007-07-29 20:04:07 +02:00
unknown
4fb6815468 BUG#27972 (Test failure for rpl_ndb_circular_simplex):
Removing a RESET MASTER inside the test since that will change binlog
positions in such a manner that the dual masters lose track of where
they acually are.


mysql-test/suite/rpl_ndb/r/rpl_ndb_circular_simplex.result:
  Result change.
mysql-test/suite/rpl_ndb/t/disabled.def:
  Enabling test.
mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_simplex.test:
  Removing a RESET MASTER since circular replication don't look kindly
  on truncating binlogs.
2007-07-27 15:06:46 +02:00
unknown
36f16bf862 BUG#29809 (Slave SQL errors in warnings file):
Adding code to filter out slave SQL errors since these are checked by
the tests themselves.


mysql-test/lib/mtr_report.pl:
  Filtering out slave SQL errors since these are handled by the
  tests themselves.
mysql-test/suite/rpl/t/disabled.def:
  Enabling disabled tests.
mysql-test/suite/rpl_ndb/r/rpl_truncate_7ndb.result:
  Result change.
mysql-test/suite/rpl_ndb/t/disabled.def:
  Enabling disabled tests.
2007-07-26 16:44:57 +02:00