1################################################################################ 2# WL#4618 RBR: extended table metadata in the binary log 3# 4# Below metadata is logged into Table_map_log_event 5# - signedness of numeric columns 6# - charsets of character columns 7# - column names 8# - set/enum character sets and string values 9# - primary key 10# 11# The first two are always logged. The others are controlled by system 12# variable --binlog-row-metadata 13# 14# The test will verify if the metadata can be logged and printed by mysqlbinlog 15# correctly. 16# mysqlbinlog --print-table-metadata will print the extra metadata 17################################################################################ 18--source include/have_debug.inc 19--source include/have_binlog_format_row.inc 20--source include/have_ucs2.inc 21--let $MYSQLD_DATADIR= `select @@datadir` 22--let $binlog_file= $MYSQLD_DATADIR/master-bin.000001 23 24--echo # 25--echo # Verify that SET string values and character sets can be printed correctly 26--echo # 27 28SET NAMES utf8; 29CREATE TABLE t1( 30 c_set_1 SET("set1_v1_å", "set1_v2_ä", "set1_v3_ö"), 31 c_set_2 SET("set2_v1_å", "set2_v2_ä", "set2_v3_ö") CHARACTER SET ucs2); 32 33SET GLOBAL binlog_row_metadata = MINIMAL; 34INSERT INTO t1 VALUES("set1_v1_å", "set2_v2_ä"); 35--source include/print_optional_metadata.inc 36 37RESET MASTER; 38SET GLOBAL binlog_row_metadata = FULL; 39INSERT INTO t1 VALUES("set1_v1_å", "set2_v2_ä"); 40--source include/print_optional_metadata.inc 41INSERT INTO t1 VALUES("set1_v3_ö", "set2_v3_ö"); 42INSERT INTO t1 VALUES("set1_v1_å", "set2_v1_å"); 43SELECT c_set_1, HEX(c_set_1) FROM t1; 44SELECT c_set_2, HEX(c_set_2) FROM t1; 45 46DROP TABLE t1; 47RESET MASTER; 48 49--echo # 50--echo # Verify that ENUM string values and character sets can be printed correctly 51--echo # 52 53CREATE TABLE t1( 54 c_enum_1 ENUM("enum1_v1_å", "enum1_v2_ä", "enum1_v3_ö"), 55 c_enum_2 ENUM("enum2_v1_å", "enum2_v2_ä", "enum2_v3_ö") CHARACTER SET ucs2); 56 57SET GLOBAL binlog_row_metadata = MINIMAL; 58INSERT INTO t1 VALUES("enum1_v1_å", "enum2_v2_ä"); 59--source include/print_optional_metadata.inc 60 61 62RESET MASTER; 63SET GLOBAL binlog_row_metadata = FULL; 64INSERT INTO t1 VALUES("enum1_v1_å", "enum2_v2_ä"); 65--source include/print_optional_metadata.inc 66INSERT INTO t1 VALUES("enum1_v3_ö", "enum2_v3_ö"); 67INSERT INTO t1 VALUES("enum1_v1_å", "enum2_v1_å"); 68SELECT c_enum_1, HEX(c_enum_1) FROM t1; 69SELECT c_enum_2, HEX(c_enum_2) FROM t1; 70 71DROP TABLE t1; 72RESET MASTER; 73 74SET GLOBAL binlog_row_metadata = NO_LOG; 75