diff options
Diffstat (limited to 'mysql-test/suite/binlog/t/binlog_table_map_optional_metadata_ucs2.test')
-rw-r--r-- | mysql-test/suite/binlog/t/binlog_table_map_optional_metadata_ucs2.test | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/mysql-test/suite/binlog/t/binlog_table_map_optional_metadata_ucs2.test b/mysql-test/suite/binlog/t/binlog_table_map_optional_metadata_ucs2.test new file mode 100644 index 00000000000..1e218acdfea --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_table_map_optional_metadata_ucs2.test @@ -0,0 +1,74 @@ +################################################################################ +# WL#4618 RBR: extended table metadata in the binary log +# +# Below metadata is logged into Table_map_log_event +# - signedness of numeric columns +# - charsets of character columns +# - column names +# - set/enum character sets and string values +# - primary key +# +# The first two are always logged. The others are controlled by system +# variable --binlog-row-metadata +# +# The test will verify if the metadata can be logged and printed by mysqlbinlog +# correctly. +# mysqlbinlog --print-table-metadata will print the extra metadata +################################################################################ +--source include/have_debug.inc +--source include/have_binlog_format_row.inc +--source include/have_ucs2.inc +--let $MYSQLD_DATADIR= `select @@datadir` +--let $binlog_file= $MYSQLD_DATADIR/master-bin.000001 + +--echo # +--echo # Verify that SET string values and character sets can be printed correctly +--echo # + +SET NAMES utf8; +CREATE TABLE t1( + c_set_1 SET("set1_v1_å", "set1_v2_ä", "set1_v3_ö"), + c_set_2 SET("set2_v1_å", "set2_v2_ä", "set2_v3_ö") CHARACTER SET ucs2); + +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1 VALUES("set1_v1_å", "set2_v2_ä"); +--source include/print_optional_metadata.inc + +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1 VALUES("set1_v1_å", "set2_v2_ä"); +--source include/print_optional_metadata.inc +INSERT INTO t1 VALUES("set1_v3_ö", "set2_v3_ö"); +INSERT INTO t1 VALUES("set1_v1_å", "set2_v1_å"); +SELECT c_set_1, HEX(c_set_1) FROM t1; +SELECT c_set_2, HEX(c_set_2) FROM t1; + +DROP TABLE t1; +RESET MASTER; + +--echo # +--echo # Verify that ENUM string values and character sets can be printed correctly +--echo # + +CREATE TABLE t1( + c_enum_1 ENUM("enum1_v1_å", "enum1_v2_ä", "enum1_v3_ö"), + c_enum_2 ENUM("enum2_v1_å", "enum2_v2_ä", "enum2_v3_ö") CHARACTER SET ucs2); + +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1 VALUES("enum1_v1_å", "enum2_v2_ä"); +--source include/print_optional_metadata.inc + + +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1 VALUES("enum1_v1_å", "enum2_v2_ä"); +--source include/print_optional_metadata.inc +INSERT INTO t1 VALUES("enum1_v3_ö", "enum2_v3_ö"); +INSERT INTO t1 VALUES("enum1_v1_å", "enum2_v1_å"); +SELECT c_enum_1, HEX(c_enum_1) FROM t1; +SELECT c_enum_2, HEX(c_enum_2) FROM t1; + +DROP TABLE t1; +RESET MASTER; + +SET GLOBAL binlog_row_metadata = NO_LOG; |