diff options
Diffstat (limited to 'mysql-test/suite/binlog')
311 files changed, 80464 insertions, 0 deletions
diff --git a/mysql-test/suite/binlog/combinations b/mysql-test/suite/binlog/combinations new file mode 100644 index 00000000..07042c2c --- /dev/null +++ b/mysql-test/suite/binlog/combinations @@ -0,0 +1,8 @@ +[row] +binlog-format=row + +[stmt] +binlog-format=statement + +[mix] +binlog-format=mixed diff --git a/mysql-test/suite/binlog/disabled.def b/mysql-test/suite/binlog/disabled.def new file mode 100644 index 00000000..888298bb --- /dev/null +++ b/mysql-test/suite/binlog/disabled.def @@ -0,0 +1,11 @@ +############################################################################## +# +# List the test cases that are to be disabled temporarily. +# +# Separate the test case name and the comment with ':'. +# +# <testcasename> : BUG#<xxxx> <date disabled> <disabler> <comment> +# +# Do not use any TAB characters for whitespace. +# +############################################################################## diff --git a/mysql-test/suite/binlog/include/binlog.test b/mysql-test/suite/binlog/include/binlog.test new file mode 100644 index 00000000..9f3288b5 --- /dev/null +++ b/mysql-test/suite/binlog/include/binlog.test @@ -0,0 +1,427 @@ +# +# misc binlogging tests that do not require a slave running +# + +-- source include/have_log_bin.inc +-- source include/not_embedded.inc +-- source include/have_innodb.inc + +--disable_warnings +drop table if exists t1, t2; +--enable_warnings +reset master; + +create table t1 (a int) engine=innodb; +create table t2 (a int) engine=innodb; +begin; +insert t1 values (5); +commit; +begin; +insert t2 values (5); +commit; +# first COMMIT must be Query_log_event, second - Xid_log_event +source include/show_binlog_events.inc; +drop table t1,t2; + +# +# binlog rotation after one big transaction +# +reset master; +let $1=100; + +create table t1 (n int) engine=innodb; +begin; +--disable_query_log +while ($1) +{ + eval insert into t1 values($1 + 4); + dec $1; +} +--enable_query_log +commit; +# Make sure binlog checkpoint is logged before DROP TABLE to avoid random +# result difference. +--source include/wait_for_binlog_checkpoint.inc +drop table t1; +--source include/show_binlog_events.inc +--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1) +--source include/show_binlog_events.inc +--let $binlog_file= + +# +# Bug#22540 - Incorrect value in column End_log_pos of +# SHOW BINLOG EVENTS using InnoDB +# + +# the following tests will show that certain queries now return +# absolute offsets (from binlog start, rather than relative to +# the beginning of the current transaction). under what +# conditions it should be allowed / is sensible to put the +# slider into the middle of a transaction is not our concern +# here; we just guarantee that if and when it's done, the +# user has valid offsets to use. if the setter function still +# wants to throw a "positioning into middle of transaction" +# warning, that's its prerogative and handled elsewhere. + +set @ac = @@autocommit; + +# first show this to work for SHOW BINLOG EVENTS + +set autocommit= 0; +reset master; +create table t1(n int) engine=innodb; +begin; +insert into t1 values (1); +insert into t1 values (2); +insert into t1 values (3); +commit; +drop table t1; +--source include/show_binlog_events.inc + +# now show that nothing breaks if we need to read from the cache more +# than once, resulting in split event-headers + +set @bcs = @@binlog_cache_size; +set global binlog_cache_size=4096; +reset master; + +create table t1 (a int, b char(255)) engine=innodb; + +flush status; +show status like "binlog_cache_use"; + +let $1=100; +disable_query_log; +begin; +while ($1) +{ + eval insert into t1 values( $1, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ); + dec $1; +} +commit; +--echo *** the following must show the counter value = 1 *** +show status like "binlog_cache_use"; +enable_query_log; + +--source include/show_binlog_events.inc + +drop table t1; + +set global binlog_cache_size=@bcs; +set session autocommit = @ac; + +# +# Bug#33798: prepared statements improperly handle large unsigned ints +# +--disable_warnings +drop table if exists t1; +--enable_warnings +reset master; +create table t1 (a bigint unsigned, b bigint(20) unsigned); +prepare stmt from "insert into t1 values (?,?)"; +set @a= 9999999999999999; +set @b= 14632475938453979136; +execute stmt using @a, @b; +deallocate prepare stmt; +drop table t1; +--source include/show_binlog_events.inc + + +# +# Bug #39182: Binary log producing incompatible character set query from +# stored procedure. +# +reset master; +CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; +USE bug39182; +CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) + DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +DELIMITER //; + +CREATE PROCEDURE p1() +BEGIN + DECLARE s1 VARCHAR(255); + SET s1= "test"; + CREATE TEMPORARY TABLE tmp1 + SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); + SELECT + COLLATION(NAME_CONST('s1', _utf8'test')) c1, + COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, + COLLATION(s1) c3, + COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, + COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, + COERCIBILITY(s1) d3; + DROP TEMPORARY TABLE tmp1; +END// + +DELIMITER ;// + +CALL p1(); +source include/show_binlog_events.inc; + +DROP PROCEDURE p1; +DROP TABLE t1; +DROP DATABASE bug39182; +USE test; + +# +# Bug#35383: binlog playback and replication breaks due to +# name_const substitution +# +DELIMITER //; +CREATE PROCEDURE p1(IN v1 INT) +BEGIN + CREATE TABLE t1 SELECT v1; + DROP TABLE t1; +END// +CREATE PROCEDURE p2() +BEGIN + DECLARE v1 INT; + CREATE TABLE t1 SELECT v1+1; + DROP TABLE t1; +END// +CREATE PROCEDURE p3(IN v1 INT) +BEGIN + CREATE TABLE t1 SELECT 1 FROM DUAL WHERE v1!=0; + DROP TABLE t1; +END// +CREATE PROCEDURE p4(IN v1 INT) +BEGIN + DECLARE v2 INT; + CREATE TABLE t1 SELECT 1, v1, v2; + DROP TABLE t1; + CREATE TABLE t1 SELECT 1, v1+1, v2; + DROP TABLE t1; +END// +DELIMITER ;// + +CALL p1(1); +CALL p2(); +CALL p3(0); +CALL p4(0); +DROP PROCEDURE p1; +DROP PROCEDURE p2; +DROP PROCEDURE p3; +DROP PROCEDURE p4; + +--echo End of 5.0 tests + +# Test of a too big SET INSERT_ID. +# This should generate an error and should not be put in binlog +# We look at the binlog further down with SHOW BINLOG EVENTS. + +reset master; +create table t1 (id tinyint auto_increment primary key); +insert into t1 values(5); +set insert_id=128; +--error HA_ERR_AUTOINC_ERANGE +insert into t1 values(null) /* Not binlogged */; + +# The followin insert ignore will be put in binlog +set insert_id=128; +insert ignore into t1 values(null) /* Insert 128 */; + +# Insert with duplicate key error should not go into binglo +set insert_id=5; +--error ER_DUP_ENTRY +insert into t1 values(null) /* Not binlogged */; + +# Insert with autogenerated key + duplicate key error should go into binlog +set insert_id=5; +insert ignore into t1 values(null) /* Insert 5 */; +select * from t1; +drop table t1; + +# Same tests but with 2 rows inserted at a time + +create table t1 (id tinyint auto_increment primary key) engine=myisam; +set insert_id=128; +--error HA_ERR_AUTOINC_ERANGE +insert into t1 values(5),(null) /* Insert_id 128 */; + +# The followin insert ignore will be put in binlog +set insert_id=128; +insert ignore into t1 values (4),(null) /* Insert_id 128 */; + +# Insert with duplicate key error should not go into binglo +set insert_id=5; +--error ER_DUP_ENTRY +insert into t1 values(3),(null) /* Insert_id 5 */; + +# Insert with autogenerated key + duplicate key error should go into binlog +set insert_id=5; +insert ignore into t1 values(2),(null) /* Insert_id 5 */; +select * from t1 order by id; +drop table t1; + + +# bug#22027 +create table t1 (a int); +create table if not exists t2 select * from t1; + +# bug#22762 +create temporary table tt1 (a int); +create table if not exists t3 like tt1; + +# BUG#25091 (A DELETE statement to mysql database is not logged with +# ROW mode format): Checking that some basic operations on tables in +# the mysql database is replicated even when the current database is +# 'mysql'. + +USE mysql; +INSERT db SET host='localhost', user='@#@', db='Just a test'; +UPDATE db SET db='Another db' WHERE host='localhost' AND user='@#@'; +DELETE FROM db WHERE host='localhost' AND user='@#@'; + +use test; +source include/show_binlog_events.inc; +drop table t1,t2,t3,tt1; + +-- source suite/binlog/include/binlog_insert_delayed.test + +#Bug #26079 max_binlog_size + innodb = not make new binlog and hang server +# server should not hang, binlog must rotate in the end +reset master; +--disable_warnings +drop table if exists t3; +--enable_warnings +create table t3 (a int(11) NOT NULL AUTO_INCREMENT, b text, PRIMARY KEY (a) ) engine=innodb; +--let $binlog_file1= query_get_value(SHOW MASTER STATUS, File, 1) +--echo File $binlog_file1 +let $it=4; +while ($it) +{ +insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); +dec $it; +} +--let $binlog_file2= query_get_value(SHOW MASTER STATUS, File, 1) +--echo *** show new binlog index after rotating *** +--echo File $binlog_file2 +drop table t3; + +--echo # +--echo # Bug #45998: database crashes when running "create as select" +--echo # +CREATE DATABASE test1; +USE test1; +DROP DATABASE test1; +CREATE TABLE test.t1(a int); +INSERT INTO test.t1 VALUES (1), (2); +CREATE TABLE test.t2 SELECT * FROM test.t1; +USE test; +DROP TABLES t1, t2; + +# +# Bug#46640 +# This test verifies if the server_id stored in the "format +# description BINLOG statement" will override the server_id +# of the server executing the statements. +# + +connect (fresh,localhost,root,,test); +connection fresh; + +RESET MASTER; +CREATE TABLE t1 (a INT PRIMARY KEY); + +# Format description event, with server_id = 10; +BINLOG ' +3u9kSA8KAAAAZgAAAGoAAAABAAQANS4xLjM1LW1hcmlhLWJldGExLWRlYnVnLWxvZwAAAAAAAAAA +AAAAAAAAAAAAAAAAAADe72RIEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC +'; + +# What server_id is logged for a statement? Should be our own, not the +# one from the format description event. +INSERT INTO t1 VALUES (1); + +# INSERT INTO t1 VALUES (2), with server_id=20. Check that this is logged +# with our own server id, not the 20 from the BINLOG statement. +BINLOG ' +3u9kSBMUAAAAKQAAAJEBAAAAABoAAAAAAAAABHRlc3QAAnQxAAEDAAA= +3u9kSBcUAAAAIgAAALMBAAAQABoAAAAAAAEAAf/+AgAAAA== +'; + +# Show binlog events to check that server ids are correct. +--replace_column 1 # 2 # 5 # +--replace_regex /Server ver: .*, Binlog ver: .*/Server ver: #, Binlog ver: #/ /table_id: [0-9]+/table_id: #/ +SHOW BINLOG EVENTS; + +DROP TABLE t1; + +--echo +--echo # BUG#54903 BINLOG statement toggles session variables +--echo # ---------------------------------------------------------------------- +--echo # This test verify that BINLOG statement doesn't change current session's +--echo # variables foreign_key_checks and unique_checks. +--echo +CREATE TABLE t1 (c1 INT KEY); + +SET @@SESSION.foreign_key_checks= ON; +SET @@SESSION.unique_checks= ON; + +--echo # INSERT INTO t1 VALUES (1) +--echo # foreign_key_checks=0 and unique_checks=0 +BINLOG ' +dfLtTBMBAAAAKQAAANcAAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE= +dfLtTBcBAAAAIgAAAPkAAAAAABcAAAAAAAcAAf/+AQAAAA== +'; + +SELECT * FROM t1; +--echo # Their values should be ON +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; +SHOW SESSION VARIABLES LIKE "unique_checks"; + +--echo +SET @@SESSION.foreign_key_checks= OFF; +SET @@SESSION.unique_checks= OFF; + +--echo # INSERT INTO t1 VALUES(2) +--echo # foreign_key_checks=1 and unique_checks=1 +BINLOG ' +dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE= +dfLtTBcBAAAAIgAAAM0BAAAAABcAAAAAAAEAAf/+AgAAAA== +'; + +SELECT * FROM t1; +--echo # Their values should be OFF +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; +SHOW SESSION VARIABLES LIKE "unique_checks"; + +--echo # INSERT INTO t1 VALUES(2) +--echo # foreign_key_checks=1 and unique_checks=1 +--echo # It should not change current session's variables, even error happens +call mtr.add_suppression("BINLOG_BASE64_EVENT.*Could not execute Write_rows_v1 event on table test.t1; Duplicate entry .2. for key .PRIMARY., Error_code: 1062"); +--error 1062 +BINLOG ' +dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE= +dfLtTBcBAAAAIgAAAM0BAAAAABcAAAAAAAEAAf/+AgAAAA== +'; + +SELECT * FROM t1; +--echo # Their values should be OFF +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; +SHOW SESSION VARIABLES LIKE "unique_checks"; + +DROP TABLE t1; + +disconnect fresh; +connection default; + +--echo # +--echo # MDEV-25595 DROP part of failed CREATE OR REPLACE is not written into binary log +--echo # +reset master; +--error ER_DUP_FIELDNAME +create table t as select 1 as b, 2 as b; +create table t (old_table_field int); +--error ER_DUP_FIELDNAME +create or replace table t as select 1 as b, 2 as b; +--error ER_DUP_FIELDNAME +create or replace temporary table t as select 1 as b, 2 as b; +create table t (new_table_field int); + +--source include/show_binlog_events.inc + +# cleanup +drop table t; diff --git a/mysql-test/suite/binlog/include/binlog_cache_stat.test b/mysql-test/suite/binlog/include/binlog_cache_stat.test new file mode 100644 index 00000000..c6287a6b --- /dev/null +++ b/mysql-test/suite/binlog/include/binlog_cache_stat.test @@ -0,0 +1,258 @@ +# Embedded server doesn't support binlog +-- source include/not_embedded.inc +-- source include/have_innodb.inc + +# Creating tables +--disable_warnings +drop table if exists t1, t2; +--enable_warnings + +create table t1 (a int) engine=innodb; +create table t2 (a int) engine=myisam; + +# +# This test checks binlog_cache_use and binlog_cache_disk_use when +# transactions are committed and after when they are aborted. +# + +set @save_binlog_stmt_cache_size=@@global.binlog_stmt_cache_size; +set @save_binlog_cache_size=@@global.binlog_cache_size; +set @@global.binlog_stmt_cache_size=32768; +set @@global.binlog_cache_size=32768; +# +# Checking commit. +# +--echo **** Preparing the enviroment to check commit and its effect on status variables. +--echo **** Expected: binlog_cache_use = 0, binlog_cache_disk_use = 0. +--echo **** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +flush status; +let $exp_cache= 0; +let $got_cache= query_get_value(show status like "binlog_cache_use", Value, 1); +let $exp_disk= 0; +let $got_disk= query_get_value(show status like "binlog_cache_disk_use", Value, 1); +let $exp_stmt_cache= 0; +let $got_stmt_cache= query_get_value(show status like "binlog_stmt_cache_use", Value, 1); +let $exp_stmt_disk= 0; +let $got_stmt_disk= query_get_value(show status like "binlog_stmt_cache_disk_use", Value, 1); +if (`SELECT $got_cache <> $exp_cache || $got_disk <> $exp_disk || $got_stmt_cache <> $exp_stmt_cache || $got_stmt_disk <> $exp_stmt_disk`) +{ + -- echo "Expected: binlog_cache_use = $exp_cache, binlog_cache_disk_use = $exp_disk but got binlog_cache_use = $got_cache, binlog_cache_disk_use = $got_disk" + -- echo "Expected: binlog_stmt_cache_use = $exp_stmt_cache, binlog_stmt_cache_disk_use = $exp_stmt_disk but got binlog_stmt_cache_use = $got_stmt_cache, binlog_stmt_cache_disk_use = $got_stmt_disk" + -- die +} + +--echo **** Transactional changes which are long enough so they will be flushed to disk... +--echo **** Expected: binlog_cache_use = 1, binlog_cache_disk_use = 1. +--echo **** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +let $1=2000; +disable_query_log; +begin; +while ($1) +{ + eval insert into t1 values( $1 ); + dec $1; +} +commit; +enable_query_log; +let $exp_cache= 1; +let $got_cache= query_get_value(show status like "binlog_cache_use", Value, 1); +let $exp_disk= 1; +let $got_disk= query_get_value(show status like "binlog_cache_disk_use", Value, 1); +let $exp_stmt_cache= 0; +let $got_stmt_cache= query_get_value(show status like "binlog_stmt_cache_use", Value, 1); +let $exp_stmt_disk= 0; +let $got_stmt_disk= query_get_value(show status like "binlog_stmt_cache_disk_use", Value, 1); +if (`SELECT $got_cache <> $exp_cache || $got_disk <> $exp_disk || $got_stmt_cache <> $exp_stmt_cache || $got_stmt_disk <> $exp_stmt_disk`) +{ + -- echo "Expected: binlog_cache_use = $exp_cache, binlog_cache_disk_use = $exp_disk but got binlog_cache_use = $got_cache, binlog_cache_disk_use = $got_disk" + -- echo "Expected: binlog_stmt_cache_use = $exp_stmt_cache, binlog_stmt_cache_disk_use = $exp_stmt_disk but got binlog_stmt_cache_use = $got_stmt_cache, binlog_stmt_cache_disk_use = $got_stmt_disk" + -- die +} + +--echo **** Transactional changes which should not be flushed to disk and so should not +--echo **** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +--echo **** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +--echo **** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +commit; +let $exp_cache= 2; +let $got_cache= query_get_value(show status like "binlog_cache_use", Value, 1); +let $exp_disk= 1; +let $got_disk= query_get_value(show status like "binlog_cache_disk_use", Value, 1); +let $exp_stmt_cache= 0; +let $got_stmt_cache= query_get_value(show status like "binlog_stmt_cache_use", Value, 1); +let $exp_stmt_disk= 0; +let $got_stmt_disk= query_get_value(show status like "binlog_stmt_cache_disk_use", Value, 1); +if (`SELECT $got_cache <> $exp_cache || $got_disk <> $exp_disk || $got_stmt_cache <> $exp_stmt_cache || $got_stmt_disk <> $exp_stmt_disk`) +{ + -- echo "Expected: binlog_cache_use = $exp_cache, binlog_cache_disk_use = $exp_disk but got binlog_cache_use = $got_cache, binlog_cache_disk_use = $got_disk" + -- echo "Expected: binlog_stmt_cache_use = $exp_stmt_cache, binlog_stmt_cache_disk_use = $exp_stmt_disk but got binlog_stmt_cache_use = $got_stmt_cache, binlog_stmt_cache_disk_use = $got_stmt_disk" + -- die +} + +--echo **** Non-Transactional changes which should not be flushed to disk and so should not +--echo **** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +--echo **** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +--echo **** Expected: binlog_stmt_cache_use = 1, binlog_stmt_cache_disk_use = 0. +begin; +insert into t2 values( 1 ); +commit; +let $exp_cache= 2; +let $got_cache= query_get_value(show status like "binlog_cache_use", Value, 1); +let $exp_disk= 1; +let $got_disk= query_get_value(show status like "binlog_cache_disk_use", Value, 1); +let $exp_stmt_cache= 1; +let $got_stmt_cache= query_get_value(show status like "binlog_stmt_cache_use", Value, 1); +let $exp_stmt_disk= 0; +let $got_stmt_disk= query_get_value(show status like "binlog_stmt_cache_disk_use", Value, 1); +if (`SELECT $got_cache <> $exp_cache || $got_disk <> $exp_disk || $got_stmt_cache <> $exp_stmt_cache || $got_stmt_disk <> $exp_stmt_disk`) +{ + -- echo "Expected: binlog_cache_use = $exp_cache, binlog_cache_disk_use = $exp_disk but got binlog_cache_use = $got_cache, binlog_cache_disk_use = $got_disk" + -- echo "Expected: binlog_stmt_cache_use = $exp_stmt_cache, binlog_stmt_cache_disk_use = $exp_stmt_disk but got binlog_stmt_cache_use = $got_stmt_cache, binlog_stmt_cache_disk_use = $got_stmt_disk" + -- die +} + +--echo **** Mixed changes which should not be flushed to disk and so should not +--echo **** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +--echo **** Expected: binlog_cache_use = 3, binlog_cache_disk_use = 1. +--echo **** Expected: binlog_stmt_cache_use = 2, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +insert into t2 values( 1 ); +commit; +let $exp_cache= 3; +let $got_cache= query_get_value(show status like "binlog_cache_use", Value, 1); +let $exp_disk= 1; +let $got_disk= query_get_value(show status like "binlog_cache_disk_use", Value, 1); +let $exp_stmt_cache= 2; +let $got_stmt_cache= query_get_value(show status like "binlog_stmt_cache_use", Value, 1); +let $exp_stmt_disk= 0; +let $got_stmt_disk= query_get_value(show status like "binlog_stmt_cache_disk_use", Value, 1); +if (`SELECT $got_cache <> $exp_cache || $got_disk <> $exp_disk || $got_stmt_cache <> $exp_stmt_cache || $got_stmt_disk <> $exp_stmt_disk`) +{ + -- echo "Expected: binlog_cache_use = $exp_cache, binlog_cache_disk_use = $exp_disk but got binlog_cache_use = $got_cache, binlog_cache_disk_use = $got_disk" + -- echo "Expected: binlog_stmt_cache_use = $exp_stmt_cache, binlog_stmt_cache_disk_use = $exp_stmt_disk but got binlog_stmt_cache_use = $got_stmt_cache, binlog_stmt_cache_disk_use = $got_stmt_disk" + -- die +} + +# +# Checking abort. +# +--echo **** Preparing the enviroment to check abort and its effect on the status variables. +--echo **** Expected: binlog_cache_use = 0, binlog_cache_disk_use = 0. +--echo **** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +flush status; +let $exp_cache= 0; +let $got_cache= query_get_value(show status like "binlog_cache_use", Value, 1); +let $exp_disk= 0; +let $got_disk= query_get_value(show status like "binlog_cache_disk_use", Value, 1); +let $exp_stmt_cache= 0; +let $got_stmt_cache= query_get_value(show status like "binlog_stmt_cache_use", Value, 1); +let $exp_stmt_disk= 0; +let $got_stmt_disk= query_get_value(show status like "binlog_stmt_cache_disk_use", Value, 1); +if (`SELECT $got_cache <> $exp_cache || $got_disk <> $exp_disk || $got_stmt_cache <> $exp_stmt_cache || $got_stmt_disk <> $exp_stmt_disk`) +{ + -- echo "Expected: binlog_cache_use = $exp_cache, binlog_cache_disk_use = $exp_disk but got binlog_cache_use = $got_cache, binlog_cache_disk_use = $got_disk" + -- echo "Expected: binlog_stmt_cache_use = $exp_stmt_cache, binlog_stmt_cache_disk_use = $exp_stmt_disk but got binlog_stmt_cache_use = $got_stmt_cache, binlog_stmt_cache_disk_use = $got_stmt_disk" + -- die +} + +--echo **** Transactional changes which are long enough so they will be flushed to disk... +--echo **** Expected: binlog_cache_use = 1, binlog_cache_disk_use = 1. +--echo **** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +let $1=2000; +disable_query_log; +begin; +while ($1) +{ + eval insert into t1 values( $1 ); + dec $1; +} +rollback; +enable_query_log; +let $exp_cache= 1; +let $got_cache= query_get_value(show status like "binlog_cache_use", Value, 1); +let $exp_disk= 1; +let $got_disk= query_get_value(show status like "binlog_cache_disk_use", Value, 1); +let $exp_stmt_cache= 0; +let $got_stmt_cache= query_get_value(show status like "binlog_stmt_cache_use", Value, 1); +let $exp_stmt_disk= 0; +let $got_stmt_disk= query_get_value(show status like "binlog_stmt_cache_disk_use", Value, 1); +if (`SELECT $got_cache <> $exp_cache || $got_disk <> $exp_disk || $got_stmt_cache <> $exp_stmt_cache || $got_stmt_disk <> $exp_stmt_disk`) +{ + -- echo "Expected: binlog_cache_use = $exp_cache, binlog_cache_disk_use = $exp_disk but got binlog_cache_use = $got_cache, binlog_cache_disk_use = $got_disk" + -- echo "Expected: binlog_stmt_cache_use = $exp_stmt_cache, binlog_stmt_cache_disk_use = $exp_stmt_disk but got binlog_stmt_cache_use = $got_stmt_cache, binlog_stmt_cache_disk_use = $got_stmt_disk" + -- die +} + +--echo **** Transactional changes which should not be flushed to disk and so should not +--echo **** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +--echo **** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +--echo **** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +rollback; +let $exp_cache= 2; +let $got_cache= query_get_value(show status like "binlog_cache_use", Value, 1); +let $exp_disk= 1; +let $got_disk= query_get_value(show status like "binlog_cache_disk_use", Value, 1); +let $exp_stmt_cache= 0; +let $got_stmt_cache= query_get_value(show status like "binlog_stmt_cache_use", Value, 1); +let $exp_stmt_disk= 0; +let $got_stmt_disk= query_get_value(show status like "binlog_stmt_cache_disk_use", Value, 1); +if (`SELECT $got_cache <> $exp_cache || $got_disk <> $exp_disk || $got_stmt_cache <> $exp_stmt_cache || $got_stmt_disk <> $exp_stmt_disk`) +{ + -- echo "Expected: binlog_cache_use = $exp_cache, binlog_cache_disk_use = $exp_disk but got binlog_cache_use = $got_cache, binlog_cache_disk_use = $got_disk" + -- echo "Expected: binlog_stmt_cache_use = $exp_stmt_cache, binlog_stmt_cache_disk_use = $exp_stmt_disk but got binlog_stmt_cache_use = $got_stmt_cache, binlog_stmt_cache_disk_use = $got_stmt_disk" + -- die +} + +--echo **** Non-Transactional changes which should not be flushed to disk and so should not +--echo **** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +--echo **** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +--echo **** Expected: binlog_stmt_cache_use = 1, binlog_stmt_cache_disk_use = 0. +begin; +insert into t2 values( 1 ); +rollback; +let $exp_cache= 2; +let $got_cache= query_get_value(show status like "binlog_cache_use", Value, 1); +let $exp_disk= 1; +let $got_disk= query_get_value(show status like "binlog_cache_disk_use", Value, 1); +let $exp_stmt_cache= 1; +let $got_stmt_cache= query_get_value(show status like "binlog_stmt_cache_use", Value, 1); +let $exp_stmt_disk= 0; +let $got_stmt_disk= query_get_value(show status like "binlog_stmt_cache_disk_use", Value, 1); +if (`SELECT $got_cache <> $exp_cache || $got_disk <> $exp_disk || $got_stmt_cache <> $exp_stmt_cache || $got_stmt_disk <> $exp_stmt_disk`) +{ + -- echo "Expected: binlog_cache_use = $exp_cache, binlog_cache_disk_use = $exp_disk but got binlog_cache_use = $got_cache, binlog_cache_disk_use = $got_disk" + -- echo "Expected: binlog_stmt_cache_use = $exp_stmt_cache, binlog_stmt_cache_disk_use = $exp_stmt_disk but got binlog_stmt_cache_use = $got_stmt_cache, binlog_stmt_cache_disk_use = $got_stmt_disk" + -- die +} + +--echo **** Mixed changes which should not be flushed to disk and so should not +--echo **** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +--echo **** Expected: binlog_cache_use = 3, binlog_cache_disk_use = 1. +--echo **** Expected: binlog_stmt_cache_use = 2, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +insert into t2 values( 1 ); +rollback; +let $exp_cache= 3; +let $got_cache= query_get_value(show status like "binlog_cache_use", Value, 1); +let $exp_disk= 1; +let $got_disk= query_get_value(show status like "binlog_cache_disk_use", Value, 1); +let $exp_stmt_cache= 2; +let $got_stmt_cache= query_get_value(show status like "binlog_stmt_cache_use", Value, 1); +let $exp_stmt_disk= 0; +let $got_stmt_disk= query_get_value(show status like "binlog_stmt_cache_disk_use", Value, 1); +if (`SELECT $got_cache <> $exp_cache || $got_disk <> $exp_disk || $got_stmt_cache <> $exp_stmt_cache || $got_stmt_disk <> $exp_stmt_disk`) +{ + -- echo "Expected: binlog_cache_use = $exp_cache, binlog_cache_disk_use = $exp_disk but got binlog_cache_use = $got_cache, binlog_cache_disk_use = $got_disk" + -- echo "Expected: binlog_stmt_cache_use = $exp_stmt_cache, binlog_stmt_cache_disk_use = $exp_stmt_disk but got binlog_stmt_cache_use = $got_stmt_cache, binlog_stmt_cache_disk_use = $got_stmt_disk" + -- die +} +drop table t1, t2; + +set @@global.binlog_stmt_cache_size=@save_binlog_stmt_cache_size; +set @@global.binlog_cache_size=@save_binlog_cache_size; diff --git a/mysql-test/suite/binlog/include/binlog_incident-master.opt b/mysql-test/suite/binlog/include/binlog_incident-master.opt new file mode 100644 index 00000000..57ce0081 --- /dev/null +++ b/mysql-test/suite/binlog/include/binlog_incident-master.opt @@ -0,0 +1 @@ +--loose-debug=+d,incident_database_resync_on_replace
\ No newline at end of file diff --git a/mysql-test/suite/binlog/include/binlog_incident.inc b/mysql-test/suite/binlog/include/binlog_incident.inc new file mode 100644 index 00000000..dd37a586 --- /dev/null +++ b/mysql-test/suite/binlog/include/binlog_incident.inc @@ -0,0 +1,68 @@ +# +# This include file is used by more than one test suite +# (currently rpl and binlog_encryption). +# Please check all dependent tests after modifying it +# +# Usage: +# +# --let $use_remote_mysqlbinlog= 1 # optional +# --let $binlog_start_pos= <binlog position> # optional +# --let $binlog_file= <binlog filename> # optional +# +# --source suite/binlog/include/binlog_incident.inc +# +# The script uses MYSQLBINLOG to verify certain results. +# By default, it uses binary logs directly. If it is undesirable, +# this behavior can be overridden by setting $use_remote_binlog +# as shown above. +# +# All values will be unset after every execution of the script, +# so if they are needed, they should be set explicitly before each call. +# + +# The purpose of this test is to provide a reference for how the +# incident log event is represented in the output from the mysqlbinlog +# program. + +source include/have_log_bin.inc; +source include/have_debug.inc; +source include/binlog_start_pos.inc; + +let $MYSQLD_DATADIR= `select @@datadir`; +RESET MASTER; + +CREATE TABLE t1 (a INT); + +INSERT INTO t1 VALUES (1),(2),(3); +SELECT * FROM t1; + +# This will generate an incident log event and store it in the binary +# log before the replace statement. +REPLACE INTO t1 VALUES (4); + +DROP TABLE t1; +FLUSH LOGS; + +if ($binlog_start_pos) +{ + --let $startpos= --start-position=$binlog_start_pos + --let $binlog_start_pos= +} +--let $filename= master-bin.000001 +if ($binlog_file) +{ + --let $filename= $binlog_file + --let $binlog_file= +} +--let $mysqlbinlog_args= $MYSQLD_DATADIR/$filename +if ($use_remote_mysqlbinlog) +{ + --let $mysqlbinlog_args= --read-from-remote-server --protocol=tcp --host=127.0.0.1 --port=$MASTER_MYPORT -uroot $filename + --let $use_remote_mysqlbinlog= 0 +} +exec $MYSQL_BINLOG $startpos $mysqlbinlog_args >$MYSQLTEST_VARDIR/tmp/binlog_incident-bug44442.sql; +--disable_query_log +eval SELECT cont LIKE '%RELOAD DATABASE; # Shall generate syntax error%' AS `Contain RELOAD DATABASE` FROM (SELECT load_file('$MYSQLTEST_VARDIR/tmp/binlog_incident-bug44442.sql') AS cont) AS tbl; +--enable_query_log + +remove_file $MYSQLTEST_VARDIR/tmp/binlog_incident-bug44442.sql; diff --git a/mysql-test/suite/binlog/include/binlog_index.inc b/mysql-test/suite/binlog/include/binlog_index.inc new file mode 100644 index 00000000..d73091d5 --- /dev/null +++ b/mysql-test/suite/binlog/include/binlog_index.inc @@ -0,0 +1,278 @@ +# +# This include file is used by more than one test suite +# (currently binlog and binlog_encryption). +# Please check all dependent tests after modifying it +# + +# +# testing of purging of binary log files bug#18199/Bug#18453 +# +source include/have_log_bin.inc; +source include/not_embedded.inc; +# Don't test this under valgrind, memory leaks will occur +--source include/not_valgrind.inc +source include/have_debug.inc; +# Avoid CrashReporter popup on Mac +--source include/not_crashrep.inc +call mtr.add_suppression('Attempting backtrace'); +call mtr.add_suppression('MYSQL_BIN_LOG::purge_logs failed to process registered files that would be purged.'); +call mtr.add_suppression('MYSQL_BIN_LOG::open failed to sync the index file'); +call mtr.add_suppression('Turning logging off for the whole duration of the MySQL server process.'); +call mtr.add_suppression('Could not use .*'); +call mtr.add_suppression('MYSQL_BIN_LOG::purge_logs failed to clean registers before purging logs.'); +flush tables; + +SET @saved_dbug = @@SESSION.debug_dbug; + +RESET MASTER; + +let $MYSQLD_DATADIR= `select @@datadir`; +let $INDEX=$MYSQLD_DATADIR/master-bin.index; + +# +# testing purge binary logs TO +# + +flush logs; +flush logs; +flush logs; + +source include/show_binary_logs.inc; +remove_file $MYSQLD_DATADIR/master-bin.000001; +flush tables; + +# there must be a warning with file names +replace_regex /\.[\\\/]master/master/; +--source include/wait_for_binlog_checkpoint.inc +purge binary logs TO 'master-bin.000004'; + +--echo *** must show a list starting from the 'TO' argument of PURGE *** +source include/show_binary_logs.inc; + +# +# testing purge binary logs BEFORE +# + +reset master; + +flush logs; +flush logs; +flush logs; +remove_file $MYSQLD_DATADIR/master-bin.000001; + +--echo *** must be a warning master-bin.000001 was not found *** +let $date=`select NOW() + INTERVAL 1 MINUTE`; +--disable_query_log +replace_regex /\.[\\\/]master/master/; +--source include/wait_for_binlog_checkpoint.inc +eval purge binary logs BEFORE '$date'; +--enable_query_log + +--echo *** must show one record, of the active binlog, left in the index file after PURGE *** +source include/show_binary_logs.inc; + +# +# testing a fatal error +# Turning a binlog file into a directory must be a portable setup +# + +reset master; + +flush logs; +flush logs; +flush logs; + +remove_file $MYSQLD_DATADIR/master-bin.000001; +mkdir $MYSQLD_DATADIR/master-bin.000001; + +--source include/wait_for_binlog_checkpoint.inc +--error ER_BINLOG_PURGE_FATAL_ERR +purge binary logs TO 'master-bin.000002'; +replace_regex /\.[\\\/]master/master/; +show warnings; +rmdir $MYSQLD_DATADIR/master-bin.000001; +--disable_warnings +reset master; +--enable_warnings + +--echo # crash_purge_before_update_index +flush logs; + +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +SET SESSION debug_dbug="+d,crash_purge_before_update_index"; +--source include/wait_for_binlog_checkpoint.inc +--error 2013 +purge binary logs TO 'master-bin.000002'; + +--enable_reconnect +--source include/wait_until_connected_again.inc + +file_exists $MYSQLD_DATADIR/master-bin.000001; +file_exists $MYSQLD_DATADIR/master-bin.000002; +file_exists $MYSQLD_DATADIR/master-bin.000003; +--chmod 0644 $INDEX +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval SET @index=LOAD_FILE('$index') +-- replace_regex /\.[\\\/]master/master/ +SELECT @index; + +--echo # crash_purge_non_critical_after_update_index +flush logs; + +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +SET SESSION debug_dbug="+d,crash_purge_non_critical_after_update_index"; +--source include/wait_for_binlog_checkpoint.inc +--error 2013 +purge binary logs TO 'master-bin.000004'; + +--enable_reconnect +--source include/wait_until_connected_again.inc + +--error 1 +file_exists $MYSQLD_DATADIR/master-bin.000001; +--error 1 +file_exists $MYSQLD_DATADIR/master-bin.000002; +--error 1 +file_exists $MYSQLD_DATADIR/master-bin.000003; +--chmod 0644 $INDEX +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval SET @index=LOAD_FILE('$index') +-- replace_regex /\.[\\\/]master/master/ +SELECT @index; + +--echo # crash_purge_critical_after_update_index +flush logs; + +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +SET SESSION debug_dbug="+d,crash_purge_critical_after_update_index"; +--source include/wait_for_binlog_checkpoint.inc +--error 2013 +purge binary logs TO 'master-bin.000006'; + +--enable_reconnect +--source include/wait_until_connected_again.inc + +--error 1 +file_exists $MYSQLD_DATADIR/master-bin.000004; +--error 1 +file_exists $MYSQLD_DATADIR/master-bin.000005; +file_exists $MYSQLD_DATADIR/master-bin.000006; +file_exists $MYSQLD_DATADIR/master-bin.000007; +--error 1 +file_exists $MYSQLD_DATADIR/master-bin.000008; +--chmod 0644 $INDEX +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval SET @index=LOAD_FILE('$index') +-- replace_regex /\.[\\\/]master/master/ +SELECT @index; + +--echo # crash_create_non_critical_before_update_index +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +SET SESSION debug_dbug="+d,crash_create_non_critical_before_update_index"; +--error 2013 +flush logs; + +--enable_reconnect +--source include/wait_until_connected_again.inc + +file_exists $MYSQLD_DATADIR/master-bin.000008; +--error 1 +file_exists $MYSQLD_DATADIR/master-bin.000009; +--chmod 0644 $INDEX +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval SET @index=LOAD_FILE('$index') +-- replace_regex /\.[\\\/]master/master/ +SELECT @index; + +--echo # crash_create_critical_before_update_index +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +SET SESSION debug_dbug="+d,crash_create_critical_before_update_index"; +--error 2013 +flush logs; + +--enable_reconnect +--source include/wait_until_connected_again.inc + +file_exists $MYSQLD_DATADIR/master-bin.000009; +--error 1 +file_exists $MYSQLD_DATADIR/master-bin.000010; +--error 1 +file_exists $MYSQLD_DATADIR/master-bin.000011; +--chmod 0644 $INDEX +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval SET @index=LOAD_FILE('$index') +-- replace_regex /\.[\\\/]master/master/ +SELECT @index; + +--echo # crash_create_after_update_index +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +SET SESSION debug_dbug="+d,crash_create_after_update_index"; +--error 2013 +flush logs; + +--enable_reconnect +--source include/wait_until_connected_again.inc + +file_exists $MYSQLD_DATADIR/master-bin.000010; +file_exists $MYSQLD_DATADIR/master-bin.000011; +--chmod 0644 $INDEX +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval SET @index=LOAD_FILE('$index') +-- replace_regex /\.[\\\/]master/master/ +SELECT @index; + +--echo # +--echo # This should put the server in unsafe state and stop +--echo # accepting any command. If we inject a fault at this +--echo # point and continue the execution the server crashes. +--echo # + +--chmod 0644 $INDEX +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval SET @index=LOAD_FILE('$index') +-- replace_regex /\.[\\\/]master/master/ +SELECT @index; + +--echo # fault_injection_registering_index +SET SESSION debug_dbug="+d,fault_injection_registering_index"; +-- replace_regex /\.[\\\/]master/master/ +-- error ER_CANT_OPEN_FILE +flush logs; + +--chmod 0644 $INDEX +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval SET @index=LOAD_FILE('$index') +-- replace_regex /\.[\\\/]master/master/ +SELECT @index; + +--source include/restart_mysqld.inc + +--chmod 0644 $INDEX +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval SET @index=LOAD_FILE('$index') +-- replace_regex /\.[\\\/]master/master/ +SELECT @index; + +--echo # fault_injection_updating_index +SET SESSION debug_dbug="+d,fault_injection_updating_index"; +-- replace_regex /\.[\\\/]master/master/ +-- error ER_CANT_OPEN_FILE +flush logs; + +--chmod 0644 $INDEX +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval SET @index=LOAD_FILE('$index') +-- replace_regex /\.[\\\/]master/master/ +SELECT @index; + +--source include/restart_mysqld.inc + +--chmod 0644 $INDEX +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval SET @index=LOAD_FILE('$index') +-- replace_regex /\.[\\\/]master/master/ +SELECT @index; + +SET @@SESSION.debug_dbug = @saved_dbug; + +--echo End of tests diff --git a/mysql-test/suite/binlog/include/binlog_insert_delayed.test b/mysql-test/suite/binlog/include/binlog_insert_delayed.test new file mode 100644 index 00000000..8f669fc1 --- /dev/null +++ b/mysql-test/suite/binlog/include/binlog_insert_delayed.test @@ -0,0 +1,71 @@ +# ==== Purpose ==== +# +# Verify that INSERT DELAYED in mixed or row mode writes events to the +# binlog, and that AUTO_INCREMENT works correctly. +# +# ==== Method ==== +# +# Insert both single and multiple rows into an autoincrement column, +# both with specified value and with NULL. +# +# With INSERT DELAYED, the rows do not show up in the table +# immediately, so we must do source include/wait_until_rows_count.inc +# between any two INSERT DELAYED statements. Moreover, if mixed or +# row-based logging is used, there is also a delay between when rows +# show up in the table and when they show up in the binlog. To ensure +# that the rows show up in the binlog, we call FLUSH TABLES, which +# waits until the delayed_insert thread has finished. +# +# We cannot read the binlog after executing INSERT DELAYED statements +# that insert multiple rows, because that is nondeterministic. More +# precisely, rows may be written in batches to the binlog, where each +# batch has one Table_map_log_event and one or more +# Write_rows_log_event. The number of rows included in each batch is +# nondeterministic. +# +# ==== Related bugs ==== +# +# BUG#20627: INSERT DELAYED does not honour auto_increment_* variables +# Bug in this test: BUG#38068: binlog_stm_binlog fails sporadically in pushbuild + +reset master; + +create table t1 (a int not null auto_increment, primary key (a)) engine=myisam; + +let $table=t1; +let $count=0; + +insert /* before delayed */ delayed /* after delayed */ into t1 values (207); +inc $count; +--source include/wait_until_rows_count.inc + +insert /*! delayed */ into t1 values (null); +inc $count; +--source include/wait_until_rows_count.inc + +insert delayed into t1 values (300); +inc $count; +--source include/wait_until_rows_count.inc + +# It is not enough to wait until all rows have been inserted into the +# table. FLUSH TABLES ensures that they are in the binlog too. See +# comment above. +FLUSH TABLES; +source include/show_binlog_events.inc; + +RESET MASTER; +insert /* before delayed */ delayed /* after delayed */ into t1 values (null),(null),(null),(null); +inc $count; inc $count; inc $count; inc $count; +--source include/wait_until_rows_count.inc + +insert /*! delayed */ into t1 values (null),(null),(400),(null); +inc $count; inc $count; inc $count; inc $count; +--source include/wait_until_rows_count.inc + +if (`SELECT @@SESSION.BINLOG_FORMAT = 'STATEMENT'`) { + FLUSH TABLES; + source include/show_binlog_events.inc; +} + +select * from t1; +drop table t1; diff --git a/mysql-test/suite/binlog/include/binlog_ioerr.inc b/mysql-test/suite/binlog/include/binlog_ioerr.inc new file mode 100644 index 00000000..da6fb5ac --- /dev/null +++ b/mysql-test/suite/binlog/include/binlog_ioerr.inc @@ -0,0 +1,37 @@ +# +# This include file is used by more than one test suite +# (currently binlog and binlog_encryption). +# Please check all dependent tests after modifying it +# + +source include/have_debug.inc; +source include/have_innodb.inc; +source include/have_log_bin.inc; +source include/have_binlog_format_mixed_or_statement.inc; + +CALL mtr.add_suppression("Error writing file 'master-bin'"); + +RESET MASTER; + +CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=innodb; +INSERT INTO t1 VALUES(0); +SET @saved_dbug = @@SESSION.debug_dbug; +SET SESSION debug_dbug='+d,fail_binlog_write_1'; +--error ER_ERROR_ON_WRITE +INSERT INTO t1 VALUES(1); +--error ER_ERROR_ON_WRITE +INSERT INTO t1 VALUES(2); +SET SESSION debug_dbug=@saved_dbug; +INSERT INTO t1 VALUES(3); +SELECT * FROM t1; + +# Actually the output from this currently shows a bug. +# The injected IO error leaves partially written transactions in the binlog in +# the form of stray "BEGIN" events. +# These should disappear from the output if binlog error handling is improved +# (see MySQL Bug#37148 and WL#1790). +--replace_regex /\/\* xid=.* \*\//\/* XID *\// /Server ver: .*, Binlog ver: .*/Server ver: #, Binlog ver: #/ /table_id: [0-9]+/table_id: #/ +--replace_column 1 BINLOG 2 POS 5 ENDPOS +SHOW BINLOG EVENTS; + +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/include/binlog_mysqlbinlog-cp932.inc b/mysql-test/suite/binlog/include/binlog_mysqlbinlog-cp932.inc new file mode 100644 index 00000000..3646c34b --- /dev/null +++ b/mysql-test/suite/binlog/include/binlog_mysqlbinlog-cp932.inc @@ -0,0 +1,50 @@ +# +# This include file is used by more than one test suite +# (currently binlog and binlog_encryption). +# Please check all dependent tests after modifying it +# +# Usage: +# --let $use_remote_mysqlbinlog= 1 # optional +# --source suite/binlog/include/binlog_mysqlbinlog-cp932.inc +# +# By default, the script calls mysqlbinlog to read binary logs directly. +# If it is undesirable, this behavior can be overridden by setting +# $use_remote_binlog as shown above. +# The value will be unset after every execution of the script, +# so if it is needed, it should be set explicitly before each call. + + +# disabled in embedded until tools running is fixed with embedded +--source include/not_embedded.inc + +-- source include/have_binlog_format_mixed_or_statement.inc +-- source include/have_cp932.inc +-- source include/have_log_bin.inc + +RESET MASTER; + +# Bug#16217 (mysql client did not know how not switch its internal charset) +create table t3 (f text character set utf8); +create table t4 (f text character set cp932); +--exec $MYSQL --default-character-set=utf8 test -e "insert into t3 values(_utf8'ソ')" +--exec $MYSQL --default-character-set=cp932 test -e "insert into t4 values(_cp932'ƒ\');" +flush logs; +rename table t3 to t03, t4 to t04; +let $MYSQLD_DATADIR= `select @@datadir`; + +--let $mysqlbinlog_args= $MYSQLD_DATADIR/master-bin.000001 +if ($use_remote_mysqlbinlog) +{ + --let $mysqlbinlog_args= --read-from-remote-server --protocol=tcp --host=127.0.0.1 --port=$MASTER_MYPORT -uroot master-bin.000001 + --let $use_remote_mysqlbinlog= 0 +} + +--exec $MYSQL_BINLOG --short-form $mysqlbinlog_args | $MYSQL --default-character-set=utf8 +# original and recovered data must be equal +select HEX(f) from t03; +select HEX(f) from t3; +select HEX(f) from t04; +select HEX(f) from t4; + +drop table t3, t4, t03, t04; +--echo End of 5.0 tests diff --git a/mysql-test/suite/binlog/include/binlog_row_annotate.inc b/mysql-test/suite/binlog/include/binlog_row_annotate.inc new file mode 100644 index 00000000..69d9dc3c --- /dev/null +++ b/mysql-test/suite/binlog/include/binlog_row_annotate.inc @@ -0,0 +1,193 @@ +# +# This include file is used by more than one test suite +# (currently binlog and binlog_encryption). +# Please check all dependent tests after modifying it +# +# Usage: +# --let use_remote_mysqlbinlog= 1 # optional +# --source suite/binlog/include/binlog_row_annotate.inc +# +# By default, the script uses mysqlbinlog both with direct access to files +# and via connection to the server. In some cases, direct access to files +# might be impossible (e.g. with encryption). If use_remote_mysqlbinlog +# flag is set, this part of the logic will be omitted. +# + +############################################################################### +# WL47: Store in binlog text of statements that caused RBR events +# new event: ANNOTATE_ROWS_EVENT +# new master option: --binlog-annotate-row-events +# new mysqlbinlog option: --skip-annotate-row-events +# +# Intended to test that: +# *** If the --binlog-annotate-row-events option is switched on on master +# then Annotate_rows events: +# - are generated; +# - are generated only once for "multi-table-maps" rbr queries; +# - are not generated when the corresponding queries are filtered away; +# - are generated when the corresponding queries are filtered away partialy +# (e.g. in case of multi-delete). +# *** Annotate_rows events are printed by mysqlbinlog started without +# --skip-annotate-row-events options both in remote and local cases. +# *** Annotate_rows events are not printed by mysqlbinlog started with +# --skip-annotate-row-events options both in remote and local cases. +############################################################################### + +set @old_binlog_checksum=@@binlog_checksum; +set global binlog_checksum=NONE; +--let datadir= `select @@datadir` + +--source include/have_log_bin.inc +--source include/binlog_start_pos.inc +--source include/have_binlog_format_row.inc + +set sql_mode=""; +let $collation_server=`select @@collation_server`; + +# Fix timestamp to avoid varying results +SET timestamp=1000000000; + +# Delete all existing binary logs +RESET MASTER; + +CREATE DATABASE test1; +CREATE TABLE test1.t1(a int); + +CREATE DATABASE test2; +CREATE TABLE test2.t2(a int); +CREATE VIEW test2.v2 AS SELECT * FROM test2.t2; + +CREATE DATABASE test3; +CREATE TABLE test3.t3(a int); + +CREATE DATABASE xtest1; +CREATE TABLE xtest1.xt1(a int); + +CREATE DATABASE xtest2; +CREATE TABLE xtest2.xt2(a int); + +# By default SESSION binlog_annotate_row_events = OFF + +INSERT INTO test1.t1 VALUES (1), (2), (3); + +SET SESSION binlog_annotate_row_events = ON; + +INSERT INTO test2.t2 VALUES (1), (2), (3); +INSERT INTO test3.t3 VALUES (1), (2), (3); + +# This query generates two Table maps but the Annotate +# event should appear only once before the first Table map +DELETE test1.t1, test2.t2 + FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3 + WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3.a; + +# This event should be filtered out together with Annotate event +INSERT INTO xtest1.xt1 VALUES (1), (2), (3); + +# This event should pass the filter +INSERT INTO test2.v2 VALUES (1), (2), (3); + +# This event should pass the filter only for test2.t2 part +DELETE xtest1.xt1, test2.t2 + FROM xtest1.xt1 INNER JOIN test2.t2 INNER JOIN test3.t3 + WHERE xtest1.xt1.a=test2.t2.a AND test2.t2.a=test3.t3.a; + +# These events should be filtered out together with Annotate events +INSERT INTO xtest1.xt1 VALUES (1), (2), (3); +INSERT INTO xtest2.xt2 VALUES (1), (2), (3); +DELETE xtest1.xt1, xtest2.xt2 + FROM xtest1.xt1 INNER JOIN xtest2.xt2 INNER JOIN test3.t3 + WHERE xtest1.xt1.a=xtest2.xt2.a AND xtest2.xt2.a=test3.t3.a; + +FLUSH LOGS; + +--echo ##################################################################################### +--echo # The following Annotate_rows events should appear below: +--echo # - INSERT INTO test2.t2 VALUES (1), (2), (3) +--echo # - INSERT INTO test3.t3 VALUES (1), (2), (3) +--echo # - DELETE test1.t1, test2.t2 FROM <...> +--echo # - INSERT INTO test2.t2 VALUES (1), (2), (3) +--echo # - DELETE xtest1.xt1, test2.t2 FROM <...> +--echo ##################################################################################### + +--source include/show_binlog_events.inc + +if (!$use_remote_mysqlbinlog) +{ + --echo # + --echo ##################################################################################### + --echo # mysqlbinlog + --echo # The following Annotates should appear in this output: + --echo # - INSERT INTO test2.t2 VALUES (1), (2), (3) + --echo # - INSERT INTO test3.t3 VALUES (1), (2), (3) + --echo # - DELETE test1.t1, test2.t2 FROM <...> (with two subsequent Table maps) + --echo # - INSERT INTO test2.t2 VALUES (1), (2), (3) + --echo # - DELETE xtest1.xt1, test2.t2 FROM <...> (with one subsequent Table map) + --echo ##################################################################################### + + --replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ + --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $datadir/master-bin.000001 + + --echo # + --echo ##################################################################################### + --echo # mysqlbinlog --database=test1 + --echo # The following Annotate should appear in this output: + --echo # - DELETE test1.t1, test2.t2 FROM <...> + --echo ##################################################################################### + + --replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ + --exec $MYSQL_BINLOG --base64-output=decode-rows --database=test1 -v -v $datadir/master-bin.000001 + + --echo # + --echo ##################################################################################### + --echo # mysqlbinlog --skip-annotate-row-events + --echo # No Annotates should appear in this output + --echo ##################################################################################### + + --replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ + --exec $MYSQL_BINLOG --base64-output=decode-rows --skip-annotate-row-events -v -v $datadir/master-bin.000001 + + --let use_remote_mysqlbinlog= 0 +} + +--echo # +--echo ##################################################################################### +--echo # mysqlbinlog --read-from-remote-server +--echo # The following Annotates should appear in this output: +--echo # - INSERT INTO test2.t2 VALUES (1), (2), (3) +--echo # - INSERT INTO test3.t3 VALUES (1), (2), (3) +--echo # - DELETE test1.t1, test2.t2 FROM <...> (with two subsequent Table maps) +--echo # - INSERT INTO test2.t2 VALUES (1), (2), (3) +--echo # - DELETE xtest1.xt1, test2.t2 FROM <...> (with one subsequent Table map) +--echo ##################################################################################### + +--replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --base64-output=decode-rows -v -v --read-from-remote-server --user=root --host=localhost --port=$MASTER_MYPORT master-bin.000001 + +--echo # +--echo ##################################################################################### +--echo # mysqlbinlog --read-from-remote-server --database=test1 +--echo # The following Annotate should appear in this output: +--echo # - DELETE test1.t1, test2.t2 FROM <...> +--echo ##################################################################################### + +--replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --base64-output=decode-rows --database=test1 -v -v --read-from-remote-server --user=root --host=localhost --port=$MASTER_MYPORT master-bin.000001 + +--echo # +--echo ##################################################################################### +--echo # mysqlbinlog --read-from-remote-server --skip-annotate-row-events +--echo # No Annotates should appear in this output +--echo ##################################################################################### + +--replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --base64-output=decode-rows --skip-annotate-row-events -v -v --read-from-remote-server --user=root --host=localhost --port=$MASTER_MYPORT master-bin.000001 + +# Clean-up + +set global binlog_checksum=@old_binlog_checksum; +DROP DATABASE test1; +DROP DATABASE test2; +DROP DATABASE test3; +DROP DATABASE xtest1; +DROP DATABASE xtest2; diff --git a/mysql-test/suite/binlog/include/binlog_truncate.test b/mysql-test/suite/binlog/include/binlog_truncate.test new file mode 100644 index 00000000..4d297cd2 --- /dev/null +++ b/mysql-test/suite/binlog/include/binlog_truncate.test @@ -0,0 +1,63 @@ +# BUG #36763: TRUNCATE TABLE fails to replicate when stmt-based +# binlogging is not supported. + +# This should always be logged as a statement, even when executed as a +# row-by-row deletion. + +# $before_truncate A statement to execute (just) before issuing the +# TRUNCATE TABLE + + +eval CREATE TABLE t1 (a INT) ENGINE=$engine; +eval CREATE TABLE t2 (a INT) ENGINE=$engine; +INSERT INTO t2 VALUES (1),(2),(3); +let $binlog_start = query_get_value("SHOW MASTER STATUS", Position, 1); +if ($before_truncate) { + eval $before_truncate; +} +--echo **** Truncate of empty table shall be logged +TRUNCATE TABLE t1; + +if ($before_truncate) { + eval $before_truncate; +} +TRUNCATE TABLE t2; +source include/show_binlog_events.inc; + +DROP TABLE t1,t2; + +--echo # +--echo # Bug#42643: InnoDB does not support replication of TRUNCATE TABLE +--echo # + +eval CREATE TABLE t1 (a INT) ENGINE=$engine; +eval CREATE TABLE t2 (a INT) ENGINE=$engine; +INSERT INTO t1 VALUES (1),(2); + +let $binlog_start = query_get_value("SHOW MASTER STATUS", Position, 1); +if ($before_truncate) { + eval $before_truncate; +} + +BEGIN; +INSERT INTO t2 SELECT * FROM t1; + +connect (truncate,localhost,root,,); +send TRUNCATE TABLE t1; + +connection default; +INSERT INTO t2 SELECT * FROM t1; +SELECT COUNT(*) FROM t2; +COMMIT; + +connection truncate; +--echo # Reaping TRUNCATE TABLE +--reap +SELECT COUNT(*) FROM t1; +SELECT COUNT(*) FROM t2; + +connection default; + +source include/show_binlog_events.inc; +disconnect truncate; +DROP TABLE t1,t2; diff --git a/mysql-test/suite/binlog/include/binlog_xa_prepare_connection.inc b/mysql-test/suite/binlog/include/binlog_xa_prepare_connection.inc new file mode 100644 index 00000000..c0041af1 --- /dev/null +++ b/mysql-test/suite/binlog/include/binlog_xa_prepare_connection.inc @@ -0,0 +1,31 @@ +# +# This file initiate connections to run XA transactions up to +# their prepare. +# Connection name, transaction name and its content depends on +# supplied parameters. +# +# param $type type of transaction +# param $index index identifies the connection with those of type $type +# param $sql_init1 a query to execute once connection is established +# param $sql_init2 a query to execute once connection is established +# param $sql_doit a query to execute inside transaction +# Note, the query may depend on tables created by caller +# + +--connect (conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,) +if ($sql_init1) +{ + --eval $sql_init1 +} +if ($sql_init2) +{ + --eval $sql_init2 +} + +--eval XA START 'trx$index$type' +if ($sql_doit) +{ + --eval $sql_doit +} +--eval XA END 'trx$index$type' +--eval XA PREPARE 'trx$index$type' diff --git a/mysql-test/suite/binlog/include/binlog_xa_prepare_disconnect.inc b/mysql-test/suite/binlog/include/binlog_xa_prepare_disconnect.inc new file mode 100644 index 00000000..4a83aa5c --- /dev/null +++ b/mysql-test/suite/binlog/include/binlog_xa_prepare_disconnect.inc @@ -0,0 +1,37 @@ +# +# This file disconnects two connections. One actively and one through +# kill. It is included by binlog_xa_prepared_do_and_restart. +# +# param $type type of transaction +# param $terminate_with how to conclude actively disconnecte: +# XA COMMIT or XA ROLLBACK +# param $conn3_id connection id of the being killed. +# param $num_trx_prepared number of transactions prepared so far +# +--connection default + +--echo *** $num_trx_prepared prepared transactions must be in the list *** +--replace_column 2 LEN1 3 LEN2 4 TRX_N +XA RECOVER; + +--connection conn1$type +--let $conn1_id=`SELECT connection_id()` +--disconnect conn1$type + +--connection default +--let $wait_condition= SELECT count(*) = 0 FROM v_processlist WHERE PROCESSLIST_ID = $conn1_id +--source include/wait_condition.inc + +# It will conclude now +--error 0,1402 +--eval $terminate_with 'trx1$type' + +--replace_result $conn3_id CONN_ID +--eval KILL connection $conn3_id + +--let $wait_condition= SELECT count(*) = 0 FROM v_processlist WHERE PROCESSLIST_ID = $conn3_id +--source include/wait_condition.inc + +# It will conclude now +--error 0,1402 +--eval $terminate_with 'trx3$type' diff --git a/mysql-test/suite/binlog/include/binlog_xa_prepared_do_and_restart.inc b/mysql-test/suite/binlog/include/binlog_xa_prepared_do_and_restart.inc new file mode 100644 index 00000000..cbd740fd --- /dev/null +++ b/mysql-test/suite/binlog/include/binlog_xa_prepared_do_and_restart.inc @@ -0,0 +1,323 @@ +# +# This file creates various kinds of prepared XA transactions, +# manipulates their connection state and examines how their prepared +# status behave while the transaction is disconnected, killed or +# the server kisses it shutdown. +# The file can be sourced multiple times +# param $restart_number (as the number of inclusion) adjusts +# verification logics. +# +# param [in] $conn_number Total number of connection each performing +# one insert into table. +# param [in] $commit_number Number of commits from either. +# side of the server restart. +# param [in] $rollback_number The same as the above just for rollback. +# param [in] $term_number Number of transaction that are terminated +# before server restarts +# param [in] $killed_number Instead of disconnect make some +# connections killed when their +# transactions got prepared. +# param [in] $server_disconn_number Make some connections disconnected +# by shutdown rather than actively +# param [in] $post_restart_conn_number Number a "warmup" connection +# after server restart, they all commit +# param [out] restart_number Counter to be incremented at the end of the test +# + +# The test consists of three sections: +# I. Corner cases check +# II. Regular case check +# III. Post server-restart verification + + +# +# I. Corner cases of +# +# A. XA with an update to a temp table +# B. XA with SELECT +# C. XA empty +# Demonstrate their XA status upon prepare and how they react on disconnect and +# shutdown. +# In each of A,B,C three prepared transactions are set up. +# trx1 is for disconnection, trx2 for shutdown, trx3 for being killed. +# The A case additionally contains some XA prohibited state transaction check. +# +# D. Prove that not prepared XA remains to be cleared out by disconnection. +# + +# +# A. The temp table only prepared XA recovers only formally to +# let post recovery XA COMMIT or XA ROLLBACK with no effect. + +--let $type = tmp +--let $index = 1 +--let $sql_init1 = SET @@sql_log_bin = OFF +--let $sql_init2 = CREATE TEMPORARY TABLE tmp$index (a int) ENGINE=innodb +--let $sql_doit = INSERT INTO tmp$index SET a=$index +--source suite/binlog/include/binlog_xa_prepare_connection.inc + +--let $index = 2 +--source suite/binlog/include/binlog_xa_prepare_connection.inc + +--let $index = 3 +--source suite/binlog/include/binlog_xa_prepare_connection.inc +--let $conn3_id=`SELECT connection_id()` + +# +# Various prohibited XA state changes to test here: +# + +--connection default +# Stealing is not allowed +--error ER_XAER_NOTA +--eval XA COMMIT 'trx1$type' +--error ER_XAER_NOTA +--eval XA ROLLBACK 'trx1$type' + +# Before disconnect: creating a duplicate is not allowed +--error ER_XAER_DUPID +--eval XA START 'trx1$type' + +# Manipulate now the prepared transactions. +# Two to terminate, one to leave out. +--let $terminate_with = XA COMMIT +--let $num_trx_prepared = $index +--source suite/binlog/include/binlog_xa_prepare_disconnect.inc + +# +# B. "Read-only" (select) prepared XA recovers only formally to +# let post recovery XA COMMIT or XA ROLLBACK with no effect. +# +--let $type=ro +--let $index = 1 +--let $sql_init1 = +--let $sql_init2 = +--let $sql_doit = SELECT * from t ORDER BY a +--source suite/binlog/include/binlog_xa_prepare_connection.inc + +--let $index = 2 +--source suite/binlog/include/binlog_xa_prepare_connection.inc + +--let $index = 3 +--source suite/binlog/include/binlog_xa_prepare_connection.inc +--let $conn3_id=`SELECT connection_id()` + +--let $terminate_with = XA ROLLBACK +# two three above section prepared transaction were terminated. +--inc $num_trx_prepared +--source suite/binlog/include/binlog_xa_prepare_disconnect.inc + +# +# C. Empty prepared XA recovers only formally to +# let post recovery XA COMMIT or XA ROLLBACK with no effect. +# +--let $type=empty +--let $index = 1 +--let $sql_init1 = +--let $sql_init2 = +--let $sql_doit = +--source suite/binlog/include/binlog_xa_prepare_connection.inc + +--let $index = 2 +--source suite/binlog/include/binlog_xa_prepare_connection.inc + +--let $index = 3 +--source suite/binlog/include/binlog_xa_prepare_connection.inc +--let $conn3_id=`SELECT connection_id()` + +--let $terminate_with = XA COMMIT +--inc $num_trx_prepared +--source suite/binlog/include/binlog_xa_prepare_disconnect.inc + +# +# D. Not prepared XA disconnects to be cleared out, +# no effect on data left as well. +# Few more prohibited XA state transactions is checked out. +# +--let $type=unprepared +--let $prev_count=`SELECT count(*) from t` + +--connect(conn1$type, 127.0.0.1,root,,test,$MASTER_MYPORT,) +--eval XA START 'trx1$type' +INSERT INTO t set a=0; +--eval XA END 'trx1$type' + +--error ER_XAER_RMFAIL +INSERT INTO t set a=0; +--error ER_XAER_RMFAIL +--eval XA START 'trx1$type' +--error ER_XAER_RMFAIL +--eval XA START 'trx1$type' + +--disconnect conn1$type + +--connection default +# No such transactions +--error ER_XAER_NOTA +--eval XA COMMIT 'trx1$type' +if (`SELECT count(*) > $prev_count from t`) +{ + --echo *** Unexpected commit to the table. *** + --die +} + +# +# II. Regular case. +# +# Prepared transactions get disconnected in three ways: +# actively, being killed and by the server shutdown. +# +--let $i=0 +while ($i < $conn_number) +{ + --connect (conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,) + --let $conn_id=`SELECT connection_id()` + --disable_reconnect + SET @@binlog_format = STATEMENT; + if (`SELECT $i % 2`) + { + SET @@binlog_format = ROW; + } + --eval XA START 'trx_$i' + --eval INSERT INTO t SET a=$i + --eval XA END 'trx_$i' + --eval XA PREPARE 'trx_$i' + + --let $disc_via_kill=`SELECT $conn_number - $i <= $killed_number` + if (!$disc_via_kill) + { + --let $disc_via_shutdown=`SELECT $conn_number - $i <= $killed_number + $server_disconn_number` + if (!$disc_via_shutdown) + { + --disconnect conn$i + } + } + if ($disc_via_kill) + { + --connection default + --replace_result $conn_id CONN_ID + --eval KILL CONNECTION $conn_id + } + + if (!$disc_via_shutdown) + { + --connection default + --let $wait_condition= SELECT count(*) = 0 FROM v_processlist WHERE PROCESSLIST_ID = $conn_id + --source include/wait_condition.inc + } + --inc $i +} + +# [0, $rollback_number - 1] are rolled back now +--connection default + +--let $i=0 +while ($i < $rollback_number) +{ + --eval XA ROLLBACK 'trx_$i' + + --inc $i +} + +# [$rollback_number, $rollback_number + $commit_number - 1] get committed +while ($i < $term_number) +{ + --eval XA COMMIT 'trx_$i' + + --inc $i +} + +--source include/$how_to_restart + +# +# III. Post server-restart verification. +# It concludes survived XA:s with a number of commits and rollbacks +# as configured in the 1st part to check expected results in the end. +# Cleanup section consists of explicit disconnect (for killed, or +# not disconnected before shutdown). +# + +# New XA can be prepared and committed +--let $k = 0 +while ($k < $post_restart_conn_number) +{ + --connect (conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,) + --let $conn_id=`SELECT connection_id()` + --eval XA START 'new_trx_$k' + --eval INSERT INTO t SET a=$k + --eval XA END 'new_trx_$k' + --eval XA PREPARE 'new_trx_$k' + + --disconnect conn_restart_$k + + --connection default + --let $wait_condition= SELECT count(*) = 0 FROM v_processlist WHERE PROCESSLIST_ID = $conn_id + --source include/wait_condition.inc + + --inc $k +} + +--connection default +--let $k = 0 +while ($k < $post_restart_conn_number) +{ + --eval XA COMMIT 'new_trx_$k' + --inc $k +} + +# +# Symmetrically to the pre-restart, the resurrected trx:s are committed +# [$term_number, $term_number + $commit_number - 1] +# and the rest is rolled back. +# +--let $i = $term_number + +while ($i < `SELECT $term_number + $commit_number`) +{ + # Expected to fail + --error ER_XAER_DUPID + --eval XA START 'trx_$i' + --eval XA COMMIT 'trx_$i' + --inc $i +} + +while ($i < $conn_number) +{ + # Expected to fail + --error ER_XAER_DUPID + --eval XA START 'trx_$i' + --eval XA ROLLBACK 'trx_$i' + --inc $i +} + +# +# Verification of correct results of recovered XA transaction handling: +# +SELECT * FROM t; + +--let $type=tmp +--disconnect conn2$type +--disconnect conn3$type +--let $type=ro +--disconnect conn2$type +--disconnect conn3$type +--let $type=empty +--disconnect conn2$type +--disconnect conn3$type + +--let $i= $conn_number +--let $k= 0 +--let $expl_disconn_number = `SELECT $killed_number + $server_disconn_number` +while ($k < $expl_disconn_number) +{ + --connection default + --error ER_XAER_NOTA + --eval XA ROLLBACK 'trx_$i' + + --dec $i + --disconnect conn$i + + --inc $k +} + +--inc $restart_number diff --git a/mysql-test/suite/binlog/include/blackhole.test b/mysql-test/suite/binlog/include/blackhole.test new file mode 100644 index 00000000..90146d41 --- /dev/null +++ b/mysql-test/suite/binlog/include/blackhole.test @@ -0,0 +1,208 @@ +# +# Simple test for blackhole example +# Taken from the select test +# +-- source include/not_embedded.inc +-- source include/have_blackhole.inc +-- source include/have_log_bin.inc + +CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); + +# The server need to be started in $MYSQLTEST_VARDIR since it +# uses ../../std_data/ +-- source include/uses_vardir.inc + +--disable_warnings +drop table if exists t1,t2; +--enable_warnings + +CREATE TABLE t1 ( + Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL, + Varor_period smallint(4) unsigned DEFAULT '0' NOT NULL +) ENGINE=blackhole; + +INSERT INTO t1 VALUES (9410,9412); + +select period from t1; +select * from t1; +select t1.* from t1; + +# +# Create test table +# + +CREATE TABLE t2 ( + auto int NOT NULL auto_increment, + fld1 int(6) unsigned zerofill DEFAULT '000000' NOT NULL, + companynr tinyint(2) unsigned zerofill DEFAULT '00' NOT NULL, + fld3 char(30) DEFAULT '' NOT NULL, + fld4 char(35) DEFAULT '' NOT NULL, + fld5 char(35) DEFAULT '' NOT NULL, + fld6 char(4) DEFAULT '' NOT NULL, + primary key (auto) +) ENGINE=blackhole; + +INSERT INTO t2 VALUES (1192,068305,00,'Colombo','hardware','colicky',''); +INSERT INTO t2 VALUES (1193,000000,00,'nondecreasing','implant','thrillingly',''); +--enable_query_log + +# +# Search with a key +# + +select t2.fld3 from t2 where companynr = 58 and fld3 like "%imaginable%"; +select fld3 from t2 where fld3 like "%cultivation" ; + +# +# Search with a key using sorting and limit the same time +# + +select t2.fld3,companynr from t2 where companynr = 57+1 order by fld3; +select fld3,companynr from t2 where companynr = 58 order by fld3; + +select fld3 from t2 order by fld3 desc limit 10; +select fld3 from t2 order by fld3 desc limit 5; +select fld3 from t2 order by fld3 desc limit 5,5; + +# +# Search with a key having a constant with each unique key. +# The table is read directly with read-next on fld3 +# + +select t2.fld3 from t2 where fld3 = 'honeysuckle'; +select t2.fld3 from t2 where fld3 LIKE 'honeysuckl_'; +select t2.fld3 from t2 where fld3 LIKE 'hon_ysuckl_'; +select t2.fld3 from t2 where fld3 LIKE 'honeysuckle%'; +select t2.fld3 from t2 where fld3 LIKE 'h%le'; + +select t2.fld3 from t2 where fld3 LIKE 'honeysuckle_'; +select t2.fld3 from t2 where fld3 LIKE 'don_t_find_me_please%'; + +# +# Test sorting with a used key (there is no need for sorting) +# + +select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3; +select fld1,fld3 from t2 where fld3="Colombo" or fld3 = "nondecreasing" order by fld3; + + +# Test for fulltext +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b)); +INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'), + ('Full-text indexes', 'are called collections'), + ('Only MyISAM tables','support collections'), + ('Function MATCH ... AGAINST()','is used to do a search'), + ('Full-text search in MySQL', 'implements vector space model'); +SHOW INDEX FROM t1; + +# nl search + +select * from t1 where MATCH(a,b) AGAINST ("collections"); +explain extended select * from t1 where MATCH(a,b) AGAINST ("collections"); +select * from t1 where MATCH(a,b) AGAINST ("indexes"); +select * from t1 where MATCH(a,b) AGAINST ("indexes collections"); +select * from t1 where MATCH(a,b) AGAINST ("only"); + +# Test that every DML (except SELECT) and DDL gets into binlog +# so that blackhole can be used as "binlog propagator" + +reset master; +drop table t1,t2; +create table t1 (a int) engine=blackhole; +delete from t1 where a=10; +update t1 set a=11 where a=15; +insert into t1 values(1); +insert ignore into t1 values(1); +replace into t1 values(100); +create table t2 (a varchar(200)) engine=blackhole; +eval load data infile '../../std_data/words.dat' into table t2; +alter table t1 add b int; +alter table t1 drop b; +create table t3 like t1; +insert into t1 select * from t3; +replace into t1 select * from t3; +# Just to verify +select * from t1; +select * from t2; +select * from t3; + +--source include/show_binlog_events.inc + +drop table t1,t2,t3; + +# +# BUG#27998 - mysqld crashed when executing INSERT DELAYED on a BLACKHOLE +# table +# +CREATE TABLE t1(a INT) ENGINE=BLACKHOLE; +INSERT DELAYED INTO t1 VALUES(1); +DROP TABLE t1; + + +# +#Bug#19717: DELETE Query Error on BLACKHOLE when using WHERE on column with UNIQUE INDEX +# +CREATE TABLE t1(a INT, b INT) ENGINE=BLACKHOLE; +DELETE FROM t1 WHERE a=10; +ALTER TABLE t1 ADD INDEX(a); +DELETE FROM t1 WHERE a=10; +ALTER TABLE t1 DROP INDEX a; +ALTER TABLE t1 ADD UNIQUE INDEX(a); +DELETE FROM t1 WHERE a=10; +ALTER TABLE t1 DROP INDEX a; +ALTER TABLE t1 ADD PRIMARY KEY(a); +DELETE FROM t1 WHERE a=10; +DROP TABLE t1; + + +# Test that a transaction which is rolled back does not go into binlog +# and that a transaction which is committed does + +reset master; +create table t1 (a int) engine=blackhole; +set autocommit=0; +start transaction; +insert into t1 values(1); +commit; + +let $master_log_pos_1= query_get_value(SHOW MASTER STATUS, Position, 1); + +start transaction; +insert into t1 values(2); +rollback; + +let $master_log_pos_2= query_get_value(SHOW MASTER STATUS, Position, 1); +if ($master_log_pos_2 != $master_log_pos_1) +{ + echo $master_log_pos_1 $master_log_pos_2; + die Rollbacked transaction has been binlogged; +} + +set autocommit=1; +drop table if exists t1; + +# +# Bug#35178 INSERT_ID not written to binary log for inserts against BLACKHOLE backed tables +# +# +# the test checks that explicitly prescribed with set insert_id= value +# preceeds the following autoincrement insert in a blachhole +# + +reset master; +create table t1 (a int auto_increment, primary key (a)) engine=blackhole; + +# not insert_id prescribed insert binlogs with the default set insert_id 1 +insert into t1 values (11), (NULL), (NULL), (NULL); +set insert_id= 3; +insert into t1 values (NULL), (33), (NULL); +set insert_id= 5; +insert into t1 values (55), (NULL); +source include/show_binlog_events2.inc; + +# cleanup +drop table t1; + + +# End of tests diff --git a/mysql-test/suite/binlog/include/check_binlog_size.inc b/mysql-test/suite/binlog/include/check_binlog_size.inc new file mode 100644 index 00000000..9df161ec --- /dev/null +++ b/mysql-test/suite/binlog/include/check_binlog_size.inc @@ -0,0 +1,31 @@ +# This file runs the query and checks +# whether the size of binlog is increased or not +# If size is changed it issue die command +# Parameters +# $sql_query = query to run + +#Only last row of show binlog events matter +--let $tmp= 0 +--let $counter= 1 +while ($tmp != "No such row") +{ + --let $initial_binlog_size= $tmp + --let $tmp= query_get_value(show binary logs, File_size, $counter) + --inc $counter +} + +--eval $sql_query + +--let $tmp= 0 +--let $counter= 1 +while ($tmp != "No such row") +{ + --let $current_binlog_size= $tmp + --let $tmp= query_get_value(show binary logs, File_size, $counter) + --inc $counter +} + +if ($initial_binlog_size != $current_binlog_size) +{ + die "Binlog size changed"; +} diff --git a/mysql-test/suite/binlog/include/ctype_cp932.test b/mysql-test/suite/binlog/include/ctype_cp932.test new file mode 100644 index 00000000..f42bffd3 --- /dev/null +++ b/mysql-test/suite/binlog/include/ctype_cp932.test @@ -0,0 +1,468 @@ +-- source include/have_cp932.inc + +--character_set cp932 +--disable_warnings +drop table if exists t1; +drop table if exists t2; +drop table if exists t3; +drop table if exists t4; +--enable_warnings + +SET @test_character_set= 'cp932'; +SET @test_collation= 'cp932_japanese_ci'; +-- source include/ctype_common.inc + +set names cp932; +set character_set_database = cp932; + +CREATE TABLE t1(c1 CHAR(1)) DEFAULT CHARACTER SET = cp932; + +#Characters which are converted to Unicode ambiguously +INSERT INTO t1 VALUES +(0x05),(0x7E),(0x815C),(0x815F),(0x8160),(0x8161),(0x817C),(0x8191),(0x8192),(0x81CA); + +#NEC ROW 13 characters (0x8740 - 0x879C) +INSERT INTO t1 VALUES +(0x8740),(0x8741),(0x8742),(0x8743),(0x8744),(0x8745),(0x8746),(0x8747), +(0x8748),(0x8749),(0x874A),(0x874B),(0x874C),(0x874D),(0x874E),(0x874F), +(0x8750),(0x8751),(0x8752),(0x8753),(0x8754),(0x8755),(0x8756),(0x8757), +(0x8758),(0x8759),(0x875A),(0x875B),(0x875C),(0x875D),(0x875F), +(0x8760),(0x8761),(0x8762),(0x8763),(0x8764),(0x8765),(0x8766),(0x8767), +(0x8768),(0x8769),(0x876A),(0x876B),(0x876C),(0x876D),(0x876E),(0x876F), +(0x8770),(0x8771),(0x8772),(0x8773),(0x8774),(0x8775),(0x877E), +(0x8780),(0x8781),(0x8782),(0x8783),(0x8784),(0x8785),(0x8786),(0x8787), +(0x8788),(0x8789),(0x878A),(0x878B),(0x878C),(0x878D),(0x878E),(0x878F), +(0x8790),(0x8791),(0x8792),(0x8793),(0x8794),(0x8795),(0x8796),(0x8797), +(0x8798),(0x8799),(0x879A),(0x879B),(0x879C); + +#IBM selected characters kanji & non-kanji, NEC implementation (0xED40 - 0xEEFC) +INSERT INTO t1 VALUES +(0xED40),(0xED41),(0xED42),(0xED43),(0xED44),(0xED45),(0xED46),(0xED47), +(0xED48),(0xED49),(0xED4A),(0xED4B),(0xED4C),(0xED4D),(0xED4E),(0xED4F), +(0xED50),(0xED51),(0xED52),(0xED53),(0xED54),(0xED55),(0xED56),(0xED57), +(0xED58),(0xED59),(0xED5A),(0xED5B),(0xED5C),(0xED5D),(0xED5E),(0xED5F), +(0xED60),(0xED61),(0xED62),(0xED63),(0xED64),(0xED65),(0xED66),(0xED67), +(0xED68),(0xED69),(0xED6A),(0xED6B),(0xED6C),(0xED6D),(0xED6E),(0xED6F), +(0xED70),(0xED71),(0xED72),(0xED73),(0xED74),(0xED75),(0xED76),(0xED77), +(0xED78),(0xED79),(0xED7A),(0xED7B),(0xED7C),(0xED7D),(0xED7E), +(0xED80),(0xED81),(0xED82),(0xED83),(0xED84),(0xED85),(0xED86),(0xED87), +(0xED88),(0xED89),(0xED8A),(0xED8B),(0xED8C),(0xED8D),(0xED8E),(0xED8F), +(0xED90),(0xED91),(0xED92),(0xED93),(0xED94),(0xED95),(0xED96),(0xED97), +(0xED98),(0xED99),(0xED9A),(0xED9B),(0xED9C),(0xED9D),(0xED9E),(0xED9F), +(0xEDA0),(0xEDA1),(0xEDA2),(0xEDA3),(0xEDA4),(0xEDA5),(0xEDA6),(0xEDA7), +(0xEDA8),(0xEDA9),(0xEDAA),(0xEDAB),(0xEDAC),(0xEDAD),(0xEDAE),(0xEDAF), +(0xEDB0),(0xEDB1),(0xEDB2),(0xEDB3),(0xEDB4),(0xEDB5),(0xEDB6),(0xEDB7), +(0xEDB8),(0xEDB9),(0xEDBA),(0xEDBB),(0xEDBC),(0xEDBD),(0xEDBE),(0xEDBF), +(0xEDC0),(0xEDC1),(0xEDC2),(0xEDC3),(0xEDC4),(0xEDC5),(0xEDC6),(0xEDC7), +(0xEDC8),(0xEDC9),(0xEDCA),(0xEDCB),(0xEDCC),(0xEDCD),(0xEDCE),(0xEDCF), +(0xEDD0),(0xEDD1),(0xEDD2),(0xEDD3),(0xEDD4),(0xEDD5),(0xEDD6),(0xEDD7), +(0xEDD8),(0xEDD9),(0xEDDA),(0xEDDB),(0xEDDC),(0xEDDD),(0xEDDE),(0xEDDF), +(0xEDE0),(0xEDE1),(0xEDE2),(0xEDE3),(0xEDE4),(0xEDE5),(0xEDE6),(0xEDE7), +(0xEDE8),(0xEDE9),(0xEDEA),(0xEDEB),(0xEDEC),(0xEDED),(0xEDEE),(0xEDEF), +(0xEDF0),(0xEDF1),(0xEDF2),(0xEDF3),(0xEDF4),(0xEDF5),(0xEDF6),(0xEDF7), +(0xEDF8),(0xEDF9),(0xEDFA),(0xEDFB),(0xEDFC), +(0xEE40),(0xEE41),(0xEE42),(0xEE43),(0xEE44),(0xEE45),(0xEE46),(0xEE47), +(0xEE48),(0xEE49),(0xEE4A),(0xEE4B),(0xEE4C),(0xEE4D),(0xEE4E),(0xEE4F), +(0xEE50),(0xEE51),(0xEE52),(0xEE53),(0xEE54),(0xEE55),(0xEE56),(0xEE57), +(0xEE58),(0xEE59),(0xEE5A),(0xEE5B),(0xEE5C),(0xEE5D),(0xEE5E),(0xEE5F), +(0xEE60),(0xEE61),(0xEE62),(0xEE63),(0xEE64),(0xEE65),(0xEE66),(0xEE67), +(0xEE68),(0xEE69),(0xEE6A),(0xEE6B),(0xEE6C),(0xEE6D),(0xEE6E),(0xEE6F), +(0xEE70),(0xEE71),(0xEE72),(0xEE73),(0xEE74),(0xEE75),(0xEE76),(0xEE77), +(0xEE78),(0xEE79),(0xEE7A),(0xEE7B),(0xEE7C),(0xEE7D),(0xEE7E), +(0xEE80),(0xEE81),(0xEE82),(0xEE83),(0xEE84),(0xEE85),(0xEE86),(0xEE87), +(0xEE88),(0xEE89),(0xEE8A),(0xEE8B),(0xEE8C),(0xEE8D),(0xEE8E),(0xEE8F), +(0xEE90),(0xEE91),(0xEE92),(0xEE93),(0xEE94),(0xEE95),(0xEE96),(0xEE97), +(0xEE98),(0xEE99),(0xEE9A),(0xEE9B),(0xEE9C),(0xEE9D),(0xEE9E),(0xEE9F), +(0xEEA0),(0xEEA1),(0xEEA2),(0xEEA3),(0xEEA4),(0xEEA5),(0xEEA6),(0xEEA7), +(0xEEA8),(0xEEA9),(0xEEAA),(0xEEAB),(0xEEAC),(0xEEAD),(0xEEAE),(0xEEAF), +(0xEEB0),(0xEEB1),(0xEEB2),(0xEEB3),(0xEEB4),(0xEEB5),(0xEEB6),(0xEEB7), +(0xEEB8),(0xEEB9),(0xEEBA),(0xEEBB),(0xEEBC),(0xEEBD),(0xEEBE),(0xEEBF), +(0xEEC0),(0xEEC1),(0xEEC2),(0xEEC3),(0xEEC4),(0xEEC5),(0xEEC6),(0xEEC7), +(0xEEC8),(0xEEC9),(0xEECA),(0xEECB),(0xEECC),(0xEECD),(0xEECE),(0xEECF), +(0xEED0),(0xEED1),(0xEED2),(0xEED3),(0xEED4),(0xEED5),(0xEED6),(0xEED7), +(0xEED8),(0xEED9),(0xEEDA),(0xEEDB),(0xEEDC),(0xEEDD),(0xEEDE),(0xEEDF), +(0xEEE0),(0xEEE1),(0xEEE2),(0xEEE3),(0xEEE4),(0xEEE5),(0xEEE6),(0xEEE7), +(0xEEE8),(0xEEE9),(0xEEEA),(0xEEEB),(0xEEEC),(0xEEEF), +(0xEEF0),(0xEEF1),(0xEEF2),(0xEEF3),(0xEEF4),(0xEEF5),(0xEEF6),(0xEEF7), +(0xEEF8),(0xEEF9),(0xEEFA),(0xEEFB),(0xEEFC); + +#IBM selected kanji & non-kanji (0xFA40 - 0xFC4B) +INSERT INTO t1 VALUES +(0xFA40),(0xFA41),(0xFA42),(0xFA43),(0xFA44),(0xFA45),(0xFA46),(0xFA47), +(0xFA48),(0xFA49),(0xFA4A),(0xFA4B),(0xFA4C),(0xFA4D),(0xFA4E),(0xFA4F), +(0xFA50),(0xFA51),(0xFA52),(0xFA53),(0xFA54),(0xFA55),(0xFA56),(0xFA57), +(0xFA58),(0xFA59),(0xFA5A),(0xFA5B),(0xFA5C),(0xFA5D),(0xFA5E),(0xFA5F), +(0xFA60),(0xFA61),(0xFA62),(0xFA63),(0xFA64),(0xFA65),(0xFA66),(0xFA67), +(0xFA68),(0xFA69),(0xFA6A),(0xFA6B),(0xFA6C),(0xFA6D),(0xFA6E),(0xFA6F), +(0xFA70),(0xFA71),(0xFA72),(0xFA73),(0xFA74),(0xFA75),(0xFA76),(0xFA77), +(0xFA78),(0xFA79),(0xFA7A),(0xFA7B),(0xFA7C),(0xFA7D),(0xFA7E), +(0xFA80),(0xFA81),(0xFA82),(0xFA83),(0xFA84),(0xFA85),(0xFA86),(0xFA87), +(0xFA88),(0xFA89),(0xFA8A),(0xFA8B),(0xFA8C),(0xFA8D),(0xFA8E),(0xFA8F), +(0xFA90),(0xFA91),(0xFA92),(0xFA93),(0xFA94),(0xFA95),(0xFA96),(0xFA97), +(0xFA98),(0xFA99),(0xFA9A),(0xFA9B),(0xFA9C),(0xFA9D),(0xFA9E),(0xFA9F), +(0xFAA0),(0xFAA1),(0xFAA2),(0xFAA3),(0xFAA4),(0xFAA5),(0xFAA6),(0xFAA7), +(0xFAA8),(0xFAA9),(0xFAAA),(0xFAAB),(0xFAAC),(0xFAAD),(0xFAAE),(0xFAAF), +(0xFAB0),(0xFAB1),(0xFAB2),(0xFAB3),(0xFAB4),(0xFAB5),(0xFAB6),(0xFAB7), +(0xFAB8),(0xFAB9),(0xFABA),(0xFABB),(0xFABC),(0xFABD),(0xFABE),(0xFABF), +(0xFAC0),(0xFAC1),(0xFAC2),(0xFAC3),(0xFAC4),(0xFAC5),(0xFAC6),(0xFAC7), +(0xFAC8),(0xFAC9),(0xFACA),(0xFACB),(0xFACC),(0xFACD),(0xFACE),(0xFACF), +(0xFAD0),(0xFAD1),(0xFAD2),(0xFAD3),(0xFAD4),(0xFAD5),(0xFAD6),(0xFAD7), +(0xFAD8),(0xFAD9),(0xFADA),(0xFADB),(0xFADC),(0xFADD),(0xFADE),(0xFADF), +(0xFAE0),(0xFAE1),(0xFAE2),(0xFAE3),(0xFAE4),(0xFAE5),(0xFAE6),(0xFAE7), +(0xFAE8),(0xFAE9),(0xFAEA),(0xFAEB),(0xFAEC),(0xFAED),(0xFAEE),(0xFAEF), +(0xFAF0),(0xFAF1),(0xFAF2),(0xFAF3),(0xFAF4),(0xFAF5),(0xFAF6),(0xFAF7), +(0xFAF8),(0xFAF9),(0xFAFA),(0xFAFB),(0xFAFC), +(0xFB40),(0xFB41),(0xFB42),(0xFB43),(0xFB44),(0xFB45),(0xFB46),(0xFB47), +(0xFB48),(0xFB49),(0xFB4A),(0xFB4B),(0xFB4C),(0xFB4D),(0xFB4E),(0xFB4F), +(0xFB50),(0xFB51),(0xFB52),(0xFB53),(0xFB54),(0xFB55),(0xFB56),(0xFB57), +(0xFB58),(0xFB59),(0xFB5A),(0xFB5B),(0xFB5C),(0xFB5D),(0xFB5E),(0xFB5F), +(0xFB60),(0xFB61),(0xFB62),(0xFB63),(0xFB64),(0xFB65),(0xFB66),(0xFB67), +(0xFB68),(0xFB69),(0xFB6A),(0xFB6B),(0xFB6C),(0xFB6D),(0xFB6E),(0xFB6F), +(0xFB70),(0xFB71),(0xFB72),(0xFB73),(0xFB74),(0xFB75),(0xFB76),(0xFB77), +(0xFB78),(0xFB79),(0xFB7A),(0xFB7B),(0xFB7C),(0xFB7D),(0xFB7E), +(0xFB80),(0xFB81),(0xFB82),(0xFB83),(0xFB84),(0xFB85),(0xFB86),(0xFB87), +(0xFB88),(0xFB89),(0xFB8A),(0xFB8B),(0xFB8C),(0xFB8D),(0xFB8E),(0xFB8F), +(0xFB90),(0xFB91),(0xFB92),(0xFB93),(0xFB94),(0xFB95),(0xFB96),(0xFB97), +(0xFB98),(0xFB99),(0xFB9A),(0xFB9B),(0xFB9C),(0xFB9D),(0xFB9E),(0xFB9F), +(0xFBA0),(0xFBA1),(0xFBA2),(0xFBA3),(0xFBA4),(0xFBA5),(0xFBA6),(0xFBA7), +(0xFBA8),(0xFBA9),(0xFBAA),(0xFBAB),(0xFBAC),(0xFBAD),(0xFBAE),(0xFBAF), +(0xFBB0),(0xFBB1),(0xFBB2),(0xFBB3),(0xFBB4),(0xFBB5),(0xFBB6),(0xFBB7), +(0xFBB8),(0xFBB9),(0xFBBA),(0xFBBB),(0xFBBC),(0xFBBD),(0xFBBE),(0xFBBF), +(0xFBC0),(0xFBC1),(0xFBC2),(0xFBC3),(0xFBC4),(0xFBC5),(0xFBC6),(0xFBC7), +(0xFBC8),(0xFBC9),(0xFBCA),(0xFBCB),(0xFBCC),(0xFBCD),(0xFBCE),(0xFBCF), +(0xFBD0),(0xFBD1),(0xFBD2),(0xFBD3),(0xFBD4),(0xFBD5),(0xFBD6),(0xFBD7), +(0xFBD8),(0xFBD9),(0xFBDA),(0xFBDB),(0xFBDC),(0xFBDD),(0xFBDE),(0xFBDF), +(0xFBE0),(0xFBE1),(0xFBE2),(0xFBE3),(0xFBE4),(0xFBE5),(0xFBE6),(0xFBE7), +(0xFBE8),(0xFBE9),(0xFBEA),(0xFBEB),(0xFBEC),(0xFBED),(0xFBEE),(0xFBEF), +(0xFBF0),(0xFBF1),(0xFBF2),(0xFBF3),(0xFBF4),(0xFBF5),(0xFBF6),(0xFBF7), +(0xFBF8),(0xFBF9),(0xFBFA),(0xFBFB),(0xFBFC), +(0xFC40),(0xFC41),(0xFC42),(0xFC43),(0xFC44),(0xFC45),(0xFC46),(0xFC47), +(0xFC48),(0xFC49),(0xFC4A),(0xFC4B); + +#User defined characters (0xF040-0xF9FC) +INSERT INTO t1 VALUES +(0xF040),(0xF041),(0xF042),(0xF043),(0xF044),(0xF045),(0xF046),(0xF047), +(0xF048),(0xF049),(0xF04A),(0xF04B),(0xF04C),(0xF04D),(0xF04E),(0xF04F), +(0xF050),(0xF051),(0xF052),(0xF053),(0xF054),(0xF055),(0xF056),(0xF057), +(0xF058),(0xF059),(0xF05A),(0xF05B),(0xF05C),(0xF05D),(0xF05E),(0xF05F), +(0xF060),(0xF061),(0xF062),(0xF063),(0xF064),(0xF065),(0xF066),(0xF067), +(0xF068),(0xF069),(0xF06A),(0xF06B),(0xF06C),(0xF06D),(0xF06E),(0xF06F), +(0xF070),(0xF071),(0xF072),(0xF073),(0xF074),(0xF075),(0xF076),(0xF077), +(0xF078),(0xF079),(0xF07A),(0xF07B),(0xF07C),(0xF07D),(0xF07E), +(0xF080),(0xF081),(0xF082),(0xF083),(0xF084),(0xF085),(0xF086),(0xF087), +(0xF088),(0xF089),(0xF08A),(0xF08B),(0xF08C),(0xF08D),(0xF08E),(0xF08F), +(0xF090),(0xF091),(0xF092),(0xF093),(0xF094),(0xF095),(0xF096),(0xF097), +(0xF098),(0xF099),(0xF09A),(0xF09B),(0xF09C),(0xF09D),(0xF09E),(0xF09F), +(0xF0A0),(0xF0A1),(0xF0A2),(0xF0A3),(0xF0A4),(0xF0A5),(0xF0A6),(0xF0A7), +(0xF0A8),(0xF0A9),(0xF0AA),(0xF0AB),(0xF0AC),(0xF0AD),(0xF0AE),(0xF0AF), +(0xF0B0),(0xF0B1),(0xF0B2),(0xF0B3),(0xF0B4),(0xF0B5),(0xF0B6),(0xF0B7), +(0xF0B8),(0xF0B9),(0xF0BA),(0xF0BB),(0xF0BC),(0xF0BD),(0xF0BE),(0xF0BF), +(0xF0C0),(0xF0C1),(0xF0C2),(0xF0C3),(0xF0C4),(0xF0C5),(0xF0C6),(0xF0C7), +(0xF0C8),(0xF0C9),(0xF0CA),(0xF0CB),(0xF0CC),(0xF0CD),(0xF0CE),(0xF0CF), +(0xF0D0),(0xF0D1),(0xF0D2),(0xF0D3),(0xF0D4),(0xF0D5),(0xF0D6),(0xF0D7), +(0xF0D8),(0xF0D9),(0xF0DA),(0xF0DB),(0xF0DC),(0xF0DD),(0xF0DE),(0xF0DF), +(0xF0E0),(0xF0E1),(0xF0E2),(0xF0E3),(0xF0E4),(0xF0E5),(0xF0E6),(0xF0E7), +(0xF0E8),(0xF0E9),(0xF0EA),(0xF0EB),(0xF0EC),(0xF0ED),(0xF0EE),(0xF0EF), +(0xF0F0),(0xF0F1),(0xF0F2),(0xF0F3),(0xF0F4),(0xF0F5),(0xF0F6),(0xF0F7), +(0xF0F8),(0xF0F9),(0xF0FA),(0xF0FB),(0xF0FC), +(0xF140),(0xF141),(0xF142),(0xF143),(0xF144),(0xF145),(0xF146),(0xF147), +(0xF148),(0xF149),(0xF14A),(0xF14B),(0xF14C),(0xF14D),(0xF14E),(0xF14F), +(0xF150),(0xF151),(0xF152),(0xF153),(0xF154),(0xF155),(0xF156),(0xF157), +(0xF158),(0xF159),(0xF15A),(0xF15B),(0xF15C),(0xF15D),(0xF15E),(0xF15F), +(0xF160),(0xF161),(0xF162),(0xF163),(0xF164),(0xF165),(0xF166),(0xF167), +(0xF168),(0xF169),(0xF16A),(0xF16B),(0xF16C),(0xF16D),(0xF16E),(0xF16F), +(0xF170),(0xF171),(0xF172),(0xF173),(0xF174),(0xF175),(0xF176),(0xF177), +(0xF178),(0xF179),(0xF17A),(0xF17B),(0xF17C),(0xF17D),(0xF17E), +(0xF180),(0xF181),(0xF182),(0xF183),(0xF184),(0xF185),(0xF186),(0xF187), +(0xF188),(0xF189),(0xF18A),(0xF18B),(0xF18C),(0xF18D),(0xF18E),(0xF18F), +(0xF190),(0xF191),(0xF192),(0xF193),(0xF194),(0xF195),(0xF196),(0xF197), +(0xF198),(0xF199),(0xF19A),(0xF19B),(0xF19C),(0xF19D),(0xF19E),(0xF19F), +(0xF1A0),(0xF1A1),(0xF1A2),(0xF1A3),(0xF1A4),(0xF1A5),(0xF1A6),(0xF1A7), +(0xF1A8),(0xF1A9),(0xF1AA),(0xF1AB),(0xF1AC),(0xF1AD),(0xF1AE),(0xF1AF), +(0xF1B0),(0xF1B1),(0xF1B2),(0xF1B3),(0xF1B4),(0xF1B5),(0xF1B6),(0xF1B7), +(0xF1B8),(0xF1B9),(0xF1BA),(0xF1BB),(0xF1BC),(0xF1BD),(0xF1BE),(0xF1BF), +(0xF1C0),(0xF1C1),(0xF1C2),(0xF1C3),(0xF1C4),(0xF1C5),(0xF1C6),(0xF1C7), +(0xF1C8),(0xF1C9),(0xF1CA),(0xF1CB),(0xF1CC),(0xF1CD),(0xF1CE),(0xF1CF), +(0xF1D0),(0xF1D1),(0xF1D2),(0xF1D3),(0xF1D4),(0xF1D5),(0xF1D6),(0xF1D7), +(0xF1D8),(0xF1D9),(0xF1DA),(0xF1DB),(0xF1DC),(0xF1DD),(0xF1DE),(0xF1DF), +(0xF1E0),(0xF1E1),(0xF1E2),(0xF1E3),(0xF1E4),(0xF1E5),(0xF1E6),(0xF1E7), +(0xF1E8),(0xF1E9),(0xF1EA),(0xF1EB),(0xF1EC),(0xF1ED),(0xF1EE),(0xF1EF), +(0xF1F0),(0xF1F1),(0xF1F2),(0xF1F3),(0xF1F4),(0xF1F5),(0xF1F6),(0xF1F7), +(0xF1F8),(0xF1F9),(0xF1FA),(0xF1FB),(0xF1FC), +(0xF240),(0xF241),(0xF242),(0xF243),(0xF244),(0xF245),(0xF246),(0xF247), +(0xF248),(0xF249),(0xF24A),(0xF24B),(0xF24C),(0xF24D),(0xF24E),(0xF24F), +(0xF250),(0xF251),(0xF252),(0xF253),(0xF254),(0xF255),(0xF256),(0xF257), +(0xF258),(0xF259),(0xF25A),(0xF25B),(0xF25C),(0xF25D),(0xF25E),(0xF25F), +(0xF260),(0xF261),(0xF262),(0xF263),(0xF264),(0xF265),(0xF266),(0xF267), +(0xF268),(0xF269),(0xF26A),(0xF26B),(0xF26C),(0xF26D),(0xF26E),(0xF26F), +(0xF270),(0xF271),(0xF272),(0xF273),(0xF274),(0xF275),(0xF276),(0xF277), +(0xF278),(0xF279),(0xF27A),(0xF27B),(0xF27C),(0xF27D),(0xF27E), +(0xF280),(0xF281),(0xF282),(0xF283),(0xF284),(0xF285),(0xF286),(0xF287), +(0xF288),(0xF289),(0xF28A),(0xF28B),(0xF28C),(0xF28D),(0xF28E),(0xF28F), +(0xF290),(0xF291),(0xF292),(0xF293),(0xF294),(0xF295),(0xF296),(0xF297), +(0xF298),(0xF299),(0xF29A),(0xF29B),(0xF29C),(0xF29D),(0xF29E),(0xF29F), +(0xF2A0),(0xF2A1),(0xF2A2),(0xF2A3),(0xF2A4),(0xF2A5),(0xF2A6),(0xF2A7), +(0xF2A8),(0xF2A9),(0xF2AA),(0xF2AB),(0xF2AC),(0xF2AD),(0xF2AE),(0xF2AF), +(0xF2B0),(0xF2B1),(0xF2B2),(0xF2B3),(0xF2B4),(0xF2B5),(0xF2B6),(0xF2B7), +(0xF2B8),(0xF2B9),(0xF2BA),(0xF2BB),(0xF2BC),(0xF2BD),(0xF2BE),(0xF2BF), +(0xF2C0),(0xF2C1),(0xF2C2),(0xF2C3),(0xF2C4),(0xF2C5),(0xF2C6),(0xF2C7), +(0xF2C8),(0xF2C9),(0xF2CA),(0xF2CB),(0xF2CC),(0xF2CD),(0xF2CE),(0xF2CF), +(0xF2D0),(0xF2D1),(0xF2D2),(0xF2D3),(0xF2D4),(0xF2D5),(0xF2D6),(0xF2D7), +(0xF2D8),(0xF2D9),(0xF2DA),(0xF2DB),(0xF2DC),(0xF2DD),(0xF2DE),(0xF2DF), +(0xF2E0),(0xF2E1),(0xF2E2),(0xF2E3),(0xF2E4),(0xF2E5),(0xF2E6),(0xF2E7), +(0xF2E8),(0xF2E9),(0xF2EA),(0xF2EB),(0xF2EC),(0xF2ED),(0xF2EE),(0xF2EF), +(0xF2F0),(0xF2F1),(0xF2F2),(0xF2F3),(0xF2F4),(0xF2F5),(0xF2F6),(0xF2F7), +(0xF2F8),(0xF2F9),(0xF2FA),(0xF2FB),(0xF2FC), +(0xF340),(0xF341),(0xF342),(0xF343),(0xF344),(0xF345),(0xF346),(0xF347), +(0xF348),(0xF349),(0xF34A),(0xF34B),(0xF34C),(0xF34D),(0xF34E),(0xF34F), +(0xF350),(0xF351),(0xF352),(0xF353),(0xF354),(0xF355),(0xF356),(0xF357), +(0xF358),(0xF359),(0xF35A),(0xF35B),(0xF35C),(0xF35D),(0xF35E),(0xF35F), +(0xF360),(0xF361),(0xF362),(0xF363),(0xF364),(0xF365),(0xF366),(0xF367), +(0xF368),(0xF369),(0xF36A),(0xF36B),(0xF36C),(0xF36D),(0xF36E),(0xF36F), +(0xF370),(0xF371),(0xF372),(0xF373),(0xF374),(0xF375),(0xF376),(0xF377), +(0xF378),(0xF379),(0xF37A),(0xF37B),(0xF37C),(0xF37D),(0xF37E), +(0xF380),(0xF381),(0xF382),(0xF383),(0xF384),(0xF385),(0xF386),(0xF387), +(0xF388),(0xF389),(0xF38A),(0xF38B),(0xF38C),(0xF38D),(0xF38E),(0xF38F), +(0xF390),(0xF391),(0xF392),(0xF393),(0xF394),(0xF395),(0xF396),(0xF397), +(0xF398),(0xF399),(0xF39A),(0xF39B),(0xF39C),(0xF39D),(0xF39E),(0xF39F), +(0xF3A0),(0xF3A1),(0xF3A2),(0xF3A3),(0xF3A4),(0xF3A5),(0xF3A6),(0xF3A7), +(0xF3A8),(0xF3A9),(0xF3AA),(0xF3AB),(0xF3AC),(0xF3AD),(0xF3AE),(0xF3AF), +(0xF3B0),(0xF3B1),(0xF3B2),(0xF3B3),(0xF3B4),(0xF3B5),(0xF3B6),(0xF3B7), +(0xF3B8),(0xF3B9),(0xF3BA),(0xF3BB),(0xF3BC),(0xF3BD),(0xF3BE),(0xF3BF), +(0xF3C0),(0xF3C1),(0xF3C2),(0xF3C3),(0xF3C4),(0xF3C5),(0xF3C6),(0xF3C7), +(0xF3C8),(0xF3C9),(0xF3CA),(0xF3CB),(0xF3CC),(0xF3CD),(0xF3CE),(0xF3CF), +(0xF3D0),(0xF3D1),(0xF3D2),(0xF3D3),(0xF3D4),(0xF3D5),(0xF3D6),(0xF3D7), +(0xF3D8),(0xF3D9),(0xF3DA),(0xF3DB),(0xF3DC),(0xF3DD),(0xF3DE),(0xF3DF), +(0xF3E0),(0xF3E1),(0xF3E2),(0xF3E3),(0xF3E4),(0xF3E5),(0xF3E6),(0xF3E7), +(0xF3E8),(0xF3E9),(0xF3EA),(0xF3EB),(0xF3EC),(0xF3ED),(0xF3EE),(0xF3EF), +(0xF3F0),(0xF3F1),(0xF3F2),(0xF3F3),(0xF3F4),(0xF3F5),(0xF3F6),(0xF3F7), +(0xF3F8),(0xF3F9),(0xF3FA),(0xF3FB),(0xF3FC), +(0xF440),(0xF441),(0xF442),(0xF443),(0xF444),(0xF445),(0xF446),(0xF447), +(0xF448),(0xF449),(0xF44A),(0xF44B),(0xF44C),(0xF44D),(0xF44E),(0xF44F), +(0xF450),(0xF451),(0xF452),(0xF453),(0xF454),(0xF455),(0xF456),(0xF457), +(0xF458),(0xF459),(0xF45A),(0xF45B),(0xF45C),(0xF45D),(0xF45E),(0xF45F), +(0xF460),(0xF461),(0xF462),(0xF463),(0xF464),(0xF465),(0xF466),(0xF467), +(0xF468),(0xF469),(0xF46A),(0xF46B),(0xF46C),(0xF46D),(0xF46E),(0xF46F), +(0xF470),(0xF471),(0xF472),(0xF473),(0xF474),(0xF475),(0xF476),(0xF477), +(0xF478),(0xF479),(0xF47A),(0xF47B),(0xF47C),(0xF47D),(0xF47E), +(0xF480),(0xF481),(0xF482),(0xF483),(0xF484),(0xF485),(0xF486),(0xF487), +(0xF488),(0xF489),(0xF48A),(0xF48B),(0xF48C),(0xF48D),(0xF48E),(0xF48F), +(0xF490),(0xF491),(0xF492),(0xF493),(0xF494),(0xF495),(0xF496),(0xF497), +(0xF498),(0xF499),(0xF49A),(0xF49B),(0xF49C),(0xF49D),(0xF49E),(0xF49F), +(0xF4A0),(0xF4A1),(0xF4A2),(0xF4A3),(0xF4A4),(0xF4A5),(0xF4A6),(0xF4A7), +(0xF4A8),(0xF4A9),(0xF4AA),(0xF4AB),(0xF4AC),(0xF4AD),(0xF4AE),(0xF4AF), +(0xF4B0),(0xF4B1),(0xF4B2),(0xF4B3),(0xF4B4),(0xF4B5),(0xF4B6),(0xF4B7), +(0xF4B8),(0xF4B9),(0xF4BA),(0xF4BB),(0xF4BC),(0xF4BD),(0xF4BE),(0xF4BF), +(0xF4C0),(0xF4C1),(0xF4C2),(0xF4C3),(0xF4C4),(0xF4C5),(0xF4C6),(0xF4C7), +(0xF4C8),(0xF4C9),(0xF4CA),(0xF4CB),(0xF4CC),(0xF4CD),(0xF4CE),(0xF4CF), +(0xF4D0),(0xF4D1),(0xF4D2),(0xF4D3),(0xF4D4),(0xF4D5),(0xF4D6),(0xF4D7), +(0xF4D8),(0xF4D9),(0xF4DA),(0xF4DB),(0xF4DC),(0xF4DD),(0xF4DE),(0xF4DF), +(0xF4E0),(0xF4E1),(0xF4E2),(0xF4E3),(0xF4E4),(0xF4E5),(0xF4E6),(0xF4E7), +(0xF4E8),(0xF4E9),(0xF4EA),(0xF4EB),(0xF4EC),(0xF4ED),(0xF4EE),(0xF4EF), +(0xF4F0),(0xF4F1),(0xF4F2),(0xF4F3),(0xF4F4),(0xF4F5),(0xF4F6),(0xF4F7), +(0xF4F8),(0xF4F9),(0xF4FA),(0xF4FB),(0xF4FC), +(0xF540),(0xF541),(0xF542),(0xF543),(0xF544),(0xF545),(0xF546),(0xF547), +(0xF548),(0xF549),(0xF54A),(0xF54B),(0xF54C),(0xF54D),(0xF54E),(0xF54F), +(0xF550),(0xF551),(0xF552),(0xF553),(0xF554),(0xF555),(0xF556),(0xF557), +(0xF558),(0xF559),(0xF55A),(0xF55B),(0xF55C),(0xF55D),(0xF55E),(0xF55F), +(0xF560),(0xF561),(0xF562),(0xF563),(0xF564),(0xF565),(0xF566),(0xF567), +(0xF568),(0xF569),(0xF56A),(0xF56B),(0xF56C),(0xF56D),(0xF56E),(0xF56F), +(0xF570),(0xF571),(0xF572),(0xF573),(0xF574),(0xF575),(0xF576),(0xF577), +(0xF578),(0xF579),(0xF57A),(0xF57B),(0xF57C),(0xF57D),(0xF57E), +(0xF580),(0xF581),(0xF582),(0xF583),(0xF584),(0xF585),(0xF586),(0xF587), +(0xF588),(0xF589),(0xF58A),(0xF58B),(0xF58C),(0xF58D),(0xF58E),(0xF58F), +(0xF590),(0xF591),(0xF592),(0xF593),(0xF594),(0xF595),(0xF596),(0xF597), +(0xF598),(0xF599),(0xF59A),(0xF59B),(0xF59C),(0xF59D),(0xF59E),(0xF59F), +(0xF5A0),(0xF5A1),(0xF5A2),(0xF5A3),(0xF5A4),(0xF5A5),(0xF5A6),(0xF5A7), +(0xF5A8),(0xF5A9),(0xF5AA),(0xF5AB),(0xF5AC),(0xF5AD),(0xF5AE),(0xF5AF), +(0xF5B0),(0xF5B1),(0xF5B2),(0xF5B3),(0xF5B4),(0xF5B5),(0xF5B6),(0xF5B7), +(0xF5B8),(0xF5B9),(0xF5BA),(0xF5BB),(0xF5BC),(0xF5BD),(0xF5BE),(0xF5BF), +(0xF5C0),(0xF5C1),(0xF5C2),(0xF5C3),(0xF5C4),(0xF5C5),(0xF5C6),(0xF5C7), +(0xF5C8),(0xF5C9),(0xF5CA),(0xF5CB),(0xF5CC),(0xF5CD),(0xF5CE),(0xF5CF), +(0xF5D0),(0xF5D1),(0xF5D2),(0xF5D3),(0xF5D4),(0xF5D5),(0xF5D6),(0xF5D7), +(0xF5D8),(0xF5D9),(0xF5DA),(0xF5DB),(0xF5DC),(0xF5DD),(0xF5DE),(0xF5DF), +(0xF5E0),(0xF5E1),(0xF5E2),(0xF5E3),(0xF5E4),(0xF5E5),(0xF5E6),(0xF5E7), +(0xF5E8),(0xF5E9),(0xF5EA),(0xF5EB),(0xF5EC),(0xF5ED),(0xF5EE),(0xF5EF), +(0xF5F0),(0xF5F1),(0xF5F2),(0xF5F3),(0xF5F4),(0xF5F5),(0xF5F6),(0xF5F7), +(0xF5F8),(0xF5F9),(0xF5FA),(0xF5FB),(0xF5FC), +(0xF640),(0xF641),(0xF642),(0xF643),(0xF644),(0xF645),(0xF646),(0xF647), +(0xF648),(0xF649),(0xF64A),(0xF64B),(0xF64C),(0xF64D),(0xF64E),(0xF64F), +(0xF650),(0xF651),(0xF652),(0xF653),(0xF654),(0xF655),(0xF656),(0xF657), +(0xF658),(0xF659),(0xF65A),(0xF65B),(0xF65C),(0xF65D),(0xF65E),(0xF65F), +(0xF660),(0xF661),(0xF662),(0xF663),(0xF664),(0xF665),(0xF666),(0xF667), +(0xF668),(0xF669),(0xF66A),(0xF66B),(0xF66C),(0xF66D),(0xF66E),(0xF66F), +(0xF670),(0xF671),(0xF672),(0xF673),(0xF674),(0xF675),(0xF676),(0xF677), +(0xF678),(0xF679),(0xF67A),(0xF67B),(0xF67C),(0xF67D),(0xF67E), +(0xF680),(0xF681),(0xF682),(0xF683),(0xF684),(0xF685),(0xF686),(0xF687), +(0xF688),(0xF689),(0xF68A),(0xF68B),(0xF68C),(0xF68D),(0xF68E),(0xF68F), +(0xF690),(0xF691),(0xF692),(0xF693),(0xF694),(0xF695),(0xF696),(0xF697), +(0xF698),(0xF699),(0xF69A),(0xF69B),(0xF69C),(0xF69D),(0xF69E),(0xF69F), +(0xF6A0),(0xF6A1),(0xF6A2),(0xF6A3),(0xF6A4),(0xF6A5),(0xF6A6),(0xF6A7), +(0xF6A8),(0xF6A9),(0xF6AA),(0xF6AB),(0xF6AC),(0xF6AD),(0xF6AE),(0xF6AF), +(0xF6B0),(0xF6B1),(0xF6B2),(0xF6B3),(0xF6B4),(0xF6B5),(0xF6B6),(0xF6B7), +(0xF6B8),(0xF6B9),(0xF6BA),(0xF6BB),(0xF6BC),(0xF6BD),(0xF6BE),(0xF6BF), +(0xF6C0),(0xF6C1),(0xF6C2),(0xF6C3),(0xF6C4),(0xF6C5),(0xF6C6),(0xF6C7), +(0xF6C8),(0xF6C9),(0xF6CA),(0xF6CB),(0xF6CC),(0xF6CD),(0xF6CE),(0xF6CF), +(0xF6D0),(0xF6D1),(0xF6D2),(0xF6D3),(0xF6D4),(0xF6D5),(0xF6D6),(0xF6D7), +(0xF6D8),(0xF6D9),(0xF6DA),(0xF6DB),(0xF6DC),(0xF6DD),(0xF6DE),(0xF6DF), +(0xF6E0),(0xF6E1),(0xF6E2),(0xF6E3),(0xF6E4),(0xF6E5),(0xF6E6),(0xF6E7), +(0xF6E8),(0xF6E9),(0xF6EA),(0xF6EB),(0xF6EC),(0xF6ED),(0xF6EE),(0xF6EF), +(0xF6F0),(0xF6F1),(0xF6F2),(0xF6F3),(0xF6F4),(0xF6F5),(0xF6F6),(0xF6F7), +(0xF6F8),(0xF6F9),(0xF6FA),(0xF6FB),(0xF6FC), +(0xF740),(0xF741),(0xF742),(0xF743),(0xF744),(0xF745),(0xF746),(0xF747), +(0xF748),(0xF749),(0xF74A),(0xF74B),(0xF74C),(0xF74D),(0xF74E),(0xF74F), +(0xF750),(0xF751),(0xF752),(0xF753),(0xF754),(0xF755),(0xF756),(0xF757), +(0xF758),(0xF759),(0xF75A),(0xF75B),(0xF75C),(0xF75D),(0xF75E),(0xF75F), +(0xF760),(0xF761),(0xF762),(0xF763),(0xF764),(0xF765),(0xF766),(0xF767), +(0xF768),(0xF769),(0xF76A),(0xF76B),(0xF76C),(0xF76D),(0xF76E),(0xF76F), +(0xF770),(0xF771),(0xF772),(0xF773),(0xF774),(0xF775),(0xF776),(0xF777), +(0xF778),(0xF779),(0xF77A),(0xF77B),(0xF77C),(0xF77D),(0xF77E), +(0xF780),(0xF781),(0xF782),(0xF783),(0xF784),(0xF785),(0xF786),(0xF787), +(0xF788),(0xF789),(0xF78A),(0xF78B),(0xF78C),(0xF78D),(0xF78E),(0xF78F), +(0xF790),(0xF791),(0xF792),(0xF793),(0xF794),(0xF795),(0xF796),(0xF797), +(0xF798),(0xF799),(0xF79A),(0xF79B),(0xF79C),(0xF79D),(0xF79E),(0xF79F), +(0xF7A0),(0xF7A1),(0xF7A2),(0xF7A3),(0xF7A4),(0xF7A5),(0xF7A6),(0xF7A7), +(0xF7A8),(0xF7A9),(0xF7AA),(0xF7AB),(0xF7AC),(0xF7AD),(0xF7AE),(0xF7AF), +(0xF7B0),(0xF7B1),(0xF7B2),(0xF7B3),(0xF7B4),(0xF7B5),(0xF7B6),(0xF7B7), +(0xF7B8),(0xF7B9),(0xF7BA),(0xF7BB),(0xF7BC),(0xF7BD),(0xF7BE),(0xF7BF), +(0xF7C0),(0xF7C1),(0xF7C2),(0xF7C3),(0xF7C4),(0xF7C5),(0xF7C6),(0xF7C7), +(0xF7C8),(0xF7C9),(0xF7CA),(0xF7CB),(0xF7CC),(0xF7CD),(0xF7CE),(0xF7CF), +(0xF7D0),(0xF7D1),(0xF7D2),(0xF7D3),(0xF7D4),(0xF7D5),(0xF7D6),(0xF7D7), +(0xF7D8),(0xF7D9),(0xF7DA),(0xF7DB),(0xF7DC),(0xF7DD),(0xF7DE),(0xF7DF), +(0xF7E0),(0xF7E1),(0xF7E2),(0xF7E3),(0xF7E4),(0xF7E5),(0xF7E6),(0xF7E7), +(0xF7E8),(0xF7E9),(0xF7EA),(0xF7EB),(0xF7EC),(0xF7ED),(0xF7EE),(0xF7EF), +(0xF7F0),(0xF7F1),(0xF7F2),(0xF7F3),(0xF7F4),(0xF7F5),(0xF7F6),(0xF7F7), +(0xF7F8),(0xF7F9),(0xF7FA),(0xF7FB),(0xF7FC), +(0xF840),(0xF841),(0xF842),(0xF843),(0xF844),(0xF845),(0xF846),(0xF847), +(0xF848),(0xF849),(0xF84A),(0xF84B),(0xF84C),(0xF84D),(0xF84E),(0xF84F), +(0xF850),(0xF851),(0xF852),(0xF853),(0xF854),(0xF855),(0xF856),(0xF857), +(0xF858),(0xF859),(0xF85A),(0xF85B),(0xF85C),(0xF85D),(0xF85E),(0xF85F), +(0xF860),(0xF861),(0xF862),(0xF863),(0xF864),(0xF865),(0xF866),(0xF867), +(0xF868),(0xF869),(0xF86A),(0xF86B),(0xF86C),(0xF86D),(0xF86E),(0xF86F), +(0xF870),(0xF871),(0xF872),(0xF873),(0xF874),(0xF875),(0xF876),(0xF877), +(0xF878),(0xF879),(0xF87A),(0xF87B),(0xF87C),(0xF87D),(0xF87E), +(0xF880),(0xF881),(0xF882),(0xF883),(0xF884),(0xF885),(0xF886),(0xF887), +(0xF888),(0xF889),(0xF88A),(0xF88B),(0xF88C),(0xF88D),(0xF88E),(0xF88F), +(0xF890),(0xF891),(0xF892),(0xF893),(0xF894),(0xF895),(0xF896),(0xF897), +(0xF898),(0xF899),(0xF89A),(0xF89B),(0xF89C),(0xF89D),(0xF89E),(0xF89F), +(0xF8A0),(0xF8A1),(0xF8A2),(0xF8A3),(0xF8A4),(0xF8A5),(0xF8A6),(0xF8A7), +(0xF8A8),(0xF8A9),(0xF8AA),(0xF8AB),(0xF8AC),(0xF8AD),(0xF8AE),(0xF8AF), +(0xF8B0),(0xF8B1),(0xF8B2),(0xF8B3),(0xF8B4),(0xF8B5),(0xF8B6),(0xF8B7), +(0xF8B8),(0xF8B9),(0xF8BA),(0xF8BB),(0xF8BC),(0xF8BD),(0xF8BE),(0xF8BF), +(0xF8C0),(0xF8C1),(0xF8C2),(0xF8C3),(0xF8C4),(0xF8C5),(0xF8C6),(0xF8C7), +(0xF8C8),(0xF8C9),(0xF8CA),(0xF8CB),(0xF8CC),(0xF8CD),(0xF8CE),(0xF8CF), +(0xF8D0),(0xF8D1),(0xF8D2),(0xF8D3),(0xF8D4),(0xF8D5),(0xF8D6),(0xF8D7), +(0xF8D8),(0xF8D9),(0xF8DA),(0xF8DB),(0xF8DC),(0xF8DD),(0xF8DE),(0xF8DF), +(0xF8E0),(0xF8E1),(0xF8E2),(0xF8E3),(0xF8E4),(0xF8E5),(0xF8E6),(0xF8E7), +(0xF8E8),(0xF8E9),(0xF8EA),(0xF8EB),(0xF8EC),(0xF8ED),(0xF8EE),(0xF8EF), +(0xF8F0),(0xF8F1),(0xF8F2),(0xF8F3),(0xF8F4),(0xF8F5),(0xF8F6),(0xF8F7), +(0xF8F8),(0xF8F9),(0xF8FA),(0xF8FB),(0xF8FC), +(0xF940),(0xF941),(0xF942),(0xF943),(0xF944),(0xF945),(0xF946),(0xF947), +(0xF948),(0xF949),(0xF94A),(0xF94B),(0xF94C),(0xF94D),(0xF94E),(0xF94F), +(0xF950),(0xF951),(0xF952),(0xF953),(0xF954),(0xF955),(0xF956),(0xF957), +(0xF958),(0xF959),(0xF95A),(0xF95B),(0xF95C),(0xF95D),(0xF95E),(0xF95F), +(0xF960),(0xF961),(0xF962),(0xF963),(0xF964),(0xF965),(0xF966),(0xF967), +(0xF968),(0xF969),(0xF96A),(0xF96B),(0xF96C),(0xF96D),(0xF96E),(0xF96F), +(0xF970),(0xF971),(0xF972),(0xF973),(0xF974),(0xF975),(0xF976),(0xF977), +(0xF978),(0xF979),(0xF97A),(0xF97B),(0xF97C),(0xF97D),(0xF97E), +(0xF980),(0xF981),(0xF982),(0xF983),(0xF984),(0xF985),(0xF986),(0xF987), +(0xF988),(0xF989),(0xF98A),(0xF98B),(0xF98C),(0xF98D),(0xF98E),(0xF98F), +(0xF990),(0xF991),(0xF992),(0xF993),(0xF994),(0xF995),(0xF996),(0xF997), +(0xF998),(0xF999),(0xF99A),(0xF99B),(0xF99C),(0xF99D),(0xF99E),(0xF99F), +(0xF9A0),(0xF9A1),(0xF9A2),(0xF9A3),(0xF9A4),(0xF9A5),(0xF9A6),(0xF9A7), +(0xF9A8),(0xF9A9),(0xF9AA),(0xF9AB),(0xF9AC),(0xF9AD),(0xF9AE),(0xF9AF), +(0xF9B0),(0xF9B1),(0xF9B2),(0xF9B3),(0xF9B4),(0xF9B5),(0xF9B6),(0xF9B7), +(0xF9B8),(0xF9B9),(0xF9BA),(0xF9BB),(0xF9BC),(0xF9BD),(0xF9BE),(0xF9BF), +(0xF9C0),(0xF9C1),(0xF9C2),(0xF9C3),(0xF9C4),(0xF9C5),(0xF9C6),(0xF9C7), +(0xF9C8),(0xF9C9),(0xF9CA),(0xF9CB),(0xF9CC),(0xF9CD),(0xF9CE),(0xF9CF), +(0xF9D0),(0xF9D1),(0xF9D2),(0xF9D3),(0xF9D4),(0xF9D5),(0xF9D6),(0xF9D7), +(0xF9D8),(0xF9D9),(0xF9DA),(0xF9DB),(0xF9DC),(0xF9DD),(0xF9DE),(0xF9DF), +(0xF9E0),(0xF9E1),(0xF9E2),(0xF9E3),(0xF9E4),(0xF9E5),(0xF9E6),(0xF9E7), +(0xF9E8),(0xF9E9),(0xF9EA),(0xF9EB),(0xF9EC),(0xF9ED),(0xF9EE),(0xF9EF), +(0xF9F0),(0xF9F1),(0xF9F2),(0xF9F3),(0xF9F4),(0xF9F5),(0xF9F6),(0xF9F7), +(0xF9F8),(0xF9F9),(0xF9FA),(0xF9FB),(0xF9FC); + +#Test that all the characters are stored correctly +SELECT HEX(c1) FROM t1; + +#Test conversion to ucs2 +CREATE TABLE t2 SELECT CONVERT(c1 USING ucs2) AS c1 FROM t1; +SELECT HEX(c1) FROM t2; + +#Test round trip conversion +CREATE TABLE t3 SELECT CONVERT(c1 USING cp932) AS c1 FROM t2; +SELECT HEX(c1) FROM t3; + +#Test conversion to eucjpms +CREATE TABLE t4 SELECT CONVERT(c1 USING eucjpms) AS c1 FROM t1; +SELECT HEX(c1) FROM t4; + +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; + +SET collation_connection='cp932_japanese_ci'; +-- source include/ctype_filesort.inc +-- source include/ctype_like_range_f1f2.inc +SET collation_connection='cp932_bin'; +-- source include/ctype_filesort.inc +-- source include/ctype_like_range_f1f2.inc + +# +# Bug#29333 myisam corruption with +# character set cp932 collate cp932_japanese_ci +# +create table t2 (a char(1)); +insert into t2 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'); +insert into t2 values ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F'); +create table t1 ( + a varchar(2) character set cp932 +) engine=myisam; +--disable_warnings +insert into t1 +select unhex(concat(t24.a, t23.a, t22.a, t21.a)) +from t2 t21, t2 t22, t2 t23, t2 t24; +--enable_warnings +delete from t1 where a=''; +alter table t1 add key(a); +check table t1; +drop table t1; +drop table t2; + + +# +# Bug#12547: Inserting long string into varchar causes table crash in cp932 +# +create table t1 (col1 varchar(1)) character set cp932; +insert into t1 values ('a'); +insert ignore into t1 values ('ab'); +select * from t1; +insert ignore into t1 values ('abc'); +select * from t1; +drop table t1; + +# +# Bug#25815 Data truncated for column TEXT +# +set names utf8; +create table t1 (a text) default character set cp932; +insert into t1 values (_utf8 0xE38182); +show warnings; +select * from t1; +select hex(a) from t1; +drop table t1; + +# +# BUG#16217 - MySQL client misinterpretes multi-byte char as escape `\' +# + +# new command \C or charset +--exec $MYSQL --default-character-set=utf8 test -e "\C cp932 \g" +--exec $MYSQL --default-character-set=cp932 test -e "charset utf8;" + +# its usage to switch internally in mysql to requested charset +--exec $MYSQL --default-character-set=utf8 test -e "charset cp932; select 'ƒ\'; create table t1 (c_cp932 TEXT CHARACTER SET cp932); insert into t1 values('ƒ\'); select * from t1; drop table t1;" +--exec $MYSQL --default-character-set=utf8 test -e "charset cp932; select 'ƒ\'" +--exec $MYSQL --default-character-set=utf8 test -e "/*charset cp932 */; set character_set_client= cp932; select 'ƒ\'" +--exec $MYSQL --default-character-set=utf8 test -e "/*!\C cp932 */; set character_set_client= cp932; select 'ƒ\'" diff --git a/mysql-test/suite/binlog/include/ctype_cp932_binlog.test b/mysql-test/suite/binlog/include/ctype_cp932_binlog.test new file mode 100644 index 00000000..5c172afd --- /dev/null +++ b/mysql-test/suite/binlog/include/ctype_cp932_binlog.test @@ -0,0 +1,35 @@ +-- source include/not_embedded.inc +-- source include/have_cp932.inc +-- source include/have_log_bin.inc + +--character_set cp932 +--disable_warnings +drop table if exists t1; +--enable_warnings + +set names cp932; +set character_set_database = cp932; + +# Test prepared statement with 0x8300 sequence in parameter while +# running with cp932 client character set. +RESET MASTER; +CREATE TABLE t1(f1 blob); +PREPARE stmt1 FROM 'INSERT INTO t1 VALUES(?)'; +SET @var1= x'8300'; +# TODO: Note that this doesn't actually test the code which was added for +# bug#11338 because this syntax for prepared statements causes the PS to +# be replicated differently than if we executed the PS from C or Java. +# Using this syntax, variable names are inserted into the binlog instead +# of values. The real goal of this test is to check the code that was +# added to Item_param::query_val_str() in order to do hex encoding of +# PS parameters when the client character set is cp932; +# Bug#11338 has an example java program which can be used to verify this +# code (and I have used it to test the fix) until there is some way to +# exercise this code from mysql-test-run. +EXECUTE stmt1 USING @var1; +source include/show_binlog_events.inc; +SELECT HEX(f1) FROM t1; +DROP table t1; +# end test for bug#11338 + +# End of 4.1 tests diff --git a/mysql-test/suite/binlog/include/ctype_ucs_binlog.result b/mysql-test/suite/binlog/include/ctype_ucs_binlog.result new file mode 100644 index 00000000..c358cfcd --- /dev/null +++ b/mysql-test/suite/binlog/include/ctype_ucs_binlog.result @@ -0,0 +1,212 @@ +SET TIMESTAMP=10000; +create table t2 (c char(30)) charset=ucs2; +set @v=convert('abc' using ucs2); +reset master; +insert into t2 values (@v); +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # User var # # @`v`=_ucs2 X'006100620063' COLLATE ucs2_general_ci +master-bin.000001 # Query # # use `test`; insert into t2 values (@v) +master-bin.000001 # Query # # COMMIT +flush logs; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +BEGIN +/*!*/; +SET @`v`:=_ucs2 X'006100620063' COLLATE `ucs2_general_ci`/*!*/; +use `test`/*!*/; +SET TIMESTAMP=10000/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; +SET @@session.sql_mode=1342177280/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t2 values (@v) +/*!*/; +SET TIMESTAMP=10000/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +drop table t2; +# +# Start of 10.2 tests +# +# +# MDEV-10866 Extend PREPARE and EXECUTE IMMEDIATE to understand expressions +# +FLUSH LOGS; +SET NAMES utf8; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8); +EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (''ä(i1)'')'; +EXECUTE IMMEDIATE CONVERT('INSERT INTO t1 VALUES (''ä(i2)'')' USING ucs2); +SET @stmt=CONVERT('INSERT INTO t1 VALUES (''ä(i3)'')' USING ucs2); +EXECUTE IMMEDIATE @stmt; +PREPARE stmt FROM 'INSERT INTO t1 VALUES (''ä(p1)'')'; +EXECUTE stmt; +PREPARE stmt FROM CONVERT('INSERT INTO t1 VALUES (''ä(p2)'')' USING ucs2); +EXECUTE stmt; +SET @stmt=CONVERT('INSERT INTO t1 VALUES (''ä(p3)'')' USING ucs2); +PREPARE stmt FROM @stmt; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; +SELECT * FROM t1; +a +ä(i1) +ä(i2) +ä(i3) +ä(p1) +ä(p2) +ä(p3) +DROP TABLE t1; +FLUSH LOGS; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 700101 6:46:40 +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Gtid list [#-#-#] +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000002 +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000003 +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX GTID #-#-# ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=#*//*!*/; +/*!100001 SET @@session.server_id=#*//*!*/; +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=10000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; +SET @@session.sql_mode=1342177280/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C utf8 *//*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8) +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +BEGIN +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=10000/*!*/; +INSERT INTO t1 VALUES ('ä(i1)') +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=10000/*!*/; +COMMIT +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +BEGIN +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=10000/*!*/; +INSERT INTO t1 VALUES ('ä(i2)') +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=10000/*!*/; +COMMIT +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +BEGIN +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=10000/*!*/; +INSERT INTO t1 VALUES ('ä(i3)') +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=10000/*!*/; +COMMIT +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +BEGIN +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=10000/*!*/; +INSERT INTO t1 VALUES ('ä(p1)') +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=10000/*!*/; +COMMIT +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +BEGIN +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=10000/*!*/; +INSERT INTO t1 VALUES ('ä(p2)') +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=10000/*!*/; +COMMIT +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +BEGIN +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=10000/*!*/; +INSERT INTO t1 VALUES ('ä(p3)') +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=10000/*!*/; +COMMIT +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX GTID #-#-# ddl +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=10000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#700101 6:46:40 server id # end_log_pos # CRC32 XXX Rotate to master-bin.000004 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +# End of 10.2 tests +# diff --git a/mysql-test/suite/binlog/include/ctype_ucs_binlog.test b/mysql-test/suite/binlog/include/ctype_ucs_binlog.test new file mode 100644 index 00000000..11646f28 --- /dev/null +++ b/mysql-test/suite/binlog/include/ctype_ucs_binlog.test @@ -0,0 +1,64 @@ +--source include/not_embedded.inc +--source include/have_ucs2.inc +--source include/have_log_bin.inc + +# +# Check correct binlogging of UCS2 user variables (BUG#3875) +# +SET TIMESTAMP=10000; +create table t2 (c char(30)) charset=ucs2; +set @v=convert('abc' using ucs2); +reset master; +insert into t2 values (@v); +source include/show_binlog_events.inc; +# more important than SHOW BINLOG EVENTS, mysqlbinlog (where we +# absolutely need variables names to be quoted and strings to be +# escaped). +flush logs; +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form $MYSQLD_DATADIR/master-bin.000001 +drop table t2; + +# End of 4.1 tests + + +--echo # +--echo # Start of 10.2 tests +--echo # + +--echo # +--echo # MDEV-10866 Extend PREPARE and EXECUTE IMMEDIATE to understand expressions +--echo # + +SET TIMESTAMP=UNIX_TIMESTAMP('1970-01-01 06:46:40'); + +FLUSH LOGS; +SET NAMES utf8; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8); +EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (''ä(i1)'')'; +EXECUTE IMMEDIATE CONVERT('INSERT INTO t1 VALUES (''ä(i2)'')' USING ucs2); +SET @stmt=CONVERT('INSERT INTO t1 VALUES (''ä(i3)'')' USING ucs2); +EXECUTE IMMEDIATE @stmt; + +PREPARE stmt FROM 'INSERT INTO t1 VALUES (''ä(p1)'')'; +EXECUTE stmt; +PREPARE stmt FROM CONVERT('INSERT INTO t1 VALUES (''ä(p2)'')' USING ucs2); +EXECUTE stmt; +SET @stmt=CONVERT('INSERT INTO t1 VALUES (''ä(p3)'')' USING ucs2); +PREPARE stmt FROM @stmt; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; + +SELECT * FROM t1; +DROP TABLE t1; +FLUSH LOGS; +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_regex /TIMESTAMP=[0-9]*/TIMESTAMP=XXX/ /# at [0-9]*/# at #/ /(exec_time=|end_log_pos |Xid = |thread_id=|server id |table id |mapped to number )[0-9]+/\1#/ /server v [^ ]*/server v #.##.##/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /GTID [0-9]+-[0-9]+-[0-9]+/GTID #-#-#/ /Gtid list [[][0-9]+-[0-9]+-[0-9]+[\]]/Gtid list [#-#-#]/ /session[.](gtid_domain_id|server_id|gtid_seq_no)=[0-9]+/session.\1=#/ /(^#|created )[0-9]{6} [ 1][0-9]:[0-9]{2}:[0-9]{2}/\1YYMMDD HH:MM:SS/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --base64-output=decode-rows -vv $MYSQLD_DATADIR/master-bin.000003 + +SET TIMESTAMP=DEFAULT; + +--echo # +--echo # End of 10.2 tests +--echo # diff --git a/mysql-test/suite/binlog/include/database.test b/mysql-test/suite/binlog/include/database.test new file mode 100644 index 00000000..097a501c --- /dev/null +++ b/mysql-test/suite/binlog/include/database.test @@ -0,0 +1,94 @@ +source include/have_log_bin.inc; +source include/not_embedded.inc; + +# Checking that the drop of a database does not replicate anything in +# addition to the drop of the database + +reset master; +create database testing_1; +use testing_1; +create table t1 (a int); +create function sf1 (a int) returns int return a+1; +create trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a); +create procedure sp1 (a int) insert into t1 values(a); +drop database testing_1; +source include/show_binlog_events.inc; + +# BUG#38773: DROP DATABASE cause switch to stmt-mode when there are +# temporary tables open + +use test; +reset master; +create temporary table tt1 (a int); +create table t1 (a int); +insert into t1 values (1); +disable_warnings; +drop database if exists mysqltest1; +enable_warnings; +insert into t1 values (1); +drop table tt1, t1; +source include/show_binlog_events.inc; + +FLUSH STATUS; + +--echo +--echo # 'DROP TABLE IF EXISTS <deleted tables>' is binlogged +--echo # when 'DROP DATABASE' fails and at least one table is deleted +--echo # from the database. +RESET MASTER; +CREATE DATABASE testing_1; +USE testing_1; +CREATE TABLE t1(c1 INT); +CREATE TABLE t2(c1 INT); + +let $prefix= `SELECT UUID()`; +--echo # Create a file in the database directory +--replace_result $prefix FAKE_FILE +eval SELECT 'hello' INTO OUTFILE 'fake_file.$prefix'; + +--echo +--echo # 'DROP DATABASE' will fail if there is any other file in the the +--echo # database directory + +# Use '/' instead of '\' in the error message. On windows platform, dir is +# formed with '\'. +--replace_regex /\\testing_1\\*/\/testing_1\// /66/39/ /93/39/ /17/39/ /247/39/ /File exists/Directory not empty/ +--error 1010 +DROP DATABASE testing_1; +let $wait_binlog_event= DROP TABLE IF EXIST; +source include/wait_for_binlog_event.inc; +let $MYSQLD_DATADIR= `SELECT @@datadir`; + +--echo +--echo # Remove the fake file. +--remove_file $MYSQLD_DATADIR/testing_1/fake_file.$prefix +--echo # Now we can drop the database. +DROP DATABASE testing_1; + + +--echo # +--echo # Bug#11765416 58381: FAILED DROP DATABASE CAN BREAK STATEMENT +--echo # BASED REPLICATION +--echo # + +USE test; +--disable_warnings +DROP DATABASE IF EXISTS db1; +DROP TABLE IF EXISTS t3; +--enable_warnings + +CREATE DATABASE db1; +CREATE TABLE db1.t1 (a INT); +CREATE TABLE db1.t2 (b INT, KEY(b)) engine=innodb; +CREATE TABLE t3 (a INT, KEY (a), FOREIGN KEY(a) REFERENCES db1.t2(b)) + engine=innodb; +RESET MASTER; + +--error ER_ROW_IS_REFERENCED_2 +DROP DATABASE db1; # Fails because of the fk +SHOW TABLES FROM db1; # t1 was dropped, t2 remains +--source include/show_binlog_events.inc # Check that the binlog drops t1 + +# Cleanup +DROP TABLE t3; +DROP DATABASE db1; diff --git a/mysql-test/suite/binlog/include/drop_table.test b/mysql-test/suite/binlog/include/drop_table.test new file mode 100644 index 00000000..c55cbb67 --- /dev/null +++ b/mysql-test/suite/binlog/include/drop_table.test @@ -0,0 +1,34 @@ +# +# Bug#989: If DROP TABLE while there's an active transaction, wrong binlog order +# + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +connect (con1,localhost,root,,); +connect (con2,localhost,root,,); + +connection con1; +RESET MASTER; +CREATE TABLE t1 (a INT); +SET AUTOCOMMIT=OFF; +BEGIN; +INSERT INTO t1 VALUES(1); + +connection con2; +--send DROP TABLE t1; + +connection con1; +COMMIT; + +connection con2; +--reap + +connection default; + +--disconnect con1 +--disconnect con2 + +let $VERSION=`select version()`; +source include/show_binlog_events.inc; diff --git a/mysql-test/suite/binlog/include/drop_temp_table.test b/mysql-test/suite/binlog/include/drop_temp_table.test new file mode 100644 index 00000000..7c95195e --- /dev/null +++ b/mysql-test/suite/binlog/include/drop_temp_table.test @@ -0,0 +1,176 @@ +--source include/have_innodb.inc + +--disable_warnings +DROP DATABASE IF EXISTS `drop-temp+table-test`; +--enable_warnings + +connect (con1,localhost,root,,); +connect (con2,localhost,root,,); +connection con1; +RESET MASTER; +CREATE DATABASE `drop-temp+table-test`; +USE `drop-temp+table-test`; +CREATE TEMPORARY TABLE shortn1 (a INT); +CREATE TEMPORARY TABLE `table:name` (a INT); +CREATE TEMPORARY TABLE shortn2 (a INT); + +############################################################################## +# MDEV-20091: DROP TEMPORARY TABLE IF EXISTS statements will be written +# to binlog only if the corresponding temporary table exists. +############################################################################## +CREATE TEMPORARY TABLE tmp(c1 int); +CREATE TEMPORARY TABLE tmp1(c1 int); +CREATE TEMPORARY TABLE tmp2(c1 int); +CREATE TEMPORARY TABLE tmp3(c1 int); +CREATE TABLE t(c1 int); + +DROP TEMPORARY TABLE IF EXISTS tmp; + +--disable_warnings +# Post MDEV-20091: Following DROP TEMPORARY TABLE statement should not be +# logged as the table is already dropped above. +DROP TEMPORARY TABLE IF EXISTS tmp; + +# Post MDEV-20091: Only DROP TEMPORARY TABLE statement should be written only +# for 'tmp1' table. +DROP TEMPORARY TABLE IF EXISTS tmp, tmp1; +DROP TEMPORARY TABLE tmp3; + +#In RBR, tmp2 will NOT be binlogged, because it is a temporary table. +DROP TABLE IF EXISTS tmp2, t; + +#In RBR, tmp2 will be binlogged, because it does not exist and master do not know +# whether it is a temporary table or not. +DROP TABLE IF EXISTS tmp2, t; +--enable_warnings + +SELECT GET_LOCK("a",10); + +# +# BUG48216 Replication fails on all slaves after upgrade to 5.0.86 on master +# +# When the session is closed, any temporary tables of the session are dropped +# and are binlogged. But it will be binlogged with a wrong database name when +# the length of the database name('drop-temp-table-test') is greater than the +# current database name('test'). +# +USE test; +disconnect con1; + +connection con2; +# We want to SHOW BINLOG EVENTS, to know what was logged. But there is no +# guarantee that logging of the terminated con1 has been done yet. +# To be sure that logging has been done, we use a user lock. +SELECT GET_LOCK("a",10); +let $VERSION=`SELECT VERSION()`; +source include/show_binlog_events.inc; +DROP DATABASE `drop-temp+table-test`; + + +# +# Bug #54842: DROP TEMPORARY TABLE not binlogged after manual switching binlog format to ROW +# +# Sanity test. Checking that implicit DROP event is logged. +# +# After BUG#52616, the switch to ROW mode becomes effective even +# if there are open temporary tables. As such the implicit drop +# for temporary tables on session closing must be logged. +# +# MDEV-20091: DROP TEMPORARY TABLE IF EXISTS statements will be written to +# binlog only if the corresponding temporary table exists. In row based +# replication temporary tables are not replicated hence their corresponding +# DROP TEMPORARY TABLE statement will be not be written to binary log upon +# session closure. +# + +RESET MASTER; + +CREATE TABLE t1 ( i text ); + +--connect(con1,localhost,root,,) +CREATE TEMPORARY TABLE ttmp1 ( i text ); +SET @@session.binlog_format=ROW; +INSERT INTO t1 VALUES ('1'); +SELECT @@session.binlog_format; +--disconnect con1 + +-- connection default +if (!`SELECT @@BINLOG_FORMAT = 'ROW'`) { +--let $wait_binlog_event= DROP +--source include/wait_for_binlog_event.inc +} +-- source include/show_binlog_events.inc +RESET MASTER; + +DROP TABLE t1; + +# End of 4.1 tests + + +--echo # +--echo # BUG#28642318: POINT IN TIME RECOVERY USING MYSQLBINLOG BROKEN +--echo # WITH TEMPORARY TABLE -> ERRORS + +--echo # Test case for DELETE query. + +RESET MASTER; +connect (con1,localhost,root,,); + +--echo # Set up. +--connection default +--disable_warnings +SET @save_binlog_format= @@session.binlog_format; +SET @@session.binlog_format=STATEMENT; +let $MYSQLD_DATADIR= `select @@datadir`; +CREATE TABLE t1 (a INT) ENGINE=INNODB; + +--connection con1 +SET @@session.binlog_format=STATEMENT; +CREATE TEMPORARY TABLE t1 (b BLOB) ENGINE=INNODB; + +--connection default +DELETE d1, d2 FROM t1 AS d1, t1 AS d2 WHERE d1.a<>d2.a; + +--exec $MYSQL_BINLOG --force-if-open $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/bug28642318.sql + +--connection default +DROP TABLE t1; + +--echo # DELETE query fails with table re-open error without patch. +--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug28642318.sql + +--echo # Clean up. +--connection con1 +DROP TABLE IF EXISTS t1; + +--connection default +DROP TABLE IF EXISTS t1; +RESET MASTER; + +--echo # Test case for DROP query. + +--connection default +CREATE TABLE t2 (a INT) ENGINE=INNODB; + +--connection con1 +CREATE TEMPORARY TABLE t2 (b BLOB) ENGINE=INNODB; + +--connection default +DROP TABLE t2; + +--connection con1 +DROP TABLE t2; + +--connection default +--exec $MYSQL_BINLOG --force-if-open $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/bug28642318.sql + +--echo # DROP table query fails with unknown table error without patch. +--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug28642318.sql + +--echo # Clean up +--connection default +SET @@session.binlog_format= @save_binlog_format; +RESET MASTER; + +--disconnect con1 +--enable_warnings diff --git a/mysql-test/suite/binlog/include/implicit.test b/mysql-test/suite/binlog/include/implicit.test new file mode 100644 index 00000000..de906fc0 --- /dev/null +++ b/mysql-test/suite/binlog/include/implicit.test @@ -0,0 +1,28 @@ +# First part: outside a transaction +RESET MASTER; +eval $prepare; + +INSERT INTO t1 VALUES (1); +source include/show_binlog_events.inc; +eval $statement; +source include/show_binlog_events.inc; +if ($cleanup) { + eval $cleanup; +} + +# Second part: inside a transaction +RESET MASTER; +eval $prepare; +BEGIN; +INSERT INTO t1 VALUES (2); +source include/show_binlog_events.inc; +eval $statement; +source include/show_binlog_events.inc; +INSERT INTO t1 VALUES (3); +source include/show_binlog_events.inc; +COMMIT; +source include/show_binlog_events.inc; +if ($cleanup) { + eval $cleanup; +} + diff --git a/mysql-test/suite/binlog/include/insert_select-binlog.test b/mysql-test/suite/binlog/include/insert_select-binlog.test new file mode 100644 index 00000000..ef22373a --- /dev/null +++ b/mysql-test/suite/binlog/include/insert_select-binlog.test @@ -0,0 +1,38 @@ +# Embedded server doesn't support binlog +-- source include/not_embedded.inc +-- source include/have_log_bin.inc + +--disable_warnings +drop table if exists t1,t2; +--enable_warnings + +# Check if a partly-completed INSERT SELECT in a MyISAM table goes into the +# binlog + +create table t1(a int, unique(a)); +insert into t1 values(2); +create table t2(a int); +insert into t2 values(1),(2); +reset master; +--error ER_DUP_ENTRY +insert into t1 select * from t2; +# The above should produce an error, but still be in the binlog; +# verify the binlog : +let $VERSION=`select version()`; +source include/show_binlog_events.inc; +select * from t1; +drop table t1, t2; + +# Verify that a partly-completed CREATE TABLE .. SELECT does not +# get into the binlog (Bug #6682) +create table t1(a int); +insert into t1 values(1),(1); +reset master; +--error ER_DUP_ENTRY +create table t2(unique(a)) select a from t1; +# The above should produce an error, *and* not appear in the binlog +let $VERSION=`select version()`; +source include/show_binlog_events.inc; +drop table t1; + +# End of 4.1 tests diff --git a/mysql-test/suite/binlog/include/mix_innodb_myisam_binlog.test b/mysql-test/suite/binlog/include/mix_innodb_myisam_binlog.test new file mode 100644 index 00000000..74fbe6b4 --- /dev/null +++ b/mysql-test/suite/binlog/include/mix_innodb_myisam_binlog.test @@ -0,0 +1,654 @@ +# Check that binlog is ok when a transaction mixes updates to InnoDB and +# MyISAM. +# It would be nice to make this a replication test, but in 4.0 the +# slave is always with --skip-innodb in the testsuite. I (Guilhem) however +# did some tests manually on a slave; tables are replicated fine and +# Exec_Master_Log_Pos advances as expected. + +-- source include/have_log_bin.inc +-- source include/have_innodb.inc + +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); + +--disable_warnings +drop table if exists t1, t2; +--enable_warnings + +connect (con1,localhost,root,,); +connect (con2,localhost,root,,); + +connection con1; +create table t1 (a int) engine=innodb; +create table t2 (a int) engine=myisam; + +reset master; + +begin; +insert into t1 values(1); +insert into t2 select * from t1; +commit; + +source include/show_binlog_events.inc; + +delete from t1; +delete from t2; +reset master; + +begin; +insert into t1 values(2); +insert into t2 select * from t1; +# should say some changes to non-transact1onal tables couldn't be rolled back +rollback; + +source include/show_binlog_events.inc; + +delete from t1; +delete from t2; +reset master; + +begin; +insert into t1 values(3); +savepoint my_savepoint; +insert into t1 values(4); +insert into t2 select * from t1; +rollback to savepoint my_savepoint; +commit; + +source include/show_binlog_events.inc; + +delete from t1; +delete from t2; +reset master; + +begin; +insert into t1 values(5); +savepoint my_savepoint; +insert into t1 values(6); +insert into t2 select * from t1; +rollback to savepoint my_savepoint; +insert into t1 values(7); +commit; +select a from t1 order by a; # check that savepoints work :) + +source include/show_binlog_events.inc; + +# and when ROLLBACK is not explicit? +delete from t1; +delete from t2; +reset master; + +select get_lock("a",10); +begin; +insert into t1 values(8); +insert into t2 select * from t1; +disconnect con1; + +connection con2; +# We want to SHOW BINLOG EVENTS, to know what was logged. But there is no +# guarantee that logging of the terminated con1 has been done yet (it may not +# even be started, so con1 may have not even attempted to lock the binlog yet; +# so SHOW BINLOG EVENTS may come before con1 does the loggin. To be sure that +# logging has been done, we use a user lock. +select get_lock("a",10); +source include/show_binlog_events.inc; + +# and when not in a transact1on? +delete from t1; +delete from t2; +reset master; + +insert into t1 values(9); +insert into t2 select * from t1; + +source include/show_binlog_events.inc; + +# Check that when the query updat1ng the MyISAM table is the first in the +# transaction, we log it immediately. +delete from t1; +delete from t2; +reset master; + +insert into t1 values(10); # first make t1 non-empty +begin; +insert into t2 select * from t1; +source include/show_binlog_events.inc; +insert into t1 values(11); +commit; + +source include/show_binlog_events.inc; + +# Check that things work like before this BEGIN/ROLLBACK code was added, +# when t2 is INNODB + +alter table t2 engine=INNODB; + +delete from t1; +delete from t2; +reset master; + +begin; +insert into t1 values(12); +insert into t2 select * from t1; +commit; + +source include/show_binlog_events.inc; + +delete from t1; +delete from t2; +reset master; + +begin; +insert into t1 values(13); +insert into t2 select * from t1; +rollback; + +source include/show_binlog_events.inc; + +delete from t1; +delete from t2; +reset master; + +begin; +insert into t1 values(14); +savepoint my_savepoint; +insert into t1 values(15); +insert into t2 select * from t1; +rollback to savepoint my_savepoint; +commit; + +source include/show_binlog_events.inc; + +delete from t1; +delete from t2; +reset master; + +begin; +insert into t1 values(16); +savepoint my_savepoint; +insert into t1 values(17); +insert into t2 select * from t1; +rollback to savepoint my_savepoint; +insert into t1 values(18); +commit; +select a from t1 order by a; # check that savepoints work :) + +source include/show_binlog_events.inc; + +# Test for BUG#5714, where a MyISAM update in the transaction used to +# release row-level locks in InnoDB + +connect (con3,localhost,root,,); + +connection con3; +delete from t1; +delete from t2; +--disable_warnings +alter table t2 engine=MyISAM; +--enable_warnings +insert into t1 values (1); +begin; +select * from t1 for update; + +connection con2; +select (@before:=unix_timestamp())*0; # always give repeatable output +begin; +send select * from t1 for update; + +connection con3; +insert into t2 values (20); + +connection con2; +--error 1205 +reap; +select (@after:=unix_timestamp())*0; # always give repeatable output +# verify that innodb_lock_wait_timeout was exceeded. When there was +# the bug, the reap would return immediately after the insert into t2. +select (@after-@before) >= 2; + +connection con3; +commit; + +connection con2; +drop table t1,t2; +commit; + +# test for BUG#7947 - DO RELEASE_LOCK() not written to binlog on rollback in +# the middle of a transaction + +connection con2; +begin; +create temporary table ti (a int) engine=innodb; +rollback; +insert into ti values(1); +set autocommit=0; +create temporary table t1 (a int) engine=myisam; +commit; +insert t1 values (1); +rollback; +create table t0 (n int); +insert t0 select * from t1; +set autocommit=1; +insert into t0 select GET_LOCK("lock1",0); +set autocommit=0; +create table t2 (n int) engine=innodb; +insert into t2 values (3); +disconnect con2; +connection con3; +select get_lock("lock1",60); +source include/show_binlog_events.inc; +do release_lock("lock1"); +drop table t0,t2; + +# End of 4.1 tests + +# +# Test behaviour of CREATE ... SELECT when mixing MyISAM and InnoDB tables +# + +set autocommit=0; +CREATE TABLE t1 (a int, b int) engine=myisam; +reset master; +INSERT INTO t1 values (1,1),(1,2); +--error ER_DUP_ENTRY +CREATE TABLE t2 (primary key (a)) engine=innodb select * from t1; +# This should give warning +DROP TABLE if exists t2; +INSERT INTO t1 values (3,3); +--error ER_DUP_ENTRY +CREATE TEMPORARY TABLE t2 (primary key (a)) engine=innodb select * from t1; +ROLLBACK; +# This should give warning +DROP TABLE IF EXISTS t2; + +CREATE TABLE t2 (a int, b int, primary key (a)) engine=innodb; +INSERT INTO t1 VALUES (4,4); +CREATE TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +SELECT * from t2; +TRUNCATE table t2; +INSERT INTO t1 VALUES (5,5); +--error ER_DUP_ENTRY +INSERT INTO t2 select * from t1; +SELECT * FROM t2; +DROP TABLE t2; + +INSERT INTO t1 values (6,6); +CREATE TEMPORARY TABLE t2 (a int, b int, primary key (a)) engine=innodb ; +INSERT INTO t1 values (7,7); +ROLLBACK; +INSERT INTO t1 values (8,8); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +COMMIT; +INSERT INTO t1 values (9,9); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +ROLLBACK; +SELECT * from t2; +TRUNCATE table t2; +INSERT INTO t1 values (10,10); +--error ER_DUP_ENTRY +INSERT INTO t2 select * from t1; +SELECT * from t1; +INSERT INTO t2 values (100,100); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +COMMIT; +INSERT INTO t2 values (101,101); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +ROLLBACK; +SELECT * from t2; +DROP TABLE t1,t2; +source include/show_binlog_events.inc; + +# Test for BUG#16559 (ROLLBACK should always have a zero error code in +# binlog). Has to be here and not earlier, as the SELECTs influence +# XIDs differently between normal and ps-protocol (and SHOW BINLOG +# EVENTS above read XIDs). + +connect (con4,localhost,root,,); +connection con3; +reset master; +create table t1 (a int) engine=innodb; +create table t2 (a int) engine=myisam; +select get_lock("a",10); +begin; +insert into t1 values(8); +insert into t2 select * from t1; + +disconnect con3; + +connection con4; +select get_lock("a",10); # wait for rollback to finish +if (`select @@binlog_format = 'STATEMENT' || @@binlog_format = 'MIXED'`) +{ + --let $binlog_rollback= query_get_value(SHOW BINLOG EVENTS, Pos, 11) + --let $binlog_query= query_get_value(SHOW BINLOG EVENTS, Info, 11) + if ($binlog_query != ROLLBACK) { + --echo Wrong query from SHOW BINLOG EVENTS. Expected ROLLBACK, got '$binlog_query' + --source include/show_rpl_debug_info.inc + --die Wrong value for slave parameter + } +} +flush logs; + +let $MYSQLD_DATADIR= `select @@datadir`; +# we check that the error code of the "ROLLBACK" event is 0 and not +# ER_SERVER_SHUTDOWN (i.e. disconnection just rolls back transaction +# and does not make slave to stop) + +-- source include/binlog_start_pos.inc + +if (`select @@binlog_format = 'ROW'`) +{ + --echo There is nothing to roll back; transactional changes are removed from the trans cache. +} + +if (`select @@binlog_format = 'STATEMENT' || @@binlog_format = 'MIXED'`) +{ + --exec $MYSQL_BINLOG --start-position=$binlog_rollback $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output + + --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR + eval select + (@a:=load_file("$MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output")) + is not null; + --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR + eval select + @a like "%#%error_code=0%ROLLBACK\\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" OR + @a like "%#%error_code=0%ROLLBACK\\r\\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%", + @a not like "%#%error_code=%error_code=%"; +} +drop table t1, t2; + +# +# Bug #27417 thd->no_trans_update.stmt lost value inside of SF-exec-stack +# bug #28960 non-trans temp table changes with insert .. select +# not binlogged after rollback +# +# testing appearence of insert into temp_table in binlog. +# There are two branches of execution that require different setup. + +## send_eof() branch + +# prepare + +create temporary table tt (a int unique); +create table ti (a int) engine=innodb; +reset master; + +# action + +begin; +insert into ti values (1); +insert into ti values (2) ; +# This is SAFE because --binlog-direct-non-transactional-updates=FALSE +insert into tt select * from ti; +rollback; + +# check + +select count(*) from tt /* 2 */; +source include/show_binlog_events.inc; +select count(*) from ti /* zero */; +insert into ti select * from tt; +select * from ti /* that is what slave would miss - a bug */; + + +## send_error() branch +delete from ti; +delete from tt where a=1; +reset master; + +# action + +begin; +insert into ti values (1); +insert into ti values (2) /* to make the dup error in the following */; +--error ER_DUP_ENTRY +insert into tt select * from ti /* one affected and error */; +rollback; + +# check + +source include/show_binlog_events.inc; +select count(*) from ti /* zero */; +insert into ti select * from tt; +select * from tt /* that is what otherwise slave missed - the bug */; + +drop table ti, tt; + + +# +# Bug #27417 thd->no_trans_update.stmt lost value inside of SF-exec-stack +# +# Testing asserts: if there is a side effect of modifying non-transactional +# table thd->no_trans_update.stmt must be TRUE; +# the assert is active with debug build +# + +--disable_warnings +drop function if exists bug27417; +drop table if exists t1,t2; +--enable_warnings +# side effect table +CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM; +# target tables +CREATE TABLE t2 (a int NOT NULL auto_increment, PRIMARY KEY (a)); + +delimiter |; +create function bug27417(n int) +RETURNS int(11) +begin + insert into t1 values (null); + return n; +end| +delimiter ;| + +reset master; + +# execute + +insert into t2 values (bug27417(1)); +insert into t2 select bug27417(2); +reset master; + +--error ER_DUP_ENTRY +insert into t2 values (bug27417(2)); +source include/show_binlog_events.inc; /* only (!) with fixes for #23333 will show there is the query */; +select count(*) from t1 /* must be 3 */; + +reset master; +select count(*) from t2; +delete from t2 where a=bug27417(3); +select count(*) from t2 /* nothing got deleted */; +source include/show_binlog_events.inc; /* the query must be in regardless of #23333 */; +select count(*) from t1 /* must be 5 */; + +--enable_info +delete t2 from t2 where t2.a=bug27417(100) /* must not affect t2 */; +--disable_info +select count(*) from t1 /* must be 7 */; + +# function bug27417 remains for the following testing of bug#23333 +drop table t1,t2; + +# +# Bug#23333 using the patch (and the test) for bug#27471 +# +# throughout the bug tests +# t1 - non-trans side effects gatherer; +# t2 - transactional table; +# + +CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM; +CREATE TABLE t2 (a int, PRIMARY KEY (a)) ENGINE=InnoDB; +CREATE TABLE t3 (a int, PRIMARY KEY (a), b int unique) ENGINE=MyISAM; +CREATE TABLE t4 (a int, PRIMARY KEY (a), b int unique) ENGINE=Innodb; +CREATE TABLE t5 (a int, PRIMARY KEY (a)) ENGINE=InnoDB; + + +# +# INSERT +# + +# prepare + + insert into t2 values (1); + reset master; + +# execute + + --error ER_DUP_ENTRY + insert into t2 values (bug27417(1)); + +# check + + source include/show_binlog_events.inc; /* the output must denote there is the query */; + select count(*) from t1 /* must be 1 */; + +# +# INSERT SELECT +# + +# prepare + delete from t1; + delete from t2; + insert into t2 values (2); + reset master; + +# execute + + --error ER_DUP_ENTRY + insert into t2 select bug27417(1) union select bug27417(2); + +# check + + source include/show_binlog_events.inc; /* the output must denote there is the query */; + select count(*) from t1 /* must be 2 */; + +# +# UPDATE inc multi-update +# + +# prepare + delete from t1; + insert into t3 values (1,1),(2,3),(3,4); + reset master; + +# execute + --error ER_DUP_ENTRY + update t3 set b=b+bug27417(1); + +# check + source include/show_binlog_events.inc; /* the output must denote there is the query */; + select count(*) from t1 /* must be 2 */; + +## multi_update::send_eof() branch + +# prepare + delete from t3; + delete from t4; + insert into t3 values (1,1); + insert into t4 values (1,1),(2,2); + + reset master; + +# execute + --error ER_DUP_ENTRY + UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */; + +# check + source include/show_binlog_events.inc; /* the output must denote there is the query */; + select count(*) from t1 /* must be 4 */; + +## send_error() branch of multi_update + +# prepare + delete from t1; + delete from t3; + delete from t4; + insert into t3 values (1,1),(2,2); + insert into t4 values (1,1),(2,2); + + reset master; + +# execute + --error ER_DUP_ENTRY + UPDATE t3,t4 SET t3.a=t4.a + bug27417(1); + +# check + select count(*) from t1 /* must be 1 */; + +# cleanup + drop table t4; + + +# +# DELETE incl multi-delete +# + +# prepare + delete from t1; + delete from t2; + delete from t3; + insert into t2 values (1); + insert into t3 values (1,1); + create trigger trg_del before delete on t2 for each row + insert into t3 values (bug27417(1), 2); + reset master; + +# execute + --error ER_DUP_ENTRY + delete from t2; +# check + source include/show_binlog_events.inc; /* the output must denote there is the query */; + select count(*) from t1 /* must be 1 */; + +# cleanup + drop trigger trg_del; + +# prepare + delete from t1; + delete from t2; + delete from t5; + create trigger trg_del_t2 after delete on t2 for each row + insert into t1 values (1); + insert into t2 values (2),(3); + insert into t5 values (1),(2); + reset master; + +# execute + --error ER_DUP_ENTRY + delete t2.* from t2,t5 where t2.a=t5.a + 1; + +# check + source include/show_binlog_events.inc; /* the output must denote there is the query */; + select count(*) from t1 /* must be 1 */; + + +# +# LOAD DATA +# + +# prepare + delete from t1; + create table t4 (a int default 0, b int primary key) engine=innodb; + insert into t4 values (0, 17); + reset master; + +# execute + --error ER_DUP_ENTRY + load data infile '../../std_data/rpl_loaddata.dat' into table t4 (a, @b) set b= @b + bug27417(2); +# check + select * from t4; + select count(*) from t1 /* must be 2 */; + source include/show_binlog_events.inc; /* the output must denote there is the query */; + +# +# bug#23333 cleanup +# + + +drop trigger trg_del_t2; +drop table t1,t2,t3,t4,t5; +drop function bug27417; + + +--echo end of tests + diff --git a/mysql-test/suite/binlog/include/mix_innodb_myisam_side_effects.test b/mysql-test/suite/binlog/include/mix_innodb_myisam_side_effects.test new file mode 100644 index 00000000..7eca19bc --- /dev/null +++ b/mysql-test/suite/binlog/include/mix_innodb_myisam_side_effects.test @@ -0,0 +1,295 @@ +# the file to be sourced from binlog.binlog_mix_innodb_myisam + +# +# Bug #27417 thd->no_trans_update.stmt lost value inside of SF-exec-stack +# bug #28960 non-trans temp table changes with insert .. select +# not binlogged after rollback +# +# testing appearence of insert into temp_table in binlog. +# There are two branches of execution that require different setup. + +# checking binlog content filled with row-based events due to +# a used stored function modifies non-transactional table + +## send_eof() branch + +# prepare + +create temporary table tt (a int unique); +create table ti (a int) engine=innodb; +reset master; + +# action + +begin; +insert into ti values (1); +insert into ti values (2) ; +# This is SAFE because --binlog-direct-non-transactional-updates=FALSE +insert into tt select * from ti; +rollback; + +# check + +select count(*) from tt /* 2 */; +source include/show_binlog_events.inc; +select count(*) from ti /* zero */; +insert into ti select * from tt; +select * from ti /* that is what slave would miss - bug#28960 */; + + +## send_error() branch +delete from ti; +delete from tt where a=1; +reset master; + +# action + +begin; +insert into ti values (1); +insert into ti values (2) /* to make the dup error in the following */; +--error ER_DUP_ENTRY +insert into tt select * from ti /* one affected and error */; +rollback; + +# check + +source include/show_binlog_events.inc; # nothing in binlog with row bilog format +select count(*) from ti /* zero */; +insert into ti select * from tt; +select * from tt /* that is what otherwise slave missed - the bug */; + +drop table ti; + + +# +# Bug #27417 thd->no_trans_update.stmt lost value inside of SF-exec-stack +# +# Testing asserts: if there is a side effect of modifying non-transactional +# table thd->no_trans_update.stmt must be TRUE; +# the assert is active with debug build +# + +--disable_warnings +drop function if exists bug27417; +drop table if exists t1,t2; +--enable_warnings +# side effect table +CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM; +# target tables +CREATE TABLE t2 (a int NOT NULL auto_increment, PRIMARY KEY (a)); + +delimiter |; +create function bug27417(n int) +RETURNS int(11) +begin + insert into t1 values (null); + return n; +end| +delimiter ;| + +reset master; + +# execute + +insert into t2 values (bug27417(1)); +insert into t2 select bug27417(2); +reset master; + +--error ER_DUP_ENTRY +insert into t2 values (bug27417(2)); +source include/show_binlog_events.inc; #only (!) with fixes for #23333 will show there is the query +select count(*) from t1 /* must be 3 */; + +reset master; +select count(*) from t2; +delete from t2 where a=bug27417(3); +select count(*) from t2 /* nothing got deleted */; +source include/show_binlog_events.inc; # the query must be in regardless of #23333 +select count(*) from t1 /* must be 5 */; + +--enable_info +delete t2 from t2 where t2.a=bug27417(100) /* must not affect t2 */; +--disable_info +select count(*) from t1 /* must be 7 */; + +# function bug27417 remains for the following testing of bug#23333 +drop table t1,t2; + +# +# Bug#23333 using the patch (and the test) for bug#27471 +# throughout the bug tests +# t1 - non-trans side effects gatherer; +# t2 - transactional table; +# +CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM; +CREATE TABLE t2 (a int, PRIMARY KEY (a)) ENGINE=InnoDB; +CREATE TABLE t3 (a int, PRIMARY KEY (a), b int unique) ENGINE=MyISAM; +CREATE TABLE t4 (a int, PRIMARY KEY (a), b int unique) ENGINE=Innodb; +CREATE TABLE t5 (a int, PRIMARY KEY (a)) ENGINE=InnoDB; + + +# +# INSERT +# + +# prepare + + insert into t2 values (1); + reset master; + +# execute + + --error ER_DUP_ENTRY + insert into t2 values (bug27417(1)); + +# check + + source include/show_binlog_events.inc; # must be event of the query + select count(*) from t1 /* must be 1 */; + +# +# INSERT SELECT +# + +# prepare + delete from t1; + delete from t2; + insert into t2 values (2); + reset master; + +# execute + + --error ER_DUP_ENTRY + insert into t2 select bug27417(1) union select bug27417(2); + +# check + + source include/show_binlog_events.inc; # must be events of the query + select count(*) from t1 /* must be 2 */; + +# +# UPDATE inc multi-update +# + +# prepare + delete from t1; + insert into t3 values (1,1),(2,3),(3,4); + reset master; + +# execute + --error ER_DUP_ENTRY + update t3 set b=b+bug27417(1); + +# check + source include/show_binlog_events.inc; # must be events of the query + select count(*) from t1 /* must be 2 */; + +## multi_update::send_eof() branch + +# prepare + delete from t3; + delete from t4; + insert into t3 values (1,1); + insert into t4 values (1,1),(2,2); + + reset master; + +# execute + --error ER_DUP_ENTRY + UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */; + +# check + source include/show_binlog_events.inc; # the offset must denote there is the query + select count(*) from t1 /* must be 4 */; + +## send_error() branch of multi_update + +# prepare + delete from t1; + delete from t3; + delete from t4; + insert into t3 values (1,1),(2,2); + insert into t4 values (1,1),(2,2); + + reset master; + +# execute + --error ER_DUP_ENTRY + UPDATE t3,t4 SET t3.a = t4.a + bug27417(1) where t3.a = 1; + +# check + select count(*) from t1 /* must be 1 */; + +# cleanup + drop table t4; + + +# +# DELETE incl multi-delete +# + +# prepare + delete from t1; + delete from t2; + delete from t3; + insert into t2 values (1); + insert into t3 values (1,1); + create trigger trg_del before delete on t2 for each row + insert into t3 values (bug27417(1), 2); + reset master; + +# execute + --error ER_DUP_ENTRY + delete from t2; +# check + source include/show_binlog_events.inc; # the offset must denote there is the query + select count(*) from t1 /* must be 1 */; + +# cleanup + drop trigger trg_del; + +# prepare + delete from t1; + delete from t2; + delete from t5; + create trigger trg_del_t2 after delete on t2 for each row + insert into t1 values (1); + insert into t2 values (2),(3); + insert into t5 values (1),(2); + reset master; + +# execute + --error ER_DUP_ENTRY + delete t2.* from t2,t5 where t2.a=t5.a + 1; + +# check + source include/show_binlog_events.inc; # must be events of the query + select count(*) from t1 /* must be 1 */; + + +# +# LOAD DATA +# + +# prepare + delete from t1; + create table t4 (a int default 0, b int primary key) engine=innodb; + insert into t4 values (0, 17); + reset master; + +# execute + --error ER_DUP_ENTRY + load data infile '../../std_data/rpl_loaddata.dat' into table t4 (a, @b) set b= @b + bug27417(2); +# check + select * from t4; + select count(*) from t1 /* must be 2 */; + source include/show_binlog_events.inc; # must be events of the query + +# +# bug#23333 cleanup +# + + +drop trigger trg_del_t2; +drop table t1,t2,t3,t4,t5; +drop function bug27417; diff --git a/mysql-test/suite/binlog/include/mysqlbinlog_row_engine.inc b/mysql-test/suite/binlog/include/mysqlbinlog_row_engine.inc new file mode 100644 index 00000000..ce919550 --- /dev/null +++ b/mysql-test/suite/binlog/include/mysqlbinlog_row_engine.inc @@ -0,0 +1,1923 @@ +# mysqlbinlog_row.test +# +# Show that mysqlbinlog displays human readable comments to +# row-based log events. +# +# Procedure: +# Create a table that represents all-known types in 5.1. +# Write rows that contain the mins, maxes, and NULL for each type. +# Write a random or "problematic" value (i.e. one that might require +# escaping if it's represented as a string-y type) for each type. +# Update each of these rows. +# Delete each of these rows. +# Inspect the binlog. +# +# Bug#31455 - mysqlbinlog don't print user readable info about RBR events +# + +--source include/have_log_bin.inc +set sql_mode=""; + +SET NAMES 'utf8'; +#SHOW VARIABLES LIKE 'character_set%'; + + +--echo # +--echo # Preparatory cleanup. +--echo # +--disable_warnings +DROP TABLE IF EXISTS t1, t2, t3; +--enable_warnings + +--echo # +--echo # We need a fixed timestamp to avoid varying results. +--echo # +SET timestamp=1000000000; + +--echo # +--echo # =================================================== +--echo # Test #1 - Insert/update/delete with all data types. +--echo # =================================================== +--echo # +--echo # Delete all existing binary logs. +--echo # +RESET MASTER; + +--echo # +--echo # Create a test table with all data types. +--echo # +eval CREATE TABLE t1 ( + c01 BIT, + c02 BIT(64), + c03 TINYINT, + c04 TINYINT UNSIGNED, + c05 TINYINT ZEROFILL, + c06 BOOL, + c07 SMALLINT, + c08 SMALLINT UNSIGNED, + c09 SMALLINT ZEROFILL, + c10 MEDIUMINT, + c11 MEDIUMINT UNSIGNED, + c12 MEDIUMINT ZEROFILL, + c13 INT, + c14 INT UNSIGNED, + c15 INT ZEROFILL, + c16 BIGINT, + c17 BIGINT UNSIGNED, + c18 BIGINT ZEROFILL, + c19 FLOAT, + c20 FLOAT UNSIGNED, + c21 FLOAT ZEROFILL, + c22 DOUBLE, + c23 DOUBLE UNSIGNED, + c24 DOUBLE ZEROFILL, + c25 DECIMAL, + c26 DECIMAL UNSIGNED, + c27 DECIMAL ZEROFILL, + # + c28 DATE, + c29 DATETIME, + c30 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + c31 TIME, + c32 YEAR, + # + c33 CHAR, + c34 CHAR(0), + c35 CHAR(1), + c36 CHAR(255), + c37 NATIONAL CHAR, + c38 NATIONAL CHAR(0), + c39 NATIONAL CHAR(1), + c40 NATIONAL CHAR(255), + c41 CHAR CHARACTER SET UCS2, + c42 CHAR(0) CHARACTER SET UCS2, + c43 CHAR(1) CHARACTER SET UCS2, + c44 CHAR(255) CHARACTER SET UCS2, + # + c45 VARCHAR(0), + c46 VARCHAR(1), + c47 VARCHAR(255), + c48 VARCHAR(261), + c49 NATIONAL VARCHAR(0), + c50 NATIONAL VARCHAR(1), + c51 NATIONAL VARCHAR(255), + c52 NATIONAL VARCHAR(261), + c53 VARCHAR(0) CHARACTER SET UCS2, + c54 VARCHAR(1) CHARACTER SET UCS2, + c55 VARCHAR(255) CHARACTER SET UCS2, + c56 VARCHAR(261) CHARACTER SET UCS2, + # + c57 BINARY, + c58 BINARY(0), + c59 BINARY(1), + c60 BINARY(255), + # + c61 VARBINARY(0), + c62 VARBINARY(1), + c63 VARBINARY(255), + c64 VARBINARY(261), + # + c65 TINYBLOB, + c66 TINYTEXT, + c67 TINYTEXT CHARACTER SET UCS2, + c68 BLOB, + c69 TEXT, + c70 TEXT CHARACTER SET UCS2, + c71 MEDIUMBLOB, + c72 MEDIUMTEXT, + c73 MEDIUMTEXT CHARACTER SET UCS2, + c74 LONGBLOB, + c75 LONGTEXT, + c76 LONGTEXT CHARACTER SET UCS2, + # + c77 ENUM('a','b','c'), + c78 SET('a','b','c'), + # + crn INT -- row number + ) ENGINE=$engine_type DEFAULT CHARSET latin1; + +--echo # +--echo # Insert minimum values. +--echo # +INSERT INTO t1 VALUES ( + b'0', -- c01 + b'0000000000000000000000000000000000000000000000000000000000000000', -- c02 + -128, -- c03 + 0, -- c04 + 000, -- c05 + false, -- c06 + -32768, -- c07 + 0, -- c08 + 00000, -- c09 + -8388608, -- c10 + 0, -- c11 + 00000000, -- c12 + -2147483648, -- c13 + 0, -- c14 + 0000000000, -- c15 + -9223372036854775808, -- c16 + 0, -- c17 + 00000000000000000000, -- c18 + -3.402823466E+38, -- c19 + 1.175494351E-38, -- c20 + 000000000000, -- c21 + -1.7976931348623E+308, -- c22 three digits cut for ps-protocol + 2.2250738585072E-308, -- c23 three digits cut for ps-protocol + 0000000000000000000000, -- c24 + -9999999999, -- c25 + 0, -- c26 + 0000000000, -- c27 + # + '1000-01-01', -- c28 + '1000-01-01 00:00:00', -- c29 + '1970-01-02 00:00:01', -- c30 one day later due to timezone issues + '-838:59:59', -- c31 + '1901', -- c32 + # + '', -- c33 + '', -- c34 + '', -- c35 + '', -- c36 + '', -- c37 + '', -- c38 + '', -- c39 + '', -- c40 + '', -- c41 + '', -- c42 + '', -- c43 + '', -- c44 + # + '', -- c45 + '', -- c46 + '', -- c47 + '', -- c48 + '', -- c49 + '', -- c50 + '', -- c51 + '', -- c52 + '', -- c53 + '', -- c54 + '', -- c55 + '', -- c56 + # + '', -- c57 + '', -- c58 + '', -- c59 + '', -- c60 + # + '', -- c61 + '', -- c62 + '', -- c63 + '', -- c64 + # + '', -- c65 + '', -- c66 + '', -- c67 + '', -- c68 + '', -- c69 + '', -- c70 + '', -- c71 + '', -- c72 + '', -- c73 + '', -- c74 + '', -- c75 + '', -- c76 + # + 'a', -- c77 + '', -- c78 + # + 1 -- crn -- row number + ); + +--echo # +--echo # Insert maximum values. +--echo # +INSERT INTO t1 VALUES ( + b'1', -- c01 + b'1111111111111111111111111111111111111111111111111111111111111111', -- c02 + 127, -- c03 + 255, -- c04 + 255, -- c05 + true, -- c06 + 32767, -- c07 + 65535, -- c08 + 65535, -- c09 + 8388607, -- c10 + 16777215, -- c11 + 16777215, -- c12 + 2147483647, -- c13 + 4294967295, -- c14 + 4294967295, -- c15 + 9223372036854775807, -- c16 + 18446744073709551615, -- c17 + 18446744073709551615, -- c18 + 3.402823466E+38, -- c19 + 3.402823466E+38, -- c20 + 3.402823466E+38, -- c21 + 1.7976931348623E+308, -- c22 three digits cut for ps-protocol + 1.7976931348623E+308, -- c23 three digits cut for ps-protocol + 1.7976931348623E+308, -- c24 three digits cut for ps-protocol + 9999999999, -- c25 + 9999999999, -- c26 + 9999999999, -- c27 + # + '9999-12-31', -- c28 + '9999-12-31 23:59:59', -- c29 + '2038-01-08 03:14:07', -- c30 one day earlier due to timezone issues + '838:59:59', -- c31 + '2155', -- c32 + # + x'ff', -- c33 + '', -- c34 + x'ff', -- c35 + REPEAT(x'ff',255), -- c36 + _utf8 x'efbfbf', -- c37 + '', -- c38 + _utf8 x'efbfbf', -- c39 + REPEAT(_utf8 x'efbfbf',255), -- c40 + _ucs2 x'ffff', -- c41 + '', -- c42 + _ucs2 x'ffff', -- c43 + REPEAT(_ucs2 x'ffff',255), -- c44 + # + '', -- c45 + x'ff', -- c46 + REPEAT(x'ff',255), -- c47 + REPEAT(x'ff',261), -- c48 + '', -- c49 + _utf8 x'efbfbf', -- c50 + REPEAT(_utf8 x'efbfbf',255), -- c51 + REPEAT(_utf8 x'efbfbf',261), -- c52 + '', -- c53 + _ucs2 x'ffff', -- c54 + REPEAT(_ucs2 x'ffff',255), -- c55 + REPEAT(_ucs2 x'ffff',261), -- c56 + # + x'ff', -- c57 + '', -- c58 + x'ff', -- c59 + REPEAT(x'ff',255), -- c60 + # + '', -- c61 + x'ff', -- c62 + REPEAT(x'ff',255), -- c63 + REPEAT(x'ff',261), -- c64 + # + 'tinyblob', -- c65 not using maximum value here + 'tinytext', -- c66 not using maximum value here + 'tinytext-ucs2', -- c67 not using maximum value here + 'blob', -- c68 not using maximum value here + 'text', -- c69 not using maximum value here + 'text-ucs2', -- c70 not using maximum value here + 'mediumblob', -- c71 not using maximum value here + 'mediumtext', -- c72 not using maximum value here + 'mediumtext-ucs2', -- c73 not using maximum value here + 'longblob', -- c74 not using maximum value here + 'longtext', -- c75 not using maximum value here + 'longtext-ucs2', -- c76 not using maximum value here + # + 'c', -- c77 + 'a,b,c', -- c78 + # + 2 -- crn -- row number + ); + +--echo # +--echo # Insert a row with NULL values and one with arbitrary values. +--echo # +INSERT INTO t1 VALUES ( + NULL, -- c01 + NULL, -- c02 + NULL, -- c03 + NULL, -- c04 + NULL, -- c05 + NULL, -- c06 + NULL, -- c07 + NULL, -- c08 + NULL, -- c09 + NULL, -- c10 + NULL, -- c11 + NULL, -- c12 + NULL, -- c13 + NULL, -- c14 + NULL, -- c15 + NULL, -- c16 + NULL, -- c17 + NULL, -- c18 + NULL, -- c19 + NULL, -- c20 + NULL, -- c21 + NULL, -- c22 + NULL, -- c23 + NULL, -- c24 + NULL, -- c25 + NULL, -- c26 + NULL, -- c27 + # + NULL, -- c28 + NULL, -- c29 + NULL, -- c30 + NULL, -- c31 + NULL, -- c32 + # + NULL, -- c33 + NULL, -- c34 + NULL, -- c35 + NULL, -- c36 + NULL, -- c37 + NULL, -- c38 + NULL, -- c39 + NULL, -- c40 + NULL, -- c41 + NULL, -- c42 + NULL, -- c43 + NULL, -- c44 + # + NULL, -- c45 + NULL, -- c46 + NULL, -- c47 + NULL, -- c48 + NULL, -- c49 + NULL, -- c50 + NULL, -- c51 + NULL, -- c52 + NULL, -- c53 + NULL, -- c54 + NULL, -- c55 + NULL, -- c56 + # + NULL, -- c57 + NULL, -- c58 + NULL, -- c59 + NULL, -- c60 + # + NULL, -- c61 + NULL, -- c62 + NULL, -- c63 + NULL, -- c64 + # + NULL, -- c65 + NULL, -- c66 + NULL, -- c67 + NULL, -- c68 + NULL, -- c69 + NULL, -- c70 + NULL, -- c71 + NULL, -- c72 + NULL, -- c73 + NULL, -- c74 + NULL, -- c75 + NULL, -- c76 + # + NULL, -- c77 + NULL, -- c78 + # + 3 -- crn -- row number + ), ( + b'1', -- c01 + b'1111111111111111111111111111111111111111111111111111111111111111', -- c02 + 127, -- c03 + 0, -- c04 + 001, -- c05 + true, -- c06 + 32767, -- c07 + 0, -- c08 + 00001, -- c09 + 8388607, -- c10 + 0, -- c11 + 00000001, -- c12 + 2147483647, -- c13 + 0, -- c14 + 0000000001, -- c15 + 9223372036854775807, -- c16 + 0, -- c17 + 00000000000000000001, -- c18 + -1.175494351E-38, -- c19 + 1.175494351E-38, -- c20 + 000000000000001, -- c21 + -2.2250738585072E-308, -- c22 + 2.2250738585072E-308, -- c23 + 00000000000000000000001, -- c24 + -9999999999, -- c25 + 9999999999, -- c26 + 0000000001, -- c27 + # + '2008-08-04', -- c28 + '2008-08-04 16:18:06', -- c29 + '2008-08-04 16:18:24', -- c30 + '16:18:47', -- c31 + '2008', -- c32 + # + 'a', -- c33 + '', -- c34 + 'e', -- c35 + REPEAT('i',255), -- c36 + _utf8 x'c3a4', -- c37 + '', -- c38 + _utf8 x'c3b6', -- c39 + REPEAT(_utf8 x'c3bc',255), -- c40 + _ucs2 x'00e4', -- c41 + '', -- c42 + _ucs2 x'00f6', -- c43 + REPEAT(_ucs2 x'00fc',255), -- c44 + # + '', -- c45 + 'a', -- c46 + REPEAT('e',255), -- c47 + REPEAT('i',261), -- c48 + '', -- c49 + _utf8 x'c3a4', -- c50 + REPEAT(_utf8 x'c3b6',255), -- c51 + REPEAT(_utf8 x'c3bc',261), -- c52 + '', -- c53 + _ucs2 x'00e4', -- c54 + REPEAT(_ucs2 x'00f6',255), -- c55 + REPEAT(_ucs2 x'00fc',261), -- c56 + # + '0', -- c57 + '', -- c58 + '1', -- c59 + REPEAT('1',255), -- c60 + # + '', -- c61 + 'b', -- c62 + REPEAT('c',255), -- c63 + REPEAT('\'',261), -- c64 + # + 'tinyblob', -- c65 + 'tinytext', -- c66 + 'tinytext-ucs2', -- c67 + 'blob', -- c68 + 'text', -- c69 + 'text-ucs2', -- c70 + 'mediumblob', -- c71 + 'mediumtext', -- c72 + 'mediumtext-ucs2', -- c73 + 'longblob', -- c74 + 'longtext', -- c75 + 'longtext-ucs2', -- c76 + # + 'b', -- c77 + 'b,c', -- c78 + # + 4 -- crn -- row number + ); + +--echo # +--echo # Show what we have in the table. +--echo # Do not display bit type output. It's binary and confuses diff. +--echo # Also BINARY with nul-bytes should be avoided. +--echo # +--replace_column 1 # 2 # 57 # 58 # 59 # 60 # +query_vertical SELECT * FROM t1; + +--echo # +--echo # NOTE: For matching FLOAT and DOUBLE values in WHERE conditions, +--echo # don't use exact match, but < or > and tweak the numbers a bit. +--echo # +--echo # Show how much rows are affected by each statement. +--echo # +--enable_info + +--echo # +--echo # Update min values to max values. +--echo # +UPDATE t1 SET + c01 = b'1', + c02 = b'1111111111111111111111111111111111111111111111111111111111111111', + c03 = 127, + c04 = 255, + c05 = 255, + c06 = true, + c07 = 32767, + c08 = 65535, + c09 = 65535, + c10 = 8388607, + c11 = 16777215, + c12 = 16777215, + c13 = 2147483647, + c14 = 4294967295, + c15 = 4294967295, + c16 = 9223372036854775807, + c17 = 18446744073709551615, + c18 = 18446744073709551615, + c19 = 3.402823466E+38, + c20 = 3.402823466E+38, + c21 = 3.402823466E+38, + c22 = 1.7976931348623E+308, + c23 = 1.7976931348623E+308, + c24 = 1.7976931348623E+308, + c25 = 9999999999, + c26 = 9999999999, + c27 = 9999999999, + # + c28 = '9999-12-31', + c29 = '9999-12-31 23:59:59', + c30 = '2038-01-08 03:14:07', + c31 = '838:59:59', + c32 = '2155', + # + c33 = x'ff', + c34 = '', + c35 = x'ff', + c36 = REPEAT(x'ff',255), + c37 = _utf8 x'efbfbf', + c38 = '', + c39 = _utf8 x'efbfbf', + c40 = REPEAT(_utf8 x'efbfbf',255), + c41 = _ucs2 x'ffff', + c42 = '', + c43 = _ucs2 x'ffff', + c44 = REPEAT(_ucs2 x'ffff',255), + # + c45 = '', + c46 = x'ff', + c47 = REPEAT(x'ff',255), + c48 = REPEAT(x'ff',261), + c49 = '', + c50 = _utf8 x'efbfbf', + c51 = REPEAT(_utf8 x'efbfbf',255), + c52 = REPEAT(_utf8 x'efbfbf',261), + c53 = '', + c54 = _ucs2 x'ffff', + c55 = REPEAT(_ucs2 x'ffff',255), + c56 = REPEAT(_ucs2 x'ffff',261), + # + c57 = x'ff', + c58 = '', + c59 = x'ff', + c60 = REPEAT(x'ff',255), + # + c61 = '', + c62 = x'ff', + c63 = REPEAT(x'ff',255), + c64 = REPEAT(x'ff',261), + # + c65 = 'tinyblob', + c66 = 'tinytext', + c67 = 'tinytext-ucs2', + c68 = 'blob', + c69 = 'text', + c70 = 'text-ucs2', + c71 = 'mediumblob', + c72 = 'mediumtext', + c73 = 'mediumtext-ucs2', + c74 = 'longblob', + c75 = 'longtext', + c76 = 'longtext-ucs2', + # + c77 = 'c', + c78 = 'a,b,c', + # + crn = crn + # + WHERE + # + c01 = b'0' AND + c02 = b'0000000000000000000000000000000000000000000000000000000000000000' AND + c03 = -128 AND + c04 = 0 AND + c05 = 000 AND + c06 = false AND + c07 = -32768 AND + c08 = 0 AND + c09 = 00000 AND + c10 = -8388608 AND + c11 = 0 AND + c12 = 00000000 AND + c13 = -2147483648 AND + c14 = 0 AND + c15 = 0000000000 AND + c16 = -9223372036854775808 AND + c17 = 0 AND + c18 = 00000000000000000000 AND + c19 < -3.402823465E+38 AND + c20 < 1.175494352E-38 AND + c21 = 000000000000 AND + c22 < -1.7976931348622E+308 AND + c23 < 2.2250738585073E-308 AND + c24 = 0000000000000000000000 AND + c25 = -9999999999 AND + c26 = 0 AND + c27 = 0000000000 AND + # + c28 = '1000-01-01' AND + c29 = '1000-01-01 00:00:00' AND + c30 = '1970-01-02 00:00:01' AND + c31 = '-838:59:59' AND + c32 = '1901' AND + # + c33 = '' AND + c34 = '' AND + c35 = '' AND + c36 = '' AND + c37 = '' AND + c38 = '' AND + c39 = '' AND + c40 = '' AND + c41 = '' AND + c42 = '' AND + c43 = '' AND + c44 = '' AND + # + c45 = '' AND + c46 = '' AND + c47 = '' AND + c48 = '' AND + c49 = '' AND + c50 = '' AND + c51 = '' AND + c52 = '' AND + c53 = '' AND + c54 = '' AND + c55 = '' AND + c56 = '' AND + # + # this does not reproduce the inserted value: c57 = '' AND + c58 = '' AND + # this does not reproduce the inserted value: c59 = '' AND + # this does not reproduce the inserted value: c60 = '' AND + # + c61 = '' AND + c62 = '' AND + c63 = '' AND + c64 = '' AND + # + c65 = '' AND + c66 = '' AND + c67 = '' AND + c68 = '' AND + c69 = '' AND + c70 = '' AND + c71 = '' AND + c72 = '' AND + c73 = '' AND + c74 = '' AND + c75 = '' AND + c76 = '' AND + # + c77 = 'a' AND + c78 = '' AND + # + crn = 1; + +--echo # +--echo # Update max values to min values. +--echo # +UPDATE t1 SET + c01 = b'0', + c02 = b'0000000000000000000000000000000000000000000000000000000000000000', + c03 = -128, + c04 = 0, + c05 = 000, + c06 = false, + c07 = -32768, + c08 = 0, + c09 = 00000, + c10 = -8388608, + c11 = 0, + c12 = 00000000, + c13 = -2147483648, + c14 = 0, + c15 = 0000000000, + c16 = -9223372036854775808, + c17 = 0, + c18 = 00000000000000000000, + c19 = -3.402823466E+38, + c20 = 1.175494351E-38, + c21 = 000000000000, + c22 = -1.7976931348623E+308, + c23 = 2.2250738585072E-308, + c24 = 0000000000000000000000, + c25 = -9999999999, + c26 = 0, + c27 = 0000000000, + # + c28 = '1000-01-01', + c29 = '1000-01-01 00:00:00', + c30 = '1970-01-02 00:00:01', + c31 = '-838:59:59', + c32 = '1901', + # + c33 = '', + c34 = '', + c35 = '', + c36 = '', + c37 = '', + c38 = '', + c39 = '', + c40 = '', + c41 = '', + c42 = '', + c43 = '', + c44 = '', + # + c45 = '', + c46 = '', + c47 = '', + c48 = '', + c49 = '', + c50 = '', + c51 = '', + c52 = '', + c53 = '', + c54 = '', + c55 = '', + c56 = '', + # + c57 = '', + c58 = '', + c59 = '', + c60 = '', + # + c61 = '', + c62 = '', + c63 = '', + c64 = '', + # + c65 = '', + c66 = '', + c67 = '', + c68 = '', + c69 = '', + c70 = '', + c71 = '', + c72 = '', + c73 = '', + c74 = '', + c75 = '', + c76 = '', + # + c77 = 'a', + c78 = '', + # + crn = crn + # + WHERE + # + c01 = b'1' AND + # the below does not reproduce the inserted value: + #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND + c03 = 127 AND + c04 = 255 AND + c05 = 255 AND + c06 = true AND + c07 = 32767 AND + c08 = 65535 AND + c09 = 65535 AND + c10 = 8388607 AND + c11 = 16777215 AND + c12 = 16777215 AND + c13 = 2147483647 AND + c14 = 4294967295 AND + c15 = 4294967295 AND + c16 = 9223372036854775807 AND + c17 = 18446744073709551615 AND + c18 = 18446744073709551615 AND + c19 > 3.402823465E+38 AND + c20 > 3.402823465E+38 AND + c21 > 3.402823465E+38 AND + c22 > 1.7976931348622E+308 AND + c23 > 1.7976931348622E+308 AND + c24 > 1.7976931348622E+308 AND + c25 = 9999999999 AND + c26 = 9999999999 AND + c27 = 9999999999 AND + # + c28 = '9999-12-31' AND + c29 = '9999-12-31 23:59:59' AND + c30 = '2038-01-08 03:14:07' AND + c31 = '838:59:59' AND + c32 = '2155' AND + # + c33 = x'ff' AND + c34 = '' AND + c35 = x'ff' AND + c36 = REPEAT(x'ff',255) AND + c37 = _utf8 x'efbfbf' AND + c38 = '' AND + c39 = _utf8 x'efbfbf' AND + c40 = REPEAT(_utf8 x'efbfbf',255) AND + c41 = _ucs2 x'ffff' AND + c42 = '' AND + c43 = _ucs2 x'ffff' AND + c44 = REPEAT(_ucs2 x'ffff',255) AND + # + c45 = '' AND + c46 = x'ff' AND + c47 = REPEAT(x'ff',255) AND + c48 = REPEAT(x'ff',261) AND + c49 = '' AND + c50 = _utf8 x'efbfbf' AND + c51 = REPEAT(_utf8 x'efbfbf',255) AND + c52 = REPEAT(_utf8 x'efbfbf',261) AND + c53 = '' AND + c54 = _ucs2 x'ffff' AND + c55 = REPEAT(_ucs2 x'ffff',255) AND + c56 = REPEAT(_ucs2 x'ffff',261) AND + # + c57 = x'ff' AND + c58 = '' AND + c59 = x'ff' AND + c60 = REPEAT(x'ff',255) AND + # + c61 = '' AND + c62 = x'ff' AND + c63 = REPEAT(x'ff',255) AND + c64 = REPEAT(x'ff',261) AND + # + c65 = 'tinyblob' AND + c66 = 'tinytext' AND + c67 = 'tinytext-ucs2' AND + c68 = 'blob' AND + c69 = 'text' AND + c70 = 'text-ucs2' AND + c71 = 'mediumblob' AND + c72 = 'mediumtext' AND + c73 = 'mediumtext-ucs2' AND + c74 = 'longblob' AND + c75 = 'longtext' AND + c76 = 'longtext-ucs2' AND + # + c77 = 'c' AND + c78 = 'a,b,c' AND + # + crn = 2; + +--echo # +--echo # Update NULL values to arbitrary values. +--echo # +UPDATE t1 SET + c01 = b'1', + c02 = b'1111111111111111111111111111111111111111111111111111111111111111', + c03 = 127, + c04 = 0, + c05 = 001, + c06 = true, + c07 = 32767, + c08 = 0, + c09 = 00001, + c10 = 8388607, + c11 = 0, + c12 = 00000001, + c13 = 2147483647, + c14 = 0, + c15 = 0000000001, + c16 = 9223372036854775807, + c17 = 0, + c18 = 00000000000000000001, + c19 = -1.175494351E-38, + c20 = 1.175494351E-38, + c21 = 000000000000001, + c22 = -2.2250738585072E-308, + c23 = 2.2250738585072E-308, + c24 = 00000000000000000000001, + c25 = -9999999999, + c26 = 9999999999, + c27 = 0000000001, + # + c28 = '2008-08-04', + c29 = '2008-08-04 16:18:06', + c30 = '2008-08-04 16:18:24', + c31 = '16:18:47', + c32 = '2008', + # + c33 = 'a', + c34 = '', + c35 = 'e', + c36 = REPEAT('i',255), + c37 = _utf8 x'c3a4', + c38 = '', + c39 = _utf8 x'c3b6', + c40 = REPEAT(_utf8 x'c3bc',255), + c41 = _ucs2 x'00e4', + c42 = '', + c43 = _ucs2 x'00f6', + c44 = REPEAT(_ucs2 x'00fc',255), + # + c45 = '', + c46 = 'a', + c47 = REPEAT('e',255), + c48 = REPEAT('i',261), + c49 = '', + c50 = _utf8 x'c3a4', + c51 = REPEAT(_utf8 x'c3b6',255), + c52 = REPEAT(_utf8 x'c3bc',261), + c53 = '', + c54 = _ucs2 x'00e4', + c55 = REPEAT(_ucs2 x'00f6',255), + c56 = REPEAT(_ucs2 x'00fc',261), + # + c57 = '0', + c58 = '', + c59 = '1', + c60 = REPEAT('1',255), + # + c61 = '', + c62 = 'b', + c63 = REPEAT('c',255), + c64 = REPEAT('\'',261), + # + c65 = 'tinyblob', + c66 = 'tinytext', + c67 = 'tinytext-ucs2', + c68 = 'blob', + c69 = 'text', + c70 = 'text-ucs2', + c71 = 'mediumblob', + c72 = 'mediumtext', + c73 = 'mediumtext-ucs2', + c74 = 'longblob', + c75 = 'longtext', + c76 = 'longtext-ucs2', + # + c77 = 'b', + c78 = 'b,c', + # + crn = crn + # + WHERE + # + c01 IS NULL AND + c02 IS NULL AND + c03 IS NULL AND + c04 IS NULL AND + c05 IS NULL AND + c06 IS NULL AND + c07 IS NULL AND + c08 IS NULL AND + c09 IS NULL AND + c10 IS NULL AND + c11 IS NULL AND + c12 IS NULL AND + c13 IS NULL AND + c14 IS NULL AND + c15 IS NULL AND + c16 IS NULL AND + c17 IS NULL AND + c18 IS NULL AND + c19 IS NULL AND + c20 IS NULL AND + c21 IS NULL AND + c22 IS NULL AND + c23 IS NULL AND + c24 IS NULL AND + c25 IS NULL AND + c26 IS NULL AND + c27 IS NULL AND + # + c28 IS NULL AND + c29 IS NULL AND + # this got a timestamp instead of NULL: c30 IS NULL AND + c31 IS NULL AND + c32 IS NULL AND + # + c33 IS NULL AND + c34 IS NULL AND + c35 IS NULL AND + c36 IS NULL AND + c37 IS NULL AND + c38 IS NULL AND + c39 IS NULL AND + c40 IS NULL AND + c41 IS NULL AND + c42 IS NULL AND + c43 IS NULL AND + c44 IS NULL AND + # + c45 IS NULL AND + c46 IS NULL AND + c47 IS NULL AND + c48 IS NULL AND + c49 IS NULL AND + c50 IS NULL AND + c51 IS NULL AND + c52 IS NULL AND + c53 IS NULL AND + c54 IS NULL AND + c55 IS NULL AND + c56 IS NULL AND + # + c57 IS NULL AND + c58 IS NULL AND + c59 IS NULL AND + c60 IS NULL AND + # + c61 IS NULL AND + c62 IS NULL AND + c63 IS NULL AND + c64 IS NULL AND + # + c65 IS NULL AND + c66 IS NULL AND + c67 IS NULL AND + c68 IS NULL AND + c69 IS NULL AND + c70 IS NULL AND + c71 IS NULL AND + c72 IS NULL AND + c73 IS NULL AND + c74 IS NULL AND + c75 IS NULL AND + c76 IS NULL AND + # + c77 IS NULL AND + c78 IS NULL AND + # + crn = 3; + +--echo # +--echo # Update arbitrary values to NULL values. +--echo # +UPDATE t1 SET + c01 = NULL, + c02 = NULL, + c03 = NULL, + c04 = NULL, + c05 = NULL, + c06 = NULL, + c07 = NULL, + c08 = NULL, + c09 = NULL, + c10 = NULL, + c11 = NULL, + c12 = NULL, + c13 = NULL, + c14 = NULL, + c15 = NULL, + c16 = NULL, + c17 = NULL, + c18 = NULL, + c19 = NULL, + c20 = NULL, + c21 = NULL, + c22 = NULL, + c23 = NULL, + c24 = NULL, + c25 = NULL, + c26 = NULL, + c27 = NULL, + # + c28 = NULL, + c29 = NULL, + c30 = NULL, + c31 = NULL, + c32 = NULL, + # + c33 = NULL, + c34 = NULL, + c35 = NULL, + c36 = NULL, + c37 = NULL, + c38 = NULL, + c39 = NULL, + c40 = NULL, + c41 = NULL, + c42 = NULL, + c43 = NULL, + c44 = NULL, + # + c45 = NULL, + c46 = NULL, + c47 = NULL, + c48 = NULL, + c49 = NULL, + c50 = NULL, + c51 = NULL, + c52 = NULL, + c53 = NULL, + c54 = NULL, + c55 = NULL, + c56 = NULL, + # + c57 = NULL, + c58 = NULL, + c59 = NULL, + c60 = NULL, + # + c61 = NULL, + c62 = NULL, + c63 = NULL, + c64 = NULL, + # + c65 = NULL, + c66 = NULL, + c67 = NULL, + c68 = NULL, + c69 = NULL, + c70 = NULL, + c71 = NULL, + c72 = NULL, + c73 = NULL, + c74 = NULL, + c75 = NULL, + c76 = NULL, + # + c77 = NULL, + c78 = NULL, + # + crn = crn + # + WHERE + # + c01 = b'1' AND + # the below does not reproduce the inserted value: + #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND + c03 = 127 AND + c04 = 0 AND + c05 = 001 AND + c06 = true AND + c07 = 32767 AND + c08 = 0 AND + c09 = 00001 AND + c10 = 8388607 AND + c11 = 0 AND + c12 = 00000001 AND + c13 = 2147483647 AND + c14 = 0 AND + c15 = 0000000001 AND + c16 = 9223372036854775807 AND + c17 = 0 AND + c18 = 00000000000000000001 AND + c19 > -1.175494352E-38 AND + c20 < 1.175494352E-38 AND + c21 = 000000000000001 AND + c22 > -2.2250738585073E-308 AND + c23 < 2.2250738585073E-308 AND + c24 = 00000000000000000000001 AND + c25 = -9999999999 AND + c26 = 9999999999 AND + c27 = 0000000001 AND + # + c28 = '2008-08-04' AND + c29 = '2008-08-04 16:18:06' AND + c30 = '2008-08-04 16:18:24' AND + c31 = '16:18:47' AND + c32 = '2008' AND + # + c33 = 'a' AND + c34 = '' AND + c35 = 'e' AND + c36 = REPEAT('i',255) AND + c37 = _utf8 x'c3a4' AND + c38 = '' AND + c39 = _utf8 x'c3b6' AND + c40 = REPEAT(_utf8 x'c3bc',255) AND + c41 = _ucs2 x'00e4' AND + c42 = '' AND + c43 = _ucs2 x'00f6' AND + c44 = REPEAT(_ucs2 x'00fc',255) AND + # + c45 = '' AND + c46 = 'a' AND + c47 = REPEAT('e',255) AND + c48 = REPEAT('i',261) AND + c49 = '' AND + c50 = _utf8 x'c3a4' AND + c51 = REPEAT(_utf8 x'c3b6',255) AND + c52 = REPEAT(_utf8 x'c3bc',261) AND + c53 = '' AND + c54 = _ucs2 x'00e4' AND + c55 = REPEAT(_ucs2 x'00f6',255) AND + c56 = REPEAT(_ucs2 x'00fc',261) AND + # + c57 = '0' AND + c58 = '' AND + c59 = '1' AND + c60 = REPEAT('1',255) AND + # + c61 = '' AND + c62 = 'b' AND + c63 = REPEAT('c',255) AND + c64 = REPEAT('\'',261) AND + # + c65 = 'tinyblob' AND + c66 = 'tinytext' AND + c67 = 'tinytext-ucs2' AND + c68 = 'blob' AND + c69 = 'text' AND + c70 = 'text-ucs2' AND + c71 = 'mediumblob' AND + c72 = 'mediumtext' AND + c73 = 'mediumtext-ucs2' AND + c74 = 'longblob' AND + c75 = 'longtext' AND + c76 = 'longtext-ucs2' AND + # + c77 = 'b' AND + c78 = 'b,c' AND + # + crn = 4; + +--echo # +--echo # Show what we have in the table. +--echo # Do not display bit type output. It's binary and confuses diff. +--echo # Also BINARY with nul-bytes should be avoided. +--echo # +--replace_column 1 # 2 # 57 # 58 # 59 # 60 # +query_vertical SELECT * FROM t1; + +--echo # +--echo # Delete the row that has max values now. +--echo # +DELETE FROM t1 WHERE + # + c01 = b'1' AND + # the below does not reproduce the inserted value: + #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND + c03 = 127 AND + c04 = 255 AND + c05 = 255 AND + c06 = true AND + c07 = 32767 AND + c08 = 65535 AND + c09 = 65535 AND + c10 = 8388607 AND + c11 = 16777215 AND + c12 = 16777215 AND + c13 = 2147483647 AND + c14 = 4294967295 AND + c15 = 4294967295 AND + c16 = 9223372036854775807 AND + c17 = 18446744073709551615 AND + c18 = 18446744073709551615 AND + c19 > 3.402823465E+38 AND + c20 > 3.402823465E+38 AND + c21 > 3.402823465E+38 AND + c22 > 1.7976931348622E+308 AND + c23 > 1.7976931348622E+308 AND + c24 > 1.7976931348622E+308 AND + c25 = 9999999999 AND + c26 = 9999999999 AND + c27 = 9999999999 AND + # + c28 = '9999-12-31' AND + c29 = '9999-12-31 23:59:59' AND + c30 = '2038-01-08 03:14:07' AND + c31 = '838:59:59' AND + c32 = '2155' AND + # + c33 = x'ff' AND + c34 = '' AND + c35 = x'ff' AND + c36 = REPEAT(x'ff',255) AND + c37 = _utf8 x'efbfbf' AND + c38 = '' AND + c39 = _utf8 x'efbfbf' AND + c40 = REPEAT(_utf8 x'efbfbf',255) AND + c41 = _ucs2 x'ffff' AND + c42 = '' AND + c43 = _ucs2 x'ffff' AND + c44 = REPEAT(_ucs2 x'ffff',255) AND + # + c45 = '' AND + c46 = x'ff' AND + c47 = REPEAT(x'ff',255) AND + c48 = REPEAT(x'ff',261) AND + c49 = '' AND + c50 = _utf8 x'efbfbf' AND + c51 = REPEAT(_utf8 x'efbfbf',255) AND + c52 = REPEAT(_utf8 x'efbfbf',261) AND + c53 = '' AND + c54 = _ucs2 x'ffff' AND + c55 = REPEAT(_ucs2 x'ffff',255) AND + c56 = REPEAT(_ucs2 x'ffff',261) AND + # + c57 = x'ff' AND + c58 = '' AND + c59 = x'ff' AND + c60 = REPEAT(x'ff',255) AND + # + c61 = '' AND + c62 = x'ff' AND + c63 = REPEAT(x'ff',255) AND + c64 = REPEAT(x'ff',261) AND + # + c65 = 'tinyblob' AND + c66 = 'tinytext' AND + c67 = 'tinytext-ucs2' AND + c68 = 'blob' AND + c69 = 'text' AND + c70 = 'text-ucs2' AND + c71 = 'mediumblob' AND + c72 = 'mediumtext' AND + c73 = 'mediumtext-ucs2' AND + c74 = 'longblob' AND + c75 = 'longtext' AND + c76 = 'longtext-ucs2' AND + # + c77 = 'c' AND + c78 = 'a,b,c' AND + # + crn = 1; + +--echo # +--echo # Delete the row that has min values now. +--echo # +DELETE FROM t1 WHERE + # + c01 = b'0' AND + c02 = b'0000000000000000000000000000000000000000000000000000000000000000' AND + c03 = -128 AND + c04 = 0 AND + c05 = 000 AND + c06 = false AND + c07 = -32768 AND + c08 = 0 AND + c09 = 00000 AND + c10 = -8388608 AND + c11 = 0 AND + c12 = 00000000 AND + c13 = -2147483648 AND + c14 = 0 AND + c15 = 0000000000 AND + c16 = -9223372036854775808 AND + c17 = 0 AND + c18 = 00000000000000000000 AND + c19 < -3.402823465E+38 AND + c20 < 1.175494352E-38 AND + c21 = 000000000000 AND + c22 < -1.7976931348622E+308 AND + c23 < 2.2250738585073E-308 AND + c24 = 0000000000000000000000 AND + c25 = -9999999999 AND + c26 = 0 AND + c27 = 0000000000 AND + # + c28 = '1000-01-01' AND + c29 = '1000-01-01 00:00:00' AND + c30 = '1970-01-02 00:00:01' AND + c31 = '-838:59:59' AND + c32 = '1901' AND + # + c33 = '' AND + c34 = '' AND + c35 = '' AND + c36 = '' AND + c37 = '' AND + c38 = '' AND + c39 = '' AND + c40 = '' AND + c41 = '' AND + c42 = '' AND + c43 = '' AND + c44 = '' AND + # + c45 = '' AND + c46 = '' AND + c47 = '' AND + c48 = '' AND + c49 = '' AND + c50 = '' AND + c51 = '' AND + c52 = '' AND + c53 = '' AND + c54 = '' AND + c55 = '' AND + c56 = '' AND + # + # this does not reproduce the inserted value: c57 = '' AND + c58 = '' AND + # this does not reproduce the inserted value: c59 = '' AND + # this does not reproduce the inserted value: c60 = '' AND + # + c61 = '' AND + c62 = '' AND + c63 = '' AND + c64 = '' AND + # + c65 = '' AND + c66 = '' AND + c67 = '' AND + c68 = '' AND + c69 = '' AND + c70 = '' AND + c71 = '' AND + c72 = '' AND + c73 = '' AND + c74 = '' AND + c75 = '' AND + c76 = '' AND + # + c77 = 'a' AND + c78 = '' AND + # + crn = 2; + +--echo # +--echo # Delete the row that has arbitrary values now. +--echo # +DELETE FROM t1 WHERE + # + c01 = b'1' AND + # the below does not reproduce the inserted value: + #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND + c03 = 127 AND + c04 = 0 AND + c05 = 001 AND + c06 = true AND + c07 = 32767 AND + c08 = 0 AND + c09 = 00001 AND + c10 = 8388607 AND + c11 = 0 AND + c12 = 00000001 AND + c13 = 2147483647 AND + c14 = 0 AND + c15 = 0000000001 AND + c16 = 9223372036854775807 AND + c17 = 0 AND + c18 = 00000000000000000001 AND + c19 > -1.175494352E-38 AND + c20 < 1.175494352E-38 AND + c21 = 000000000000001 AND + c22 > -2.2250738585073E-308 AND + c23 < 2.2250738585073E-308 AND + c24 = 00000000000000000000001 AND + c25 = -9999999999 AND + c26 = 9999999999 AND + c27 = 0000000001 AND + # + c28 = '2008-08-04' AND + c29 = '2008-08-04 16:18:06' AND + c30 = '2008-08-04 16:18:24' AND + c31 = '16:18:47' AND + c32 = '2008' AND + # + c33 = 'a' AND + c34 = '' AND + c35 = 'e' AND + c36 = REPEAT('i',255) AND + c37 = _utf8 x'c3a4' AND + c38 = '' AND + c39 = _utf8 x'c3b6' AND + c40 = REPEAT(_utf8 x'c3bc',255) AND + c41 = _ucs2 x'00e4' AND + c42 = '' AND + c43 = _ucs2 x'00f6' AND + c44 = REPEAT(_ucs2 x'00fc',255) AND + # + c45 = '' AND + c46 = 'a' AND + c47 = REPEAT('e',255) AND + c48 = REPEAT('i',261) AND + c49 = '' AND + c50 = _utf8 x'c3a4' AND + c51 = REPEAT(_utf8 x'c3b6',255) AND + c52 = REPEAT(_utf8 x'c3bc',261) AND + c53 = '' AND + c54 = _ucs2 x'00e4' AND + c55 = REPEAT(_ucs2 x'00f6',255) AND + c56 = REPEAT(_ucs2 x'00fc',261) AND + # + c57 = '0' AND + c58 = '' AND + c59 = '1' AND + c60 = REPEAT('1',255) AND + # + c61 = '' AND + c62 = 'b' AND + c63 = REPEAT('c',255) AND + c64 = REPEAT('\'',261) AND + # + c65 = 'tinyblob' AND + c66 = 'tinytext' AND + c67 = 'tinytext-ucs2' AND + c68 = 'blob' AND + c69 = 'text' AND + c70 = 'text-ucs2' AND + c71 = 'mediumblob' AND + c72 = 'mediumtext' AND + c73 = 'mediumtext-ucs2' AND + c74 = 'longblob' AND + c75 = 'longtext' AND + c76 = 'longtext-ucs2' AND + # + c77 = 'b' AND + c78 = 'b,c' AND + # + crn = 3; + +--echo # +--echo # Delete the row that has NULL values now. +--echo # +DELETE FROM t1 WHERE + # + c01 IS NULL AND + c02 IS NULL AND + c03 IS NULL AND + c04 IS NULL AND + c05 IS NULL AND + c06 IS NULL AND + c07 IS NULL AND + c08 IS NULL AND + c09 IS NULL AND + c10 IS NULL AND + c11 IS NULL AND + c12 IS NULL AND + c13 IS NULL AND + c14 IS NULL AND + c15 IS NULL AND + c16 IS NULL AND + c17 IS NULL AND + c18 IS NULL AND + c19 IS NULL AND + c20 IS NULL AND + c21 IS NULL AND + c22 IS NULL AND + c23 IS NULL AND + c24 IS NULL AND + c25 IS NULL AND + c26 IS NULL AND + c27 IS NULL AND + # + c28 IS NULL AND + c29 IS NULL AND + # this got a timestamp instead of NULL: c30 IS NULL AND + c31 IS NULL AND + c32 IS NULL AND + # + c33 IS NULL AND + c34 IS NULL AND + c35 IS NULL AND + c36 IS NULL AND + c37 IS NULL AND + c38 IS NULL AND + c39 IS NULL AND + c40 IS NULL AND + c41 IS NULL AND + c42 IS NULL AND + c43 IS NULL AND + c44 IS NULL AND + # + c45 IS NULL AND + c46 IS NULL AND + c47 IS NULL AND + c48 IS NULL AND + c49 IS NULL AND + c50 IS NULL AND + c51 IS NULL AND + c52 IS NULL AND + c53 IS NULL AND + c54 IS NULL AND + c55 IS NULL AND + c56 IS NULL AND + # + c57 IS NULL AND + c58 IS NULL AND + c59 IS NULL AND + c60 IS NULL AND + # + c61 IS NULL AND + c62 IS NULL AND + c63 IS NULL AND + c64 IS NULL AND + # + c65 IS NULL AND + c66 IS NULL AND + c67 IS NULL AND + c68 IS NULL AND + c69 IS NULL AND + c70 IS NULL AND + c71 IS NULL AND + c72 IS NULL AND + c73 IS NULL AND + c74 IS NULL AND + c75 IS NULL AND + c76 IS NULL AND + # + c77 IS NULL AND + c78 IS NULL AND + # + crn = 4; + +--echo # +--echo # Show what we have in the table. Should be empty now. +--echo # +query_vertical SELECT * FROM t1; + +--echo # +--echo # Hide how much rows are affected by each statement. +--echo # +--disable_info + +--echo # +--echo # Flush all log buffers to the log file. +--echo # +FLUSH LOGS; + +--echo # +--echo # Call mysqlbinlog to display the log file contents. +--echo # +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9-]*[.][0-9]{1,3})[0-9e+-]*[^ ]*[ ]*(.*(FLOAT|DOUBLE).*[*].)/\1... \2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ +--exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 + +--echo # +--echo # Cleanup. +--echo # +DROP TABLE t1; + +--echo # +--echo # ========================================= +--echo # Test #2 - Multi-row insert/update/delete. +--echo # ========================================= +--echo # +--echo # Delete all existing binary logs. +--echo # +RESET MASTER; + +--echo # +--echo # Create a test table with selected data types. +--echo # +eval CREATE TABLE t1 ( + c28 DATE, + c47 VARCHAR(24), + crn INT -- row number + ) ENGINE=$engine_type DEFAULT CHARSET latin1; + +--echo # +--echo # Show how much rows are affected by each statement. +--echo # +--enable_info + +--echo # +--echo # Multi-row insert. +--echo # +INSERT INTO t1 VALUES + ('2008-08-01','VARCHAR-01',1), + ('2008-08-02','VARCHAR-02',2), + ('2008-08-03','VARCHAR-03',3), + ('2008-08-04','VARCHAR-04',4), + ('2008-08-05','VARCHAR-05',5), + ('2008-08-06','VARCHAR-06',6), + ('2008-08-07','VARCHAR-07',7), + ('2008-08-08','VARCHAR-08',8), + ('2008-08-09','VARCHAR-09',9); + +--echo # +--echo # Multi-row update. +--echo # +UPDATE t1 SET c28 = ADDDATE(c28,10) WHERE crn < 8; + +--echo # +--echo # Show what we have in the table. +--echo # +SELECT * FROM t1; + +--echo # +--echo # Multi-row delete. +--echo # +DELETE FROM t1 WHERE crn < 8; + +--echo # +--echo # Show what we have in the table. +--echo # +SELECT * FROM t1; + +--echo # +--echo # Hide how much rows are affected by each statement. +--echo # +--disable_info + +--echo # +--echo # Flush all log buffers to the log file. +--echo # +FLUSH LOGS; + +--echo # +--echo # Call mysqlbinlog to display the log file contents. +--echo # +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9-]*[.][0-9]{1,3})[0-9e+-]*[^ ]*[ ]*(.*(FLOAT|DOUBLE).*[*].)/\1... \2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ +--exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 + +--echo # +--echo # Cleanup. +--echo # +DROP TABLE t1; + +--echo # +--echo # ==================================== +--echo # Test #3 - Multi-table update/delete. +--echo # ==================================== +--echo # +--echo # Delete all existing binary logs. +--echo # +RESET MASTER; + +--echo # +--echo # Create test tables with selected data types. +--echo # +eval CREATE TABLE t1 ( + c_1_1 DATE, + c_1_2 VARCHAR(255), + c_1_n INT -- row number + ) ENGINE=$engine_type DEFAULT CHARSET latin1; +# +eval CREATE TABLE t2 ( + c_2_1 DATE, + c_2_2 VARCHAR(255), + c_2_n INT -- row number + ) ENGINE=$engine_type DEFAULT CHARSET latin1; +# +eval CREATE TABLE t3 ( + c_3_1 DATE, + c_3_2 VARCHAR(255), + c_3_n INT -- row number + ) ENGINE=$engine_type DEFAULT CHARSET latin1; + +--echo # +--echo # Show how much rows are affected by each statement. +--echo # +--enable_info + +--echo # +--echo # Insert data. +--echo # +INSERT INTO t1 VALUES + ('2008-01-01','VARCHAR-01-01',11), + ('2008-01-02','VARCHAR-01-02',2), + ('2008-01-03','VARCHAR-01-03',3), + ('2008-01-04','VARCHAR-01-04',4), + ('2008-01-05','VARCHAR-01-05',5), + ('2008-01-06','VARCHAR-01-06',6), + ('2008-01-07','VARCHAR-01-07',7), + ('2008-01-08','VARCHAR-01-08',18), + ('2008-01-09','VARCHAR-01-09',19); +# +INSERT INTO t2 VALUES + ('2008-02-01','VARCHAR-02-01',21), + ('2008-02-02','VARCHAR-02-02',2), + ('2008-02-03','VARCHAR-02-03',3), + ('2008-02-04','VARCHAR-02-04',4), + ('2008-02-05','VARCHAR-02-05',5), + ('2008-02-06','VARCHAR-02-06',6), + ('2008-02-07','VARCHAR-02-07',7), + ('2008-02-08','VARCHAR-02-08',28), + ('2008-02-09','VARCHAR-02-09',29); +# +INSERT INTO t3 VALUES + ('2008-03-01','VARCHAR-03-01',31), + ('2008-03-02','VARCHAR-03-02',2), + ('2008-03-03','VARCHAR-03-03',3), + ('2008-03-04','VARCHAR-03-04',4), + ('2008-03-05','VARCHAR-03-05',5), + ('2008-03-06','VARCHAR-03-06',6), + ('2008-03-07','VARCHAR-03-07',7), + ('2008-03-08','VARCHAR-03-08',38), + ('2008-03-09','VARCHAR-03-09',39); + +--echo # +--echo # Multi-table update. +--echo # +UPDATE t1,t2,t3 SET + c_1_1 = ADDDATE(c_1_1,INTERVAL 10 YEAR), + c_2_1 = ADDDATE(c_2_1,INTERVAL 20 YEAR), + c_3_1 = ADDDATE(c_3_1,INTERVAL 30 YEAR) + WHERE c_1_n = c_2_n AND c_2_n = c_3_n; + +--echo # +--echo # Show what we have in the tables. +--echo # +SELECT * FROM t1; +SELECT * FROM t2; +SELECT * FROM t3; + +--echo # +--echo # Multi-table delete. +--echo # +DELETE FROM t1,t2,t3 USING t1 INNER JOIN t2 INNER JOIN t3 + WHERE c_1_n = c_2_n AND c_2_n = c_3_n; + +--echo # +--echo # Show what we have in the tables. +--echo # +SELECT * FROM t1; +SELECT * FROM t2; +SELECT * FROM t3; + +--echo # +--echo # Hide how much rows are affected by each statement. +--echo # +--disable_info + +--echo # +--echo # Flush all log buffers to the log file. +--echo # +FLUSH LOGS; + +--echo # +--echo # Call mysqlbinlog to display the log file contents. +--echo # +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9-]*[.][0-9]{1,3})[0-9e+-]*[^ ]*[ ]*(.*(FLOAT|DOUBLE).*[*].)/\1... \2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ +--exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 + +--echo # +--echo # Cleanup. +--echo # +DROP TABLE t1, t2, t3; + +--echo # +--echo # =========================== +--echo # Test #4 - LOAD DATA INFILE. +--echo # =========================== +--echo # +--echo # Delete all existing binary logs. +--echo # +RESET MASTER; + +--echo # +--echo # Create a test table with selected data types. +--echo # +eval CREATE TABLE t1 ( + c1 INT DEFAULT 100, + c2 INT, + c3 VARCHAR(60) + ) ENGINE=$engine_type DEFAULT CHARSET latin1; + +--echo # +--echo # Show how much rows are affected by each statement. +--echo # +--enable_info + +--echo # +--echo # Load data. +--echo # +LOAD DATA INFILE '../../std_data/loaddata5.dat' + INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (c1,c2) + SET c3 = 'Wow'; + +--echo # +--echo # Show what we have in the table. +--echo # +SELECT * FROM t1; + +--echo # +--echo # Hide how much rows are affected by each statement. +--echo # +--disable_info + +--echo # +--echo # Flush all log buffers to the log file. +--echo # +FLUSH LOGS; + +--echo # +--echo # Call mysqlbinlog to display the log file contents. +--echo # +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9-]*[.][0-9]{1,3})[0-9e+-]*[^ ]*[ ]*(.*(FLOAT|DOUBLE).*[*].)/\1... \2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ +--exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 + +--echo # +--echo # Cleanup. +--echo # +DROP TABLE t1; + + diff --git a/mysql-test/suite/binlog/include/print_optional_metadata.inc b/mysql-test/suite/binlog/include/print_optional_metadata.inc new file mode 100644 index 00000000..739903ab --- /dev/null +++ b/mysql-test/suite/binlog/include/print_optional_metadata.inc @@ -0,0 +1,34 @@ +# Auxaliary file for printing optional metadata in table_map_log_event +# Usage : +# --let $binlog_file= +# [--let $stop_position] +# [--let $print_primary_key] +# --source extra/binlog_tests/print_optional_metadata.inc + +--let $output_file= $MYSQLTEST_VARDIR/tmp/mysqlbinlog.output + +--let $_stop_position_opt= +if ($stop_position) +{ + --let $_stop_position_opt=--stop-position=$stop_position +} + +--exec $MYSQL_BINLOG -F --print-table-metadata $_stop_position_opt $binlog_file > $output_file + + +--let SEARCH_PATTERN= # (?:Columns\(| {8}).* +--let SEARCH_FILE= $output_file +--let SEARCH_OUTPUT=matches +--let SEARCH_TYPE="_gm_" +--source include/search_pattern_in_file.inc + +if ($print_primary_key) +{ + --let SEARCH_PATTERN= # Primary Key + --source include/search_pattern_in_file.inc +} +--remove_file $output_file +--let $stop_position= +--let $_stop_position_opt= + + diff --git a/mysql-test/suite/binlog/r/backup.result b/mysql-test/suite/binlog/r/backup.result new file mode 100644 index 00000000..5c6f8b0b --- /dev/null +++ b/mysql-test/suite/binlog/r/backup.result @@ -0,0 +1,21 @@ +# +# Test BACKUP STAGES BLOCK_COMMIT with binary logging on +# +SET BINLOG_FORMAT=MIXED; +RESET MASTER; +create table t1 (a int) engine=aria; +insert into t1 values (1); +BACKUP STAGE START; +BACKUP STAGE BLOCK_COMMIT; +SELECT @@gtid_binlog_pos; +@@gtid_binlog_pos +0-1-2 +BACKUP STAGE END; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int) engine=aria +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values (1) +master-bin.000001 # Query # # COMMIT +drop table t1; diff --git a/mysql-test/suite/binlog/r/binlog_admin_cmd_kill.result b/mysql-test/suite/binlog/r/binlog_admin_cmd_kill.result new file mode 100644 index 00000000..d9bfead8 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_admin_cmd_kill.result @@ -0,0 +1,40 @@ +# +# Kill OPTIMIZE command prior to table modification +# +RESET MASTER; +CREATE TABLE t1 (f INT) ENGINE=INNODB; +CREATE TABLE t2 (f INT) ENGINE=INNODB; +connect con1,127.0.0.1,root,,test,$MASTER_MYPORT,; +connection con1; +SET debug_sync='admin_command_kill_before_modify SIGNAL ready_to_be_killed WAIT_FOR master_cont'; +OPTIMIZE TABLE t1,t2; +connection default; +SET debug_sync='now WAIT_FOR ready_to_be_killed'; +KILL THD_ID; +SET debug_sync = 'reset'; +disconnect con1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (f INT) ENGINE=INNODB +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (f INT) ENGINE=INNODB +DROP TABLE t1,t2; +RESET MASTER; +# +# Kill OPTIMIZE command after table modification +# +CREATE TABLE t1 (f INT) ENGINE=INNODB; +CREATE TABLE t2 (f INT) ENGINE=INNODB; +connect con1,127.0.0.1,root,,test,$MASTER_MYPORT,; +connection con1; +SET debug_sync='admin_command_kill_after_modify SIGNAL ready_to_be_killed WAIT_FOR master_cont'; +OPTIMIZE TABLE t1,t2; +connection default; +SET debug_sync='now WAIT_FOR ready_to_be_killed'; +KILL THD_ID; +SET debug_sync = 'reset'; +disconnect con1; +DROP TABLE t1,t2; +FLUSH LOGS; +FOUND 1 /OPTIMIZE TABLE t1,t2/ in mysqlbinlog.out diff --git a/mysql-test/suite/binlog/r/binlog_base64_flag.result b/mysql-test/suite/binlog/r/binlog_base64_flag.result new file mode 100644 index 00000000..a7516499 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_base64_flag.result @@ -0,0 +1,135 @@ +call mtr.add_suppression("BINLOG_BASE64_EVENT: According to the master's version"); +call mtr.add_suppression("BINLOG_BASE64_EVENT: Column 1 of table 'test.char128_utf8' cannot be converted"); +DROP TABLE IF EXISTS t1; +==== Test BUG#32407 ==== +select * from t1; +a +1 +1 +==== Test BINLOG statement w/o FD event ==== +BINLOG ' +SVtYRxMBAAAAKQAAADQBAAAAABAAAAAAAAAABHRlc3QAAnQxAAEDAAE= +SVtYRxcBAAAAIgAAAFYBAAAQABAAAAAAAAEAAf/+AgAAAA== +'; +ERROR HY000: The BINLOG statement of type Table_map was not preceded by a format description BINLOG statement +select * from t1; +a +1 +1 +==== Test BINLOG statement with FD event ==== +BINLOG ' +ODdYRw8BAAAAZgAAAGoAAAABAAQANS4xLjIzLXJjLWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAA4N1hHEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC +'; +BINLOG ' +TFtYRxMBAAAAKQAAAH8BAAAAABAAAAAAAAAABHRlc3QAAnQxAAEDAAE= +TFtYRxcBAAAAIgAAAKEBAAAQABAAAAAAAAEAAf/+AwAAAA== +'; +select * from t1; +a +1 +1 +3 +DELETE FROM t1 WHERE a=3; +BINLOG ' +ODdYRw8BAAAAZgAAAGoAAAABAAQANS4xLjIzLXJjLWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAA4N1hHEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC +'; +SET @binlog_fragment_0=' +TFtYRxMBAAAAKQAAAH8BAAAAABAAAAAAAAAABHRlc3QAAnQxAAEDAAE= +TFtYRxcBAAAAIgAAAKEBAAAQABAAAAAAAAEAAf/+AwAAAA== +'; +SET @binlog_fragment_1=''; +BINLOG @binlog_fragment_0, @binlog_fragment_1; +select * from t1; +a +1 +1 +3 +SELECT @binlog_fragment_0, @binlog_fragment_1 as 'NULL','NULL'; +@binlog_fragment_0 NULL NULL +NULL NULL NULL +==== Test --base64-output=never on a binlog with row events ==== +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +<#> +ROLLBACK/*!*/; +<#> +use `test`/*!*/; +SET TIMESTAMP=1196959712/*!*/; +<#>SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +create table t1 (a int) engine= myisam +/*!*/; +<#> +<#> +<#> +<#> +<#> +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +==== Test non-matching FD event and Row event ==== +BINLOG ' +4CdYRw8BAAAAYgAAAGYAAAAAAAQANS4xLjE1LW5kYi02LjEuMjQtZGVidWctbG9nAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAADgJ1hHEzgNAAgAEgAEBAQEEgAATwAEGggICAg= +'; +BINLOG ' +Dl1YRxMBAAAAKQAAADQBAAAAABAAAAAAAAAABHRlc3QAAnQxAAEDAAE= +Dl1YRxcBAAAAIgAAAFYBAAAQABAAAAAAAAEAAf/+BQAAAA== +'; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use +select * from t1; +a +1 +1 +3 +CREATE TABLE char128_utf8 ( +i1 INT NOT NULL, +c CHAR(128) CHARACTER SET utf8 NOT NULL, +i2 INT NOT NULL); +CREATE TABLE char63_utf8 ( +i1 INT NOT NULL, +c CHAR(63) CHARACTER SET utf8 NOT NULL, +i2 INT NOT NULL); +BINLOG ' +MuNkSA8BAAAAZgAAAGoAAAAAAAQANS4xLjI1LXJjLWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAy42RIEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC +'; +BINLOG ' +3u9kSBMBAAAANgAAAJYBAAAAABAAAAAAAAAABHRlc3QAC2NoYXI2M191dGY4AAMD/gMC/r0A +3u9kSBcBAAAAKgAAAMABAAAQABAAAAAAAAEAA//4AQAAAAMxMjMBAAAA +'; +SELECT * FROM char63_utf8; +i1 c i2 +1 123 1 +BINLOG ' +iONkSBMBAAAANwAAAJkBAAAAABAAAAAAAAAABHRlc3QADGNoYXIxMjhfdXRmOAADA/4DAv6AAA== +iONkSBcBAAAAKwAAAMQBAAAQABAAAAAAAAEAA//4AQAAAAMAMTIzAQAAAA== +'; +ERROR HY000: master may suffer from http://bugs.mysql.com/bug.php?id=37426 so slave stops; check error log on slave for more info +drop table t1, char63_utf8, char128_utf8; +call mtr.add_suppression("Slave SQL.*master suffers from this bug: http:..bugs.mysql.com.bug.php.id=37426.* error.* 1105"); +call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 1 size mismatch.* error.* 1535"); +call mtr.add_suppression("Slave SQL.*Column 1 of table .test.char128_utf8. cannot be converted.* error.* 1677"); +# +# Bug #54393: crash and/or valgrind errors in +# mysql_client_binlog_statement +# +BINLOG ''; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use +BINLOG '123'; +ERROR HY000: Decoding of base64 string failed +BINLOG '-2079193929'; +ERROR HY000: Decoding of base64 string failed +BINLOG 'xç↓%~∙Dâ•’Æ’â•¡'; +ERROR HY000: Decoding of base64 string failed diff --git a/mysql-test/suite/binlog/r/binlog_bug23533.result b/mysql-test/suite/binlog/r/binlog_bug23533.result new file mode 100644 index 00000000..aa374279 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_bug23533.result @@ -0,0 +1,19 @@ +SET AUTOCOMMIT=0; +CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b TEXT, PRIMARY KEY(a)) ENGINE=InnoDB; +SELECT COUNT(*) FROM t1; +COUNT(*) +1000 +SET GLOBAL binlog_cache_size=4096; +SET GLOBAL max_binlog_cache_size=4096; +disconnect default; +connect default,localhost,root,,test; +START TRANSACTION; +CREATE TABLE t2 SELECT * FROM t1; +ERROR HY000: Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage +COMMIT; +SHOW TABLES LIKE 't%'; +Tables_in_test (t%) +t1 +DROP TABLE t1; +disconnect default; +connect default,localhost,root,,test; diff --git a/mysql-test/suite/binlog/r/binlog_bug36391.result b/mysql-test/suite/binlog/r/binlog_bug36391.result new file mode 100644 index 00000000..551bfb99 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_bug36391.result @@ -0,0 +1,10 @@ +CREATE TABLE t1(id INT); +SHOW TABLES; +Tables_in_test +t1 +FLUSH LOGS; +DROP TABLE t1; +SHOW TABLES; +Tables_in_test +t1 +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_checkpoint.result b/mysql-test/suite/binlog/r/binlog_checkpoint.result new file mode 100644 index 00000000..9e987913 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_checkpoint.result @@ -0,0 +1,150 @@ +SET @old_max_binlog_size= @@global.max_binlog_size; +SET GLOBAL max_binlog_size= 4096; +SET @old_innodb_flush_log_at_trx_commit= @@global.innodb_flush_log_at_trx_commit; +SET GLOBAL innodb_flush_log_at_trx_commit= 1; +RESET MASTER; +CREATE TABLE t1 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Innodb; +CREATE TABLE t2 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Myisam; +*** Test that RESET MASTER waits for pending commit checkpoints to complete. +connect con1,localhost,root,,; +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con1_ready WAIT_FOR con1_go"; +INSERT INTO t1 VALUES (1, REPEAT("x", 4100)); +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con1_ready"; +INSERT INTO t2 VALUES (1, REPEAT("x", 4100)); +INSERT INTO t2 VALUES (2, REPEAT("x", 4100)); +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +master-bin.000003 # +master-bin.000004 # +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000004 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000004 # Gtid_list # # [#-#-#] +master-bin.000004 # Binlog_checkpoint # # master-bin.000001 +SET DEBUG_SYNC= "execute_command_after_close_tables SIGNAL reset_master_done"; +RESET MASTER; +connect con2,localhost,root,,; +This will timeout, as RESET MASTER is blocked +SET DEBUG_SYNC= "now WAIT_FOR reset_master_done TIMEOUT 1"; +Warnings: +Warning 1639 debug sync point wait timed out +SET DEBUG_SYNC= "now SIGNAL con1_go"; +connection con1; +connection default; +show binary logs; +Log_name File_size +master-bin.000001 # +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000001 # Gtid_list # # [] +master-bin.000001 # Binlog_checkpoint # # master-bin.000001 +*** Test that binlog N is active, and commit checkpoint for (N-1) is +*** done while there is still a pending commit checkpoint for (N-2). +connection con1; +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con1_ready WAIT_FOR con1_continue"; +INSERT INTO t1 VALUES (20, REPEAT("x", 4100)); +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con1_ready"; +connection con2; +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con2_ready WAIT_FOR con2_continue"; +INSERT INTO t1 VALUES (21, REPEAT("x", 4100)); +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con2_ready"; +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +master-bin.000003 # +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000001 # Gtid_list # # [] +master-bin.000001 # Binlog_checkpoint # # master-bin.000001 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (20, REPEAT("x", 4100)) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Rotate # # master-bin.000002;pos=POS +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000002 # Gtid_list # # [#-#-#] +master-bin.000002 # Binlog_checkpoint # # master-bin.000001 +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Annotate_rows # # INSERT INTO t1 VALUES (21, REPEAT("x", 4100)) +master-bin.000002 # Table_map # # table_id: # (test.t1) +master-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000002 # Xid # # COMMIT /* XID */ +master-bin.000002 # Rotate # # master-bin.000003;pos=POS +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000003 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000003 # Gtid_list # # [#-#-#] +master-bin.000003 # Binlog_checkpoint # # master-bin.000001 +SET DEBUG_SYNC= "RESET"; +SET @old_dbug= @@global.DEBUG_DBUG; +SET GLOBAL debug_dbug="+d,binlog_background_checkpoint_processed"; +SET DEBUG_SYNC= "now SIGNAL con2_continue"; +connection con2; +connection default; +con1 is still pending, no new binlog checkpoint should have been logged. +SET DEBUG_SYNC= "now WAIT_FOR binlog_background_checkpoint_processed"; +SET GLOBAL debug_dbug= @old_dbug; +SET DEBUG_SYNC= "RESET"; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000003 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000003 # Gtid_list # # [#-#-#] +master-bin.000003 # Binlog_checkpoint # # master-bin.000001 +SET DEBUG_SYNC= "now SIGNAL con1_continue"; +connection con1; +connection default; +No commit checkpoints are pending, a new binlog checkpoint should have been logged. +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000003 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000003 # Gtid_list # # [#-#-#] +master-bin.000003 # Binlog_checkpoint # # master-bin.000001 +master-bin.000003 # Binlog_checkpoint # # master-bin.000003 +*** MDEV-4322: Broken XID counting during binlog rotation *** +connection default; +SET @old_dbug= @@global.DEBUG_DBUG; +SET GLOBAL debug_dbug="+d,inject_binlog_background_thread_before_mark_xid_done"; +FLUSH LOGS; +INSERT INTO t1 VALUES (30, REPEAT("x", 4100)); +SET DEBUG_SYNC= "now WAIT_FOR injected_binlog_background_thread"; +SET GLOBAL debug_dbug= @old_dbug; +INSERT INTO t1 VALUES (31, REPEAT("x", 4100)); +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +master-bin.000003 # +master-bin.000004 # +master-bin.000005 # +master-bin.000006 # +SET debug_sync = 'reset'; +*** MDEV-7402: 'reset master' hangs, waits for signalled COND_xid_list *** +connect con3,localhost,root,,; +SET debug_sync="reset_logs_after_set_reset_master_pending SIGNAL reset_master_ready WAIT_FOR reset_master_cont"; +RESET MASTER; +connection default; +SET @old_dbug= @@global.DEBUG_DBUG; +SET GLOBAL debug_dbug="+d,inject_binlog_background_thread_before_mark_xid_done"; +SET debug_sync="now WAIT_FOR reset_master_ready"; +RESET MASTER; +SET debug_sync="now WAIT_FOR injected_binlog_background_thread"; +SET GLOBAL debug_dbug=@old_dbug; +SET debug_sync="now SIGNAL reset_master_cont"; +connection con3; +connection default; +SET debug_sync = 'reset'; +DROP TABLE t1, t2; +SET GLOBAL max_binlog_size= @old_max_binlog_size; +SET GLOBAL innodb_flush_log_at_trx_commit= @old_innodb_flush_log_at_trx_commit; +SET debug_sync = 'reset'; diff --git a/mysql-test/suite/binlog/r/binlog_checkpoint_flush_logs.result b/mysql-test/suite/binlog/r/binlog_checkpoint_flush_logs.result new file mode 100644 index 00000000..e861f363 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_checkpoint_flush_logs.result @@ -0,0 +1,52 @@ +SET GLOBAL innodb_flush_log_at_trx_commit= 1; +RESET MASTER; +CREATE TABLE t1 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Innodb; +*** Test that FLUSH LOGS waits if a transaction ordered commit is in progress. +connect con1,localhost,root,,; +SET DEBUG_SYNC= "commit_before_get_LOCK_commit_ordered SIGNAL con1_ready WAIT_FOR con1_go"; +INSERT INTO t1 VALUES (1, REPEAT("x", 1)); +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con1_ready"; +SET DEBUG_SYNC= "rotate_after_rotate SIGNAL con_flush_ready WAIT_FOR default_go"; +FLUSH LOGS; +connect con2,localhost,root,,; +Trx_1 is not yet committed: +SELECT count(*) as 'ZERO' from t1; +ZERO +0 +Wait for Trx_2 has rotated binlog: +SET DEBUG_SYNC= "now WAIT_FOR con_flush_ready"; +SET DEBUG_SYNC= "now SIGNAL default_go"; +# restart +connection default; +Must be tree logs in the list: +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +master-bin.000003 # +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000001 # Gtid_list # # [] +master-bin.000001 # Binlog_checkpoint # # master-bin.000001 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Innodb +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1, REPEAT("x", 1)) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Rotate # # master-bin.000002;pos=POS +Only one Binlog checkpoint must exist and point to master-bin.000001 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000002 # Gtid_list # # [#-#-#] +master-bin.000002 # Binlog_checkpoint # # master-bin.000001 +SELECT count(*) as 'ONE' from t1; +ONE +1 +connection default; +DROP TABLE t1; +SET debug_sync = 'reset'; diff --git a/mysql-test/suite/binlog/r/binlog_checksum.result b/mysql-test/suite/binlog/r/binlog_checksum.result new file mode 100644 index 00000000..447bbf77 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_checksum.result @@ -0,0 +1,24 @@ +set @save_binlog_checksum = @@global.binlog_checksum; +set @save_master_verify_checksum = @@global.master_verify_checksum; +set @@global.binlog_checksum = CRC32; +set @@global.master_verify_checksum = 1; +reset master; +must be master-bin.000001 +show binary logs; +Log_name File_size +master-bin.000001 # +create table t1 (a int); +flush logs; +drop table t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int) +master-bin.000001 # Rotate # # master-bin.000002;pos=POS +show tables; +Tables_in_test +t1 +drop table t1; +set @@global.binlog_checksum = @save_binlog_checksum; +set @@global.master_verify_checksum = @save_master_verify_checksum; +End of the tests diff --git a/mysql-test/suite/binlog/r/binlog_commit_wait.result b/mysql-test/suite/binlog/r/binlog_commit_wait.result new file mode 100644 index 00000000..89e905b0 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_commit_wait.result @@ -0,0 +1,189 @@ +ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB; +CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; +SET @old_count= @@GLOBAL.binlog_commit_wait_count; +SET GLOBAL binlog_commit_wait_count= 3; +SET @old_usec= @@GLOBAL.binlog_commit_wait_usec; +SET GLOBAL binlog_commit_wait_usec= 20000000; +connect con1,localhost,root,,test; +connect con2,localhost,root,,test; +connect con3,localhost,root,,test; +connection default; +SELECT variable_value INTO @group_commits FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commits'; +SELECT variable_value INTO @group_commit_trigger_count FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_count'; +SELECT variable_value INTO @group_commit_trigger_timeout FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_timeout'; +SELECT variable_value INTO @group_commit_trigger_lock_wait FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_lock_wait'; +connection default; +SET @a= current_timestamp(); +connection con1; +BEGIN; +INSERT INTO t1 VALUES (1,0); +COMMIT; +connection con2; +INSERT INTO t1 VALUES (1,1); +connection con1; +connection default; +SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a); +SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")); +IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")) +Ok +SELECT variable_value - @group_commits FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commits'; +variable_value - @group_commits +1 +SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_count'; +variable_value - @group_commit_trigger_count +0 +SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_timeout'; +variable_value - @group_commit_trigger_timeout +0 +SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_lock_wait'; +variable_value - @group_commit_trigger_lock_wait +1 +connection con2; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +connection default; +SET @a= current_timestamp(); +connection con1; +INSERT INTO t1 VALUES (2,0); +connection con2; +INSERT INTO t1 VALUES (3,0); +connection con3; +INSERT INTO t1 VALUES (4,0); +connection con1; +connection con2; +connection default; +SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a); +SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")); +IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")) +Ok +SELECT variable_value - @group_commits FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commits'; +variable_value - @group_commits +2 +SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_count'; +variable_value - @group_commit_trigger_count +1 +SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_timeout'; +variable_value - @group_commit_trigger_timeout +0 +SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_lock_wait'; +variable_value - @group_commit_trigger_lock_wait +1 +connection default; +SET @a= current_timestamp(); +connection con1; +INSERT INTO t1 VALUES (6,0); +connection con2; +BEGIN; +UPDATE t1 SET b=b+1 WHERE a=1; +connection con3; +UPDATE t1 SET b=b+10 WHERE a=1; +connection con2; +SELECT SLEEP(0.25); +SLEEP(0.25) +0 +UPDATE t1 SET b=b+1 WHERE a=3; +COMMIT; +connection con1; +connection default; +SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a); +SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")); +IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")) +Ok +SELECT variable_value - @group_commits FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commits'; +variable_value - @group_commits +3 +SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_count'; +variable_value - @group_commit_trigger_count +1 +SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_timeout'; +variable_value - @group_commit_trigger_timeout +0 +SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_lock_wait'; +variable_value - @group_commit_trigger_lock_wait +2 +connection default; +SET @a= current_timestamp(); +connection con1; +INSERT INTO t1 VALUES (7,0); +connection con2; +INSERT INTO t1 VALUES (8,0); +connection con3; +connection default; +SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a); +SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")); +IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")) +Ok +SELECT variable_value - @group_commits FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commits'; +variable_value - @group_commits +4 +SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_count'; +variable_value - @group_commit_trigger_count +2 +SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_timeout'; +variable_value - @group_commit_trigger_timeout +0 +SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_lock_wait'; +variable_value - @group_commit_trigger_lock_wait +2 +connection default; +SET @a= current_timestamp(); +SET GLOBAL binlog_commit_wait_usec= 5*1000*1000; +connection con1; +INSERT INTO t1 VALUES (9,0); +connection default; +SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a); +SELECT IF(@b < 4, CONCAT("Error: too little time elapsed: ", @b, " seconds < 4"), +IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"))); +IF(@b < 4, CONCAT("Error: too little time elapsed: ", @b, " seconds < 4"), +IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"))) +Ok +SELECT variable_value - @group_commits FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commits'; +variable_value - @group_commits +5 +SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_count'; +variable_value - @group_commit_trigger_count +2 +SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_timeout'; +variable_value - @group_commit_trigger_timeout +1 +SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status +WHERE variable_name = 'binlog_group_commit_trigger_lock_wait'; +variable_value - @group_commit_trigger_lock_wait +2 +connection default; +SELECT * FROM t1 ORDER BY a; +a b +1 11 +2 0 +3 1 +4 0 +6 0 +7 0 +8 0 +9 0 +connection default; +DROP TABLE t1; +SET GLOBAL binlog_commit_wait_count= @old_count; +SET GLOBAL binlog_commit_wait_usec= @old_usec; diff --git a/mysql-test/suite/binlog/r/binlog_database.result b/mysql-test/suite/binlog/r/binlog_database.result new file mode 100644 index 00000000..2661b344 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_database.result @@ -0,0 +1,295 @@ +set binlog_format=statement; +reset master; +create database testing_1; +use testing_1; +create table t1 (a int); +create function sf1 (a int) returns int return a+1; +create trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a); +create procedure sp1 (a int) insert into t1 values(a); +drop database testing_1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # create database testing_1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `testing_1`; create table t1 (a int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` FUNCTION `sf1`(a int) RETURNS int(11) +return a+1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`(a int) +insert into t1 values(a) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # drop database testing_1 +use test; +reset master; +create temporary table tt1 (a int); +create table t1 (a int); +insert into t1 values (1); +drop database if exists mysqltest1; +insert into t1 values (1); +drop table tt1, t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create temporary table tt1 (a int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values (1) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # drop database if exists mysqltest1 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values (1) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TEMPORARY TABLE `tt1` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +FLUSH STATUS; + +# 'DROP TABLE IF EXISTS <deleted tables>' is binlogged +# when 'DROP DATABASE' fails and at least one table is deleted +# from the database. +RESET MASTER; +CREATE DATABASE testing_1; +USE testing_1; +CREATE TABLE t1(c1 INT); +CREATE TABLE t2(c1 INT); +# Create a file in the database directory +SELECT 'hello' INTO OUTFILE 'fake_file.FAKE_FILE'; + +# 'DROP DATABASE' will fail if there is any other file in the the +# database directory +DROP DATABASE testing_1; +ERROR HY000: Error dropping database (can't rmdir './testing_1', errno: 39 "Directory not empty") + +# Remove the fake file. +# Now we can drop the database. +DROP DATABASE testing_1; +# +# Bug#11765416 58381: FAILED DROP DATABASE CAN BREAK STATEMENT +# BASED REPLICATION +# +USE test; +DROP DATABASE IF EXISTS db1; +DROP TABLE IF EXISTS t3; +CREATE DATABASE db1; +CREATE TABLE db1.t1 (a INT); +CREATE TABLE db1.t2 (b INT, KEY(b)) engine=innodb; +CREATE TABLE t3 (a INT, KEY (a), FOREIGN KEY(a) REFERENCES db1.t2(b)) +engine=innodb; +RESET MASTER; +DROP DATABASE db1; +ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails +SHOW TABLES FROM db1; +Tables_in_db1 +t2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `db1`; DROP TABLE IF EXISTS `t1` +DROP TABLE t3; +DROP DATABASE db1; +set binlog_format=mixed; +reset master; +create database testing_1; +use testing_1; +create table t1 (a int); +create function sf1 (a int) returns int return a+1; +create trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a); +create procedure sp1 (a int) insert into t1 values(a); +drop database testing_1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # create database testing_1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `testing_1`; create table t1 (a int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` FUNCTION `sf1`(a int) RETURNS int(11) +return a+1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`(a int) +insert into t1 values(a) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # drop database testing_1 +use test; +reset master; +create temporary table tt1 (a int); +create table t1 (a int); +insert into t1 values (1); +drop database if exists mysqltest1; +insert into t1 values (1); +drop table tt1, t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create temporary table tt1 (a int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values (1) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # drop database if exists mysqltest1 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values (1) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TEMPORARY TABLE `tt1` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +FLUSH STATUS; + +# 'DROP TABLE IF EXISTS <deleted tables>' is binlogged +# when 'DROP DATABASE' fails and at least one table is deleted +# from the database. +RESET MASTER; +CREATE DATABASE testing_1; +USE testing_1; +CREATE TABLE t1(c1 INT); +CREATE TABLE t2(c1 INT); +# Create a file in the database directory +SELECT 'hello' INTO OUTFILE 'fake_file.FAKE_FILE'; + +# 'DROP DATABASE' will fail if there is any other file in the the +# database directory +DROP DATABASE testing_1; +ERROR HY000: Error dropping database (can't rmdir './testing_1', errno: 39 "Directory not empty") + +# Remove the fake file. +# Now we can drop the database. +DROP DATABASE testing_1; +# +# Bug#11765416 58381: FAILED DROP DATABASE CAN BREAK STATEMENT +# BASED REPLICATION +# +USE test; +DROP DATABASE IF EXISTS db1; +DROP TABLE IF EXISTS t3; +CREATE DATABASE db1; +CREATE TABLE db1.t1 (a INT); +CREATE TABLE db1.t2 (b INT, KEY(b)) engine=innodb; +CREATE TABLE t3 (a INT, KEY (a), FOREIGN KEY(a) REFERENCES db1.t2(b)) +engine=innodb; +RESET MASTER; +DROP DATABASE db1; +ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails +SHOW TABLES FROM db1; +Tables_in_db1 +t2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `db1`; DROP TABLE IF EXISTS `t1` +DROP TABLE t3; +DROP DATABASE db1; +set binlog_format=row; +reset master; +create database testing_1; +use testing_1; +create table t1 (a int); +create function sf1 (a int) returns int return a+1; +create trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a); +create procedure sp1 (a int) insert into t1 values(a); +drop database testing_1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # create database testing_1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `testing_1`; create table t1 (a int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` FUNCTION `sf1`(a int) RETURNS int(11) +return a+1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`(a int) +insert into t1 values(a) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # drop database testing_1 +use test; +reset master; +create temporary table tt1 (a int); +create table t1 (a int); +insert into t1 values (1); +drop database if exists mysqltest1; +insert into t1 values (1); +drop table tt1, t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # drop database if exists mysqltest1 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +FLUSH STATUS; + +# 'DROP TABLE IF EXISTS <deleted tables>' is binlogged +# when 'DROP DATABASE' fails and at least one table is deleted +# from the database. +RESET MASTER; +CREATE DATABASE testing_1; +USE testing_1; +CREATE TABLE t1(c1 INT); +CREATE TABLE t2(c1 INT); +# Create a file in the database directory +SELECT 'hello' INTO OUTFILE 'fake_file.FAKE_FILE'; + +# 'DROP DATABASE' will fail if there is any other file in the the +# database directory +DROP DATABASE testing_1; +ERROR HY000: Error dropping database (can't rmdir './testing_1', errno: 39 "Directory not empty") + +# Remove the fake file. +# Now we can drop the database. +DROP DATABASE testing_1; +# +# Bug#11765416 58381: FAILED DROP DATABASE CAN BREAK STATEMENT +# BASED REPLICATION +# +USE test; +DROP DATABASE IF EXISTS db1; +DROP TABLE IF EXISTS t3; +CREATE DATABASE db1; +CREATE TABLE db1.t1 (a INT); +CREATE TABLE db1.t2 (b INT, KEY(b)) engine=innodb; +CREATE TABLE t3 (a INT, KEY (a), FOREIGN KEY(a) REFERENCES db1.t2(b)) +engine=innodb; +RESET MASTER; +DROP DATABASE db1; +ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails +SHOW TABLES FROM db1; +Tables_in_db1 +t2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `db1`; DROP TABLE IF EXISTS `t1` +DROP TABLE t3; +DROP DATABASE db1; +show databases; +Database +information_schema +mtr +mysql +performance_schema +test diff --git a/mysql-test/suite/binlog/r/binlog_delete_and_flush_index.result b/mysql-test/suite/binlog/r/binlog_delete_and_flush_index.result new file mode 100644 index 00000000..2472a3d2 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_delete_and_flush_index.result @@ -0,0 +1,52 @@ +RESET MASTER; +CREATE TABLE t1 (a int); +### assertion: index file contains regular entries +SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index'); +SELECT @index; +@index +master-bin.000001 + +### assertion: show original binlogs +show binary logs; +Log_name File_size +master-bin.000001 # +### assertion: binlog contents from regular entries +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a int) +FLUSH LOGS; +### assertion: index file contains renamed binlog and the new one +SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index'); +SELECT @index; +@index +master-bin-b34582.000001 +master-bin.000002 + +### assertion: original binlog content still exists, despite we +### renamed and changed the index file +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin-b34582.000001 # Gtid # # GTID #-#-# +master-bin-b34582.000001 # Query # # use `test`; CREATE TABLE t1 (a int) +### assertion: user changed binlog index shows correct entries +show binary logs; +Log_name File_size +master-bin-b34582.000001 # +master-bin.000002 # +DROP TABLE t1; +### assertion: purging binlogs up to binlog created after instrumenting index file should work +PURGE BINARY LOGS TO 'master-bin.000002'; +### assertion: show binary logs should only contain latest binlog +show binary logs; +Log_name File_size +master-bin.000002 # +### assertion: assert that binlog files were indeed purged (using file_exists calls) +### assertion: assert that not purged binlog file exists +### assertion: show index file contents and these should match show binary logs issued above +SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index'); +SELECT @index; +@index +master-bin.000002 + +RESET MASTER; diff --git a/mysql-test/suite/binlog/r/binlog_dmls_on_tmp_tables_readonly.result b/mysql-test/suite/binlog/r/binlog_dmls_on_tmp_tables_readonly.result new file mode 100644 index 00000000..b366bde4 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_dmls_on_tmp_tables_readonly.result @@ -0,0 +1,59 @@ +DROP TABLE IF EXISTS t1 ; +# READ_ONLY does nothing to SUPER users +# so we use a non-SUPER one: +CREATE USER test@localhost; +GRANT CREATE, SELECT, DROP ON *.* TO test@localhost; +connect con1,localhost,test,,test; +connection default; +SET GLOBAL READ_ONLY=1; +connection con1; +CREATE TEMPORARY TABLE t1 (a INT) ENGINE=INNODB; +# Test INSERTS with autocommit being off and on. +BEGIN; +INSERT INTO t1 VALUES (10); +COMMIT; +INSERT INTO t1 VALUES (20); +# Test UPDATES with autocommit being off and on. +BEGIN; +UPDATE t1 SET a=30 WHERE a=10; +COMMIT; +UPDATE t1 SET a=40 WHERE a=20; +connection default; +SET GLOBAL READ_ONLY=0; +# Test scenario where global read_only is enabled in the middle of transaction. +# Test INSERT operations on temporary tables, INSERTs should be successful even +# when global read_only is enabled. +connection con1; +BEGIN; +INSERT INTO t1 VALUES(50); +connection default; +SET GLOBAL READ_ONLY=1; +connection con1; +SELECT @@GLOBAL.READ_ONLY; +@@GLOBAL.READ_ONLY +1 +COMMIT; +connection default; +SET GLOBAL READ_ONLY=0; +# Test UPDATE operations on temporary tables, UPDATEs should be successful even +# when global read_only is enabled. +connection con1; +BEGIN; +UPDATE t1 SET a=60 WHERE a=50; +connection default; +SET GLOBAL READ_ONLY=1; +connection con1; +SELECT @@GLOBAL.READ_ONLY; +@@GLOBAL.READ_ONLY +1 +COMMIT; +SELECT * FROM t1; +a +30 +40 +60 +# Clean up +connection default; +SET GLOBAL READ_ONLY=0; +disconnect con1; +DROP USER test@localhost; diff --git a/mysql-test/suite/binlog/r/binlog_drop_if_exists.result b/mysql-test/suite/binlog/r/binlog_drop_if_exists.result new file mode 100644 index 00000000..c918de9a --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_drop_if_exists.result @@ -0,0 +1,210 @@ +RESET MASTER; +DROP PROCEDURE IF EXISTS db_bug_13684.p; +DROP FUNCTION IF EXISTS db_bug_13684.f; +DROP TRIGGER IF EXISTS db_bug_13684.tr; +DROP VIEW IF EXISTS db_bug_13684.v; +DROP EVENT IF EXISTS db_bug_13684.e; +DROP TABLE IF EXISTS db_bug_13684.t; +DROP DATABASE IF EXISTS db_bug_13684; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP PROCEDURE IF EXISTS db_bug_13684.p +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP FUNCTION IF EXISTS db_bug_13684.f +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TRIGGER IF EXISTS db_bug_13684.tr +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP VIEW IF EXISTS db_bug_13684.v +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP EVENT IF EXISTS db_bug_13684.e +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `db_bug_13684`.`t` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP DATABASE IF EXISTS db_bug_13684 +CREATE DATABASE db_bug_13684; +CREATE TABLE db_bug_13684.t (a int); +CREATE EVENT db_bug_13684.e +ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR +DO +UPDATE db_bug_13684.t SET a = a + 1; +CREATE VIEW db_bug_13684.v +AS SELECT * FROM db_bug_13684.t; +CREATE TRIGGER db_bug_13684.tr BEFORE INSERT ON db_bug_13684.t +FOR EACH ROW BEGIN +END; +CREATE PROCEDURE db_bug_13684.p (OUT p1 INT) +BEGIN +END; +CREATE FUNCTION db_bug_13684.f (s CHAR(20)) +RETURNS CHAR(50) DETERMINISTIC +RETURN s; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP PROCEDURE IF EXISTS db_bug_13684.p +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP FUNCTION IF EXISTS db_bug_13684.f +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TRIGGER IF EXISTS db_bug_13684.tr +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP VIEW IF EXISTS db_bug_13684.v +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP EVENT IF EXISTS db_bug_13684.e +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `db_bug_13684`.`t` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP DATABASE IF EXISTS db_bug_13684 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE db_bug_13684 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE db_bug_13684.t (a int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` EVENT db_bug_13684.e +ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR +DO +UPDATE db_bug_13684.t SET a = a + 1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `db_bug_13684`.`v` AS SELECT * FROM db_bug_13684.t +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` TRIGGER db_bug_13684.tr BEFORE INSERT ON db_bug_13684.t +FOR EACH ROW BEGIN +END +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `db_bug_13684`.`p`(OUT p1 INT) +BEGIN +END +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` FUNCTION `db_bug_13684`.`f`(s CHAR(20)) RETURNS char(50) CHARSET latin1 + DETERMINISTIC +RETURN s +DROP PROCEDURE IF EXISTS db_bug_13684.p; +DROP FUNCTION IF EXISTS db_bug_13684.f; +DROP TRIGGER IF EXISTS db_bug_13684.tr; +DROP VIEW IF EXISTS db_bug_13684.v; +DROP EVENT IF EXISTS db_bug_13684.e; +DROP TABLE IF EXISTS db_bug_13684.t; +DROP DATABASE IF EXISTS db_bug_13684; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP PROCEDURE IF EXISTS db_bug_13684.p +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP FUNCTION IF EXISTS db_bug_13684.f +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TRIGGER IF EXISTS db_bug_13684.tr +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP VIEW IF EXISTS db_bug_13684.v +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP EVENT IF EXISTS db_bug_13684.e +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `db_bug_13684`.`t` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP DATABASE IF EXISTS db_bug_13684 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE db_bug_13684 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE db_bug_13684.t (a int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` EVENT db_bug_13684.e +ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR +DO +UPDATE db_bug_13684.t SET a = a + 1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `db_bug_13684`.`v` AS SELECT * FROM db_bug_13684.t +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` TRIGGER db_bug_13684.tr BEFORE INSERT ON db_bug_13684.t +FOR EACH ROW BEGIN +END +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `db_bug_13684`.`p`(OUT p1 INT) +BEGIN +END +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` FUNCTION `db_bug_13684`.`f`(s CHAR(20)) RETURNS char(50) CHARSET latin1 + DETERMINISTIC +RETURN s +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP PROCEDURE IF EXISTS db_bug_13684.p +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP FUNCTION IF EXISTS db_bug_13684.f +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TRIGGER IF EXISTS db_bug_13684.tr +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP VIEW IF EXISTS db_bug_13684.v +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP EVENT IF EXISTS db_bug_13684.e +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `db_bug_13684`.`t` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP DATABASE IF EXISTS db_bug_13684 +CREATE TABLE t1(id int); +DROP TABLE /* comment */ t1; +CREATE TABLE t1(id int); +DROP TABLE IF EXISTS /* comment */ t1; +CREATE TABLE t1(id int); +DROP TABLE /**/ t1; +CREATE TABLE t1(id int); +DROP TABLE IF EXISTS /* */ t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1(id int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE /* comment */ `t1` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1(id int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS /* comment */ `t1` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1(id int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE /**/ `t1` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1(id int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS /* */ `t1` /* generated by server */ +# +# MDEV-22820 Bogus "Unknown table" warnings produced upon attempt to +# drop parent table referenced by FK +# +create table t1 (a int, key(a)) engine=InnoDB; +create table t2 (b int, foreign key(b) references t1(a)) engine=InnoDB; +drop table if exists t1; +ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails +drop table if exists t1,t0; +ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails +show warnings; +Level Code Message +Error 1451 Cannot delete or update a parent row: a foreign key constraint fails +Note 1051 Unknown table 'test.t0' +drop table t2,t1; +create table t3 (a int) engine=aria; +drop table t10,t20; +ERROR 42S02: Unknown table 'test.t10,test.t20' +drop table t10,t20,t3; +ERROR 42S02: Unknown table 'test.t10,test.t20' +drop table if exists t10,t20; +Warnings: +Note 1051 Unknown table 'test.t10,test.t20' +drop table if exists t10,t20,t3; +Warnings: +Note 1051 Unknown table 'test.t10,test.t20,test.t3' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int, key(a)) engine=InnoDB +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t2 (b int, foreign key(b) references t1(a)) engine=InnoDB +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t0` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t2`,`t1` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t3 (a int) engine=aria +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t10`,`t20`,`t3` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t10`,`t20` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t10`,`t20`,`t3` /* generated by server */ diff --git a/mysql-test/suite/binlog/r/binlog_empty_xa_prepared.result b/mysql-test/suite/binlog/r/binlog_empty_xa_prepared.result new file mode 100644 index 00000000..9f998e04 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_empty_xa_prepared.result @@ -0,0 +1,110 @@ +CREATE TEMPORARY SEQUENCE seq_1; +XA START '3'; +CREATE TEMPORARY TABLE tmp_1(c INT); +XA END '3'; +XA PREPARE '3'; +DROP TEMPORARY TABLE tmp_1; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state +ALTER TABLE tmp_1 DROP COLUMN c; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state +DROP TEMPORARY SEQUENCE seq_1; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state +ALTER SEQUENCE seq_1 INCREMENT BY 1; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state +CREATE TEMPORARY TABLE tmp_2(c INT); +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state +CREATE TEMPORARY SEQUENCE seq_2; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the PREPARED state +XA ROLLBACK '3'; +# Proof of correct logging incl empty XA-PREPARE +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TEMPORARY SEQUENCE seq_1 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE tmp_1(c INT) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # XA START X'33',X'',1 GTID #-#-# +master-bin.000001 # Query # # XA END X'33',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'33',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA ROLLBACK X'33',X'',1 +RESET MASTER; +CREATE TABLE t1 (a INT) ENGINE=MyISAM; +CREATE TABLE t2 (id INT PRIMARY KEY) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1),(2); +INSERT INTO t2 VALUES (1),(2); +XA START '1'; +REPLACE INTO t1 SELECT * FROM t1; +REPLACE INTO t2 SELECT * FROM t2; +XA END '1'; +XA PREPARE '1'; +XA ROLLBACK '1'; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +DROP TABLE t1, t2; +# Proof of correct logging incl empty XA-PREPARE +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) ENGINE=MyISAM +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (id INT PRIMARY KEY) ENGINE=InnoDB +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1),(2) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t2 VALUES (1),(2) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # REPLACE INTO t1 SELECT * FROM t1 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # XA START X'31',X'',1 GTID #-#-# +master-bin.000001 # Query # # XA END X'31',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'31',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA ROLLBACK X'31',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1`,`t2` /* generated by server */ +RESET MASTER; +CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1); +CREATE SEQUENCE s ENGINE=InnoDB; +XA START '2'; +SELECT NEXT VALUE FOR s; +NEXT VALUE FOR s +1 +REPLACE INTO t1 SELECT * FROM t1; +XA END '2'; +XA PREPARE '2'; +XA ROLLBACK '2'; +DROP SEQUENCE s; +DROP TABLE t1; +# Proof of correct logging incl empty XA-PREPARE +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE SEQUENCE s ENGINE=InnoDB +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # SELECT NEXT VALUE FOR s +master-bin.000001 # Table_map # # table_id: # (test.s) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # XA START X'32',X'',1 GTID #-#-# +master-bin.000001 # Query # # XA END X'32',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'32',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA ROLLBACK X'32',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP SEQUENCE `s` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ diff --git a/mysql-test/suite/binlog/r/binlog_flush_binlogs_delete_domain.result b/mysql-test/suite/binlog/r/binlog_flush_binlogs_delete_domain.result new file mode 100644 index 00000000..fdcfb4bf --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_flush_binlogs_delete_domain.result @@ -0,0 +1,90 @@ +RESET MASTER; +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (); +and the command execution is effective thence rotates binlog as usual +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +Non-existed domain is warned, the command completes without rotation +but with a warning +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (99); +Warnings: +Warning 1076 The gtid domain being deleted ('99') is not in the current binlog state +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +SET @@SESSION.gtid_domain_id=1; +SET @@SESSION.server_id=1; +CREATE TABLE t (a int); +SELECT @@GLOBAL.gtid_binlog_state, @@GLOBAL.gtid_binlog_pos; +@@GLOBAL.gtid_binlog_state @@GLOBAL.gtid_binlog_pos +1-1-1 1-1-1 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Rotate # # master-bin.000002;pos=POS +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1); +ERROR HY000: Could not delete gtid domain. Reason: binlog files may contain gtids from the domain ('1') being deleted. Make sure to first purge those files. +FLUSH BINARY LOGS; +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1); +ERROR HY000: Could not delete gtid domain. Reason: binlog files may contain gtids from the domain ('1') being deleted. Make sure to first purge those files. +PURGE BINARY LOGS TO 'master-bin.000003';; +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1); +Gtid_list of the current binlog does not contain '1': +show binlog events in 'master-bin.000004' limit 1,1; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000004 # Gtid_list 1 # [] +But the previous log's Gtid_list may have it which explains a warning from the following command +show binlog events in 'master-bin.000003' limit 1,1; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000003 # Gtid_list 1 # [1-1-1] +Already deleted domain in Gtid_list of the earliest log is benign +but may cause a warning +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1); +Warnings: +Warning 1076 The current gtid binlog state is incompatible with a former one missing gtids from the '1-1' domain-server pair which is referred to in the gtid list describing an earlier state. Ignore if the domain ('1') was already explicitly deleted. +Warning 1076 The gtid domain being deleted ('1') is not in the current binlog state +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 0); +ERROR HY000: Could not delete gtid domain. Reason: binlog files may contain gtids from the domain ('1') being deleted. Make sure to first purge those files. +FLUSH BINARY LOGS; +PURGE BINARY LOGS TO 'master-bin.000005'; +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 0); +Warnings: +Warning 1076 The gtid domain being deleted ('0') is not in the current binlog state +Gtid_list of the current binlog does not contain 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 0: +show binlog events in 'master-bin.000006' limit 1,1; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000006 # Gtid_list 1 # [] +SET @@SESSION.gtid_domain_id=1;; +SET @@SESSION.server_id=1; +SET @@SESSION.gtid_seq_no=1; +INSERT INTO t SET a=1; +SET @@SESSION.server_id=2; +SET @@SESSION.gtid_seq_no=2; +INSERT INTO t SET a=2; +SET @@SESSION.gtid_domain_id=11; +SET @@SESSION.server_id=11; +SET @@SESSION.gtid_seq_no=11; +INSERT INTO t SET a=11; +SET @gtid_binlog_state_saved=@@GLOBAL.gtid_binlog_state; +FLUSH BINARY LOGS; +SET @@SESSION.gtid_domain_id=11; +SET @@SESSION.server_id=11; +SET @@SESSION.gtid_seq_no=1; +INSERT INTO t SET a=1; +SELECT @gtid_binlog_state_saved "as original state", @@GLOBAL.gtid_binlog_state as "out of order for 11 domain state"; +as original state out of order for 11 domain state +1-1-1,1-2-2,11-11-11 1-1-1,1-2-2,11-11-1 +PURGE BINARY LOGS TO 'master-bin.000007'; +the following command succeeds with warnings +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1); +Warnings: +Warning 1076 The current gtid binlog state is incompatible with a former one having a gtid '11-11-1' which is less than the '11-11-11' of the gtid list describing an earlier state. The state may have been affected by manually injecting a lower sequence number gtid or via replication. +RESET MASTER; +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (4294967296); +ERROR HY000: The value of gtid domain being deleted ('4294967296') exceeds its maximum size of 32 bit unsigned integer +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (4294967295); +Warnings: +Warning 1076 The gtid domain being deleted ('4294967295') is not in the current binlog state +DROP TABLE t; +RESET MASTER; diff --git a/mysql-test/suite/binlog/r/binlog_format_switch_in_tmp_table.result b/mysql-test/suite/binlog/r/binlog_format_switch_in_tmp_table.result new file mode 100644 index 00000000..f886ccb1 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_format_switch_in_tmp_table.result @@ -0,0 +1,78 @@ +SELECT @@SESSION.binlog_format; +@@SESSION.binlog_format +MIXED +CREATE TABLE t1 (a VARCHAR(100)); +CREATE TEMPORARY TABLE t2 (a VARCHAR(100)); +# Test allow switching @@SESSION.binlog_format from MIXED to STATEMENT +# when there are open temp tables and we are logging in statement based format. +SET SESSION binlog_format = STATEMENT; +SELECT @@SESSION.binlog_format; +@@SESSION.binlog_format +STATEMENT +# Test allow switching @@SESSION.binlog_format from STATEMENT to +# STATEMENT when there are open temp tables. +SET SESSION binlog_format = STATEMENT; +SELECT @@SESSION.binlog_format; +@@SESSION.binlog_format +STATEMENT +INSERT INTO t1 VALUES ('statement based'); +SELECT @@SESSION.binlog_format; +@@SESSION.binlog_format +STATEMENT +# Test allow switching @@SESSION.binlog_format from STATEMENT to +# MIXED when there are open temp tables. +SET SESSION binlog_format = MIXED; +SELECT @@SESSION.binlog_format; +@@SESSION.binlog_format +MIXED +# Test allow switching @@SESSION.binlog_format from MIXED to MIXED +# when there are open temp tables. +SET SESSION binlog_format = MIXED; +SELECT @@SESSION.binlog_format; +@@SESSION.binlog_format +MIXED +INSERT INTO t2 VALUES (UUID()); +SELECT @@SESSION.binlog_format; +@@SESSION.binlog_format +MIXED +# Test forbit switching @@SESSION.binlog_format from MIXED to STATEMENT +# when there are open temp tables and we are logging in row based format. +SET SESSION binlog_format = STATEMENT; +ERROR HY000: Cannot switch out of the row-based binary log format when the session has open temporary tables +SELECT @@SESSION.binlog_format; +@@SESSION.binlog_format +MIXED +SET SESSION binlog_format = ROW; +SELECT @@SESSION.binlog_format; +@@SESSION.binlog_format +ROW +INSERT INTO t1 VALUES ('row based'); +# Test allow switching @@SESSION.binlog_format from ROW to MIXED +# when there are open temp tables. +SET SESSION binlog_format = MIXED; +SELECT @@SESSION.binlog_format; +@@SESSION.binlog_format +MIXED +INSERT INTO t1 VALUES ('row based'); +# Test allow switching @@SESSION.binlog_format from MIXED to ROW +# when there are open temp tables. +SET SESSION binlog_format = ROW; +SELECT @@SESSION.binlog_format; +@@SESSION.binlog_format +ROW +# Test allow switching @@SESSION.binlog_format from ROW to ROW +# when there are open temp tables. +SET SESSION binlog_format = ROW; +SELECT @@SESSION.binlog_format; +@@SESSION.binlog_format +ROW +INSERT INTO t1 VALUES ('row based'); +# Test forbit switching @@SESSION.binlog_format from ROW to STATEMENT +# when there are open temp tables. +SET SESSION binlog_format = STATEMENT; +ERROR HY000: Cannot switch out of the row-based binary log format when the session has open temporary tables +SELECT @@SESSION.binlog_format; +@@SESSION.binlog_format +ROW +DROP TEMPORARY TABLE t2; +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_grant.result b/mysql-test/suite/binlog/r/binlog_grant.result new file mode 100644 index 00000000..af4c0241 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_grant.result @@ -0,0 +1,152 @@ +connection default; +reset master; +set @saved_binlog_format = @@global.binlog_format; +create user mysqltest_1@localhost; +show grants for mysqltest_1@localhost; +Grants for mysqltest_1@localhost +GRANT USAGE ON *.* TO `mysqltest_1`@`localhost` +connect plain,localhost,mysqltest_1,,test; +connect root,localhost,root,,test; +**** Variable SQL_LOG_BIN **** +connection root; +[root] +set session sql_log_bin = 1; +connection plain; +[plain] +set session sql_log_bin = 1; +ERROR 42000: Access denied; you need (at least one of) the SUPER, BINLOG ADMIN privilege(s) for this operation +**** Variable BINLOG_FORMAT **** +connection root; +[root] +set global binlog_format = row; +set session binlog_format = row; +connection plain; +[plain] +set global binlog_format = row; +ERROR 42000: Access denied; you need (at least one of) the SUPER, BINLOG ADMIN privilege(s) for this operation +set session binlog_format = row; +ERROR 42000: Access denied; you need (at least one of) the SUPER, BINLOG ADMIN privilege(s) for this operation +**** Clean up **** +disconnect plain; +disconnect root; +connection default; +set global binlog_format = @saved_binlog_format; +drop user mysqltest_1@localhost; +CREATE USER 'mysqltest_1'@'localhost'; +GRANT REPLICATION CLIENT ON *.* TO 'mysqltest_1'@'localhost'; +connect rpl,localhost,mysqltest_1,,; +connection rpl; +SHOW MASTER LOGS; +SHOW BINARY LOGS; +SHOW BINLOG STATUS; +disconnect rpl; +connection default; +DROP USER 'mysqltest_1'@'localhost'; +# +# Start of 10.5 test +# +# +# MDEV-21743 Split up SUPER privilege to smaller privileges +# +# Test that REPLICATION CLIENT is an alias for BINLOG MONITOR +CREATE USER user1@localhost; +GRANT REPLICATION CLIENT ON *.* TO user1@localhost; +SHOW GRANTS FOR user1@localhost; +Grants for user1@localhost +GRANT BINLOG MONITOR ON *.* TO `user1`@`localhost` +REVOKE REPLICATION CLIENT ON *.* FROM user1@localhost; +SHOW GRANTS FOR user1@localhost; +Grants for user1@localhost +GRANT USAGE ON *.* TO `user1`@`localhost` +DROP USER user1@localhost; +# Test if SHOW BINARY LOGS and SHOW BINGLOG STATUS are not allowed without REPLICATION CLIENT or SUPER +CREATE USER user1@localhost; +GRANT ALL PRIVILEGES ON *.* TO user1@localhost; +REVOKE REPLICATION CLIENT, SUPER ON *.* FROM user1@localhost; +connect user1,localhost,user1,,; +connection user1; +SHOW MASTER LOGS; +ERROR 42000: Access denied; you need (at least one of) the SUPER, BINLOG MONITOR privilege(s) for this operation +SHOW BINARY LOGS; +ERROR 42000: Access denied; you need (at least one of) the SUPER, BINLOG MONITOR privilege(s) for this operation +SHOW BINLOG STATUS; +ERROR 42000: Access denied; you need (at least one of) the SUPER, BINLOG MONITOR privilege(s) for this operation +disconnect user1; +connection default; +DROP USER user1@localhost; +# Test if PURGE BINARY LOGS is not allowed without BINLOG ADMIN or SUPER +CREATE USER user1@localhost; +GRANT ALL PRIVILEGES ON *.* TO user1@localhost; +REVOKE BINLOG ADMIN, SUPER ON *.* FROM user1@localhost; +connect user1,localhost,user1,,; +connection user1; +PURGE BINARY LOGS BEFORE '2001-01-01 00:00:00'; +ERROR 42000: Access denied; you need (at least one of) the SUPER, BINLOG ADMIN privilege(s) for this operation +disconnect user1; +connection default; +DROP USER user1@localhost; +# Test if PURGE BINLOG is allowed with BINLOG ADMIN +CREATE USER user1@localhost; +GRANT BINLOG ADMIN ON *.* TO user1@localhost; +connect user1,localhost,user1,,; +connection user1; +PURGE BINARY LOGS BEFORE '2001-01-01 00:00:00'; +disconnect user1; +connection default; +DROP USER user1@localhost; +# Test if PURGE BINLOG is allowed with SUPER +CREATE USER user1@localhost; +GRANT SUPER ON *.* TO user1@localhost; +connect user1,localhost,user1,,; +connection user1; +PURGE BINARY LOGS BEFORE '2001-01-01 00:00:00'; +disconnect user1; +connection default; +DROP USER user1@localhost; +# Test if SHOW BINLOG EVENTS is not allowed without BINLOG MONITOR +CREATE USER user1@localhost; +GRANT ALL PRIVILEGES ON *.* TO user1@localhost; +REVOKE BINLOG MONITOR ON *.* FROM user1@localhost; +connect user1,localhost,user1,,; +connection user1; +SHOW BINLOG EVENTS; +ERROR 42000: Access denied; you need (at least one of) the BINLOG MONITOR privilege(s) for this operation +disconnect user1; +connection default; +DROP USER user1@localhost; +# Test if SHOW BINLOG EVENTS is allowed with BINLOG MONITOR +CREATE USER user1@localhost; +GRANT BINLOG MONITOR ON *.* TO user1@localhost; +connect user1,localhost,user1,,; +connection user1; +SHOW BINLOG EVENTS; +disconnect user1; +connection default; +DROP USER user1@localhost; +# +# MDEV-21975 Add BINLOG REPLAY privilege and bind new privileges to +# gtid_seq_no, preudo_thread_id, server_id, gtid_domain_id +# +# Test combinations of BINLOG REPLAY guarded features which typically +# arise in mysqlbinlog output replay on server. +# +CREATE USER user1@localhost; +GRANT BINLOG REPLAY ON *.* TO user1@localhost; +RESET MASTER; +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2),(3); +connect user1,localhost,user1,,; +RENAME TABLE t1 to t2; +connection default; +REVOKE BINLOG REPLAY ON *.* FROM user1@localhost; +call mtr.add_suppression("Access denied; you need (at least one of) the SUPER, BINLOG REPLAY privilege(s) for this operation"); +# Privilege errors are expected now: +connection user1; +connection default; +include/diff_tables.inc [t1,t2] +# Test cleanup +DROP TABLE t2,t1; +DROP USER user1@localhost; +# +# End of 10.5 test +# diff --git a/mysql-test/suite/binlog/r/binlog_gtid_delete_domain_debug.result b/mysql-test/suite/binlog/r/binlog_gtid_delete_domain_debug.result new file mode 100644 index 00000000..b4627cac --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_gtid_delete_domain_debug.result @@ -0,0 +1,6 @@ +SET @@SESSION.debug_dbug='+d,inject_binlog_delete_domain_init_error'; +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (99); +ERROR HY000: Could not delete gtid domain. Reason: injected error. +SHOW WARNINGS; +Level Code Message +Error 1076 Could not delete gtid domain. Reason: injected error. diff --git a/mysql-test/suite/binlog/r/binlog_implicit_commit.result b/mysql-test/suite/binlog/r/binlog_implicit_commit.result new file mode 100644 index 00000000..d0e2066b --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_implicit_commit.result @@ -0,0 +1,340 @@ +CREATE TABLE t1 (id INT) ENGINE = InnoDB; +SET BINLOG_FORMAT = STATEMENT; +RESET MASTER; +SET AUTOCOMMIT = 0; +INSERT INTO t1 VALUES (1); +include/show_binlog_events.inc +SET AUTOCOMMIT = 1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1) +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 0; +BEGIN; +INSERT INTO t1 VALUES (2); +include/show_binlog_events.inc +SET AUTOCOMMIT = 1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (2) +master-bin.000001 # Xid # # COMMIT /* XID */ +INSERT INTO t1 VALUES (3); +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (2) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (3) +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (2) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (3) +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 1; +INSERT INTO t1 VALUES (1); +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1) +master-bin.000001 # Xid # # COMMIT /* XID */ +SET AUTOCOMMIT = 1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1) +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 1; +BEGIN; +INSERT INTO t1 VALUES (2); +include/show_binlog_events.inc +SET AUTOCOMMIT = 1; +include/show_binlog_events.inc +INSERT INTO t1 VALUES (3); +include/show_binlog_events.inc +COMMIT; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (2) +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (3) +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 0; +INSERT INTO t1 VALUES (1); +include/show_binlog_events.inc +SET AUTOCOMMIT = 0; +include/show_binlog_events.inc +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 0; +BEGIN; +INSERT INTO t1 VALUES (2); +include/show_binlog_events.inc +SET AUTOCOMMIT = 0; +include/show_binlog_events.inc +INSERT INTO t1 VALUES (3); +include/show_binlog_events.inc +COMMIT; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (2) +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (3) +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 1; +INSERT INTO t1 VALUES (1); +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1) +master-bin.000001 # Xid # # COMMIT /* XID */ +SET AUTOCOMMIT = 0; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1) +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 1; +BEGIN; +INSERT INTO t1 VALUES (2); +include/show_binlog_events.inc +SET AUTOCOMMIT = 0; +include/show_binlog_events.inc +INSERT INTO t1 VALUES (3); +include/show_binlog_events.inc +COMMIT; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (2) +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (3) +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +SET BINLOG_FORMAT = ROW; +RESET MASTER; +SET AUTOCOMMIT = 0; +INSERT INTO t1 VALUES (1); +include/show_binlog_events.inc +SET AUTOCOMMIT = 1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 0; +BEGIN; +INSERT INTO t1 VALUES (2); +include/show_binlog_events.inc +SET AUTOCOMMIT = 1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +INSERT INTO t1 VALUES (3); +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 1; +INSERT INTO t1 VALUES (1); +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +SET AUTOCOMMIT = 1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 1; +BEGIN; +INSERT INTO t1 VALUES (2); +include/show_binlog_events.inc +SET AUTOCOMMIT = 1; +include/show_binlog_events.inc +INSERT INTO t1 VALUES (3); +include/show_binlog_events.inc +COMMIT; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 0; +INSERT INTO t1 VALUES (1); +include/show_binlog_events.inc +SET AUTOCOMMIT = 0; +include/show_binlog_events.inc +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 0; +BEGIN; +INSERT INTO t1 VALUES (2); +include/show_binlog_events.inc +SET AUTOCOMMIT = 0; +include/show_binlog_events.inc +INSERT INTO t1 VALUES (3); +include/show_binlog_events.inc +COMMIT; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 1; +INSERT INTO t1 VALUES (1); +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +SET AUTOCOMMIT = 0; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 1; +BEGIN; +INSERT INTO t1 VALUES (2); +include/show_binlog_events.inc +SET AUTOCOMMIT = 0; +include/show_binlog_events.inc +INSERT INTO t1 VALUES (3); +include/show_binlog_events.inc +COMMIT; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (3) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +RESET MASTER; +SET AUTOCOMMIT = 0; +INSERT INTO t1 VALUES (1); +include/show_binlog_events.inc +LOCK TABLES t1 WRITE; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +INSERT INTO t1 VALUES (2); +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +UNLOCK TABLES; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +COMMIT; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_incident.result b/mysql-test/suite/binlog/r/binlog_incident.result new file mode 100644 index 00000000..7a555743 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_incident.result @@ -0,0 +1,13 @@ +RESET MASTER; +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2),(3); +SELECT * FROM t1; +a +1 +2 +3 +REPLACE INTO t1 VALUES (4); +DROP TABLE t1; +FLUSH LOGS; +Contain RELOAD DATABASE +1 diff --git a/mysql-test/suite/binlog/r/binlog_index.result b/mysql-test/suite/binlog/r/binlog_index.result new file mode 100644 index 00000000..f643c5a9 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_index.result @@ -0,0 +1,190 @@ +call mtr.add_suppression('Attempting backtrace'); +call mtr.add_suppression('MYSQL_BIN_LOG::purge_logs failed to process registered files that would be purged.'); +call mtr.add_suppression('MYSQL_BIN_LOG::open failed to sync the index file'); +call mtr.add_suppression('Turning logging off for the whole duration of the MySQL server process.'); +call mtr.add_suppression('Could not use .*'); +call mtr.add_suppression('MYSQL_BIN_LOG::purge_logs failed to clean registers before purging logs.'); +flush tables; +SET @saved_dbug = @@SESSION.debug_dbug; +RESET MASTER; +flush logs; +flush logs; +flush logs; +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +master-bin.000003 # +master-bin.000004 # +flush tables; +purge binary logs TO 'master-bin.000004'; +Warnings: +Warning 1612 Being purged log master-bin.000001 was not found +*** must show a list starting from the 'TO' argument of PURGE *** +show binary logs; +Log_name File_size +master-bin.000004 # +reset master; +flush logs; +flush logs; +flush logs; +*** must be a warning master-bin.000001 was not found *** +Warnings: +Warning 1612 Being purged log master-bin.000001 was not found +*** must show one record, of the active binlog, left in the index file after PURGE *** +show binary logs; +Log_name File_size +master-bin.000004 # +reset master; +flush logs; +flush logs; +flush logs; +purge binary logs TO 'master-bin.000002'; +ERROR HY000: Fatal error during log purge +show warnings; +Level Code Message +Warning 1377 a problem with deleting master-bin.000001; consider examining correspondence of your binlog index file to the actual binlog files +Error 1377 Fatal error during log purge +reset master; +# crash_purge_before_update_index +flush logs; +SET SESSION debug_dbug="+d,crash_purge_before_update_index"; +purge binary logs TO 'master-bin.000002'; +ERROR HY000: Lost connection to MySQL server during query +SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index'); +SELECT @index; +@index +master-bin.000001 +master-bin.000002 +master-bin.000003 + +# crash_purge_non_critical_after_update_index +flush logs; +SET SESSION debug_dbug="+d,crash_purge_non_critical_after_update_index"; +purge binary logs TO 'master-bin.000004'; +ERROR HY000: Lost connection to MySQL server during query +SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index'); +SELECT @index; +@index +master-bin.000004 +master-bin.000005 + +# crash_purge_critical_after_update_index +flush logs; +SET SESSION debug_dbug="+d,crash_purge_critical_after_update_index"; +purge binary logs TO 'master-bin.000006'; +ERROR HY000: Lost connection to MySQL server during query +SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index'); +SELECT @index; +@index +master-bin.000006 +master-bin.000007 + +# crash_create_non_critical_before_update_index +SET SESSION debug_dbug="+d,crash_create_non_critical_before_update_index"; +flush logs; +ERROR HY000: Lost connection to MySQL server during query +SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index'); +SELECT @index; +@index +master-bin.000006 +master-bin.000007 +master-bin.000008 + +# crash_create_critical_before_update_index +SET SESSION debug_dbug="+d,crash_create_critical_before_update_index"; +flush logs; +ERROR HY000: Lost connection to MySQL server during query +SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index'); +SELECT @index; +@index +master-bin.000006 +master-bin.000007 +master-bin.000008 +master-bin.000009 + +# crash_create_after_update_index +SET SESSION debug_dbug="+d,crash_create_after_update_index"; +flush logs; +ERROR HY000: Lost connection to MySQL server during query +SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index'); +SELECT @index; +@index +master-bin.000006 +master-bin.000007 +master-bin.000008 +master-bin.000009 +master-bin.000010 +master-bin.000011 + +# +# This should put the server in unsafe state and stop +# accepting any command. If we inject a fault at this +# point and continue the execution the server crashes. +# +SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index'); +SELECT @index; +@index +master-bin.000006 +master-bin.000007 +master-bin.000008 +master-bin.000009 +master-bin.000010 +master-bin.000011 + +# fault_injection_registering_index +SET SESSION debug_dbug="+d,fault_injection_registering_index"; +flush logs; +ERROR HY000: Can't open file: 'master-bin.000012' (errno: 1 "Operation not permitted") +SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index'); +SELECT @index; +@index +master-bin.000006 +master-bin.000007 +master-bin.000008 +master-bin.000009 +master-bin.000010 +master-bin.000011 + +# restart +SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index'); +SELECT @index; +@index +master-bin.000006 +master-bin.000007 +master-bin.000008 +master-bin.000009 +master-bin.000010 +master-bin.000011 +master-bin.000012 + +# fault_injection_updating_index +SET SESSION debug_dbug="+d,fault_injection_updating_index"; +flush logs; +ERROR HY000: Can't open file: 'master-bin.000013' (errno: 1 "Operation not permitted") +SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index'); +SELECT @index; +@index +master-bin.000006 +master-bin.000007 +master-bin.000008 +master-bin.000009 +master-bin.000010 +master-bin.000011 +master-bin.000012 + +# restart +SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index'); +SELECT @index; +@index +master-bin.000006 +master-bin.000007 +master-bin.000008 +master-bin.000009 +master-bin.000010 +master-bin.000011 +master-bin.000012 +master-bin.000013 + +SET @@SESSION.debug_dbug = @saved_dbug; +End of tests diff --git a/mysql-test/suite/binlog/r/binlog_innodb.result b/mysql-test/suite/binlog/r/binlog_innodb.result new file mode 100644 index 00000000..233dda00 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_innodb.result @@ -0,0 +1,189 @@ +SET BINLOG_FORMAT=MIXED; +RESET MASTER; +CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=INNODB; +INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6); +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; +BEGIN; +UPDATE t1 SET b = 2*a WHERE a > 1; +COMMIT; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +BEGIN; +UPDATE t1 SET b = a * a WHERE a > 3; +COMMIT; +SET BINLOG_FORMAT=STATEMENT; +SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +BEGIN; +UPDATE t1 SET b = 1*a WHERE a > 1; +ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED. +COMMIT; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +BEGIN; +UPDATE t1 SET b = 2*a WHERE a > 2; +ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED. +COMMIT; +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; +BEGIN; +UPDATE t1 SET b = 3*a WHERE a > 3; +COMMIT; +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +BEGIN; +UPDATE t1 SET b = 4*a WHERE a > 4; +COMMIT; +SET BINLOG_FORMAT=MIXED; +SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +BEGIN; +UPDATE t1 SET b = 1*a WHERE a > 1; +COMMIT; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +BEGIN; +UPDATE t1 SET b = 2*a WHERE a > 2; +COMMIT; +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; +BEGIN; +UPDATE t1 SET b = 3*a WHERE a > 3; +COMMIT; +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +BEGIN; +UPDATE t1 SET b = 4*a WHERE a > 4; +COMMIT; +SET BINLOG_FORMAT=ROW; +SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +BEGIN; +UPDATE t1 SET b = 1*a WHERE a > 1; +COMMIT; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +BEGIN; +UPDATE t1 SET b = 2*a WHERE a > 2; +COMMIT; +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; +BEGIN; +UPDATE t1 SET b = 3*a WHERE a > 3; +COMMIT; +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +BEGIN; +UPDATE t1 SET b = 4*a WHERE a > 4; +COMMIT; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=INNODB +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; UPDATE t1 SET b = 2*a WHERE a > 1 +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = a * a WHERE a > 3 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; UPDATE t1 SET b = 3*a WHERE a > 3 +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; UPDATE t1 SET b = 4*a WHERE a > 4 +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = 1*a WHERE a > 1 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = 2*a WHERE a > 2 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; UPDATE t1 SET b = 3*a WHERE a > 3 +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; UPDATE t1 SET b = 4*a WHERE a > 4 +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = 1*a WHERE a > 1 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = 2*a WHERE a > 2 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = 3*a WHERE a > 3 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE t1 SET b = 4*a WHERE a > 4 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +DROP TABLE t1; +flush status; +show status like "binlog_cache_use"; +Variable_name Value +Binlog_cache_use 0 +show status like "binlog_cache_disk_use"; +Variable_name Value +Binlog_cache_disk_use 0 +create table t1 (a int) engine=innodb; +show status like "binlog_cache_use"; +Variable_name Value +Binlog_cache_use 1 +show status like "binlog_cache_disk_use"; +Variable_name Value +Binlog_cache_disk_use 1 +begin; +delete from t1; +commit; +show status like "binlog_cache_use"; +Variable_name Value +Binlog_cache_use 2 +show status like "binlog_cache_disk_use"; +Variable_name Value +Binlog_cache_disk_use 1 +drop table t1; +CREATE TABLE `t1` ( +`a` int(11) NOT NULL auto_increment, +`b` int(11) default NULL, +PRIMARY KEY (`a`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 ; +CREATE TABLE `t2` ( +`a` int(11) NOT NULL auto_increment, +`b` int(11) default NULL, +PRIMARY KEY (`a`) +) ENGINE=INNODB DEFAULT CHARSET=latin1 ; +insert into t1 values (1,1),(2,2); +insert into t2 values (1,1),(4,4); +reset master; +UPDATE t2,t1 SET t2.a=t1.a+2; +ERROR 23000: Duplicate entry '3' for key 'PRIMARY' +select * from t2 /* must be (3,1), (4,4) */; +a b +1 1 +4 4 +# There must no UPDATE in binlog; +include/show_binlog_events.inc +delete from t1; +delete from t2; +insert into t1 values (1,2),(3,4),(4,4); +insert into t2 values (1,2),(3,4),(4,4); +reset master; +UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a; +ERROR 23000: Duplicate entry '4' for key 'PRIMARY' +# There must be no UPDATE query event; +include/show_binlog_events.inc +drop table t1, t2; +*** MDEV-11937: InnoDB flushes redo log too often *** +CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB; +SET @old_flush = @@GLOBAL.innodb_flush_log_at_trx_commit; +SET GLOBAL innodb_flush_log_at_trx_commit=1; +SELECT IF(@num_sync < 100*1.5, "OK", +CONCAT("ERROR: More than 1 fsync per commit (saw ", @num_sync/100, ")")) AS status; +status +OK +DROP TABLE t1; +SET GLOBAL innodb_flush_log_at_trx_commit=@old_flush; +End of tests diff --git a/mysql-test/suite/binlog/r/binlog_innodb_row.result b/mysql-test/suite/binlog/r/binlog_innodb_row.result new file mode 100644 index 00000000..ca92a03f --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_innodb_row.result @@ -0,0 +1,83 @@ +CREATE TABLE t1 (i int unique) ENGINE=innodb; +reset master; +begin; +insert into t1 values (1),(2); +*** the following UPDATE query wont generate any updates for the binlog *** +update t1 set i = 3 where i < 3; +ERROR 23000: Duplicate entry '3' for key 'i' +commit; +*** Results of the test: the binlog must have only Write_rows events not any Update_rows *** +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (1),(2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +delete from t1; +reset master; +begin; +insert into t1 values (1),(2); +*** the following UPDATE query wont generate any updates for the binlog *** +insert into t1 values (3),(4),(1),(2); +ERROR 23000: Duplicate entry '1' for key 'i' +commit; +*** Results of the test: the binlog must have only one Write_rows event not two *** +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (1),(2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +drop table t1; +RESET MASTER; +CREATE TABLE t1 ( c1 int , primary key (c1)) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 LIKE t1; +TRUNCATE TABLE t2; +DROP TABLE t1; +############################################### +### assertion: No event for 'TRUNCATE TABLE t2' +############################################### +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 ( c1 int , primary key (c1)) ENGINE=InnoDB +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1), (2), (3) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +############################################### +RESET MASTER; +CREATE TEMPORARY TABLE t1 (c1 int) Engine=InnoDB; +INSERT INTO t1 VALUES (1), (2), (3); +TRUNCATE t1; +DROP TEMPORARY TABLE t1; +############################################### +### assertion: No event for 'TRUNCATE TABLE t1' +############################################### +include/show_binlog_events.inc +############################################### +# +# Bug#12346411 SQL/LOG.CC:6509: ASSERTION `PREPARED_XIDS > 0' FAILED +# +DROP TABLE IF EXISTS t1, t2; +CREATE TABLE t1(a INT PRIMARY KEY) engine=innodb; +CREATE TABLE t2(a INT) engine=myisam; +INSERT INTO t1 VALUES (1); +START TRANSACTION; +INSERT INTO t2 VALUES (1); +INSERT IGNORE INTO t1 VALUES (1); +Warnings: +Warning 1062 Duplicate entry '1' for key 'PRIMARY' +COMMIT; +INSERT INTO t1 VALUES (2); +START TRANSACTION; +INSERT INTO t2 VALUES (2); +UPDATE IGNORE t1 SET a=1 WHERE a=2; +COMMIT; +DROP TABLE t1, t2; diff --git a/mysql-test/suite/binlog/r/binlog_innodb_stm.result b/mysql-test/suite/binlog/r/binlog_innodb_stm.result new file mode 100644 index 00000000..829ed7d3 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_innodb_stm.result @@ -0,0 +1,17 @@ +create table categories( +cat_id int not null primary key, +cat_name varchar(255) not null, +cat_description text +) engine=innodb; +create table products( +prd_id int not null auto_increment primary key, +prd_name varchar(355) not null, +prd_price decimal, +cat_id int not null, +foreign key fk_cat(cat_id) +references categories(cat_id) +on update cascade +) engine=innodb; +insert into categories values (1, 'drinks', 'drinks'); +update categories set cat_description=2 where cat_id=1; +drop table products, categories; diff --git a/mysql-test/suite/binlog/r/binlog_invalid_read_in_rotate.result b/mysql-test/suite/binlog/r/binlog_invalid_read_in_rotate.result new file mode 100644 index 00000000..442fc951 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_invalid_read_in_rotate.result @@ -0,0 +1,18 @@ +RESET MASTER; +call mtr.add_suppression("Error in Log_event::read_log_event*"); +call mtr.add_suppression("Replication event checksum verification failed while reading from a log file*"); +DROP TABLE /*! IF EXISTS*/ t1; +Warnings: +Note 1051 Unknown table 'test.t1' +CREATE TABLE `t1` ( +`col_int` int, +pk integer auto_increment, +`col_char_12_key` char(12), +`col_int_key` int, +`col_char_12` char(12), +primary key (pk), +key (`col_char_12_key` ), +key (`col_int_key` )) ENGINE=InnoDB; +INSERT /*! IGNORE */ INTO t1 VALUES (183173120, NULL, 'abcd', 1, 'efghijk'), (1, NULL, 'lmno', 2, 'p'); +ALTER TABLE `t1` ENABLE KEYS; +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_ioerr.result b/mysql-test/suite/binlog/r/binlog_ioerr.result new file mode 100644 index 00000000..e4f00a01 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_ioerr.result @@ -0,0 +1,32 @@ +CALL mtr.add_suppression("Error writing file 'master-bin'"); +RESET MASTER; +CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=innodb; +INSERT INTO t1 VALUES(0); +SET @saved_dbug = @@SESSION.debug_dbug; +SET SESSION debug_dbug='+d,fail_binlog_write_1'; +INSERT INTO t1 VALUES(1); +ERROR HY000: Error writing file 'master-bin' (errno: 28 "No space left on device") +INSERT INTO t1 VALUES(2); +ERROR HY000: Error writing file 'master-bin' (errno: 28 "No space left on device") +SET SESSION debug_dbug=@saved_dbug; +INSERT INTO t1 VALUES(3); +SELECT * FROM t1; +a +0 +3 +SHOW BINLOG EVENTS; +Log_name Pos Event_type Server_id End_log_pos Info +BINLOG POS Format_desc 1 ENDPOS Server ver: #, Binlog ver: # +BINLOG POS Gtid_list 1 ENDPOS [] +BINLOG POS Binlog_checkpoint 1 ENDPOS master-bin.000001 +BINLOG POS Gtid 1 ENDPOS GTID 0-1-1 +BINLOG POS Query 1 ENDPOS use `test`; CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=innodb +BINLOG POS Gtid 1 ENDPOS BEGIN GTID 0-1-2 +BINLOG POS Query 1 ENDPOS use `test`; INSERT INTO t1 VALUES(0) +BINLOG POS Xid 1 ENDPOS COMMIT /* XID */ +BINLOG POS Gtid 1 ENDPOS BEGIN GTID 0-1-3 +BINLOG POS Gtid 1 ENDPOS BEGIN GTID 0-1-4 +BINLOG POS Gtid 1 ENDPOS BEGIN GTID 0-1-5 +BINLOG POS Query 1 ENDPOS use `test`; INSERT INTO t1 VALUES(3) +BINLOG POS Xid 1 ENDPOS COMMIT /* XID */ +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_killed.result b/mysql-test/suite/binlog/r/binlog_killed.result new file mode 100644 index 00000000..ae851c38 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_killed.result @@ -0,0 +1,275 @@ +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); +connect con1, localhost, root,,; +connect con2, localhost, root,,; +create table t1 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB; +create table t2 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=MyISAM; +create table t3 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB; +connection con1; +select get_lock("a", 20); +get_lock("a", 20) +1 +connection con2; +reset master; +insert into t2 values (null, null), (null, get_lock("a", 10)); +connection con1; +kill query ID; +connection con2; +select +(@a:=load_file("MYSQLTEST_VARDIR/tmp/kill_query_calling_sp.binlog")) +is not null; +set @result= 2 - 1 - 1; +select @result /* must be zero either way */; +@result +0 +connection con1; +select RELEASE_LOCK("a"); +RELEASE_LOCK("a") +1 +delete from t1; +delete from t2; +insert into t1 values (1,1),(2,2); +connection con1; +begin; +update t1 set b=11 where a=2; +connection con2; +begin; +update t1 set b=b+10; +connection con1; +kill query ID; +rollback; +connection con2; +rollback; +select * from t1 order by a /* must be the same as before (1,1),(2,2) */; +a b +1 1 +2 2 +connection con1; +begin; +delete from t1 where a=2; +connection con2; +begin; +delete from t1 where a=2; +connection con1; +kill query ID; +rollback; +connection con2; +rollback; +select * from t1 order by a /* must be the same as before (1,1),(2,2) */; +a b +1 1 +2 2 +connection con1; +drop table if exists t4; +create table t4 (a int, b int) engine=innodb; +insert into t4 values (3, 3); +begin; +insert into t1 values (3, 3); +connection con2; +begin; +insert into t1 select * from t4 for update; +connection con1; +kill query ID; +rollback; +connection con2; +rollback; +select * from t1 /* must be the same as before (1,1),(2,2) */; +a b +1 1 +2 2 +drop table t4; +create table t4 (a int, b int) ENGINE=MyISAM /* for killing update and delete */; +create function bug27563(n int) +RETURNS int(11) +NOT DETERMINISTIC +begin +if @b > 0 then +select get_lock("a", 20) into @a; +else +set @b= 1; +end if; +return n; +end| +delete from t4; +insert into t4 values (1,1), (1,1); +reset master; +connection con1; +select get_lock("a", 20); +get_lock("a", 20) +1 +connection con2; +set @b= 0; +update t4 set b=b + bug27563(b); +connection con1; +select count(*) FROM INFORMATION_SCHEMA.PROCESSLIST where state='User lock'; +count(*) +1 +kill query ID; +connection con2; +ERROR 70100: Query execution was interrupted +select * from t4 order by b /* must be (1,1), (1,2) */; +a b +1 1 +1 2 +select @b /* must be 1 at the end of a stmt calling bug27563() */; +@b +1 +must have the update query event on the 4th line +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # User var # # @`b`=0 +master-bin.000001 # Query # # use `test`; update t4 set b=b + bug27563(b) +master-bin.000001 # Query # # COMMIT +*** a proof the query is binlogged with an error *** +select +(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog")) +is not null; +(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog")) +is not null +1 +select 0 /* must return 0 to mean the killed update is in */; +0 +0 +connection con1; +select RELEASE_LOCK("a"); +RELEASE_LOCK("a") +1 +delete from t4; +insert into t4 values (1,1), (2,2); +reset master; +connection con1; +select get_lock("a", 20); +get_lock("a", 20) +1 +connection con2; +set @b= 0; +delete from t4 where b=bug27563(1) or b=bug27563(2); +connection con1; +select count(*) FROM INFORMATION_SCHEMA.PROCESSLIST where state='User lock'; +count(*) +1 +kill query ID; +connection con2; +ERROR 70100: Query execution was interrupted +select count(*) from t4 /* must be 1 */; +count(*) +1 +select @b /* must be 1 at the end of a stmt calling bug27563() */; +@b +1 +must have the delete query event on the 4th line +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # User var # # @`b`=0 +master-bin.000001 # Query # # use `test`; delete from t4 where b=bug27563(1) or b=bug27563(2) +master-bin.000001 # Query # # COMMIT +select +(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog")) +is not null; +(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog")) +is not null +1 +select 0 /* must return 0 to mean the killed delete is in */; +0 +0 +connection con1; +select RELEASE_LOCK("a"); +RELEASE_LOCK("a") +1 +drop table t4; +drop function bug27563; +FLUSH LOGS; +connect con3, localhost, root,,; +connection con3; +MI: MyISAM, INNODB +BEGIN; +INSERT INTO t2 VALUES (NULL, 1); +INSERT INTO t1 VALUES (NULL, 2); +connection con1; +KILL ID; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000002 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000002 # Gtid_list # # [#-#-#] +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Intvar # # INSERT_ID=3 +master-bin.000002 # Query # # use `test`; INSERT INTO t2 VALUES (NULL, 1) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Intvar # # INSERT_ID=4 +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (NULL, 2) +master-bin.000002 # Query # # ROLLBACK +disconnect con3; +connect con3, localhost, root,,; +connection con3; +IM: INNODB, MyISAM +BEGIN; +INSERT INTO t1 VALUES (NULL, 3); +INSERT INTO t2 VALUES (NULL, 4); +connection con1; +KILL ID; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Intvar # # INSERT_ID=4 +master-bin.000002 # Query # # use `test`; INSERT INTO t2 VALUES (NULL, 4) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Intvar # # INSERT_ID=5 +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (NULL, 3) +master-bin.000002 # Query # # ROLLBACK +disconnect con3; +connect con3, localhost, root,,; +connection con3; +IMI: INNODB, MyISAM, INNODB +BEGIN; +INSERT INTO t1 VALUES (NULL, 5); +INSERT INTO t2 VALUES (NULL, 6); +INSERT INTO t1 VALUES (NULL, 7); +connection con1; +KILL ID; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Intvar # # INSERT_ID=5 +master-bin.000002 # Query # # use `test`; INSERT INTO t2 VALUES (NULL, 6) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Intvar # # INSERT_ID=6 +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (NULL, 5) +master-bin.000002 # Intvar # # INSERT_ID=7 +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (NULL, 7) +master-bin.000002 # Query # # ROLLBACK +disconnect con3; +connect con3, localhost, root,,; +connection con3; +MI2: MyISAM, INNODB, MyISAM, INNODB +BEGIN; +INSERT INTO t2 VALUES (NULL, 8); +INSERT INTO t1 VALUES (NULL, 9); +INSERT INTO t2 VALUES (NULL, 10); +INSERT INTO t1 VALUES (NULL, 11); +connection con1; +KILL ID; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Intvar # # INSERT_ID=6 +master-bin.000002 # Query # # use `test`; INSERT INTO t2 VALUES (NULL, 8) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Intvar # # INSERT_ID=7 +master-bin.000002 # Query # # use `test`; INSERT INTO t2 VALUES (NULL, 10) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Intvar # # INSERT_ID=8 +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (NULL, 9) +master-bin.000002 # Intvar # # INSERT_ID=9 +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (NULL, 11) +master-bin.000002 # Query # # ROLLBACK +connection default; +disconnect con1; +disconnect con2; +drop table t1,t2,t3; +end of the tests diff --git a/mysql-test/suite/binlog/r/binlog_killed_simulate.result b/mysql-test/suite/binlog/r/binlog_killed_simulate.result new file mode 100644 index 00000000..25b00bf8 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_killed_simulate.result @@ -0,0 +1,24 @@ +create table t1 (a int) engine=MyISAM; +insert into t1 set a=1; +reset master; +update t1 set a=2 /* will be "killed" after work has been done */; +set @a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"); +select @a like '%#%error_code=0%' /* must return 1 as query completed before got killed*/; +@a like '%#%error_code=0%' +1 +create table t2 (a int, b int) ENGINE=MyISAM; +reset master; +load data infile '../../std_data/rpl_loaddata.dat' into table t2 /* will be "killed" in the middle */; +ERROR 70100: Query execution was interrupted +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=# +master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE `t2` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`a`, `b`) ;file_id=# +master-bin.000001 # Query # # COMMIT +set @a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"); +select @a like '%#%error_code=0%' /* must return 0 to mean the killed query is in */; +@a like '%#%error_code=0%' +0 +drop table t1,t2; +end of the tests diff --git a/mysql-test/suite/binlog/r/binlog_max_binlog_stmt_cache_size.result b/mysql-test/suite/binlog/r/binlog_max_binlog_stmt_cache_size.result new file mode 100644 index 00000000..00f01b59 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_max_binlog_stmt_cache_size.result @@ -0,0 +1,22 @@ +# +# MDEV-4774: Strangeness with max_binlog_stmt_cache_size Settings +# +CALL mtr.add_suppression("unsigned value 18446744073709547520 adjusted to 4294963200"); +SELECT @@global.max_binlog_stmt_cache_size; +@@global.max_binlog_stmt_cache_size +MAX_BINLOG_STMT_CACHE_SIZE +SET @cache_size= @@max_binlog_stmt_cache_size; +SET @@global.max_binlog_stmt_cache_size= @cache_size+1; +SELECT @@global.max_binlog_stmt_cache_size; +@@global.max_binlog_stmt_cache_size +MAX_BINLOG_STMT_CACHE_SIZE +SET @@global.max_binlog_stmt_cache_size = @cache_size+4095; +SELECT @@global.max_binlog_stmt_cache_size; +@@global.max_binlog_stmt_cache_size +MAX_BINLOG_STMT_CACHE_SIZE +SET @@global.max_binlog_stmt_cache_size= @cache_size-1; +SELECT @@global.max_binlog_stmt_cache_size = @cache_size-4096; +@@global.max_binlog_stmt_cache_size = @cache_size-4096 +1 +SET @@global.max_binlog_stmt_cache_size= @cache_size; +# End of test diff --git a/mysql-test/suite/binlog/r/binlog_max_extension.result b/mysql-test/suite/binlog/r/binlog_max_extension.result new file mode 100644 index 00000000..f69ffcce --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_max_extension.result @@ -0,0 +1,7 @@ +call mtr.add_suppression("Next log extension: 2147483647. Remaining log filename extensions: 0."); +call mtr.add_suppression("Log filename extension number exhausted:"); +call mtr.add_suppression("Can't generate a unique log-filename"); +RESET MASTER; +FLUSH LOGS; +ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) + diff --git a/mysql-test/suite/binlog/r/binlog_mdev342.result b/mysql-test/suite/binlog/r/binlog_mdev342.result new file mode 100644 index 00000000..7513e855 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mdev342.result @@ -0,0 +1,41 @@ +SET GLOBAL max_binlog_size= 4096; +SET GLOBAL innodb_flush_log_at_trx_commit= 1; +RESET MASTER; +CREATE TABLE t1 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Innodb; +connect con1,localhost,root,,; +SET DEBUG_SYNC= "binlog_open_before_update_index SIGNAL con1_ready WAIT_FOR con1_cont"; +SET SESSION debug_dbug="+d,crash_create_critical_before_update_index"; +INSERT INTO t1 VALUES (1, REPEAT("x", 4100)); +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con1_ready"; +connect con2,localhost,root,,; +SET DEBUG_SYNC= "ha_commit_trans_after_prepare SIGNAL con2_ready"; +INSERT INTO t1 VALUES (2, NULL); +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con2_ready"; +SET DEBUG_SYNC= "now SIGNAL con1_cont"; +connection con1; +Got one of the listed errors +connection default; +SELECT a FROM t1 ORDER BY a; +a +1 +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000001 # Gtid_list # # [] +master-bin.000001 # Binlog_checkpoint # # master-bin.000001 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Innodb +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1, REPEAT("x", 4100)) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Rotate # # master-bin.000002;pos=POS +connection default; +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_mdev717.result b/mysql-test/suite/binlog/r/binlog_mdev717.result new file mode 100644 index 00000000..f9ec3a32 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mdev717.result @@ -0,0 +1,50 @@ +RESET MASTER; +connect con1,localhost,root; +connection default; +CREATE DATABASE mysqltest; +SET DEBUG_SYNC= "after_wait_locked_schema_name SIGNAL locked WAIT_FOR release"; +DROP DATABASE mysqltest;; +connection con1; +SET DEBUG_SYNC= "now WAIT_FOR locked"; +SET DEBUG_SYNC= "before_wait_locked_pname SIGNAL release"; +CREATE FUNCTION mysqltest.f1() RETURNS INT RETURN 1; +ERROR 42000: Unknown database 'mysqltest' +connection default; +CREATE DATABASE mysqltest; +SET DEBUG_SYNC= "after_wait_locked_schema_name SIGNAL locked WAIT_FOR release"; +DROP DATABASE mysqltest;; +connection con1; +SET DEBUG_SYNC= "now WAIT_FOR locked"; +SET DEBUG_SYNC= "before_wait_locked_pname SIGNAL release"; +CREATE EVENT mysqltest.e1 ON SCHEDULE EVERY 15 MINUTE DO BEGIN END; +ERROR 42000: Unknown database 'mysqltest' +connection default; +CREATE DATABASE mysqltest; +CREATE EVENT mysqltest.e1 ON SCHEDULE EVERY 15 MINUTE DO BEGIN END; +Warnings: +Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it. +SET DEBUG_SYNC= "after_wait_locked_schema_name SIGNAL locked WAIT_FOR release"; +DROP DATABASE mysqltest;; +connection con1; +SET DEBUG_SYNC= "now WAIT_FOR locked"; +SET DEBUG_SYNC= "before_wait_locked_pname SIGNAL release"; +ALTER EVENT mysqltest.e1 ON SCHEDULE EVERY 20 MINUTE DO BEGIN END; +ERROR 42000: Unknown database 'mysqltest' +connection default; +SET DEBUG_SYNC= "RESET"; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE mysqltest +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP DATABASE mysqltest +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE mysqltest +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP DATABASE mysqltest +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE mysqltest +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` EVENT mysqltest.e1 ON SCHEDULE EVERY 15 MINUTE DO BEGIN END +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP DATABASE mysqltest diff --git a/mysql-test/suite/binlog/r/binlog_mixed.result b/mysql-test/suite/binlog/r/binlog_mixed.result new file mode 100644 index 00000000..1f30f21a --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mixed.result @@ -0,0 +1,11 @@ +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +INSERT INTO t1 (a) VALUES (1),(2); +CREATE TABLE t2 (b INT) ENGINE=InnoDB; +CREATE TRIGGER tr1 BEFORE UPDATE ON t1 FOR EACH ROW SET @a = 0; +CREATE TRIGGER tr2 BEFORE INSERT ON t2 FOR EACH ROW DELETE FROM t1 LIMIT 1; +SET AUTOCOMMIT= OFF; +LOCK TABLES t2 WRITE; +DELETE FROM t1 LIMIT 1; +SAVEPOINT A; +UNLOCK TABLES; +DROP TABLE t1, t2; diff --git a/mysql-test/suite/binlog/r/binlog_mixed_cache_stat.result b/mysql-test/suite/binlog/r/binlog_mixed_cache_stat.result new file mode 100644 index 00000000..6e2df0c5 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mixed_cache_stat.result @@ -0,0 +1,72 @@ +drop table if exists t1, t2; +create table t1 (a int) engine=innodb; +create table t2 (a int) engine=myisam; +set @save_binlog_stmt_cache_size=@@global.binlog_stmt_cache_size; +set @save_binlog_cache_size=@@global.binlog_cache_size; +set @@global.binlog_stmt_cache_size=32768; +set @@global.binlog_cache_size=32768; +**** Preparing the enviroment to check commit and its effect on status variables. +**** Expected: binlog_cache_use = 0, binlog_cache_disk_use = 0. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +flush status; +**** Transactional changes which are long enough so they will be flushed to disk... +**** Expected: binlog_cache_use = 1, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +**** Transactional changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +commit; +**** Non-Transactional changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 1, binlog_stmt_cache_disk_use = 0. +begin; +insert into t2 values( 1 ); +commit; +**** Mixed changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 3, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 2, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +insert into t2 values( 1 ); +commit; +**** Preparing the enviroment to check abort and its effect on the status variables. +**** Expected: binlog_cache_use = 0, binlog_cache_disk_use = 0. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +flush status; +**** Transactional changes which are long enough so they will be flushed to disk... +**** Expected: binlog_cache_use = 1, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +**** Transactional changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +rollback; +**** Non-Transactional changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 1, binlog_stmt_cache_disk_use = 0. +begin; +insert into t2 values( 1 ); +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +**** Mixed changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 3, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 2, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +insert into t2 values( 1 ); +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +drop table t1, t2; +set @@global.binlog_stmt_cache_size=@save_binlog_stmt_cache_size; +set @@global.binlog_cache_size=@save_binlog_cache_size; diff --git a/mysql-test/suite/binlog/r/binlog_mixed_load_data.result b/mysql-test/suite/binlog/r/binlog_mixed_load_data.result new file mode 100644 index 00000000..5bf1e9ec --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mixed_load_data.result @@ -0,0 +1,11 @@ +RESET MASTER; +CREATE TABLE t1 (word CHAR(20) NOT NULL) ENGINE=MYISAM; +LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog-cp932.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog-cp932.result new file mode 100644 index 00000000..cbf61595 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog-cp932.result @@ -0,0 +1,19 @@ +RESET MASTER; +create table t3 (f text character set utf8); +create table t4 (f text character set cp932); +flush logs; +rename table t3 to t03, t4 to t04; +select HEX(f) from t03; +HEX(f) +E382BD +select HEX(f) from t3; +HEX(f) +E382BD +select HEX(f) from t04; +HEX(f) +835C +select HEX(f) from t4; +HEX(f) +835C +drop table t3, t4, t03, t04; +End of 5.0 tests diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result new file mode 100644 index 00000000..1d6e9424 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result @@ -0,0 +1,1631 @@ +set sql_mode=""; +set global binlog_checksum=NONE; +drop table if exists t1; +set @a=UNIX_TIMESTAMP("1970-01-21 15:32:22"); +set timestamp=@a; +reset master; +create table t1 (a int auto_increment not null primary key, b char(3)); +insert into t1 values(null, "a"); +insert into t1 values(null, "b"); +set timestamp=@a+2; +insert into t1 values(null, "c"); +set timestamp=@a+4; +insert into t1 values(null, "d"); +insert into t1 values(null, "e"); +flush logs; +set timestamp=@a+1; +insert into t1 values(null, "f"); + +--- Local -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +create table t1 (a int auto_increment not null primary key, b char(3)) +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +SET TIMESTAMP=1773144/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- offset -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +SET TIMESTAMP=1773144/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- start-position -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773144/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- stop-position -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +create table t1 (a int auto_increment not null primary key, b char(3)) +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- start and stop positions --- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773144/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "c") +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- start-datetime -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773144/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- stop-datetime -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +create table t1 (a int auto_increment not null primary key, b char(3)) +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- Local with 2 binlogs on command line -- +flush logs; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +create table t1 (a int auto_increment not null primary key, b char(3)) +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +SET TIMESTAMP=1773144/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +DELIMITER /*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=6/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773143/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "f") +/*!*/; +SET TIMESTAMP=1773143/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- offset -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +SET TIMESTAMP=1773144/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +DELIMITER /*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=6/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773143/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "f") +/*!*/; +SET TIMESTAMP=1773143/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- start-position -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773144/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +DELIMITER /*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=6/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773143/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "f") +/*!*/; +SET TIMESTAMP=1773143/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- stop-position -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +create table t1 (a int auto_increment not null primary key, b char(3)) +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +SET TIMESTAMP=1773144/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +DELIMITER /*!*/; +START TRANSACTION +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- start-datetime -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773144/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +DELIMITER /*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=6/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773143/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "f") +/*!*/; +SET TIMESTAMP=1773143/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- stop-datetime -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +create table t1 (a int auto_increment not null primary key, b char(3)) +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- Remote -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +create table t1 (a int auto_increment not null primary key, b char(3)) +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +SET TIMESTAMP=1773144/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- offset -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +SET TIMESTAMP=1773144/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- start-position -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773144/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- stop-position -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +create table t1 (a int auto_increment not null primary key, b char(3)) +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- start and stop positions --- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773144/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "c") +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- start-datetime -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773144/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- stop-datetime -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +create table t1 (a int auto_increment not null primary key, b char(3)) +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- Remote with 2 binlogs on command line -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +create table t1 (a int auto_increment not null primary key, b char(3)) +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +SET TIMESTAMP=1773144/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +DELIMITER /*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=6/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773143/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "f") +/*!*/; +SET TIMESTAMP=1773143/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- offset -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +SET TIMESTAMP=1773144/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +DELIMITER /*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=6/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773143/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "f") +/*!*/; +SET TIMESTAMP=1773143/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- start-position -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773144/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +DELIMITER /*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=6/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773143/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "f") +/*!*/; +SET TIMESTAMP=1773143/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- stop-position -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +create table t1 (a int auto_increment not null primary key, b char(3)) +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +SET TIMESTAMP=1773144/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +DELIMITER /*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- start-datetime -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773144/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +DELIMITER ; +DELIMITER /*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=6/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773143/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t1 values(null, "f") +/*!*/; +SET TIMESTAMP=1773143/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- stop-datetime -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +create table t1 (a int auto_increment not null primary key, b char(3)) +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- to-last-log -- +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +use `test`/*!*/; +SET TIMESTAMP=1773142/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +create table t1 (a int auto_increment not null primary key, b char(3)) +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=1/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "a") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=2/*!*/; +SET TIMESTAMP=1773142/*!*/; +insert into t1 values(null, "b") +/*!*/; +SET TIMESTAMP=1773142/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=3/*!*/; +SET TIMESTAMP=1773144/*!*/; +insert into t1 values(null, "c") +/*!*/; +SET TIMESTAMP=1773144/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=4/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "d") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=5/*!*/; +SET TIMESTAMP=1773146/*!*/; +insert into t1 values(null, "e") +/*!*/; +SET TIMESTAMP=1773146/*!*/; +COMMIT +/*!*/; +START TRANSACTION +/*!*/; +SET INSERT_ID=6/*!*/; +SET TIMESTAMP=1773143/*!*/; +insert into t1 values(null, "f") +/*!*/; +SET TIMESTAMP=1773143/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; + +--- end of test -- +drop table t1; +set global binlog_checksum=default; diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_base64.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_base64.result new file mode 100644 index 00000000..72d49c16 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_base64.result @@ -0,0 +1,121 @@ +reset master; +create table t1 (a int); +insert into t1 values (1); +insert into t1 values (2); +insert into t1 values (3); +update t1 set a=a+2 where a=2; +update t1 set a=a+2 where a=3; +create table t2 (word varchar(20)); +load data infile '../../std_data/words.dat' into table t2; +flush logs; +drop table t1; +drop table t2; +select * from t1; +a +1 +4 +5 +select * from t2; +word +Aarhus +Aaron +Ababa +aback +abaft +abandon +abandoned +abandoning +abandonment +abandons +Aarhus +Aaron +Ababa +aback +abaft +abandon +abandoned +abandoning +abandonment +abandons +abase +abased +abasement +abasements +abases +abash +abashed +abashes +abashing +abasing +abate +abated +abatement +abatements +abater +abates +abating +Abba +abbe +abbey +abbeys +abbot +abbots +Abbott +abbreviate +abbreviated +abbreviates +abbreviating +abbreviation +abbreviations +Abby +abdomen +abdomens +abdominal +abduct +abducted +abduction +abductions +abductor +abductors +abducts +Abe +abed +Abel +Abelian +Abelson +Aberdeen +Abernathy +aberrant +aberration +flush logs; +drop table t2; +create table t2 (word varchar(20)); +load data infile '../../std_data/words.dat' into table t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +select count(*) from t2; +count(*) +35840 +flush logs; +select count(*) from t2; +count(*) +35840 +drop table t1; +drop table t2; +RESET MASTER; +USE test; +SET @old_binlog_format= @@binlog_format; +SET SESSION binlog_format=ROW; +CREATE TABLE t1(c1 INT); +INSERT INTO t1 VALUES (1); +FLUSH LOGS; +DROP TABLE t1; +SET SESSION binlog_format= @old_binlog_format; +RESET MASTER; diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result new file mode 100644 index 00000000..1cfb6bce --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result @@ -0,0 +1,5454 @@ +# +# Preparatory cleanup. +# +DROP TABLE IF EXISTS t1; +# +# We need a fixed timestamp to avoid varying results. +# +SET timestamp=1000000000; +# +# Delete all existing binary logs. +# +RESET MASTER; +CREATE TABLE t1 (c01 BIT); +INSERT INTO t1 VALUES (0); +INSERT INTO t1 VALUES (1); +DROP TABLE t1; +CREATE TABLE t1 (c01 BIT(7)); +INSERT INTO t1 VALUES (1); +INSERT INTO t1 VALUES (2); +INSERT INTO t1 VALUES (4); +INSERT INTO t1 VALUES (8); +INSERT INTO t1 VALUES (16); +INSERT INTO t1 VALUES (32); +INSERT INTO t1 VALUES (64); +INSERT INTO t1 VALUES (127); +DELETE FROM t1 WHERE c01=127; +UPDATE t1 SET c01=15 WHERE c01=16; +DROP TABLE t1; +CREATE TABLE t1 (a BIT(20), b CHAR(2)); +INSERT INTO t1 VALUES (b'00010010010010001001', 'ab'); +DROP TABLE t1; +CREATE TABLE t1 (c02 BIT(64)); +INSERT INTO t1 VALUES (1); +INSERT INTO t1 VALUES (2); +INSERT INTO t1 VALUES (128); +INSERT INTO t1 VALUES (b'1111111111111111111111111111111111111111111111111111111111111111'); +DROP TABLE t1; +CREATE TABLE t1 (c03 TINYINT); +INSERT INTO t1 VALUES (1),(2),(3); +INSERT INTO t1 VALUES (-128); +UPDATE t1 SET c03=2 WHERE c03=1; +DELETE FROM t1 WHERE c03=-128; +DROP TABLE t1; +CREATE TABLE t1 (c04 TINYINT UNSIGNED); +INSERT INTO t1 VALUES (128), (255); +UPDATE t1 SET c04=2 WHERE c04=1; +DELETE FROM t1 WHERE c04=255; +DROP TABLE t1; +CREATE TABLE t1 (c06 BOOL); +INSERT INTO t1 VALUES (TRUE); +DELETE FROM t1 WHERE c06=TRUE; +DROP TABLE t1; +CREATE TABLE t1 (c07 SMALLINT); +INSERT INTO t1 VALUES (1234); +DELETE FROM t1 WHERE c07=1234; +DROP TABLE t1; +CREATE TABLE t1 (c08 SMALLINT UNSIGNED); +INSERT INTO t1 VALUES (32768), (65535); +UPDATE t1 SET c08=2 WHERE c08=32768; +DELETE FROM t1 WHERE c08=65535; +DROP TABLE t1; +CREATE TABLE t1 (c10 MEDIUMINT); +INSERT INTO t1 VALUES (12345); +DELETE FROM t1 WHERE c10=12345; +DROP TABLE t1; +CREATE TABLE t1 (c11 MEDIUMINT UNSIGNED); +INSERT INTO t1 VALUES (8388608), (16777215); +UPDATE t1 SET c11=2 WHERE c11=8388608; +DELETE FROM t1 WHERE c11=16777215; +DROP TABLE t1; +CREATE TABLE t1 (c13 INT); +INSERT INTO t1 VALUES (123456); +DELETE FROM t1 WHERE c13=123456; +DROP TABLE t1; +CREATE TABLE t1 (c14 INT UNSIGNED); +INSERT INTO t1 VALUES (2147483648), (4294967295); +UPDATE t1 SET c14=2 WHERE c14=2147483648; +DELETE FROM t1 WHERE c14=4294967295; +DROP TABLE t1; +CREATE TABLE t1 (c16 BIGINT); +INSERT INTO t1 VALUES (1234567890); +DELETE FROM t1 WHERE c16=1234567890; +DROP TABLE t1; +CREATE TABLE t1 (c17 BIGINT UNSIGNED); +INSERT INTO t1 VALUES (9223372036854775808), (18446744073709551615); +UPDATE t1 SET c17=2 WHERE c17=9223372036854775808; +DELETE FROM t1 WHERE c17=18446744073709551615; +DROP TABLE t1; +CREATE TABLE t1 (c19 FLOAT); +INSERT INTO t1 VALUES (123.2234); +DELETE FROM t1 WHERE c19>123; +DROP TABLE t1; +CREATE TABLE t1 (c22 DOUBLE); +INSERT INTO t1 VALUES (123434.22344545); +DELETE FROM t1 WHERE c22>123434; +DROP TABLE t1; +CREATE TABLE t1 (c25 DECIMAL(10,5)); +INSERT INTO t1 VALUES (124.45); +INSERT INTO t1 VALUES (-543.21); +DELETE FROM t1 WHERE c25=124.45; +DROP TABLE t1; +CREATE TABLE t1 (c28 DATE); +INSERT INTO t1 VALUES ('2001-02-03'); +DELETE FROM t1 WHERE c28='2001-02-03'; +DROP TABLE t1; +CREATE TABLE t1 (c29 DATETIME); +INSERT INTO t1 VALUES ('2001-02-03 10:20:30'); +DELETE FROM t1 WHERE c29='2001-02-03 10:20:30'; +DROP TABLE t1; +CREATE TABLE t1 (c30 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); +INSERT INTO t1 VALUES ('2001-02-03 10:20:30'); +DELETE FROM t1 WHERE c30='2001-02-03 10:20:30'; +DROP TABLE t1; +CREATE TABLE t1 (c31 TIME); +INSERT INTO t1 VALUES ('11:22:33'); +DELETE FROM t1 WHERE c31='11:22:33'; +DROP TABLE t1; +CREATE TABLE t1 (c32 YEAR); +INSERT INTO t1 VALUES ('2001'); +DELETE FROM t1 WHERE c32=2001; +DROP TABLE t1; +CREATE TABLE t1 (c33 CHAR); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c33='a'; +DROP TABLE t1; +CREATE TABLE t1 (c34 CHAR(0)); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c34=''; +DROP TABLE t1; +CREATE TABLE t1 (c35 CHAR(1)); +INSERT INTO t1 VALUES ('b'); +DELETE FROM t1 WHERE c35='b'; +DROP TABLE t1; +CREATE TABLE t1 (c36 CHAR(255)); +INSERT INTO t1 VALUES (repeat('c',255)); +DELETE FROM t1 WHERE c36>'c'; +DROP TABLE t1; +CREATE TABLE t1 (c37 NATIONAL CHAR); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c37='a'; +DROP TABLE t1; +CREATE TABLE t1 (c38 NATIONAL CHAR(0)); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c38=''; +DROP TABLE t1; +CREATE TABLE t1 (c39 NATIONAL CHAR(1)); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c39='a'; +DROP TABLE t1; +CREATE TABLE t1 (c40 NATIONAL CHAR(255)); +INSERT INTO t1 VALUES (repeat('a', 255)); +INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 255)); +DELETE FROM t1 WHERE c40>'a'; +DROP TABLE t1; +CREATE TABLE t1 (c41 CHAR CHARACTER SET UCS2); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c41='a'; +DROP TABLE t1; +CREATE TABLE t1 (c42 CHAR(0) CHARACTER SET UCS2); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c42=''; +DROP TABLE t1; +CREATE TABLE t1 (c43 CHAR(1) CHARACTER SET UCS2); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c43='a'; +DROP TABLE t1; +CREATE TABLE t1 (c44 CHAR(255) CHARACTER SET UCS2); +INSERT INTO t1 VALUES (repeat('a', 255)); +INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 255)); +DELETE FROM t1 WHERE c44>'a'; +DROP TABLE t1; +CREATE TABLE t1 (c45 VARCHAR(0)); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c45=''; +DROP TABLE t1; +CREATE TABLE t1 (c46 VARCHAR(1)); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c46='a'; +DROP TABLE t1; +CREATE TABLE t1 (c47 VARCHAR(255)); +INSERT INTO t1 VALUES (repeat('a',255)); +DELETE FROM t1 WHERE c47>'a'; +DROP TABLE t1; +CREATE TABLE t1 (c48 VARCHAR(261)); +INSERT INTO t1 VALUES (repeat('a',261)); +DELETE FROM t1 WHERE c48>'a'; +DROP TABLE t1; +CREATE TABLE t1 (c49 NATIONAL VARCHAR(0)); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c49=''; +DROP TABLE t1; +CREATE TABLE t1 (c50 NATIONAL VARCHAR(1)); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c50='a'; +DROP TABLE t1; +CREATE TABLE t1 (c51 NATIONAL VARCHAR(255)); +INSERT INTO t1 VALUES (repeat('a',255)); +INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 255)); +DELETE FROM t1 WHERE c51>'a'; +DROP TABLE t1; +CREATE TABLE t1 (c52 NATIONAL VARCHAR(261)); +INSERT INTO t1 VALUES (repeat('a',261)); +INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 261)); +DELETE FROM t1 WHERE c52>'a'; +DROP TABLE t1; +CREATE TABLE t1 (c53 VARCHAR(0) CHARACTER SET ucs2); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c53=''; +DROP TABLE t1; +CREATE TABLE t1 (c54 VARCHAR(1) CHARACTER SET ucs2); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c54='a'; +DROP TABLE t1; +CREATE TABLE t1 (c55 VARCHAR(255) CHARACTER SET ucs2); +INSERT INTO t1 VALUES (repeat('ab', 127)); +DELETE FROM t1 WHERE c55>'a'; +DROP TABLE t1; +CREATE TABLE t1 (c56 VARCHAR(261) CHARACTER SET ucs2); +INSERT INTO t1 VALUES (repeat('ab', 130)); +DELETE FROM t1 WHERE c56>'a'; +DROP TABLE t1; +CREATE TABLE t1 (c57 BINARY); +INSERT INTO t1 VALUES (0x00); +INSERT INTO t1 VALUES (0x02); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c57='a'; +DROP TABLE t1; +CREATE TABLE t1 (c58 BINARY(0)); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c58=''; +DROP TABLE t1; +CREATE TABLE t1 (c59 BINARY(1)); +INSERT INTO t1 VALUES (0x00); +INSERT INTO t1 VALUES (0x02); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c59='a'; +DROP TABLE t1; +CREATE TABLE t1 (c60 BINARY(255)); +INSERT INTO t1 VALUES (0x00); +INSERT INTO t1 VALUES (0x02); +INSERT INTO t1 VALUES (repeat('a\0',120)); +DELETE FROM t1 WHERE c60<0x02; +DROP TABLE t1; +CREATE TABLE t1 (c61 VARBINARY(0)); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c61=''; +DROP TABLE t1; +CREATE TABLE t1 (c62 VARBINARY(1)); +INSERT INTO t1 VALUES (0x00); +INSERT INTO t1 VALUES (0x02); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c62=0x02; +DROP TABLE t1; +CREATE TABLE t1 (c63 VARBINARY(255)); +INSERT INTO t1 VALUES (0x00); +INSERT INTO t1 VALUES (0x02); +INSERT INTO t1 VALUES (repeat('a\0',120)); +DELETE FROM t1 WHERE c63=0x02; +DROP TABLE t1; +CREATE TABLE t1 (c65 TINYBLOB); +INSERT INTO t1 VALUES ('tinyblob1'); +DELETE FROM t1 WHERE c65='tinyblob1'; +DROP TABLE t1; +CREATE TABLE t1 (c68 BLOB); +INSERT INTO t1 VALUES ('blob1'); +DELETE FROM t1 WHERE c68='blob1'; +DROP TABLE t1; +CREATE TABLE t1 (c71 MEDIUMBLOB); +INSERT INTO t1 VALUES ('mediumblob1'); +DELETE FROM t1 WHERE c71='mediumblob1'; +DROP TABLE t1; +CREATE TABLE t1 (c74 LONGBLOB); +INSERT INTO t1 VALUES ('longblob1'); +DELETE FROM t1 WHERE c74='longblob1'; +DROP TABLE t1; +CREATE TABLE t1 (c66 TINYTEXT); +INSERT INTO t1 VALUES ('tinytext1'); +DELETE FROM t1 WHERE c66='tinytext1'; +DROP TABLE t1; +CREATE TABLE t1 (c69 TEXT); +INSERT INTO t1 VALUES ('text1'); +DELETE FROM t1 WHERE c69='text1'; +DROP TABLE t1; +CREATE TABLE t1 (c72 MEDIUMTEXT); +INSERT INTO t1 VALUES ('mediumtext1'); +DELETE FROM t1 WHERE c72='mediumtext1'; +DROP TABLE t1; +CREATE TABLE t1 (c75 LONGTEXT); +INSERT INTO t1 VALUES ('longtext1'); +DELETE FROM t1 WHERE c75='longtext1'; +DROP TABLE t1; +CREATE TABLE t1 (c67 TINYTEXT CHARACTER SET UCS2); +INSERT INTO t1 VALUES ('tinytext1'); +DELETE FROM t1 WHERE c67='tinytext1'; +DROP TABLE t1; +CREATE TABLE t1 (c70 TEXT CHARACTER SET UCS2); +INSERT INTO t1 VALUES ('text1'); +DELETE FROM t1 WHERE c70='text1'; +DROP TABLE t1; +CREATE TABLE t1 (c73 MEDIUMTEXT CHARACTER SET UCS2); +INSERT INTO t1 VALUES ('mediumtext1'); +DELETE FROM t1 WHERE c73='mediumtext1'; +DROP TABLE t1; +CREATE TABLE t1 (c76 LONGTEXT CHARACTER SET UCS2); +INSERT INTO t1 VALUES ('longtext1'); +DELETE FROM t1 WHERE c76='longtext1'; +DROP TABLE t1; +CREATE TABLE t1 (c77 ENUM('a','b','c')); +INSERT INTO t1 VALUES ('b'); +DELETE FROM t1 WHERE c77='b'; +DROP TABLE t1; +CREATE TABLE t1 (c78 SET('a','b','c','d','e','f')); +INSERT INTO t1 VALUES ('a,b'); +INSERT INTO t1 VALUES ('a,c'); +INSERT INTO t1 VALUES ('b,c'); +INSERT INTO t1 VALUES ('a,b,c'); +INSERT INTO t1 VALUES ('a,b,c,d'); +INSERT INTO t1 VALUES ('a,b,c,d,e'); +INSERT INTO t1 VALUES ('a,b,c,d,e,f'); +DELETE FROM t1 WHERE c78='a,b'; +DROP TABLE t1; +CREATE TABLE t1 (a int NOT NULL DEFAULT 0, b int NOT NULL DEFAULT 0); +CREATE TABLE t2 (a int NOT NULL DEFAULT 0, b int NOT NULL DEFAULT 0); +INSERT INTO t1 SET a=1; +INSERT INTO t1 SET b=1; +INSERT INTO t2 SET a=1; +INSERT INTO t2 SET b=1; +UPDATE t1, t2 SET t1.a=10, t2.a=20; +DROP TABLE t1,t2; +# +# MDEV-20591 Wrong Number of rows in mysqlbinlog output. +# +CREATE TABLE t1(c_char_utf8 CHAR(10) , +c_varchar_utf8 char(10) , +c_text_utf8 blob ); +INSERT into t1 values("B", "B", REPEAT("#", 2000)); +drop table t1; +flush logs; +INSERT INTO t1dec102 VALUES (-999.99); +INSERT INTO t1dec102 VALUES (0); +INSERT INTO t1dec102 VALUES (999.99); +SELECT * FROM t1dec102 ORDER BY a; +a +-999.99 +0.00 +123.45 +123.46 +123.47 +999.99 +DROP TABLE t1dec102; +flush logs; +CREATE TABLE t1 (a GEOMETRY DEFAULT NULL); +INSERT INTO t1 VALUES (NULL); +INSERT INTO t1 VALUES (POINT(10,10)); +DROP TABLE t1; +FLUSH LOGS; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [] +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=1411383296/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 (c01 BIT) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-2 +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'0' /* BIT(1) meta=1 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-3 +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-4 ddl +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-5 ddl +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c01 BIT(7)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-6 +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'0000001' /* BIT(7) meta=7 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-7 +/*!100001 SET @@session.gtid_seq_no=7*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (2) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'0000010' /* BIT(7) meta=7 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-8 +/*!100001 SET @@session.gtid_seq_no=8*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (4) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'0000100' /* BIT(7) meta=7 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-9 +/*!100001 SET @@session.gtid_seq_no=9*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (8) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'0001000' /* BIT(7) meta=7 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-10 +/*!100001 SET @@session.gtid_seq_no=10*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (16) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'0010000' /* BIT(7) meta=7 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-11 +/*!100001 SET @@session.gtid_seq_no=11*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (32) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'0100000' /* BIT(7) meta=7 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-12 +/*!100001 SET @@session.gtid_seq_no=12*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (64) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'1000000' /* BIT(7) meta=7 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-13 +/*!100001 SET @@session.gtid_seq_no=13*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (127) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'1111111' /* BIT(7) meta=7 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-14 +/*!100001 SET @@session.gtid_seq_no=14*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c01=127 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=b'1111111' /* BIT(7) meta=7 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-15 +/*!100001 SET @@session.gtid_seq_no=15*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c01=15 WHERE c01=16 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=b'0010000' /* BIT(7) meta=7 nullable=1 is_null=0 */ +### SET +### @1=b'0001111' /* BIT(7) meta=7 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-16 ddl +/*!100001 SET @@session.gtid_seq_no=16*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-17 ddl +/*!100001 SET @@session.gtid_seq_no=17*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (a BIT(20), b CHAR(2)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-18 +/*!100001 SET @@session.gtid_seq_no=18*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (b'00010010010010001001', 'ab') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'00010010010010001001' /* BIT(20) meta=516 nullable=1 is_null=0 */ +### @2='ab' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-19 ddl +/*!100001 SET @@session.gtid_seq_no=19*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-20 ddl +/*!100001 SET @@session.gtid_seq_no=20*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c02 BIT(64)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-21 +/*!100001 SET @@session.gtid_seq_no=21*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'0000000000000000000000000000000000000000000000000000000000000001' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-22 +/*!100001 SET @@session.gtid_seq_no=22*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (2) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'0000000000000000000000000000000000000000000000000000000000000010' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-23 +/*!100001 SET @@session.gtid_seq_no=23*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (128) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'0000000000000000000000000000000000000000000000000000000010000000' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-24 +/*!100001 SET @@session.gtid_seq_no=24*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (b'1111111111111111111111111111111111111111111111111111111111111111') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-25 ddl +/*!100001 SET @@session.gtid_seq_no=25*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-26 ddl +/*!100001 SET @@session.gtid_seq_no=26*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c03 TINYINT) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-27 +/*!100001 SET @@session.gtid_seq_no=27*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1),(2),(3) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=2 /* TINYINT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=3 /* TINYINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-28 +/*!100001 SET @@session.gtid_seq_no=28*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (-128) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-29 +/*!100001 SET @@session.gtid_seq_no=29*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c03=2 WHERE c03=1 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### SET +### @1=2 /* TINYINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-30 +/*!100001 SET @@session.gtid_seq_no=30*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c03=-128 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-31 ddl +/*!100001 SET @@session.gtid_seq_no=31*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-32 ddl +/*!100001 SET @@session.gtid_seq_no=32*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c04 TINYINT UNSIGNED) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-33 +/*!100001 SET @@session.gtid_seq_no=33*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (128), (255) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-34 +/*!100001 SET @@session.gtid_seq_no=34*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c04=255 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-35 ddl +/*!100001 SET @@session.gtid_seq_no=35*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-36 ddl +/*!100001 SET @@session.gtid_seq_no=36*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c06 BOOL) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-37 +/*!100001 SET @@session.gtid_seq_no=37*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (TRUE) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-38 +/*!100001 SET @@session.gtid_seq_no=38*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c06=TRUE +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-39 ddl +/*!100001 SET @@session.gtid_seq_no=39*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-40 ddl +/*!100001 SET @@session.gtid_seq_no=40*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c07 SMALLINT) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-41 +/*!100001 SET @@session.gtid_seq_no=41*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1234) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=1234 /* SHORTINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-42 +/*!100001 SET @@session.gtid_seq_no=42*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c07=1234 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=1234 /* SHORTINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-43 ddl +/*!100001 SET @@session.gtid_seq_no=43*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-44 ddl +/*!100001 SET @@session.gtid_seq_no=44*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c08 SMALLINT UNSIGNED) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-45 +/*!100001 SET @@session.gtid_seq_no=45*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (32768), (65535) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=-32768 (32768) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-46 +/*!100001 SET @@session.gtid_seq_no=46*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c08=2 WHERE c08=32768 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=-32768 (32768) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### SET +### @1=2 /* SHORTINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-47 +/*!100001 SET @@session.gtid_seq_no=47*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c08=65535 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-48 ddl +/*!100001 SET @@session.gtid_seq_no=48*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-49 ddl +/*!100001 SET @@session.gtid_seq_no=49*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c10 MEDIUMINT) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-50 +/*!100001 SET @@session.gtid_seq_no=50*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (12345) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=12345 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-51 +/*!100001 SET @@session.gtid_seq_no=51*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c10=12345 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=12345 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-52 ddl +/*!100001 SET @@session.gtid_seq_no=52*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-53 ddl +/*!100001 SET @@session.gtid_seq_no=53*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c11 MEDIUMINT UNSIGNED) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-54 +/*!100001 SET @@session.gtid_seq_no=54*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (8388608), (16777215) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=-8388608 (8388608) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-55 +/*!100001 SET @@session.gtid_seq_no=55*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c11=2 WHERE c11=8388608 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=-8388608 (8388608) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### SET +### @1=2 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-56 +/*!100001 SET @@session.gtid_seq_no=56*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c11=16777215 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-57 ddl +/*!100001 SET @@session.gtid_seq_no=57*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-58 ddl +/*!100001 SET @@session.gtid_seq_no=58*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c13 INT) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-59 +/*!100001 SET @@session.gtid_seq_no=59*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (123456) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=123456 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-60 +/*!100001 SET @@session.gtid_seq_no=60*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c13=123456 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=123456 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-61 ddl +/*!100001 SET @@session.gtid_seq_no=61*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-62 ddl +/*!100001 SET @@session.gtid_seq_no=62*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c14 INT UNSIGNED) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-63 +/*!100001 SET @@session.gtid_seq_no=63*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (2147483648), (4294967295) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=-2147483648 (2147483648) /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-64 +/*!100001 SET @@session.gtid_seq_no=64*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c14=2 WHERE c14=2147483648 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=-2147483648 (2147483648) /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-65 +/*!100001 SET @@session.gtid_seq_no=65*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c14=4294967295 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-66 ddl +/*!100001 SET @@session.gtid_seq_no=66*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-67 ddl +/*!100001 SET @@session.gtid_seq_no=67*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c16 BIGINT) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-68 +/*!100001 SET @@session.gtid_seq_no=68*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1234567890) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=1234567890 /* LONGINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-69 +/*!100001 SET @@session.gtid_seq_no=69*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c16=1234567890 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=1234567890 /* LONGINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-70 ddl +/*!100001 SET @@session.gtid_seq_no=70*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-71 ddl +/*!100001 SET @@session.gtid_seq_no=71*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c17 BIGINT UNSIGNED) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-72 +/*!100001 SET @@session.gtid_seq_no=72*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (9223372036854775808), (18446744073709551615) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=-9223372036854775808 (9223372036854775808) /* LONGINT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-73 +/*!100001 SET @@session.gtid_seq_no=73*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c17=2 WHERE c17=9223372036854775808 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=-9223372036854775808 (9223372036854775808) /* LONGINT meta=0 nullable=1 is_null=0 */ +### SET +### @1=2 /* LONGINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-74 +/*!100001 SET @@session.gtid_seq_no=74*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c17=18446744073709551615 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-75 ddl +/*!100001 SET @@session.gtid_seq_no=75*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-76 ddl +/*!100001 SET @@session.gtid_seq_no=76*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c19 FLOAT) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-77 +/*!100001 SET @@session.gtid_seq_no=77*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (123.2234) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=123.223... /* FLOAT meta=4 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-78 +/*!100001 SET @@session.gtid_seq_no=78*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c19>123 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=123.223... /* FLOAT meta=4 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-79 ddl +/*!100001 SET @@session.gtid_seq_no=79*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-80 ddl +/*!100001 SET @@session.gtid_seq_no=80*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c22 DOUBLE) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-81 +/*!100001 SET @@session.gtid_seq_no=81*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (123434.22344545) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=123434.223... /* DOUBLE meta=8 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-82 +/*!100001 SET @@session.gtid_seq_no=82*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c22>123434 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=123434.223... /* DOUBLE meta=8 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-83 ddl +/*!100001 SET @@session.gtid_seq_no=83*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-84 ddl +/*!100001 SET @@session.gtid_seq_no=84*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c25 DECIMAL(10,5)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-85 +/*!100001 SET @@session.gtid_seq_no=85*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (124.45) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=124.45000 /* DECIMAL(10,5) meta=2565 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-86 +/*!100001 SET @@session.gtid_seq_no=86*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (-543.21) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=-543.21000 /* DECIMAL(10,5) meta=2565 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-87 +/*!100001 SET @@session.gtid_seq_no=87*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c25=124.45 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=124.45000 /* DECIMAL(10,5) meta=2565 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-88 ddl +/*!100001 SET @@session.gtid_seq_no=88*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-89 ddl +/*!100001 SET @@session.gtid_seq_no=89*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c28 DATE) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-90 +/*!100001 SET @@session.gtid_seq_no=90*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('2001-02-03') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='2001:02:03' /* DATE meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-91 +/*!100001 SET @@session.gtid_seq_no=91*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c28='2001-02-03' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='2001:02:03' /* DATE meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-92 ddl +/*!100001 SET @@session.gtid_seq_no=92*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-93 ddl +/*!100001 SET @@session.gtid_seq_no=93*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c29 DATETIME) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-94 +/*!100001 SET @@session.gtid_seq_no=94*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('2001-02-03 10:20:30') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='2001-02-03 10:20:30' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-95 +/*!100001 SET @@session.gtid_seq_no=95*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c29='2001-02-03 10:20:30' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='2001-02-03 10:20:30' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-96 ddl +/*!100001 SET @@session.gtid_seq_no=96*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-97 ddl +/*!100001 SET @@session.gtid_seq_no=97*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c30 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-98 +/*!100001 SET @@session.gtid_seq_no=98*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('2001-02-03 10:20:30') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=981184830 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +SET @@session.time_zone='SYSTEM'/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-99 +/*!100001 SET @@session.gtid_seq_no=99*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c30='2001-02-03 10:20:30' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=981184830 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-100 ddl +/*!100001 SET @@session.gtid_seq_no=100*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-101 ddl +/*!100001 SET @@session.gtid_seq_no=101*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c31 TIME) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-102 +/*!100001 SET @@session.gtid_seq_no=102*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('11:22:33') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='11:22:33' /* TIME(0) meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-103 +/*!100001 SET @@session.gtid_seq_no=103*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c31='11:22:33' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='11:22:33' /* TIME(0) meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-104 ddl +/*!100001 SET @@session.gtid_seq_no=104*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-105 ddl +/*!100001 SET @@session.gtid_seq_no=105*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c32 YEAR) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-106 +/*!100001 SET @@session.gtid_seq_no=106*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('2001') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=2001 /* YEAR meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-107 +/*!100001 SET @@session.gtid_seq_no=107*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c32=2001 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=2001 /* YEAR meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-108 ddl +/*!100001 SET @@session.gtid_seq_no=108*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-109 ddl +/*!100001 SET @@session.gtid_seq_no=109*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c33 CHAR) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-110 +/*!100001 SET @@session.gtid_seq_no=110*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='a' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-111 +/*!100001 SET @@session.gtid_seq_no=111*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c33='a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='a' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-112 ddl +/*!100001 SET @@session.gtid_seq_no=112*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-113 ddl +/*!100001 SET @@session.gtid_seq_no=113*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c34 CHAR(0)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-114 +/*!100001 SET @@session.gtid_seq_no=114*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-115 +/*!100001 SET @@session.gtid_seq_no=115*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c34='' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-116 ddl +/*!100001 SET @@session.gtid_seq_no=116*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-117 ddl +/*!100001 SET @@session.gtid_seq_no=117*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c35 CHAR(1)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-118 +/*!100001 SET @@session.gtid_seq_no=118*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('b') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='b' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-119 +/*!100001 SET @@session.gtid_seq_no=119*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c35='b' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='b' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-120 ddl +/*!100001 SET @@session.gtid_seq_no=120*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-121 ddl +/*!100001 SET @@session.gtid_seq_no=121*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c36 CHAR(255)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-122 +/*!100001 SET @@session.gtid_seq_no=122*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('c',255)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-123 +/*!100001 SET @@session.gtid_seq_no=123*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c36>'c' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-124 ddl +/*!100001 SET @@session.gtid_seq_no=124*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-125 ddl +/*!100001 SET @@session.gtid_seq_no=125*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c37 NATIONAL CHAR) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-126 +/*!100001 SET @@session.gtid_seq_no=126*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='a' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-127 +/*!100001 SET @@session.gtid_seq_no=127*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c37='a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='a' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-128 ddl +/*!100001 SET @@session.gtid_seq_no=128*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-129 ddl +/*!100001 SET @@session.gtid_seq_no=129*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c38 NATIONAL CHAR(0)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-130 +/*!100001 SET @@session.gtid_seq_no=130*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-131 +/*!100001 SET @@session.gtid_seq_no=131*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c38='' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-132 ddl +/*!100001 SET @@session.gtid_seq_no=132*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-133 ddl +/*!100001 SET @@session.gtid_seq_no=133*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c39 NATIONAL CHAR(1)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-134 +/*!100001 SET @@session.gtid_seq_no=134*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='a' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-135 +/*!100001 SET @@session.gtid_seq_no=135*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c39='a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='a' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-136 ddl +/*!100001 SET @@session.gtid_seq_no=136*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-137 ddl +/*!100001 SET @@session.gtid_seq_no=137*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c40 NATIONAL CHAR(255)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-138 +/*!100001 SET @@session.gtid_seq_no=138*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a', 255)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-139 +/*!100001 SET @@session.gtid_seq_no=139*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 255)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-140 +/*!100001 SET @@session.gtid_seq_no=140*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c40>'a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-141 ddl +/*!100001 SET @@session.gtid_seq_no=141*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-142 ddl +/*!100001 SET @@session.gtid_seq_no=142*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c41 CHAR CHARACTER SET UCS2) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-143 +/*!100001 SET @@session.gtid_seq_no=143*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x00a' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-144 +/*!100001 SET @@session.gtid_seq_no=144*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c41='a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='\x00a' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-145 ddl +/*!100001 SET @@session.gtid_seq_no=145*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-146 ddl +/*!100001 SET @@session.gtid_seq_no=146*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c42 CHAR(0) CHARACTER SET UCS2) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-147 +/*!100001 SET @@session.gtid_seq_no=147*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-148 +/*!100001 SET @@session.gtid_seq_no=148*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c42='' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-149 ddl +/*!100001 SET @@session.gtid_seq_no=149*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-150 ddl +/*!100001 SET @@session.gtid_seq_no=150*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c43 CHAR(1) CHARACTER SET UCS2) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-151 +/*!100001 SET @@session.gtid_seq_no=151*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x00a' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-152 +/*!100001 SET @@session.gtid_seq_no=152*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c43='a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='\x00a' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-153 ddl +/*!100001 SET @@session.gtid_seq_no=153*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-154 ddl +/*!100001 SET @@session.gtid_seq_no=154*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c44 CHAR(255) CHARACTER SET UCS2) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-155 +/*!100001 SET @@session.gtid_seq_no=155*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a', 255)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-156 +/*!100001 SET @@session.gtid_seq_no=156*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 255)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-157 +/*!100001 SET @@session.gtid_seq_no=157*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c44>'a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß\x00ß' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-158 ddl +/*!100001 SET @@session.gtid_seq_no=158*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-159 ddl +/*!100001 SET @@session.gtid_seq_no=159*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c45 VARCHAR(0)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-160 +/*!100001 SET @@session.gtid_seq_no=160*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-161 +/*!100001 SET @@session.gtid_seq_no=161*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c45='' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-162 ddl +/*!100001 SET @@session.gtid_seq_no=162*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-163 ddl +/*!100001 SET @@session.gtid_seq_no=163*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c46 VARCHAR(1)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-164 +/*!100001 SET @@session.gtid_seq_no=164*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='a' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-165 +/*!100001 SET @@session.gtid_seq_no=165*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c46='a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='a' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-166 ddl +/*!100001 SET @@session.gtid_seq_no=166*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-167 ddl +/*!100001 SET @@session.gtid_seq_no=167*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c47 VARCHAR(255)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-168 +/*!100001 SET @@session.gtid_seq_no=168*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a',255)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-169 +/*!100001 SET @@session.gtid_seq_no=169*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c47>'a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-170 ddl +/*!100001 SET @@session.gtid_seq_no=170*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-171 ddl +/*!100001 SET @@session.gtid_seq_no=171*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c48 VARCHAR(261)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-172 +/*!100001 SET @@session.gtid_seq_no=172*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a',261)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-173 +/*!100001 SET @@session.gtid_seq_no=173*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c48>'a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-174 ddl +/*!100001 SET @@session.gtid_seq_no=174*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-175 ddl +/*!100001 SET @@session.gtid_seq_no=175*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c49 NATIONAL VARCHAR(0)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-176 +/*!100001 SET @@session.gtid_seq_no=176*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-177 +/*!100001 SET @@session.gtid_seq_no=177*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c49='' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-178 ddl +/*!100001 SET @@session.gtid_seq_no=178*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-179 ddl +/*!100001 SET @@session.gtid_seq_no=179*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c50 NATIONAL VARCHAR(1)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-180 +/*!100001 SET @@session.gtid_seq_no=180*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='a' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-181 +/*!100001 SET @@session.gtid_seq_no=181*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c50='a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='a' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-182 ddl +/*!100001 SET @@session.gtid_seq_no=182*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-183 ddl +/*!100001 SET @@session.gtid_seq_no=183*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c51 NATIONAL VARCHAR(255)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-184 +/*!100001 SET @@session.gtid_seq_no=184*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a',255)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-185 +/*!100001 SET @@session.gtid_seq_no=185*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 255)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-186 +/*!100001 SET @@session.gtid_seq_no=186*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c51>'a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-187 ddl +/*!100001 SET @@session.gtid_seq_no=187*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-188 ddl +/*!100001 SET @@session.gtid_seq_no=188*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c52 NATIONAL VARCHAR(261)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-189 +/*!100001 SET @@session.gtid_seq_no=189*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a',261)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-190 +/*!100001 SET @@session.gtid_seq_no=190*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 261)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-191 +/*!100001 SET @@session.gtid_seq_no=191*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c52>'a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-192 ddl +/*!100001 SET @@session.gtid_seq_no=192*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-193 ddl +/*!100001 SET @@session.gtid_seq_no=193*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c53 VARCHAR(0) CHARACTER SET ucs2) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-194 +/*!100001 SET @@session.gtid_seq_no=194*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-195 +/*!100001 SET @@session.gtid_seq_no=195*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c53='' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-196 ddl +/*!100001 SET @@session.gtid_seq_no=196*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-197 ddl +/*!100001 SET @@session.gtid_seq_no=197*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c54 VARCHAR(1) CHARACTER SET ucs2) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-198 +/*!100001 SET @@session.gtid_seq_no=198*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x00a' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-199 +/*!100001 SET @@session.gtid_seq_no=199*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c54='a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='\x00a' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-200 ddl +/*!100001 SET @@session.gtid_seq_no=200*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-201 ddl +/*!100001 SET @@session.gtid_seq_no=201*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c55 VARCHAR(255) CHARACTER SET ucs2) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-202 +/*!100001 SET @@session.gtid_seq_no=202*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('ab', 127)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-203 +/*!100001 SET @@session.gtid_seq_no=203*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c55>'a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-204 ddl +/*!100001 SET @@session.gtid_seq_no=204*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-205 ddl +/*!100001 SET @@session.gtid_seq_no=205*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c56 VARCHAR(261) CHARACTER SET ucs2) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-206 +/*!100001 SET @@session.gtid_seq_no=206*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('ab', 130)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-207 +/*!100001 SET @@session.gtid_seq_no=207*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c56>'a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b\x00a\x00b' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-208 ddl +/*!100001 SET @@session.gtid_seq_no=208*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-209 ddl +/*!100001 SET @@session.gtid_seq_no=209*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c57 BINARY) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-210 +/*!100001 SET @@session.gtid_seq_no=210*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x00) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-211 +/*!100001 SET @@session.gtid_seq_no=211*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x02) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x02' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-212 +/*!100001 SET @@session.gtid_seq_no=212*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='a' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-213 +/*!100001 SET @@session.gtid_seq_no=213*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c57='a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='a' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-214 ddl +/*!100001 SET @@session.gtid_seq_no=214*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-215 ddl +/*!100001 SET @@session.gtid_seq_no=215*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c58 BINARY(0)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-216 +/*!100001 SET @@session.gtid_seq_no=216*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-217 +/*!100001 SET @@session.gtid_seq_no=217*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c58='' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-218 ddl +/*!100001 SET @@session.gtid_seq_no=218*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-219 ddl +/*!100001 SET @@session.gtid_seq_no=219*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c59 BINARY(1)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-220 +/*!100001 SET @@session.gtid_seq_no=220*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x00) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-221 +/*!100001 SET @@session.gtid_seq_no=221*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x02) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x02' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-222 +/*!100001 SET @@session.gtid_seq_no=222*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='a' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-223 +/*!100001 SET @@session.gtid_seq_no=223*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c59='a' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='a' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-224 ddl +/*!100001 SET @@session.gtid_seq_no=224*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-225 ddl +/*!100001 SET @@session.gtid_seq_no=225*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c60 BINARY(255)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-226 +/*!100001 SET @@session.gtid_seq_no=226*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x00) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-227 +/*!100001 SET @@session.gtid_seq_no=227*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x02) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x02' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-228 +/*!100001 SET @@session.gtid_seq_no=228*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a\0',120)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-229 +/*!100001 SET @@session.gtid_seq_no=229*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c60<0x02 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-230 ddl +/*!100001 SET @@session.gtid_seq_no=230*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-231 ddl +/*!100001 SET @@session.gtid_seq_no=231*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c61 VARBINARY(0)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-232 +/*!100001 SET @@session.gtid_seq_no=232*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-233 +/*!100001 SET @@session.gtid_seq_no=233*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c61='' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-234 ddl +/*!100001 SET @@session.gtid_seq_no=234*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-235 ddl +/*!100001 SET @@session.gtid_seq_no=235*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c62 VARBINARY(1)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-236 +/*!100001 SET @@session.gtid_seq_no=236*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x00) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x00' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-237 +/*!100001 SET @@session.gtid_seq_no=237*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x02) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x02' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-238 +/*!100001 SET @@session.gtid_seq_no=238*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='a' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-239 +/*!100001 SET @@session.gtid_seq_no=239*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c62=0x02 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='\x02' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-240 ddl +/*!100001 SET @@session.gtid_seq_no=240*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-241 ddl +/*!100001 SET @@session.gtid_seq_no=241*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c63 VARBINARY(255)) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-242 +/*!100001 SET @@session.gtid_seq_no=242*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x00) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x00' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-243 +/*!100001 SET @@session.gtid_seq_no=243*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (0x02) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-244 +/*!100001 SET @@session.gtid_seq_no=244*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (repeat('a\0',120)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00a\x00' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-245 +/*!100001 SET @@session.gtid_seq_no=245*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c63=0x02 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='\x02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-246 ddl +/*!100001 SET @@session.gtid_seq_no=246*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-247 ddl +/*!100001 SET @@session.gtid_seq_no=247*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c65 TINYBLOB) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-248 +/*!100001 SET @@session.gtid_seq_no=248*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('tinyblob1') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='tinyblob1' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-249 +/*!100001 SET @@session.gtid_seq_no=249*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c65='tinyblob1' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='tinyblob1' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-250 ddl +/*!100001 SET @@session.gtid_seq_no=250*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-251 ddl +/*!100001 SET @@session.gtid_seq_no=251*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c68 BLOB) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-252 +/*!100001 SET @@session.gtid_seq_no=252*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('blob1') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='blob1' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-253 +/*!100001 SET @@session.gtid_seq_no=253*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c68='blob1' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='blob1' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-254 ddl +/*!100001 SET @@session.gtid_seq_no=254*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-255 ddl +/*!100001 SET @@session.gtid_seq_no=255*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c71 MEDIUMBLOB) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-256 +/*!100001 SET @@session.gtid_seq_no=256*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('mediumblob1') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='mediumblob1' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-257 +/*!100001 SET @@session.gtid_seq_no=257*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c71='mediumblob1' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='mediumblob1' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-258 ddl +/*!100001 SET @@session.gtid_seq_no=258*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-259 ddl +/*!100001 SET @@session.gtid_seq_no=259*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c74 LONGBLOB) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-260 +/*!100001 SET @@session.gtid_seq_no=260*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('longblob1') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='longblob1' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-261 +/*!100001 SET @@session.gtid_seq_no=261*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c74='longblob1' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='longblob1' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-262 ddl +/*!100001 SET @@session.gtid_seq_no=262*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-263 ddl +/*!100001 SET @@session.gtid_seq_no=263*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c66 TINYTEXT) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-264 +/*!100001 SET @@session.gtid_seq_no=264*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('tinytext1') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='tinytext1' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-265 +/*!100001 SET @@session.gtid_seq_no=265*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c66='tinytext1' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='tinytext1' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-266 ddl +/*!100001 SET @@session.gtid_seq_no=266*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-267 ddl +/*!100001 SET @@session.gtid_seq_no=267*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c69 TEXT) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-268 +/*!100001 SET @@session.gtid_seq_no=268*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('text1') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='text1' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-269 +/*!100001 SET @@session.gtid_seq_no=269*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c69='text1' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='text1' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-270 ddl +/*!100001 SET @@session.gtid_seq_no=270*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-271 ddl +/*!100001 SET @@session.gtid_seq_no=271*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c72 MEDIUMTEXT) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-272 +/*!100001 SET @@session.gtid_seq_no=272*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('mediumtext1') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='mediumtext1' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-273 +/*!100001 SET @@session.gtid_seq_no=273*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c72='mediumtext1' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='mediumtext1' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-274 ddl +/*!100001 SET @@session.gtid_seq_no=274*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-275 ddl +/*!100001 SET @@session.gtid_seq_no=275*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c75 LONGTEXT) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-276 +/*!100001 SET @@session.gtid_seq_no=276*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('longtext1') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='longtext1' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-277 +/*!100001 SET @@session.gtid_seq_no=277*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c75='longtext1' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='longtext1' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-278 ddl +/*!100001 SET @@session.gtid_seq_no=278*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-279 ddl +/*!100001 SET @@session.gtid_seq_no=279*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c67 TINYTEXT CHARACTER SET UCS2) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-280 +/*!100001 SET @@session.gtid_seq_no=280*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('tinytext1') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x001' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-281 +/*!100001 SET @@session.gtid_seq_no=281*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c67='tinytext1' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x001' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-282 ddl +/*!100001 SET @@session.gtid_seq_no=282*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-283 ddl +/*!100001 SET @@session.gtid_seq_no=283*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c70 TEXT CHARACTER SET UCS2) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-284 +/*!100001 SET @@session.gtid_seq_no=284*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('text1') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x00t\x00e\x00x\x00t\x001' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-285 +/*!100001 SET @@session.gtid_seq_no=285*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c70='text1' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='\x00t\x00e\x00x\x00t\x001' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-286 ddl +/*!100001 SET @@session.gtid_seq_no=286*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-287 ddl +/*!100001 SET @@session.gtid_seq_no=287*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c73 MEDIUMTEXT CHARACTER SET UCS2) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-288 +/*!100001 SET @@session.gtid_seq_no=288*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('mediumtext1') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x001' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-289 +/*!100001 SET @@session.gtid_seq_no=289*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c73='mediumtext1' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x001' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-290 ddl +/*!100001 SET @@session.gtid_seq_no=290*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-291 ddl +/*!100001 SET @@session.gtid_seq_no=291*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c76 LONGTEXT CHARACTER SET UCS2) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-292 +/*!100001 SET @@session.gtid_seq_no=292*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('longtext1') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x001' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-293 +/*!100001 SET @@session.gtid_seq_no=293*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c76='longtext1' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x001' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-294 ddl +/*!100001 SET @@session.gtid_seq_no=294*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-295 ddl +/*!100001 SET @@session.gtid_seq_no=295*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c77 ENUM('a','b','c')) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-296 +/*!100001 SET @@session.gtid_seq_no=296*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('b') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-297 +/*!100001 SET @@session.gtid_seq_no=297*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c77='b' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-298 ddl +/*!100001 SET @@session.gtid_seq_no=298*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-299 ddl +/*!100001 SET @@session.gtid_seq_no=299*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (c78 SET('a','b','c','d','e','f')) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-300 +/*!100001 SET @@session.gtid_seq_no=300*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a,b') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'00000011' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-301 +/*!100001 SET @@session.gtid_seq_no=301*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a,c') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'00000101' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-302 +/*!100001 SET @@session.gtid_seq_no=302*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('b,c') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-303 +/*!100001 SET @@session.gtid_seq_no=303*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a,b,c') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-304 +/*!100001 SET @@session.gtid_seq_no=304*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a,b,c,d') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'00001111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-305 +/*!100001 SET @@session.gtid_seq_no=305*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a,b,c,d,e') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'00011111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-306 +/*!100001 SET @@session.gtid_seq_no=306*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('a,b,c,d,e,f') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'00111111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-307 +/*!100001 SET @@session.gtid_seq_no=307*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c78='a,b' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=b'00000011' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-308 ddl +/*!100001 SET @@session.gtid_seq_no=308*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-309 ddl +/*!100001 SET @@session.gtid_seq_no=309*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1 (a int NOT NULL DEFAULT 0, b int NOT NULL DEFAULT 0) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-310 ddl +/*!100001 SET @@session.gtid_seq_no=310*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t2 (a int NOT NULL DEFAULT 0, b int NOT NULL DEFAULT 0) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-311 +/*!100001 SET @@session.gtid_seq_no=311*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 SET a=1 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=1 /* INT meta=0 nullable=0 is_null=0 */ +### @2=0 /* INT meta=0 nullable=0 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-312 +/*!100001 SET @@session.gtid_seq_no=312*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 SET b=1 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=0 /* INT meta=0 nullable=0 is_null=0 */ +### @2=1 /* INT meta=0 nullable=0 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-313 +/*!100001 SET @@session.gtid_seq_no=313*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 SET a=1 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t2` +### SET +### @1=1 /* INT meta=0 nullable=0 is_null=0 */ +### @2=0 /* INT meta=0 nullable=0 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-314 +/*!100001 SET @@session.gtid_seq_no=314*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 SET b=1 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t2` +### SET +### @1=0 /* INT meta=0 nullable=0 is_null=0 */ +### @2=1 /* INT meta=0 nullable=0 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-315 +/*!100001 SET @@session.gtid_seq_no=315*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1, t2 SET t1.a=10, t2.a=20 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=1 /* INT meta=0 nullable=0 is_null=0 */ +### @2=0 /* INT meta=0 nullable=0 is_null=0 */ +### SET +### @1=10 /* INT meta=0 nullable=0 is_null=0 */ +### @2=0 /* INT meta=0 nullable=0 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1=0 /* INT meta=0 nullable=0 is_null=0 */ +### @2=1 /* INT meta=0 nullable=0 is_null=0 */ +### SET +### @1=10 /* INT meta=0 nullable=0 is_null=0 */ +### @2=1 /* INT meta=0 nullable=0 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1=1 /* INT meta=0 nullable=0 is_null=0 */ +### @2=0 /* INT meta=0 nullable=0 is_null=0 */ +### SET +### @1=20 /* INT meta=0 nullable=0 is_null=0 */ +### @2=0 /* INT meta=0 nullable=0 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1=0 /* INT meta=0 nullable=0 is_null=0 */ +### @2=1 /* INT meta=0 nullable=0 is_null=0 */ +### SET +### @1=20 /* INT meta=0 nullable=0 is_null=0 */ +### @2=1 /* INT meta=0 nullable=0 is_null=0 */ +# Number of rows: 4 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-316 ddl +/*!100001 SET @@session.gtid_seq_no=316*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1`,`t2` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-317 ddl +/*!100001 SET @@session.gtid_seq_no=317*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1(c_char_utf8 CHAR(10) , +c_varchar_utf8 char(10) , +c_text_utf8 blob ) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-318 +/*!100001 SET @@session.gtid_seq_no=318*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT into t1 values("B", "B", REPEAT("#", 2000)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='B' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @2='B' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @3='################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-319 ddl +/*!100001 SET @@session.gtid_seq_no=319*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [0-1-319] +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000002 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-320 +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=320*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1dec102 VALUES (-999.99) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1dec102` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F + +Error: Found Old DECIMAL (mysql-4.1 or earlier). Not enough metadata to display the value. +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [0-1-323] +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000002 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000003 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-324 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=324*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=1411383296/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 (a GEOMETRY DEFAULT NULL) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-325 +/*!100001 SET @@session.gtid_seq_no=325*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (NULL) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=NULL /* GEOMETRY meta=4 nullable=1 is_null=1 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-326 +/*!100001 SET @@session.gtid_seq_no=326*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (POINT(10,10)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00$@\x00\x00\x00\x00\x00\x00$@' /* GEOMETRY meta=4 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-327 ddl +/*!100001 SET @@session.gtid_seq_no=327*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000004 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_frag.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_frag.result new file mode 100644 index 00000000..5c880cd5 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_frag.result @@ -0,0 +1,27 @@ +CREATE TABLE t (a TEXT); +RESET MASTER; +INSERT INTO t SET a=repeat('a', 1024); +SELECT a into @a from t; +FLUSH LOGS; +DELETE FROM t; +FOUND 1 /BINLOG @binlog_fragment_0, @binlog_fragment_1/ in mysqlbinlog.sql +SELECT a LIKE @a as 'true' FROM t; +true +1 +BINLOG number-of-fragments must be exactly two +BINLOG @binlog_fragment; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 +BINLOG @binlog_fragment, @binlog_fragment, @binlog_fragment; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' @binlog_fragment' at line 1 +SET @binlog_fragment_0='012345'; +SET @binlog_fragment_1='012345'; +BINLOG @binlog_fragment_0, @binlog_fragment_1; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use +SET @binlog_fragment_0='012345'; +BINLOG @binlog_fragment_0, @binlog_fragment_not_exist; +ERROR 42000: Incorrect argument type to variable 'binlog_fragment_not_exist' +SET @a= '42'; +BINLOG @a, @a; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use +# Cleanup +DROP TABLE t; diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result new file mode 100644 index 00000000..5fce079e --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result @@ -0,0 +1,6374 @@ +set sql_mode=""; +SET NAMES 'utf8'; +# +# Preparatory cleanup. +# +DROP TABLE IF EXISTS t1, t2, t3; +# +# We need a fixed timestamp to avoid varying results. +# +SET timestamp=1000000000; +# +# =================================================== +# Test #1 - Insert/update/delete with all data types. +# =================================================== +# +# Delete all existing binary logs. +# +RESET MASTER; +# +# Create a test table with all data types. +# +CREATE TABLE t1 ( +c01 BIT, +c02 BIT(64), +c03 TINYINT, +c04 TINYINT UNSIGNED, +c05 TINYINT ZEROFILL, +c06 BOOL, +c07 SMALLINT, +c08 SMALLINT UNSIGNED, +c09 SMALLINT ZEROFILL, +c10 MEDIUMINT, +c11 MEDIUMINT UNSIGNED, +c12 MEDIUMINT ZEROFILL, +c13 INT, +c14 INT UNSIGNED, +c15 INT ZEROFILL, +c16 BIGINT, +c17 BIGINT UNSIGNED, +c18 BIGINT ZEROFILL, +c19 FLOAT, +c20 FLOAT UNSIGNED, +c21 FLOAT ZEROFILL, +c22 DOUBLE, +c23 DOUBLE UNSIGNED, +c24 DOUBLE ZEROFILL, +c25 DECIMAL, +c26 DECIMAL UNSIGNED, +c27 DECIMAL ZEROFILL, +# +c28 DATE, +c29 DATETIME, +c30 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, +c31 TIME, +c32 YEAR, +# +c33 CHAR, +c34 CHAR(0), +c35 CHAR(1), +c36 CHAR(255), +c37 NATIONAL CHAR, +c38 NATIONAL CHAR(0), +c39 NATIONAL CHAR(1), +c40 NATIONAL CHAR(255), +c41 CHAR CHARACTER SET UCS2, +c42 CHAR(0) CHARACTER SET UCS2, +c43 CHAR(1) CHARACTER SET UCS2, +c44 CHAR(255) CHARACTER SET UCS2, +# +c45 VARCHAR(0), +c46 VARCHAR(1), +c47 VARCHAR(255), +c48 VARCHAR(261), +c49 NATIONAL VARCHAR(0), +c50 NATIONAL VARCHAR(1), +c51 NATIONAL VARCHAR(255), +c52 NATIONAL VARCHAR(261), +c53 VARCHAR(0) CHARACTER SET UCS2, +c54 VARCHAR(1) CHARACTER SET UCS2, +c55 VARCHAR(255) CHARACTER SET UCS2, +c56 VARCHAR(261) CHARACTER SET UCS2, +# +c57 BINARY, +c58 BINARY(0), +c59 BINARY(1), +c60 BINARY(255), +# +c61 VARBINARY(0), +c62 VARBINARY(1), +c63 VARBINARY(255), +c64 VARBINARY(261), +# +c65 TINYBLOB, +c66 TINYTEXT, +c67 TINYTEXT CHARACTER SET UCS2, +c68 BLOB, +c69 TEXT, +c70 TEXT CHARACTER SET UCS2, +c71 MEDIUMBLOB, +c72 MEDIUMTEXT, +c73 MEDIUMTEXT CHARACTER SET UCS2, +c74 LONGBLOB, +c75 LONGTEXT, +c76 LONGTEXT CHARACTER SET UCS2, +# +c77 ENUM('a','b','c'), +c78 SET('a','b','c'), +# +crn INT -- row number +) ENGINE=InnoDB DEFAULT CHARSET latin1; +# +# Insert minimum values. +# +INSERT INTO t1 VALUES ( +b'0', -- c01 +b'0000000000000000000000000000000000000000000000000000000000000000', -- c02 +-128, -- c03 +0, -- c04 +000, -- c05 +false, -- c06 +-32768, -- c07 +0, -- c08 +00000, -- c09 +-8388608, -- c10 +0, -- c11 +00000000, -- c12 +-2147483648, -- c13 +0, -- c14 +0000000000, -- c15 +-9223372036854775808, -- c16 +0, -- c17 +00000000000000000000, -- c18 +-3.402823466E+38, -- c19 +1.175494351E-38, -- c20 +000000000000, -- c21 +-1.7976931348623E+308, -- c22 three digits cut for ps-protocol +2.2250738585072E-308, -- c23 three digits cut for ps-protocol +0000000000000000000000, -- c24 +-9999999999, -- c25 +0, -- c26 +0000000000, -- c27 +# +'1000-01-01', -- c28 +'1000-01-01 00:00:00', -- c29 +'1970-01-02 00:00:01', -- c30 one day later due to timezone issues +'-838:59:59', -- c31 +'1901', -- c32 +# +'', -- c33 +'', -- c34 +'', -- c35 +'', -- c36 +'', -- c37 +'', -- c38 +'', -- c39 +'', -- c40 +'', -- c41 +'', -- c42 +'', -- c43 +'', -- c44 +# +'', -- c45 +'', -- c46 +'', -- c47 +'', -- c48 +'', -- c49 +'', -- c50 +'', -- c51 +'', -- c52 +'', -- c53 +'', -- c54 +'', -- c55 +'', -- c56 +# +'', -- c57 +'', -- c58 +'', -- c59 +'', -- c60 +# +'', -- c61 +'', -- c62 +'', -- c63 +'', -- c64 +# +'', -- c65 +'', -- c66 +'', -- c67 +'', -- c68 +'', -- c69 +'', -- c70 +'', -- c71 +'', -- c72 +'', -- c73 +'', -- c74 +'', -- c75 +'', -- c76 +# +'a', -- c77 +'', -- c78 +# +1 -- crn -- row number +); +# +# Insert maximum values. +# +INSERT INTO t1 VALUES ( +b'1', -- c01 +b'1111111111111111111111111111111111111111111111111111111111111111', -- c02 +127, -- c03 +255, -- c04 +255, -- c05 +true, -- c06 +32767, -- c07 +65535, -- c08 +65535, -- c09 +8388607, -- c10 +16777215, -- c11 +16777215, -- c12 +2147483647, -- c13 +4294967295, -- c14 +4294967295, -- c15 +9223372036854775807, -- c16 +18446744073709551615, -- c17 +18446744073709551615, -- c18 +3.402823466E+38, -- c19 +3.402823466E+38, -- c20 +3.402823466E+38, -- c21 +1.7976931348623E+308, -- c22 three digits cut for ps-protocol +1.7976931348623E+308, -- c23 three digits cut for ps-protocol +1.7976931348623E+308, -- c24 three digits cut for ps-protocol +9999999999, -- c25 +9999999999, -- c26 +9999999999, -- c27 +# +'9999-12-31', -- c28 +'9999-12-31 23:59:59', -- c29 +'2038-01-08 03:14:07', -- c30 one day earlier due to timezone issues +'838:59:59', -- c31 +'2155', -- c32 +# +x'ff', -- c33 +'', -- c34 +x'ff', -- c35 +REPEAT(x'ff',255), -- c36 +_utf8 x'efbfbf', -- c37 +'', -- c38 +_utf8 x'efbfbf', -- c39 +REPEAT(_utf8 x'efbfbf',255), -- c40 +_ucs2 x'ffff', -- c41 +'', -- c42 +_ucs2 x'ffff', -- c43 +REPEAT(_ucs2 x'ffff',255), -- c44 +# +'', -- c45 +x'ff', -- c46 +REPEAT(x'ff',255), -- c47 +REPEAT(x'ff',261), -- c48 +'', -- c49 +_utf8 x'efbfbf', -- c50 +REPEAT(_utf8 x'efbfbf',255), -- c51 +REPEAT(_utf8 x'efbfbf',261), -- c52 +'', -- c53 +_ucs2 x'ffff', -- c54 +REPEAT(_ucs2 x'ffff',255), -- c55 +REPEAT(_ucs2 x'ffff',261), -- c56 +# +x'ff', -- c57 +'', -- c58 +x'ff', -- c59 +REPEAT(x'ff',255), -- c60 +# +'', -- c61 +x'ff', -- c62 +REPEAT(x'ff',255), -- c63 +REPEAT(x'ff',261), -- c64 +# +'tinyblob', -- c65 not using maximum value here +'tinytext', -- c66 not using maximum value here +'tinytext-ucs2', -- c67 not using maximum value here +'blob', -- c68 not using maximum value here +'text', -- c69 not using maximum value here +'text-ucs2', -- c70 not using maximum value here +'mediumblob', -- c71 not using maximum value here +'mediumtext', -- c72 not using maximum value here +'mediumtext-ucs2', -- c73 not using maximum value here +'longblob', -- c74 not using maximum value here +'longtext', -- c75 not using maximum value here +'longtext-ucs2', -- c76 not using maximum value here +# +'c', -- c77 +'a,b,c', -- c78 +# +2 -- crn -- row number +); +# +# Insert a row with NULL values and one with arbitrary values. +# +INSERT INTO t1 VALUES ( +NULL, -- c01 +NULL, -- c02 +NULL, -- c03 +NULL, -- c04 +NULL, -- c05 +NULL, -- c06 +NULL, -- c07 +NULL, -- c08 +NULL, -- c09 +NULL, -- c10 +NULL, -- c11 +NULL, -- c12 +NULL, -- c13 +NULL, -- c14 +NULL, -- c15 +NULL, -- c16 +NULL, -- c17 +NULL, -- c18 +NULL, -- c19 +NULL, -- c20 +NULL, -- c21 +NULL, -- c22 +NULL, -- c23 +NULL, -- c24 +NULL, -- c25 +NULL, -- c26 +NULL, -- c27 +# +NULL, -- c28 +NULL, -- c29 +NULL, -- c30 +NULL, -- c31 +NULL, -- c32 +# +NULL, -- c33 +NULL, -- c34 +NULL, -- c35 +NULL, -- c36 +NULL, -- c37 +NULL, -- c38 +NULL, -- c39 +NULL, -- c40 +NULL, -- c41 +NULL, -- c42 +NULL, -- c43 +NULL, -- c44 +# +NULL, -- c45 +NULL, -- c46 +NULL, -- c47 +NULL, -- c48 +NULL, -- c49 +NULL, -- c50 +NULL, -- c51 +NULL, -- c52 +NULL, -- c53 +NULL, -- c54 +NULL, -- c55 +NULL, -- c56 +# +NULL, -- c57 +NULL, -- c58 +NULL, -- c59 +NULL, -- c60 +# +NULL, -- c61 +NULL, -- c62 +NULL, -- c63 +NULL, -- c64 +# +NULL, -- c65 +NULL, -- c66 +NULL, -- c67 +NULL, -- c68 +NULL, -- c69 +NULL, -- c70 +NULL, -- c71 +NULL, -- c72 +NULL, -- c73 +NULL, -- c74 +NULL, -- c75 +NULL, -- c76 +# +NULL, -- c77 +NULL, -- c78 +# +3 -- crn -- row number +), ( +b'1', -- c01 +b'1111111111111111111111111111111111111111111111111111111111111111', -- c02 +127, -- c03 +0, -- c04 +001, -- c05 +true, -- c06 +32767, -- c07 +0, -- c08 +00001, -- c09 +8388607, -- c10 +0, -- c11 +00000001, -- c12 +2147483647, -- c13 +0, -- c14 +0000000001, -- c15 +9223372036854775807, -- c16 +0, -- c17 +00000000000000000001, -- c18 +-1.175494351E-38, -- c19 +1.175494351E-38, -- c20 +000000000000001, -- c21 +-2.2250738585072E-308, -- c22 +2.2250738585072E-308, -- c23 +00000000000000000000001, -- c24 +-9999999999, -- c25 +9999999999, -- c26 +0000000001, -- c27 +# +'2008-08-04', -- c28 +'2008-08-04 16:18:06', -- c29 +'2008-08-04 16:18:24', -- c30 +'16:18:47', -- c31 +'2008', -- c32 +# +'a', -- c33 +'', -- c34 +'e', -- c35 +REPEAT('i',255), -- c36 +_utf8 x'c3a4', -- c37 +'', -- c38 +_utf8 x'c3b6', -- c39 +REPEAT(_utf8 x'c3bc',255), -- c40 +_ucs2 x'00e4', -- c41 +'', -- c42 +_ucs2 x'00f6', -- c43 +REPEAT(_ucs2 x'00fc',255), -- c44 +# +'', -- c45 +'a', -- c46 +REPEAT('e',255), -- c47 +REPEAT('i',261), -- c48 +'', -- c49 +_utf8 x'c3a4', -- c50 +REPEAT(_utf8 x'c3b6',255), -- c51 +REPEAT(_utf8 x'c3bc',261), -- c52 +'', -- c53 +_ucs2 x'00e4', -- c54 +REPEAT(_ucs2 x'00f6',255), -- c55 +REPEAT(_ucs2 x'00fc',261), -- c56 +# +'0', -- c57 +'', -- c58 +'1', -- c59 +REPEAT('1',255), -- c60 +# +'', -- c61 +'b', -- c62 +REPEAT('c',255), -- c63 +REPEAT('\'',261), -- c64 + # + 'tinyblob', -- c65 + 'tinytext', -- c66 + 'tinytext-ucs2', -- c67 + 'blob', -- c68 + 'text', -- c69 + 'text-ucs2', -- c70 + 'mediumblob', -- c71 + 'mediumtext', -- c72 + 'mediumtext-ucs2', -- c73 + 'longblob', -- c74 + 'longtext', -- c75 + 'longtext-ucs2', -- c76 + # + 'b', -- c77 + 'b,c', -- c78 + # + 4 -- crn -- row number + ); +# +# Show what we have in the table. +# Do not display bit type output. It's binary and confuses diff. +# Also BINARY with nul-bytes should be avoided. +# +SELECT * FROM t1; +c01 # +c02 # +c03 -128 +c04 0 +c05 000 +c06 0 +c07 -32768 +c08 0 +c09 00000 +c10 -8388608 +c11 0 +c12 00000000 +c13 -2147483648 +c14 0 +c15 0000000000 +c16 -9223372036854775808 +c17 0 +c18 00000000000000000000 +c19 -3.40282e38 +c20 1.17549e-38 +c21 000000000000 +c22 -1.7976931348623e308 +c23 2.2250738585072e-308 +c24 0000000000000000000000 +c25 -9999999999 +c26 0 +c27 0000000000 +c28 1000-01-01 +c29 1000-01-01 00:00:00 +c30 1970-01-02 00:00:01 +c31 -838:59:59 +c32 1901 +c33 +c34 +c35 +c36 +c37 +c38 +c39 +c40 +c41 +c42 +c43 +c44 +c45 +c46 +c47 +c48 +c49 +c50 +c51 +c52 +c53 +c54 +c55 +c56 +c57 # +c58 # +c59 # +c60 # +c61 +c62 +c63 +c64 +c65 +c66 +c67 +c68 +c69 +c70 +c71 +c72 +c73 +c74 +c75 +c76 +c77 a +c78 +crn 1 +c01 # +c02 # +c03 127 +c04 255 +c05 255 +c06 1 +c07 32767 +c08 65535 +c09 65535 +c10 8388607 +c11 16777215 +c12 16777215 +c13 2147483647 +c14 4294967295 +c15 4294967295 +c16 9223372036854775807 +c17 18446744073709551615 +c18 18446744073709551615 +c19 3.40282e38 +c20 3.40282e38 +c21 003.40282e38 +c22 1.7976931348623e308 +c23 1.7976931348623e308 +c24 0001.7976931348623e308 +c25 9999999999 +c26 9999999999 +c27 9999999999 +c28 9999-12-31 +c29 9999-12-31 23:59:59 +c30 2038-01-08 03:14:07 +c31 838:59:59 +c32 2155 +c33 ÿ +c34 +c35 ÿ +c36 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c37 ï¿¿ +c38 +c39 ï¿¿ +c40 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c41 ï¿¿ +c42 +c43 ï¿¿ +c44 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c45 +c46 ÿ +c47 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c48 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c49 +c50 ï¿¿ +c51 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c52 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c53 +c54 ï¿¿ +c55 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c56 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c57 # +c58 # +c59 # +c60 # +c61 +c62 ÿ +c63 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c64 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c65 tinyblob +c66 tinytext +c67 tinytext-ucs2 +c68 blob +c69 text +c70 text-ucs2 +c71 mediumblob +c72 mediumtext +c73 mediumtext-ucs2 +c74 longblob +c75 longtext +c76 longtext-ucs2 +c77 c +c78 a,b,c +crn 2 +c01 # +c02 # +c03 NULL +c04 NULL +c05 NULL +c06 NULL +c07 NULL +c08 NULL +c09 NULL +c10 NULL +c11 NULL +c12 NULL +c13 NULL +c14 NULL +c15 NULL +c16 NULL +c17 NULL +c18 NULL +c19 NULL +c20 NULL +c21 NULL +c22 NULL +c23 NULL +c24 NULL +c25 NULL +c26 NULL +c27 NULL +c28 NULL +c29 NULL +c30 2001-09-09 04:46:40 +c31 NULL +c32 NULL +c33 NULL +c34 NULL +c35 NULL +c36 NULL +c37 NULL +c38 NULL +c39 NULL +c40 NULL +c41 NULL +c42 NULL +c43 NULL +c44 NULL +c45 NULL +c46 NULL +c47 NULL +c48 NULL +c49 NULL +c50 NULL +c51 NULL +c52 NULL +c53 NULL +c54 NULL +c55 NULL +c56 NULL +c57 # +c58 # +c59 # +c60 # +c61 NULL +c62 NULL +c63 NULL +c64 NULL +c65 NULL +c66 NULL +c67 NULL +c68 NULL +c69 NULL +c70 NULL +c71 NULL +c72 NULL +c73 NULL +c74 NULL +c75 NULL +c76 NULL +c77 NULL +c78 NULL +crn 3 +c01 # +c02 # +c03 127 +c04 0 +c05 001 +c06 1 +c07 32767 +c08 0 +c09 00001 +c10 8388607 +c11 0 +c12 00000001 +c13 2147483647 +c14 0 +c15 0000000001 +c16 9223372036854775807 +c17 0 +c18 00000000000000000001 +c19 -1.17549e-38 +c20 1.17549e-38 +c21 000000000001 +c22 -2.2250738585072e-308 +c23 2.2250738585072e-308 +c24 0000000000000000000001 +c25 -9999999999 +c26 9999999999 +c27 0000000001 +c28 2008-08-04 +c29 2008-08-04 16:18:06 +c30 2008-08-04 16:18:24 +c31 16:18:47 +c32 2008 +c33 a +c34 +c35 e +c36 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +c37 ä +c38 +c39 ö +c40 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c41 ä +c42 +c43 ö +c44 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c45 +c46 a +c47 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +c48 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +c49 +c50 ä +c51 ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö +c52 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c53 +c54 ä +c55 ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö +c56 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c57 # +c58 # +c59 # +c60 # +c61 +c62 b +c63 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +c64 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +c65 tinyblob +c66 tinytext +c67 tinytext-ucs2 +c68 blob +c69 text +c70 text-ucs2 +c71 mediumblob +c72 mediumtext +c73 mediumtext-ucs2 +c74 longblob +c75 longtext +c76 longtext-ucs2 +c77 b +c78 b,c +crn 4 +# +# NOTE: For matching FLOAT and DOUBLE values in WHERE conditions, +# don't use exact match, but < or > and tweak the numbers a bit. +# +# Show how much rows are affected by each statement. +# +# +# Update min values to max values. +# +UPDATE t1 SET +c01 = b'1', +c02 = b'1111111111111111111111111111111111111111111111111111111111111111', +c03 = 127, +c04 = 255, +c05 = 255, +c06 = true, +c07 = 32767, +c08 = 65535, +c09 = 65535, +c10 = 8388607, +c11 = 16777215, +c12 = 16777215, +c13 = 2147483647, +c14 = 4294967295, +c15 = 4294967295, +c16 = 9223372036854775807, +c17 = 18446744073709551615, +c18 = 18446744073709551615, +c19 = 3.402823466E+38, +c20 = 3.402823466E+38, +c21 = 3.402823466E+38, +c22 = 1.7976931348623E+308, +c23 = 1.7976931348623E+308, +c24 = 1.7976931348623E+308, +c25 = 9999999999, +c26 = 9999999999, +c27 = 9999999999, +# +c28 = '9999-12-31', +c29 = '9999-12-31 23:59:59', +c30 = '2038-01-08 03:14:07', +c31 = '838:59:59', +c32 = '2155', +# +c33 = x'ff', +c34 = '', +c35 = x'ff', +c36 = REPEAT(x'ff',255), +c37 = _utf8 x'efbfbf', +c38 = '', +c39 = _utf8 x'efbfbf', +c40 = REPEAT(_utf8 x'efbfbf',255), +c41 = _ucs2 x'ffff', +c42 = '', +c43 = _ucs2 x'ffff', +c44 = REPEAT(_ucs2 x'ffff',255), +# +c45 = '', +c46 = x'ff', +c47 = REPEAT(x'ff',255), +c48 = REPEAT(x'ff',261), +c49 = '', +c50 = _utf8 x'efbfbf', +c51 = REPEAT(_utf8 x'efbfbf',255), +c52 = REPEAT(_utf8 x'efbfbf',261), +c53 = '', +c54 = _ucs2 x'ffff', +c55 = REPEAT(_ucs2 x'ffff',255), +c56 = REPEAT(_ucs2 x'ffff',261), +# +c57 = x'ff', +c58 = '', +c59 = x'ff', +c60 = REPEAT(x'ff',255), +# +c61 = '', +c62 = x'ff', +c63 = REPEAT(x'ff',255), +c64 = REPEAT(x'ff',261), +# +c65 = 'tinyblob', +c66 = 'tinytext', +c67 = 'tinytext-ucs2', +c68 = 'blob', +c69 = 'text', +c70 = 'text-ucs2', +c71 = 'mediumblob', +c72 = 'mediumtext', +c73 = 'mediumtext-ucs2', +c74 = 'longblob', +c75 = 'longtext', +c76 = 'longtext-ucs2', +# +c77 = 'c', +c78 = 'a,b,c', +# +crn = crn +# +WHERE +# +c01 = b'0' AND +c02 = b'0000000000000000000000000000000000000000000000000000000000000000' AND +c03 = -128 AND +c04 = 0 AND +c05 = 000 AND +c06 = false AND +c07 = -32768 AND +c08 = 0 AND +c09 = 00000 AND +c10 = -8388608 AND +c11 = 0 AND +c12 = 00000000 AND +c13 = -2147483648 AND +c14 = 0 AND +c15 = 0000000000 AND +c16 = -9223372036854775808 AND +c17 = 0 AND +c18 = 00000000000000000000 AND +c19 < -3.402823465E+38 AND +c20 < 1.175494352E-38 AND +c21 = 000000000000 AND +c22 < -1.7976931348622E+308 AND +c23 < 2.2250738585073E-308 AND +c24 = 0000000000000000000000 AND +c25 = -9999999999 AND +c26 = 0 AND +c27 = 0000000000 AND +# +c28 = '1000-01-01' AND +c29 = '1000-01-01 00:00:00' AND +c30 = '1970-01-02 00:00:01' AND +c31 = '-838:59:59' AND +c32 = '1901' AND +# +c33 = '' AND +c34 = '' AND +c35 = '' AND +c36 = '' AND +c37 = '' AND +c38 = '' AND +c39 = '' AND +c40 = '' AND +c41 = '' AND +c42 = '' AND +c43 = '' AND +c44 = '' AND +# +c45 = '' AND +c46 = '' AND +c47 = '' AND +c48 = '' AND +c49 = '' AND +c50 = '' AND +c51 = '' AND +c52 = '' AND +c53 = '' AND +c54 = '' AND +c55 = '' AND +c56 = '' AND +# +# this does not reproduce the inserted value: c57 = '' AND +c58 = '' AND +# this does not reproduce the inserted value: c59 = '' AND +# this does not reproduce the inserted value: c60 = '' AND +# +c61 = '' AND +c62 = '' AND +c63 = '' AND +c64 = '' AND +# +c65 = '' AND +c66 = '' AND +c67 = '' AND +c68 = '' AND +c69 = '' AND +c70 = '' AND +c71 = '' AND +c72 = '' AND +c73 = '' AND +c74 = '' AND +c75 = '' AND +c76 = '' AND +# +c77 = 'a' AND +c78 = '' AND +# +crn = 1; +affected rows: 1 +info: Rows matched: 1 Changed: 1 Warnings: 0 +# +# Update max values to min values. +# +UPDATE t1 SET +c01 = b'0', +c02 = b'0000000000000000000000000000000000000000000000000000000000000000', +c03 = -128, +c04 = 0, +c05 = 000, +c06 = false, +c07 = -32768, +c08 = 0, +c09 = 00000, +c10 = -8388608, +c11 = 0, +c12 = 00000000, +c13 = -2147483648, +c14 = 0, +c15 = 0000000000, +c16 = -9223372036854775808, +c17 = 0, +c18 = 00000000000000000000, +c19 = -3.402823466E+38, +c20 = 1.175494351E-38, +c21 = 000000000000, +c22 = -1.7976931348623E+308, +c23 = 2.2250738585072E-308, +c24 = 0000000000000000000000, +c25 = -9999999999, +c26 = 0, +c27 = 0000000000, +# +c28 = '1000-01-01', +c29 = '1000-01-01 00:00:00', +c30 = '1970-01-02 00:00:01', +c31 = '-838:59:59', +c32 = '1901', +# +c33 = '', +c34 = '', +c35 = '', +c36 = '', +c37 = '', +c38 = '', +c39 = '', +c40 = '', +c41 = '', +c42 = '', +c43 = '', +c44 = '', +# +c45 = '', +c46 = '', +c47 = '', +c48 = '', +c49 = '', +c50 = '', +c51 = '', +c52 = '', +c53 = '', +c54 = '', +c55 = '', +c56 = '', +# +c57 = '', +c58 = '', +c59 = '', +c60 = '', +# +c61 = '', +c62 = '', +c63 = '', +c64 = '', +# +c65 = '', +c66 = '', +c67 = '', +c68 = '', +c69 = '', +c70 = '', +c71 = '', +c72 = '', +c73 = '', +c74 = '', +c75 = '', +c76 = '', +# +c77 = 'a', +c78 = '', +# +crn = crn +# +WHERE +# +c01 = b'1' AND +# the below does not reproduce the inserted value: +#c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +c03 = 127 AND +c04 = 255 AND +c05 = 255 AND +c06 = true AND +c07 = 32767 AND +c08 = 65535 AND +c09 = 65535 AND +c10 = 8388607 AND +c11 = 16777215 AND +c12 = 16777215 AND +c13 = 2147483647 AND +c14 = 4294967295 AND +c15 = 4294967295 AND +c16 = 9223372036854775807 AND +c17 = 18446744073709551615 AND +c18 = 18446744073709551615 AND +c19 > 3.402823465E+38 AND +c20 > 3.402823465E+38 AND +c21 > 3.402823465E+38 AND +c22 > 1.7976931348622E+308 AND +c23 > 1.7976931348622E+308 AND +c24 > 1.7976931348622E+308 AND +c25 = 9999999999 AND +c26 = 9999999999 AND +c27 = 9999999999 AND +# +c28 = '9999-12-31' AND +c29 = '9999-12-31 23:59:59' AND +c30 = '2038-01-08 03:14:07' AND +c31 = '838:59:59' AND +c32 = '2155' AND +# +c33 = x'ff' AND +c34 = '' AND +c35 = x'ff' AND +c36 = REPEAT(x'ff',255) AND +c37 = _utf8 x'efbfbf' AND +c38 = '' AND +c39 = _utf8 x'efbfbf' AND +c40 = REPEAT(_utf8 x'efbfbf',255) AND +c41 = _ucs2 x'ffff' AND +c42 = '' AND +c43 = _ucs2 x'ffff' AND +c44 = REPEAT(_ucs2 x'ffff',255) AND +# +c45 = '' AND +c46 = x'ff' AND +c47 = REPEAT(x'ff',255) AND +c48 = REPEAT(x'ff',261) AND +c49 = '' AND +c50 = _utf8 x'efbfbf' AND +c51 = REPEAT(_utf8 x'efbfbf',255) AND +c52 = REPEAT(_utf8 x'efbfbf',261) AND +c53 = '' AND +c54 = _ucs2 x'ffff' AND +c55 = REPEAT(_ucs2 x'ffff',255) AND +c56 = REPEAT(_ucs2 x'ffff',261) AND +# +c57 = x'ff' AND +c58 = '' AND +c59 = x'ff' AND +c60 = REPEAT(x'ff',255) AND +# +c61 = '' AND +c62 = x'ff' AND +c63 = REPEAT(x'ff',255) AND +c64 = REPEAT(x'ff',261) AND +# +c65 = 'tinyblob' AND +c66 = 'tinytext' AND +c67 = 'tinytext-ucs2' AND +c68 = 'blob' AND +c69 = 'text' AND +c70 = 'text-ucs2' AND +c71 = 'mediumblob' AND +c72 = 'mediumtext' AND +c73 = 'mediumtext-ucs2' AND +c74 = 'longblob' AND +c75 = 'longtext' AND +c76 = 'longtext-ucs2' AND +# +c77 = 'c' AND +c78 = 'a,b,c' AND +# +crn = 2; +affected rows: 1 +info: Rows matched: 1 Changed: 1 Warnings: 0 +# +# Update NULL values to arbitrary values. +# +UPDATE t1 SET +c01 = b'1', +c02 = b'1111111111111111111111111111111111111111111111111111111111111111', +c03 = 127, +c04 = 0, +c05 = 001, +c06 = true, +c07 = 32767, +c08 = 0, +c09 = 00001, +c10 = 8388607, +c11 = 0, +c12 = 00000001, +c13 = 2147483647, +c14 = 0, +c15 = 0000000001, +c16 = 9223372036854775807, +c17 = 0, +c18 = 00000000000000000001, +c19 = -1.175494351E-38, +c20 = 1.175494351E-38, +c21 = 000000000000001, +c22 = -2.2250738585072E-308, +c23 = 2.2250738585072E-308, +c24 = 00000000000000000000001, +c25 = -9999999999, +c26 = 9999999999, +c27 = 0000000001, +# +c28 = '2008-08-04', +c29 = '2008-08-04 16:18:06', +c30 = '2008-08-04 16:18:24', +c31 = '16:18:47', +c32 = '2008', +# +c33 = 'a', +c34 = '', +c35 = 'e', +c36 = REPEAT('i',255), +c37 = _utf8 x'c3a4', +c38 = '', +c39 = _utf8 x'c3b6', +c40 = REPEAT(_utf8 x'c3bc',255), +c41 = _ucs2 x'00e4', +c42 = '', +c43 = _ucs2 x'00f6', +c44 = REPEAT(_ucs2 x'00fc',255), +# +c45 = '', +c46 = 'a', +c47 = REPEAT('e',255), +c48 = REPEAT('i',261), +c49 = '', +c50 = _utf8 x'c3a4', +c51 = REPEAT(_utf8 x'c3b6',255), +c52 = REPEAT(_utf8 x'c3bc',261), +c53 = '', +c54 = _ucs2 x'00e4', +c55 = REPEAT(_ucs2 x'00f6',255), +c56 = REPEAT(_ucs2 x'00fc',261), +# +c57 = '0', +c58 = '', +c59 = '1', +c60 = REPEAT('1',255), +# +c61 = '', +c62 = 'b', +c63 = REPEAT('c',255), +c64 = REPEAT('\'',261), + # + c65 = 'tinyblob', + c66 = 'tinytext', + c67 = 'tinytext-ucs2', + c68 = 'blob', + c69 = 'text', + c70 = 'text-ucs2', + c71 = 'mediumblob', + c72 = 'mediumtext', + c73 = 'mediumtext-ucs2', + c74 = 'longblob', + c75 = 'longtext', + c76 = 'longtext-ucs2', + # + c77 = 'b', + c78 = 'b,c', + # + crn = crn + # + WHERE + # + c01 IS NULL AND + c02 IS NULL AND + c03 IS NULL AND + c04 IS NULL AND + c05 IS NULL AND + c06 IS NULL AND + c07 IS NULL AND + c08 IS NULL AND + c09 IS NULL AND + c10 IS NULL AND + c11 IS NULL AND + c12 IS NULL AND + c13 IS NULL AND + c14 IS NULL AND + c15 IS NULL AND + c16 IS NULL AND + c17 IS NULL AND + c18 IS NULL AND + c19 IS NULL AND + c20 IS NULL AND + c21 IS NULL AND + c22 IS NULL AND + c23 IS NULL AND + c24 IS NULL AND + c25 IS NULL AND + c26 IS NULL AND + c27 IS NULL AND + # + c28 IS NULL AND + c29 IS NULL AND + # this got a timestamp instead of NULL: c30 IS NULL AND + c31 IS NULL AND + c32 IS NULL AND + # + c33 IS NULL AND + c34 IS NULL AND + c35 IS NULL AND + c36 IS NULL AND + c37 IS NULL AND + c38 IS NULL AND + c39 IS NULL AND + c40 IS NULL AND + c41 IS NULL AND + c42 IS NULL AND + c43 IS NULL AND + c44 IS NULL AND + # + c45 IS NULL AND + c46 IS NULL AND + c47 IS NULL AND + c48 IS NULL AND + c49 IS NULL AND + c50 IS NULL AND + c51 IS NULL AND + c52 IS NULL AND + c53 IS NULL AND + c54 IS NULL AND + c55 IS NULL AND + c56 IS NULL AND + # + c57 IS NULL AND + c58 IS NULL AND + c59 IS NULL AND + c60 IS NULL AND + # + c61 IS NULL AND + c62 IS NULL AND + c63 IS NULL AND + c64 IS NULL AND + # + c65 IS NULL AND + c66 IS NULL AND + c67 IS NULL AND + c68 IS NULL AND + c69 IS NULL AND + c70 IS NULL AND + c71 IS NULL AND + c72 IS NULL AND + c73 IS NULL AND + c74 IS NULL AND + c75 IS NULL AND + c76 IS NULL AND + # + c77 IS NULL AND + c78 IS NULL AND + # + crn = 3; +affected rows: 1 +info: Rows matched: 1 Changed: 1 Warnings: 0 +# +# Update arbitrary values to NULL values. +# +UPDATE t1 SET +c01 = NULL, +c02 = NULL, +c03 = NULL, +c04 = NULL, +c05 = NULL, +c06 = NULL, +c07 = NULL, +c08 = NULL, +c09 = NULL, +c10 = NULL, +c11 = NULL, +c12 = NULL, +c13 = NULL, +c14 = NULL, +c15 = NULL, +c16 = NULL, +c17 = NULL, +c18 = NULL, +c19 = NULL, +c20 = NULL, +c21 = NULL, +c22 = NULL, +c23 = NULL, +c24 = NULL, +c25 = NULL, +c26 = NULL, +c27 = NULL, +# +c28 = NULL, +c29 = NULL, +c30 = NULL, +c31 = NULL, +c32 = NULL, +# +c33 = NULL, +c34 = NULL, +c35 = NULL, +c36 = NULL, +c37 = NULL, +c38 = NULL, +c39 = NULL, +c40 = NULL, +c41 = NULL, +c42 = NULL, +c43 = NULL, +c44 = NULL, +# +c45 = NULL, +c46 = NULL, +c47 = NULL, +c48 = NULL, +c49 = NULL, +c50 = NULL, +c51 = NULL, +c52 = NULL, +c53 = NULL, +c54 = NULL, +c55 = NULL, +c56 = NULL, +# +c57 = NULL, +c58 = NULL, +c59 = NULL, +c60 = NULL, +# +c61 = NULL, +c62 = NULL, +c63 = NULL, +c64 = NULL, +# +c65 = NULL, +c66 = NULL, +c67 = NULL, +c68 = NULL, +c69 = NULL, +c70 = NULL, +c71 = NULL, +c72 = NULL, +c73 = NULL, +c74 = NULL, +c75 = NULL, +c76 = NULL, +# +c77 = NULL, +c78 = NULL, +# +crn = crn +# +WHERE +# +c01 = b'1' AND +# the below does not reproduce the inserted value: +#c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +c03 = 127 AND +c04 = 0 AND +c05 = 001 AND +c06 = true AND +c07 = 32767 AND +c08 = 0 AND +c09 = 00001 AND +c10 = 8388607 AND +c11 = 0 AND +c12 = 00000001 AND +c13 = 2147483647 AND +c14 = 0 AND +c15 = 0000000001 AND +c16 = 9223372036854775807 AND +c17 = 0 AND +c18 = 00000000000000000001 AND +c19 > -1.175494352E-38 AND +c20 < 1.175494352E-38 AND +c21 = 000000000000001 AND +c22 > -2.2250738585073E-308 AND +c23 < 2.2250738585073E-308 AND +c24 = 00000000000000000000001 AND +c25 = -9999999999 AND +c26 = 9999999999 AND +c27 = 0000000001 AND +# +c28 = '2008-08-04' AND +c29 = '2008-08-04 16:18:06' AND +c30 = '2008-08-04 16:18:24' AND +c31 = '16:18:47' AND +c32 = '2008' AND +# +c33 = 'a' AND +c34 = '' AND +c35 = 'e' AND +c36 = REPEAT('i',255) AND +c37 = _utf8 x'c3a4' AND +c38 = '' AND +c39 = _utf8 x'c3b6' AND +c40 = REPEAT(_utf8 x'c3bc',255) AND +c41 = _ucs2 x'00e4' AND +c42 = '' AND +c43 = _ucs2 x'00f6' AND +c44 = REPEAT(_ucs2 x'00fc',255) AND +# +c45 = '' AND +c46 = 'a' AND +c47 = REPEAT('e',255) AND +c48 = REPEAT('i',261) AND +c49 = '' AND +c50 = _utf8 x'c3a4' AND +c51 = REPEAT(_utf8 x'c3b6',255) AND +c52 = REPEAT(_utf8 x'c3bc',261) AND +c53 = '' AND +c54 = _ucs2 x'00e4' AND +c55 = REPEAT(_ucs2 x'00f6',255) AND +c56 = REPEAT(_ucs2 x'00fc',261) AND +# +c57 = '0' AND +c58 = '' AND +c59 = '1' AND +c60 = REPEAT('1',255) AND +# +c61 = '' AND +c62 = 'b' AND +c63 = REPEAT('c',255) AND +c64 = REPEAT('\'',261) AND + # + c65 = 'tinyblob' AND + c66 = 'tinytext' AND + c67 = 'tinytext-ucs2' AND + c68 = 'blob' AND + c69 = 'text' AND + c70 = 'text-ucs2' AND + c71 = 'mediumblob' AND + c72 = 'mediumtext' AND + c73 = 'mediumtext-ucs2' AND + c74 = 'longblob' AND + c75 = 'longtext' AND + c76 = 'longtext-ucs2' AND + # + c77 = 'b' AND + c78 = 'b,c' AND + # + crn = 4; +affected rows: 1 +info: Rows matched: 1 Changed: 1 Warnings: 0 +# +# Show what we have in the table. +# Do not display bit type output. It's binary and confuses diff. +# Also BINARY with nul-bytes should be avoided. +# +SELECT * FROM t1; +c01 # +c02 # +c03 127 +c04 255 +c05 255 +c06 1 +c07 32767 +c08 65535 +c09 65535 +c10 8388607 +c11 16777215 +c12 16777215 +c13 2147483647 +c14 4294967295 +c15 4294967295 +c16 9223372036854775807 +c17 18446744073709551615 +c18 18446744073709551615 +c19 3.40282e38 +c20 3.40282e38 +c21 003.40282e38 +c22 1.7976931348623e308 +c23 1.7976931348623e308 +c24 0001.7976931348623e308 +c25 9999999999 +c26 9999999999 +c27 9999999999 +c28 9999-12-31 +c29 9999-12-31 23:59:59 +c30 2038-01-08 03:14:07 +c31 838:59:59 +c32 2155 +c33 ÿ +c34 +c35 ÿ +c36 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c37 ï¿¿ +c38 +c39 ï¿¿ +c40 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c41 ï¿¿ +c42 +c43 ï¿¿ +c44 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c45 +c46 ÿ +c47 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c48 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c49 +c50 ï¿¿ +c51 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c52 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c53 +c54 ï¿¿ +c55 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c56 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c57 # +c58 # +c59 # +c60 # +c61 +c62 ÿ +c63 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c64 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c65 tinyblob +c66 tinytext +c67 tinytext-ucs2 +c68 blob +c69 text +c70 text-ucs2 +c71 mediumblob +c72 mediumtext +c73 mediumtext-ucs2 +c74 longblob +c75 longtext +c76 longtext-ucs2 +c77 c +c78 a,b,c +crn 1 +c01 # +c02 # +c03 -128 +c04 0 +c05 000 +c06 0 +c07 -32768 +c08 0 +c09 00000 +c10 -8388608 +c11 0 +c12 00000000 +c13 -2147483648 +c14 0 +c15 0000000000 +c16 -9223372036854775808 +c17 0 +c18 00000000000000000000 +c19 -3.40282e38 +c20 1.17549e-38 +c21 000000000000 +c22 -1.7976931348623e308 +c23 2.2250738585072e-308 +c24 0000000000000000000000 +c25 -9999999999 +c26 0 +c27 0000000000 +c28 1000-01-01 +c29 1000-01-01 00:00:00 +c30 1970-01-02 00:00:01 +c31 -838:59:59 +c32 1901 +c33 +c34 +c35 +c36 +c37 +c38 +c39 +c40 +c41 +c42 +c43 +c44 +c45 +c46 +c47 +c48 +c49 +c50 +c51 +c52 +c53 +c54 +c55 +c56 +c57 # +c58 # +c59 # +c60 # +c61 +c62 +c63 +c64 +c65 +c66 +c67 +c68 +c69 +c70 +c71 +c72 +c73 +c74 +c75 +c76 +c77 a +c78 +crn 2 +c01 # +c02 # +c03 127 +c04 0 +c05 001 +c06 1 +c07 32767 +c08 0 +c09 00001 +c10 8388607 +c11 0 +c12 00000001 +c13 2147483647 +c14 0 +c15 0000000001 +c16 9223372036854775807 +c17 0 +c18 00000000000000000001 +c19 -1.17549e-38 +c20 1.17549e-38 +c21 000000000001 +c22 -2.2250738585072e-308 +c23 2.2250738585072e-308 +c24 0000000000000000000001 +c25 -9999999999 +c26 9999999999 +c27 0000000001 +c28 2008-08-04 +c29 2008-08-04 16:18:06 +c30 2008-08-04 16:18:24 +c31 16:18:47 +c32 2008 +c33 a +c34 +c35 e +c36 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +c37 ä +c38 +c39 ö +c40 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c41 ä +c42 +c43 ö +c44 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c45 +c46 a +c47 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +c48 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +c49 +c50 ä +c51 ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö +c52 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c53 +c54 ä +c55 ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö +c56 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c57 # +c58 # +c59 # +c60 # +c61 +c62 b +c63 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +c64 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +c65 tinyblob +c66 tinytext +c67 tinytext-ucs2 +c68 blob +c69 text +c70 text-ucs2 +c71 mediumblob +c72 mediumtext +c73 mediumtext-ucs2 +c74 longblob +c75 longtext +c76 longtext-ucs2 +c77 b +c78 b,c +crn 3 +c01 # +c02 # +c03 NULL +c04 NULL +c05 NULL +c06 NULL +c07 NULL +c08 NULL +c09 NULL +c10 NULL +c11 NULL +c12 NULL +c13 NULL +c14 NULL +c15 NULL +c16 NULL +c17 NULL +c18 NULL +c19 NULL +c20 NULL +c21 NULL +c22 NULL +c23 NULL +c24 NULL +c25 NULL +c26 NULL +c27 NULL +c28 NULL +c29 NULL +c30 2001-09-09 04:46:40 +c31 NULL +c32 NULL +c33 NULL +c34 NULL +c35 NULL +c36 NULL +c37 NULL +c38 NULL +c39 NULL +c40 NULL +c41 NULL +c42 NULL +c43 NULL +c44 NULL +c45 NULL +c46 NULL +c47 NULL +c48 NULL +c49 NULL +c50 NULL +c51 NULL +c52 NULL +c53 NULL +c54 NULL +c55 NULL +c56 NULL +c57 # +c58 # +c59 # +c60 # +c61 NULL +c62 NULL +c63 NULL +c64 NULL +c65 NULL +c66 NULL +c67 NULL +c68 NULL +c69 NULL +c70 NULL +c71 NULL +c72 NULL +c73 NULL +c74 NULL +c75 NULL +c76 NULL +c77 NULL +c78 NULL +crn 4 +affected rows: 4 +# +# Delete the row that has max values now. +# +DELETE FROM t1 WHERE +# +c01 = b'1' AND +# the below does not reproduce the inserted value: +#c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +c03 = 127 AND +c04 = 255 AND +c05 = 255 AND +c06 = true AND +c07 = 32767 AND +c08 = 65535 AND +c09 = 65535 AND +c10 = 8388607 AND +c11 = 16777215 AND +c12 = 16777215 AND +c13 = 2147483647 AND +c14 = 4294967295 AND +c15 = 4294967295 AND +c16 = 9223372036854775807 AND +c17 = 18446744073709551615 AND +c18 = 18446744073709551615 AND +c19 > 3.402823465E+38 AND +c20 > 3.402823465E+38 AND +c21 > 3.402823465E+38 AND +c22 > 1.7976931348622E+308 AND +c23 > 1.7976931348622E+308 AND +c24 > 1.7976931348622E+308 AND +c25 = 9999999999 AND +c26 = 9999999999 AND +c27 = 9999999999 AND +# +c28 = '9999-12-31' AND +c29 = '9999-12-31 23:59:59' AND +c30 = '2038-01-08 03:14:07' AND +c31 = '838:59:59' AND +c32 = '2155' AND +# +c33 = x'ff' AND +c34 = '' AND +c35 = x'ff' AND +c36 = REPEAT(x'ff',255) AND +c37 = _utf8 x'efbfbf' AND +c38 = '' AND +c39 = _utf8 x'efbfbf' AND +c40 = REPEAT(_utf8 x'efbfbf',255) AND +c41 = _ucs2 x'ffff' AND +c42 = '' AND +c43 = _ucs2 x'ffff' AND +c44 = REPEAT(_ucs2 x'ffff',255) AND +# +c45 = '' AND +c46 = x'ff' AND +c47 = REPEAT(x'ff',255) AND +c48 = REPEAT(x'ff',261) AND +c49 = '' AND +c50 = _utf8 x'efbfbf' AND +c51 = REPEAT(_utf8 x'efbfbf',255) AND +c52 = REPEAT(_utf8 x'efbfbf',261) AND +c53 = '' AND +c54 = _ucs2 x'ffff' AND +c55 = REPEAT(_ucs2 x'ffff',255) AND +c56 = REPEAT(_ucs2 x'ffff',261) AND +# +c57 = x'ff' AND +c58 = '' AND +c59 = x'ff' AND +c60 = REPEAT(x'ff',255) AND +# +c61 = '' AND +c62 = x'ff' AND +c63 = REPEAT(x'ff',255) AND +c64 = REPEAT(x'ff',261) AND +# +c65 = 'tinyblob' AND +c66 = 'tinytext' AND +c67 = 'tinytext-ucs2' AND +c68 = 'blob' AND +c69 = 'text' AND +c70 = 'text-ucs2' AND +c71 = 'mediumblob' AND +c72 = 'mediumtext' AND +c73 = 'mediumtext-ucs2' AND +c74 = 'longblob' AND +c75 = 'longtext' AND +c76 = 'longtext-ucs2' AND +# +c77 = 'c' AND +c78 = 'a,b,c' AND +# +crn = 1; +affected rows: 1 +# +# Delete the row that has min values now. +# +DELETE FROM t1 WHERE +# +c01 = b'0' AND +c02 = b'0000000000000000000000000000000000000000000000000000000000000000' AND +c03 = -128 AND +c04 = 0 AND +c05 = 000 AND +c06 = false AND +c07 = -32768 AND +c08 = 0 AND +c09 = 00000 AND +c10 = -8388608 AND +c11 = 0 AND +c12 = 00000000 AND +c13 = -2147483648 AND +c14 = 0 AND +c15 = 0000000000 AND +c16 = -9223372036854775808 AND +c17 = 0 AND +c18 = 00000000000000000000 AND +c19 < -3.402823465E+38 AND +c20 < 1.175494352E-38 AND +c21 = 000000000000 AND +c22 < -1.7976931348622E+308 AND +c23 < 2.2250738585073E-308 AND +c24 = 0000000000000000000000 AND +c25 = -9999999999 AND +c26 = 0 AND +c27 = 0000000000 AND +# +c28 = '1000-01-01' AND +c29 = '1000-01-01 00:00:00' AND +c30 = '1970-01-02 00:00:01' AND +c31 = '-838:59:59' AND +c32 = '1901' AND +# +c33 = '' AND +c34 = '' AND +c35 = '' AND +c36 = '' AND +c37 = '' AND +c38 = '' AND +c39 = '' AND +c40 = '' AND +c41 = '' AND +c42 = '' AND +c43 = '' AND +c44 = '' AND +# +c45 = '' AND +c46 = '' AND +c47 = '' AND +c48 = '' AND +c49 = '' AND +c50 = '' AND +c51 = '' AND +c52 = '' AND +c53 = '' AND +c54 = '' AND +c55 = '' AND +c56 = '' AND +# +# this does not reproduce the inserted value: c57 = '' AND +c58 = '' AND +# this does not reproduce the inserted value: c59 = '' AND +# this does not reproduce the inserted value: c60 = '' AND +# +c61 = '' AND +c62 = '' AND +c63 = '' AND +c64 = '' AND +# +c65 = '' AND +c66 = '' AND +c67 = '' AND +c68 = '' AND +c69 = '' AND +c70 = '' AND +c71 = '' AND +c72 = '' AND +c73 = '' AND +c74 = '' AND +c75 = '' AND +c76 = '' AND +# +c77 = 'a' AND +c78 = '' AND +# +crn = 2; +affected rows: 1 +# +# Delete the row that has arbitrary values now. +# +DELETE FROM t1 WHERE +# +c01 = b'1' AND +# the below does not reproduce the inserted value: +#c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +c03 = 127 AND +c04 = 0 AND +c05 = 001 AND +c06 = true AND +c07 = 32767 AND +c08 = 0 AND +c09 = 00001 AND +c10 = 8388607 AND +c11 = 0 AND +c12 = 00000001 AND +c13 = 2147483647 AND +c14 = 0 AND +c15 = 0000000001 AND +c16 = 9223372036854775807 AND +c17 = 0 AND +c18 = 00000000000000000001 AND +c19 > -1.175494352E-38 AND +c20 < 1.175494352E-38 AND +c21 = 000000000000001 AND +c22 > -2.2250738585073E-308 AND +c23 < 2.2250738585073E-308 AND +c24 = 00000000000000000000001 AND +c25 = -9999999999 AND +c26 = 9999999999 AND +c27 = 0000000001 AND +# +c28 = '2008-08-04' AND +c29 = '2008-08-04 16:18:06' AND +c30 = '2008-08-04 16:18:24' AND +c31 = '16:18:47' AND +c32 = '2008' AND +# +c33 = 'a' AND +c34 = '' AND +c35 = 'e' AND +c36 = REPEAT('i',255) AND +c37 = _utf8 x'c3a4' AND +c38 = '' AND +c39 = _utf8 x'c3b6' AND +c40 = REPEAT(_utf8 x'c3bc',255) AND +c41 = _ucs2 x'00e4' AND +c42 = '' AND +c43 = _ucs2 x'00f6' AND +c44 = REPEAT(_ucs2 x'00fc',255) AND +# +c45 = '' AND +c46 = 'a' AND +c47 = REPEAT('e',255) AND +c48 = REPEAT('i',261) AND +c49 = '' AND +c50 = _utf8 x'c3a4' AND +c51 = REPEAT(_utf8 x'c3b6',255) AND +c52 = REPEAT(_utf8 x'c3bc',261) AND +c53 = '' AND +c54 = _ucs2 x'00e4' AND +c55 = REPEAT(_ucs2 x'00f6',255) AND +c56 = REPEAT(_ucs2 x'00fc',261) AND +# +c57 = '0' AND +c58 = '' AND +c59 = '1' AND +c60 = REPEAT('1',255) AND +# +c61 = '' AND +c62 = 'b' AND +c63 = REPEAT('c',255) AND +c64 = REPEAT('\'',261) AND + # + c65 = 'tinyblob' AND + c66 = 'tinytext' AND + c67 = 'tinytext-ucs2' AND + c68 = 'blob' AND + c69 = 'text' AND + c70 = 'text-ucs2' AND + c71 = 'mediumblob' AND + c72 = 'mediumtext' AND + c73 = 'mediumtext-ucs2' AND + c74 = 'longblob' AND + c75 = 'longtext' AND + c76 = 'longtext-ucs2' AND + # + c77 = 'b' AND + c78 = 'b,c' AND + # + crn = 3; +affected rows: 1 +# +# Delete the row that has NULL values now. +# +DELETE FROM t1 WHERE +# +c01 IS NULL AND +c02 IS NULL AND +c03 IS NULL AND +c04 IS NULL AND +c05 IS NULL AND +c06 IS NULL AND +c07 IS NULL AND +c08 IS NULL AND +c09 IS NULL AND +c10 IS NULL AND +c11 IS NULL AND +c12 IS NULL AND +c13 IS NULL AND +c14 IS NULL AND +c15 IS NULL AND +c16 IS NULL AND +c17 IS NULL AND +c18 IS NULL AND +c19 IS NULL AND +c20 IS NULL AND +c21 IS NULL AND +c22 IS NULL AND +c23 IS NULL AND +c24 IS NULL AND +c25 IS NULL AND +c26 IS NULL AND +c27 IS NULL AND +# +c28 IS NULL AND +c29 IS NULL AND +# this got a timestamp instead of NULL: c30 IS NULL AND +c31 IS NULL AND +c32 IS NULL AND +# +c33 IS NULL AND +c34 IS NULL AND +c35 IS NULL AND +c36 IS NULL AND +c37 IS NULL AND +c38 IS NULL AND +c39 IS NULL AND +c40 IS NULL AND +c41 IS NULL AND +c42 IS NULL AND +c43 IS NULL AND +c44 IS NULL AND +# +c45 IS NULL AND +c46 IS NULL AND +c47 IS NULL AND +c48 IS NULL AND +c49 IS NULL AND +c50 IS NULL AND +c51 IS NULL AND +c52 IS NULL AND +c53 IS NULL AND +c54 IS NULL AND +c55 IS NULL AND +c56 IS NULL AND +# +c57 IS NULL AND +c58 IS NULL AND +c59 IS NULL AND +c60 IS NULL AND +# +c61 IS NULL AND +c62 IS NULL AND +c63 IS NULL AND +c64 IS NULL AND +# +c65 IS NULL AND +c66 IS NULL AND +c67 IS NULL AND +c68 IS NULL AND +c69 IS NULL AND +c70 IS NULL AND +c71 IS NULL AND +c72 IS NULL AND +c73 IS NULL AND +c74 IS NULL AND +c75 IS NULL AND +c76 IS NULL AND +# +c77 IS NULL AND +c78 IS NULL AND +# +crn = 4; +affected rows: 1 +# +# Show what we have in the table. Should be empty now. +# +SELECT * FROM t1; +affected rows: 0 +# +# Hide how much rows are affected by each statement. +# +# +# Flush all log buffers to the log file. +# +FLUSH LOGS; +# +# Call mysqlbinlog to display the log file contents. +# +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [] +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C utf8 *//*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 ( +c01 BIT, +c02 BIT(64), +c03 TINYINT, +c04 TINYINT UNSIGNED, +c05 TINYINT ZEROFILL, +c06 BOOL, +c07 SMALLINT, +c08 SMALLINT UNSIGNED, +c09 SMALLINT ZEROFILL, +c10 MEDIUMINT, +c11 MEDIUMINT UNSIGNED, +c12 MEDIUMINT ZEROFILL, +c13 INT, +c14 INT UNSIGNED, +c15 INT ZEROFILL, +c16 BIGINT, +c17 BIGINT UNSIGNED, +c18 BIGINT ZEROFILL, +c19 FLOAT, +c20 FLOAT UNSIGNED, +c21 FLOAT ZEROFILL, +c22 DOUBLE, +c23 DOUBLE UNSIGNED, +c24 DOUBLE ZEROFILL, +c25 DECIMAL, +c26 DECIMAL UNSIGNED, +c27 DECIMAL ZEROFILL, +# +c28 DATE, +c29 DATETIME, +c30 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, +c31 TIME, +c32 YEAR, +# +c33 CHAR, +c34 CHAR(0), +c35 CHAR(1), +c36 CHAR(255), +c37 NATIONAL CHAR, +c38 NATIONAL CHAR(0), +c39 NATIONAL CHAR(1), +c40 NATIONAL CHAR(255), +c41 CHAR CHARACTER SET UCS2, +c42 CHAR(0) CHARACTER SET UCS2, +c43 CHAR(1) CHARACTER SET UCS2, +c44 CHAR(255) CHARACTER SET UCS2, +# +c45 VARCHAR(0), +c46 VARCHAR(1), +c47 VARCHAR(255), +c48 VARCHAR(261), +c49 NATIONAL VARCHAR(0), +c50 NATIONAL VARCHAR(1), +c51 NATIONAL VARCHAR(255), +c52 NATIONAL VARCHAR(261), +c53 VARCHAR(0) CHARACTER SET UCS2, +c54 VARCHAR(1) CHARACTER SET UCS2, +c55 VARCHAR(255) CHARACTER SET UCS2, +c56 VARCHAR(261) CHARACTER SET UCS2, +# +c57 BINARY, +c58 BINARY(0), +c59 BINARY(1), +c60 BINARY(255), +# +c61 VARBINARY(0), +c62 VARBINARY(1), +c63 VARBINARY(255), +c64 VARBINARY(261), +# +c65 TINYBLOB, +c66 TINYTEXT, +c67 TINYTEXT CHARACTER SET UCS2, +c68 BLOB, +c69 TEXT, +c70 TEXT CHARACTER SET UCS2, +c71 MEDIUMBLOB, +c72 MEDIUMTEXT, +c73 MEDIUMTEXT CHARACTER SET UCS2, +c74 LONGBLOB, +c75 LONGTEXT, +c76 LONGTEXT CHARACTER SET UCS2, +# +c77 ENUM('a','b','c'), +c78 SET('a','b','c'), +# +crn INT -- row number +) ENGINE=InnoDB DEFAULT CHARSET latin1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-2 trans +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ( +#Q> b'0', -- c01 +#Q> b'0000000000000000000000000000000000000000000000000000000000000000', -- c02 +#Q> -128, -- c03 +#Q> 0, -- c04 +#Q> 000, -- c05 +#Q> false, -- c06 +#Q> -32768, -- c07 +#Q> 0, -- c08 +#Q> 00000, -- c09 +#Q> -8388608, -- c10 +#Q> 0, -- c11 +#Q> 00000000, -- c12 +#Q> -2147483648, -- c13 +#Q> 0, -- c14 +#Q> 0000000000, -- c15 +#Q> -9223372036854775808, -- c16 +#Q> 0, -- c17 +#Q> 00000000000000000000, -- c18 +#Q> -3.402823466E+38, -- c19 +#Q> 1.175494351E-38, -- c20 +#Q> 000000000000, -- c21 +#Q> -1.7976931348623E+308, -- c22 three digits cut for ps-protocol +#Q> 2.2250738585072E-308, -- c23 three digits cut for ps-protocol +#Q> 0000000000000000000000, -- c24 +#Q> -9999999999, -- c25 +#Q> 0, -- c26 +#Q> 0000000000, -- c27 +#Q> # +#Q> '1000-01-01', -- c28 +#Q> '1000-01-01 00:00:00', -- c29 +#Q> '1970-01-02 00:00:01', -- c30 one day later due to timezone issues +#Q> '-838:59:59', -- c31 +#Q> '1901', -- c32 +#Q> # +#Q> '', -- c33 +#Q> '', -- c34 +#Q> '', -- c35 +#Q> '', -- c36 +#Q> '', -- c37 +#Q> '', -- c38 +#Q> '', -- c39 +#Q> '', -- c40 +#Q> '', -- c41 +#Q> '', -- c42 +#Q> '', -- c43 +#Q> '', -- c44 +#Q> # +#Q> '', -- c45 +#Q> '', -- c46 +#Q> '', -- c47 +#Q> '', -- c48 +#Q> '', -- c49 +#Q> '', -- c50 +#Q> '', -- c51 +#Q> '', -- c52 +#Q> '', -- c53 +#Q> '', -- c54 +#Q> '', -- c55 +#Q> '', -- c56 +#Q> # +#Q> '', -- c57 +#Q> '', -- c58 +#Q> '', -- c59 +#Q> '', -- c60 +#Q> # +#Q> '', -- c61 +#Q> '', -- c62 +#Q> '', -- c63 +#Q> '', -- c64 +#Q> # +#Q> '', -- c65 +#Q> '', -- c66 +#Q> '', -- c67 +#Q> '', -- c68 +#Q> '', -- c69 +#Q> '', -- c70 +#Q> '', -- c71 +#Q> '', -- c72 +#Q> '', -- c73 +#Q> '', -- c74 +#Q> '', -- c75 +#Q> '', -- c76 +#Q> # +#Q> 'a', -- c77 +#Q> '', +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'0' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'0000000000000000000000000000000000000000000000000000000000000000' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=-32768 (32768) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=-8388608 (8388608) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=-2147483648 (2147483648) /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=0 /* INT meta=0 nullable=1 is_null=0 */ +### @16=-9223372036854775808 (9223372036854775808) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=0 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=0 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='1000:01:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='1000-01-01 00:00:00' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=75601 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='-838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=1901 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=1 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=1 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-3 trans +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ( +#Q> b'1', -- c01 +#Q> b'1111111111111111111111111111111111111111111111111111111111111111', -- c02 +#Q> 127, -- c03 +#Q> 255, -- c04 +#Q> 255, -- c05 +#Q> true, -- c06 +#Q> 32767, -- c07 +#Q> 65535, -- c08 +#Q> 65535, -- c09 +#Q> 8388607, -- c10 +#Q> 16777215, -- c11 +#Q> 16777215, -- c12 +#Q> 2147483647, -- c13 +#Q> 4294967295, -- c14 +#Q> 4294967295, -- c15 +#Q> 9223372036854775807, -- c16 +#Q> 18446744073709551615, -- c17 +#Q> 18446744073709551615, -- c18 +#Q> 3.402823466E+38, -- c19 +#Q> 3.402823466E+38, -- c20 +#Q> 3.402823466E+38, -- c21 +#Q> 1.7976931348623E+308, -- c22 three digits cut for ps-protocol +#Q> 1.7976931348623E+308, -- c23 three digits cut for ps-protocol +#Q> 1.7976931348623E+308, -- c24 three digits cut for ps-protocol +#Q> 9999999999, -- c25 +#Q> 9999999999, -- c26 +#Q> 9999999999, -- c27 +#Q> # +#Q> '9999-12-31', -- c28 +#Q> '9999-12-31 23:59:59', -- c29 +#Q> '2038-01-08 03:14:07', -- c30 one day earlier due to timezone issues +#Q> '838:59:59', -- c31 +#Q> '2155', -- c32 +#Q> # +#Q> x'ff', -- c33 +#Q> '', -- c34 +#Q> x'ff', -- c35 +#Q> REPEAT(x'ff',255), -- c36 +#Q> _utf8 x'efbfbf', -- c37 +#Q> '', -- c38 +#Q> _utf8 x'efbfbf', -- c39 +#Q> REPEAT(_utf8 x'efbfbf',255), -- c40 +#Q> _ucs2 x'ffff', -- c41 +#Q> '', -- c42 +#Q> _ucs2 x'ffff', -- c43 +#Q> REPEAT(_ucs2 x'ffff',255), -- c44 +#Q> # +#Q> '', -- c45 +#Q> x'ff', -- c46 +#Q> REPEAT(x'ff',255), -- c47 +#Q> REPEAT(x'ff',261), -- c48 +#Q> '', -- c49 +#Q> _utf8 x'efbfbf', -- c50 +#Q> REPEAT(_utf8 x'efbfbf',255), -- c51 +#Q> REPEAT(_utf8 x'efbfbf',261), -- c52 +#Q> '', -- c53 +#Q> _ucs2 x'ffff', -- c54 +#Q> REPEAT(_ucs2 x'ffff',255), -- c55 +#Q> REPEAT(_ucs2 x'ffff',261), -- c56 +#Q> # +#Q> x'ff', -- c57 +#Q> '', -- c58 +#Q> x'ff', -- c59 +#Q> REPEAT(x'ff',255), -- c60 +#Q> # +#Q> '', -- c61 +#Q> x'ff', -- c62 +#Q> REPEAT(x'ff',255), -- c63 +#Q> REPEAT(x'ff',261), -- c64 +#Q> # +#Q> 'tinyblob', -- c65 not using maximum value here +#Q> 'tinytext', -- c66 not using maximum value here +#Q> 'tinytext-ucs2', -- c67 not using maximum value here +#Q> 'blob', -- c68 not using maximum value here +#Q> 'text', -- c69 not using maximum value here +#Q> 'text-ucs2', -- c70 not using maximum value here +#Q> 'mediumblob', -- c71 not using maximum value here +#Q> 'mediumtext', -- c72 not using maximum value here +#Q> 'mediumtext-ucs2', -- c73 not using maximum value here +#Q> 'longblob', -- c74 not using maximum value here +#Q> 'longtext', -- c75 not using maximum value here +#Q> 'longtext-ucs2', -- c76 not using maximum value here +#Q> # +#Q> 'c', -- c77 +#Q> 'a,b,c +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @15=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='9999:12:31' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='9999-12-31 23:59:59' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=2146522447 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2155 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ï¿¿' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='ÿÿ' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=3 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=2 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-4 trans +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ( +#Q> NULL, -- c01 +#Q> NULL, -- c02 +#Q> NULL, -- c03 +#Q> NULL, -- c04 +#Q> NULL, -- c05 +#Q> NULL, -- c06 +#Q> NULL, -- c07 +#Q> NULL, -- c08 +#Q> NULL, -- c09 +#Q> NULL, -- c10 +#Q> NULL, -- c11 +#Q> NULL, -- c12 +#Q> NULL, -- c13 +#Q> NULL, -- c14 +#Q> NULL, -- c15 +#Q> NULL, -- c16 +#Q> NULL, -- c17 +#Q> NULL, -- c18 +#Q> NULL, -- c19 +#Q> NULL, -- c20 +#Q> NULL, -- c21 +#Q> NULL, -- c22 +#Q> NULL, -- c23 +#Q> NULL, -- c24 +#Q> NULL, -- c25 +#Q> NULL, -- c26 +#Q> NULL, -- c27 +#Q> # +#Q> NULL, -- c28 +#Q> NULL, -- c29 +#Q> NULL, -- c30 +#Q> NULL, -- c31 +#Q> NULL, -- c32 +#Q> # +#Q> NULL, -- c33 +#Q> NULL, -- c34 +#Q> NULL, -- c35 +#Q> NULL, -- c36 +#Q> NULL, -- c37 +#Q> NULL, -- c38 +#Q> NULL, -- c39 +#Q> NULL, -- c40 +#Q> NULL, -- c41 +#Q> NULL, -- c42 +#Q> NULL, -- c43 +#Q> NULL, -- c44 +#Q> # +#Q> NULL, -- c45 +#Q> NULL, -- c46 +#Q> NULL, -- c47 +#Q> NULL, -- c48 +#Q> NULL, -- c49 +#Q> NULL, -- c50 +#Q> NULL, -- c51 +#Q> NULL, -- c52 +#Q> NULL, -- c53 +#Q> NULL, -- c54 +#Q> NULL, -- c55 +#Q> NULL, -- c56 +#Q> # +#Q> NULL, -- c57 +#Q> NULL, -- c58 +#Q> NULL, -- c59 +#Q> NULL, -- c60 +#Q> # +#Q> NULL, -- c61 +#Q> NULL, -- c62 +#Q> NULL, -- c63 +#Q> NULL, -- c64 +#Q> # +#Q> NULL, -- c65 +#Q> NULL, -- c66 +#Q> NULL, -- c67 +#Q> NULL, -- c68 +#Q> NULL, -- c69 +#Q> NULL, -- c70 +#Q> NULL, -- c71 +#Q> NULL, -- c72 +#Q> NULL, -- c73 +#Q> NULL, -- c74 +#Q> NULL, -- c75 +#Q> NULL, -- c76 +#Q> # +#Q> NULL, -- c77 +#Q> NULL, -- c78 +#Q> # +#Q> 3 -- crn -- row number +#Q> ), ( +#Q> b'1', -- c01 +#Q> b'1111111111111111111111111111111111111111111111111111111111111111', -- c02 +#Q> 127, -- c03 +#Q> 0, -- c04 +#Q> 001, -- c05 +#Q> true, -- c06 +#Q> 32767, -- c07 +#Q> 0, -- c08 +#Q> 00001, -- c09 +#Q> 8388607, -- c10 +#Q> 0, -- c11 +#Q> 00000001, -- c12 +#Q> 2147483647, -- c13 +#Q> 0, -- c14 +#Q> 0000000001, -- c15 +#Q> 9223372036854775807, -- c16 +#Q> 0, -- c17 +#Q> 00000000000000000001, -- c18 +#Q> -1.175494351E-38, -- c19 +#Q> 1.175494351E-38, -- c20 +#Q> 000000000000001, -- c21 +#Q> -2.2250738585072E-308, -- c22 +#Q> 2.2250738585072E-308, -- c23 +#Q> 00000000000000000000001, -- c24 +#Q> -9999999999, -- c25 +#Q> 9999999999, -- c26 +#Q> 0000000001, -- c27 +#Q> # +#Q> '2008-08-04', -- c28 +#Q> '2008-08-04 16:18:06', -- c29 +#Q> '2008-08-04 16:18:24', -- c30 +#Q> '16:18:47', -- c31 +#Q> '2008', -- c32 +#Q> # +#Q> 'a', -- c33 +#Q> '', -- c34 +#Q> 'e', -- c35 +#Q> REPEAT('i',255), -- c36 +#Q> _utf8 x'c3a4', -- c37 +#Q> '', -- c38 +#Q> _utf8 x'c3b6', -- c39 +#Q> REPEAT(_utf8 x'c3bc',255), -- c40 +#Q> _ucs2 x'00e4', -- c41 +#Q> '', -- c42 +#Q> _ucs2 x'00f6', -- c43 +#Q> REPEAT(_ucs2 x'00fc',255), -- c44 +#Q> # +#Q> '', -- c45 +#Q> 'a', -- c46 +#Q> REPEAT('e',255), -- c47 +#Q> REPEAT('i',261), -- c48 +#Q> '', -- c49 +#Q> _utf8 x'c3a4', -- c50 +#Q> REPEAT(_utf8 x'c3b6',255), -- c51 +#Q> REPEAT(_utf8 x'c3bc',261), -- c52 +#Q> '', -- c53 +#Q> _ucs2 x'00e4', -- c54 +#Q> REPEAT(_ucs2 x'00f6',255), -- c55 +#Q> REPEAT(_ucs2 x'00fc',261), -- c56 +#Q> # +#Q> '0', -- c57 +#Q> '', -- c58 +#Q> '1', -- c59 +#Q> REPEAT('1',255), -- c60 +#Q> # +#Q> '', -- c61 +#Q> 'b', -- c62 +#Q> REPEAT('c',255), -- c63 +#Q> REPEAT('\'',261), -- c64 +#Q> # +#Q> 'tinyblob', -- c65 +#Q> 'tinytext', -- c66 +#Q> 'tinytext-ucs2', -- c67 +#Q> 'blob', -- c68 +#Q> 'text', -- c69 +#Q> 'text-ucs2', -- c70 +#Q> 'mediumblob', -- c71 +#Q> 'mediumtext', -- c72 +#Q> 'mediumtext-ucs2', -- c73 +#Q> 'longblob', -- c74 +#Q> 'longtext', -- c75 +#Q> 'longtext +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=NULL /* BIT(1) meta=1 nullable=1 is_null=1 */ +### @2=NULL /* BIT(64) meta=2048 nullable=1 is_null=1 */ +### @3=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @4=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @5=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @6=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @7=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @8=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @9=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @10=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @11=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @12=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @13=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @14=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @15=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @16=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @17=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @18=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @19=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @20=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @21=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @22=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @23=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @24=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @25=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @26=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @27=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @28=NULL /* DATE meta=0 nullable=1 is_null=1 */ +### @29=NULL /* DATETIME(0) meta=0 nullable=1 is_null=1 */ +### @30=1000000000 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31=NULL /* TIME(0) meta=0 nullable=1 is_null=1 */ +### @32=NULL /* YEAR meta=0 nullable=1 is_null=1 */ +### @33=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @34=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @35=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @36=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @37=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @38=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @39=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @40=NULL /* STRING(765) meta=57085 nullable=1 is_null=1 */ +### @41=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @42=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @43=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @44=NULL /* STRING(510) meta=61182 nullable=1 is_null=1 */ +### @45=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @46=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @47=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @48=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @49=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @50=NULL /* VARSTRING(3) meta=3 nullable=1 is_null=1 */ +### @51=NULL /* VARSTRING(765) meta=765 nullable=1 is_null=1 */ +### @52=NULL /* VARSTRING(783) meta=783 nullable=1 is_null=1 */ +### @53=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @54=NULL /* VARSTRING(2) meta=2 nullable=1 is_null=1 */ +### @55=NULL /* VARSTRING(510) meta=510 nullable=1 is_null=1 */ +### @56=NULL /* VARSTRING(522) meta=522 nullable=1 is_null=1 */ +### @57=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @58=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @59=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @60=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @61=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @62=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @63=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @64=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @65=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @66=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @67=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @68=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @69=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @70=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @71=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @72=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @73=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @74=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @75=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @76=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @77=NULL /* ENUM(1 byte) meta=63233 nullable=1 is_null=1 */ +### @78=NULL /* SET(1 bytes) meta=63489 nullable=1 is_null=1 */ +### @79=3 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=1 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=1 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=1 /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=1 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=1 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=1 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='2008:08:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='2008-08-04 16:18:06' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=1217855904 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='16:18:47' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2008 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='a' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='e' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ä' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ö' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='\x00ä' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='\x00ö' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='a' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ä' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='\x00ä' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='0' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='1' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='b' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64=''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=4 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-5 trans +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = b'1', +#Q> c02 = b'1111111111111111111111111111111111111111111111111111111111111111', +#Q> c03 = 127, +#Q> c04 = 255, +#Q> c05 = 255, +#Q> c06 = true, +#Q> c07 = 32767, +#Q> c08 = 65535, +#Q> c09 = 65535, +#Q> c10 = 8388607, +#Q> c11 = 16777215, +#Q> c12 = 16777215, +#Q> c13 = 2147483647, +#Q> c14 = 4294967295, +#Q> c15 = 4294967295, +#Q> c16 = 9223372036854775807, +#Q> c17 = 18446744073709551615, +#Q> c18 = 18446744073709551615, +#Q> c19 = 3.402823466E+38, +#Q> c20 = 3.402823466E+38, +#Q> c21 = 3.402823466E+38, +#Q> c22 = 1.7976931348623E+308, +#Q> c23 = 1.7976931348623E+308, +#Q> c24 = 1.7976931348623E+308, +#Q> c25 = 9999999999, +#Q> c26 = 9999999999, +#Q> c27 = 9999999999, +#Q> # +#Q> c28 = '9999-12-31', +#Q> c29 = '9999-12-31 23:59:59', +#Q> c30 = '2038-01-08 03:14:07', +#Q> c31 = '838:59:59', +#Q> c32 = '2155', +#Q> # +#Q> c33 = x'ff', +#Q> c34 = '', +#Q> c35 = x'ff', +#Q> c36 = REPEAT(x'ff',255), +#Q> c37 = _utf8 x'efbfbf', +#Q> c38 = '', +#Q> c39 = _utf8 x'efbfbf', +#Q> c40 = REPEAT(_utf8 x'efbfbf',255), +#Q> c41 = _ucs2 x'ffff', +#Q> c42 = '', +#Q> c43 = _ucs2 x'ffff', +#Q> c44 = REPEAT(_ucs2 x'ffff',255), +#Q> # +#Q> c45 = '', +#Q> c46 = x'ff', +#Q> c47 = REPEAT(x'ff',255), +#Q> c48 = REPEAT(x'ff',261), +#Q> c49 = '', +#Q> c50 = _utf8 x'efbfbf', +#Q> c51 = REPEAT(_utf8 x'efbfbf',255), +#Q> c52 = REPEAT(_utf8 x'efbfbf',261), +#Q> c53 = '', +#Q> c54 = _ucs2 x'ffff', +#Q> c55 = REPEAT(_ucs2 x'ffff',255), +#Q> c56 = REPEAT(_ucs2 x'ffff',261), +#Q> # +#Q> c57 = x'ff', +#Q> c58 = '', +#Q> c59 = x'ff', +#Q> c60 = REPEAT(x'ff',255), +#Q> # +#Q> c61 = '', +#Q> c62 = x'ff', +#Q> c63 = REPEAT(x'ff',255), +#Q> c64 = REPEAT(x'ff',261), +#Q> # +#Q> c65 = 'tinyblob', +#Q> c66 = 'tinytext', +#Q> c67 = 'tinytext-ucs2', +#Q> c68 = 'blob', +#Q> c69 = 'text', +#Q> c70 = 'text-ucs2', +#Q> c71 = 'mediumblob', +#Q> c72 = 'mediumtext', +#Q> c73 = 'mediumtext-ucs2', +#Q> c74 = 'longblob', +#Q> c75 = 'longtext', +#Q> c76 = 'longtext-ucs2', +#Q> # +#Q> c77 = 'c', +#Q> c78 = 'a,b,c', +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 = b'0' AND +#Q> c02 = b'0000000000000000000000000000000000000000000000000000000000000000' AND +#Q> c03 = -128 AND +#Q> c04 = 0 AND +#Q> c05 = 000 AND +#Q> c06 = false AND +#Q> c07 = -32768 AND +#Q> c08 = 0 AND +#Q> c09 = 00000 AND +#Q> c10 = -8388608 AND +#Q> c11 = 0 AND +#Q> c12 = 00000000 AND +#Q> c13 = -2147483648 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000000 AND +#Q> c16 = -9223372036854775808 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000000 AND +#Q> c19 < -3.402823465E+38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000 AND +#Q> c22 < -1.7976931348622E+308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 0000000000000000000000 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 0 AND +#Q> c27 = 0000000000 AND +#Q> # +#Q> c28 = '1000-01-01' AND +#Q> c29 = '1000-01-01 00:00:00' AND +#Q> c30 = '1970-01-02 00:00:01' AND +#Q> c31 = '-838:59:59' AND +#Q> c32 = '1901' AND +#Q> # +#Q> c33 = '' AND +#Q> c34 = '' AND +#Q> c35 = '' AND +#Q> c36 = '' AND +#Q> c37 = '' AND +#Q> c38 = '' AND +#Q> c39 = '' AND +#Q> c40 = '' AND +#Q> c41 = '' AND +#Q> c42 = '' AND +#Q> c43 = '' AND +#Q> c44 = '' AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = '' AND +#Q> c47 = '' AND +#Q> c48 = '' AND +#Q> c49 = '' AND +#Q> c50 = '' AND +#Q> c51 = '' AND +#Q> c52 = '' AND +#Q> c53 = '' AND +#Q> c54 = '' AND +#Q> c55 = '' AND +#Q> c56 = '' AND +#Q> # +#Q> # this does not reproduce the inserted value: c57 = '' AND +#Q> c58 = '' AND +#Q> # this does not reproduce the inserted value: c59 = '' AND +#Q> # this does not reproduce the inserted value: c60 = '' AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = '' AND +#Q> c63 = '' AND +#Q> c64 = '' AND +#Q> # +#Q> c65 = '' AND +#Q> c66 = '' AND +#Q> c67 = +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=b'0' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'0000000000000000000000000000000000000000000000000000000000000000' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=-32768 (32768) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=-8388608 (8388608) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=-2147483648 (2147483648) /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=0 /* INT meta=0 nullable=1 is_null=0 */ +### @16=-9223372036854775808 (9223372036854775808) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=0 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=0 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='1000:01:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='1000-01-01 00:00:00' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=75601 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='-838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=1901 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=1 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=1 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @15=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='9999:12:31' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='9999-12-31 23:59:59' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=2146522447 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2155 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ï¿¿' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='ÿÿ' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=3 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=1 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-6 trans +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = b'0', +#Q> c02 = b'0000000000000000000000000000000000000000000000000000000000000000', +#Q> c03 = -128, +#Q> c04 = 0, +#Q> c05 = 000, +#Q> c06 = false, +#Q> c07 = -32768, +#Q> c08 = 0, +#Q> c09 = 00000, +#Q> c10 = -8388608, +#Q> c11 = 0, +#Q> c12 = 00000000, +#Q> c13 = -2147483648, +#Q> c14 = 0, +#Q> c15 = 0000000000, +#Q> c16 = -9223372036854775808, +#Q> c17 = 0, +#Q> c18 = 00000000000000000000, +#Q> c19 = -3.402823466E+38, +#Q> c20 = 1.175494351E-38, +#Q> c21 = 000000000000, +#Q> c22 = -1.7976931348623E+308, +#Q> c23 = 2.2250738585072E-308, +#Q> c24 = 0000000000000000000000, +#Q> c25 = -9999999999, +#Q> c26 = 0, +#Q> c27 = 0000000000, +#Q> # +#Q> c28 = '1000-01-01', +#Q> c29 = '1000-01-01 00:00:00', +#Q> c30 = '1970-01-02 00:00:01', +#Q> c31 = '-838:59:59', +#Q> c32 = '1901', +#Q> # +#Q> c33 = '', +#Q> c34 = '', +#Q> c35 = '', +#Q> c36 = '', +#Q> c37 = '', +#Q> c38 = '', +#Q> c39 = '', +#Q> c40 = '', +#Q> c41 = '', +#Q> c42 = '', +#Q> c43 = '', +#Q> c44 = '', +#Q> # +#Q> c45 = '', +#Q> c46 = '', +#Q> c47 = '', +#Q> c48 = '', +#Q> c49 = '', +#Q> c50 = '', +#Q> c51 = '', +#Q> c52 = '', +#Q> c53 = '', +#Q> c54 = '', +#Q> c55 = '', +#Q> c56 = '', +#Q> # +#Q> c57 = '', +#Q> c58 = '', +#Q> c59 = '', +#Q> c60 = '', +#Q> # +#Q> c61 = '', +#Q> c62 = '', +#Q> c63 = '', +#Q> c64 = '', +#Q> # +#Q> c65 = '', +#Q> c66 = '', +#Q> c67 = '', +#Q> c68 = '', +#Q> c69 = '', +#Q> c70 = '', +#Q> c71 = '', +#Q> c72 = '', +#Q> c73 = '', +#Q> c74 = '', +#Q> c75 = '', +#Q> c76 = '', +#Q> # +#Q> c77 = 'a', +#Q> c78 = '', +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 255 AND +#Q> c05 = 255 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 65535 AND +#Q> c09 = 65535 AND +#Q> c10 = 8388607 AND +#Q> c11 = 16777215 AND +#Q> c12 = 16777215 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 4294967295 AND +#Q> c15 = 4294967295 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 18446744073709551615 AND +#Q> c18 = 18446744073709551615 AND +#Q> c19 > 3.402823465E+38 AND +#Q> c20 > 3.402823465E+38 AND +#Q> c21 > 3.402823465E+38 AND +#Q> c22 > 1.7976931348622E+308 AND +#Q> c23 > 1.7976931348622E+308 AND +#Q> c24 > 1.7976931348622E+308 AND +#Q> c25 = 9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 9999999999 AND +#Q> # +#Q> c28 = '9999-12-31' AND +#Q> c29 = '9999-12-31 23:59:59' AND +#Q> c30 = '2038-01-08 03:14:07' AND +#Q> c31 = '838:59:59' AND +#Q> c32 = '2155' AND +#Q> # +#Q> c33 = x'ff' AND +#Q> c34 = '' AND +#Q> c35 = x'ff' AND +#Q> c36 = REPEAT(x'ff',255) AND +#Q> c37 = _utf8 x'efbfbf' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'efbfbf' AND +#Q> c40 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c41 = _ucs2 x'ffff' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'ffff' AND +#Q> c44 = REPEAT(_ucs2 x'ffff',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = x'ff' AND +#Q> c47 = REPEAT(x'ff',255) AND +#Q> c48 = REPEAT(x'ff',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'efbfbf' AND +#Q> c51 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c52 = REPEAT(_utf8 x'efbfbf',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'ffff' AND +#Q> c55 = REPEAT(_ucs2 x'ffff',255) AND +#Q> c56 = REPEAT(_ucs2 x'ffff',261) AND +#Q> # +#Q> c57 = x'ff' AND +#Q> c58 = '' AND +#Q> c59 = x'ff' AND +#Q> c60 = REPEAT(x'ff',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = x'ff' AND +#Q> c63 = REPEAT(x'ff',255) AND +#Q> c64 = REPEAT(x'ff',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @15=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='9999:12:31' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='9999-12-31 23:59:59' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=2146522447 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2155 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ï¿¿' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='ÿÿ' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=3 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=2 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1=b'0' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'0000000000000000000000000000000000000000000000000000000000000000' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=-32768 (32768) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=-8388608 (8388608) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=-2147483648 (2147483648) /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=0 /* INT meta=0 nullable=1 is_null=0 */ +### @16=-9223372036854775808 (9223372036854775808) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=0 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=0 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='1000:01:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='1000-01-01 00:00:00' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=75601 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='-838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=1901 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=1 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=2 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-7 trans +/*!100001 SET @@session.gtid_seq_no=7*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = b'1', +#Q> c02 = b'1111111111111111111111111111111111111111111111111111111111111111', +#Q> c03 = 127, +#Q> c04 = 0, +#Q> c05 = 001, +#Q> c06 = true, +#Q> c07 = 32767, +#Q> c08 = 0, +#Q> c09 = 00001, +#Q> c10 = 8388607, +#Q> c11 = 0, +#Q> c12 = 00000001, +#Q> c13 = 2147483647, +#Q> c14 = 0, +#Q> c15 = 0000000001, +#Q> c16 = 9223372036854775807, +#Q> c17 = 0, +#Q> c18 = 00000000000000000001, +#Q> c19 = -1.175494351E-38, +#Q> c20 = 1.175494351E-38, +#Q> c21 = 000000000000001, +#Q> c22 = -2.2250738585072E-308, +#Q> c23 = 2.2250738585072E-308, +#Q> c24 = 00000000000000000000001, +#Q> c25 = -9999999999, +#Q> c26 = 9999999999, +#Q> c27 = 0000000001, +#Q> # +#Q> c28 = '2008-08-04', +#Q> c29 = '2008-08-04 16:18:06', +#Q> c30 = '2008-08-04 16:18:24', +#Q> c31 = '16:18:47', +#Q> c32 = '2008', +#Q> # +#Q> c33 = 'a', +#Q> c34 = '', +#Q> c35 = 'e', +#Q> c36 = REPEAT('i',255), +#Q> c37 = _utf8 x'c3a4', +#Q> c38 = '', +#Q> c39 = _utf8 x'c3b6', +#Q> c40 = REPEAT(_utf8 x'c3bc',255), +#Q> c41 = _ucs2 x'00e4', +#Q> c42 = '', +#Q> c43 = _ucs2 x'00f6', +#Q> c44 = REPEAT(_ucs2 x'00fc',255), +#Q> # +#Q> c45 = '', +#Q> c46 = 'a', +#Q> c47 = REPEAT('e',255), +#Q> c48 = REPEAT('i',261), +#Q> c49 = '', +#Q> c50 = _utf8 x'c3a4', +#Q> c51 = REPEAT(_utf8 x'c3b6',255), +#Q> c52 = REPEAT(_utf8 x'c3bc',261), +#Q> c53 = '', +#Q> c54 = _ucs2 x'00e4', +#Q> c55 = REPEAT(_ucs2 x'00f6',255), +#Q> c56 = REPEAT(_ucs2 x'00fc',261), +#Q> # +#Q> c57 = '0', +#Q> c58 = '', +#Q> c59 = '1', +#Q> c60 = REPEAT('1',255), +#Q> # +#Q> c61 = '', +#Q> c62 = 'b', +#Q> c63 = REPEAT('c',255), +#Q> c64 = REPEAT('\'',261), +#Q> # +#Q> c65 = 'tinyblob', +#Q> c66 = 'tinytext', +#Q> c67 = 'tinytext-ucs2', +#Q> c68 = 'blob', +#Q> c69 = 'text', +#Q> c70 = 'text-ucs2', +#Q> c71 = 'mediumblob', +#Q> c72 = 'mediumtext', +#Q> c73 = 'mediumtext-ucs2', +#Q> c74 = 'longblob', +#Q> c75 = 'longtext', +#Q> c76 = 'longtext-ucs2', +#Q> # +#Q> c77 = 'b', +#Q> c78 = 'b,c', +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 IS NULL AND +#Q> c02 IS NULL AND +#Q> c03 IS NULL AND +#Q> c04 IS NULL AND +#Q> c05 IS NULL AND +#Q> c06 IS NULL AND +#Q> c07 IS NULL AND +#Q> c08 IS NULL AND +#Q> c09 IS NULL AND +#Q> c10 IS NULL AND +#Q> c11 IS NULL AND +#Q> c12 IS NULL AND +#Q> c13 IS NULL AND +#Q> c14 IS NULL AND +#Q> c15 IS NULL AND +#Q> c16 IS NULL AND +#Q> c17 IS NULL AND +#Q> c18 IS NULL AND +#Q> c19 IS NULL AND +#Q> c20 IS NULL AND +#Q> c21 IS NULL AND +#Q> c22 IS NULL AND +#Q> c23 IS NULL AND +#Q> c24 IS NULL AND +#Q> c25 IS NULL AND +#Q> c26 IS NULL AND +#Q> c27 IS NULL AND +#Q> # +#Q> c28 IS NULL AND +#Q> c29 IS NULL AND +#Q> # this got a timestamp instead of NULL: c30 IS NULL AND +#Q> c31 IS NULL AND +#Q> c32 IS NULL AND +#Q> # +#Q> c33 IS NULL AND +#Q> c34 IS NULL AND +#Q> c35 IS NULL AND +#Q> c36 IS NULL AND +#Q> c37 IS NULL AND +#Q> c38 IS NULL AND +#Q> c39 IS NULL AND +#Q> c40 IS NULL AND +#Q> c41 IS NULL AND +#Q> c42 IS NULL AND +#Q> c43 IS NULL AND +#Q> c44 IS NULL AND +#Q> # +#Q> c45 IS NULL AND +#Q> c46 IS NULL AND +#Q> c47 IS NULL AND +#Q> c48 IS NULL AND +#Q> c49 IS NULL AND +#Q> c50 IS NULL AND +#Q> c51 IS NULL AND +#Q> c52 IS NULL AND +#Q> c53 IS NULL AND +#Q> c54 IS NULL AND +#Q> c55 IS NULL AND +#Q> c56 IS NULL AND +#Q> # +#Q> c57 IS NULL AND +#Q> c58 IS NULL AND +#Q> c59 IS NULL AND +#Q> c60 IS NULL AND +#Q> # +#Q> c61 IS NULL AND +#Q> c62 IS NULL AND +#Q> c63 IS NULL AND +#Q> c64 IS NULL AND +#Q> # +#Q> c65 IS NULL AND +#Q> c66 IS NULL AND +#Q> c67 IS NULL AND +#Q> c68 IS NULL AND +#Q> c69 IS NULL AND +#Q> c70 IS NULL +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=NULL /* BIT(1) meta=1 nullable=1 is_null=1 */ +### @2=NULL /* BIT(64) meta=2048 nullable=1 is_null=1 */ +### @3=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @4=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @5=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @6=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @7=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @8=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @9=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @10=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @11=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @12=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @13=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @14=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @15=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @16=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @17=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @18=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @19=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @20=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @21=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @22=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @23=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @24=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @25=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @26=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @27=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @28=NULL /* DATE meta=0 nullable=1 is_null=1 */ +### @29=NULL /* DATETIME(0) meta=0 nullable=1 is_null=1 */ +### @30=1000000000 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31=NULL /* TIME(0) meta=0 nullable=1 is_null=1 */ +### @32=NULL /* YEAR meta=0 nullable=1 is_null=1 */ +### @33=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @34=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @35=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @36=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @37=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @38=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @39=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @40=NULL /* STRING(765) meta=57085 nullable=1 is_null=1 */ +### @41=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @42=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @43=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @44=NULL /* STRING(510) meta=61182 nullable=1 is_null=1 */ +### @45=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @46=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @47=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @48=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @49=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @50=NULL /* VARSTRING(3) meta=3 nullable=1 is_null=1 */ +### @51=NULL /* VARSTRING(765) meta=765 nullable=1 is_null=1 */ +### @52=NULL /* VARSTRING(783) meta=783 nullable=1 is_null=1 */ +### @53=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @54=NULL /* VARSTRING(2) meta=2 nullable=1 is_null=1 */ +### @55=NULL /* VARSTRING(510) meta=510 nullable=1 is_null=1 */ +### @56=NULL /* VARSTRING(522) meta=522 nullable=1 is_null=1 */ +### @57=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @58=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @59=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @60=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @61=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @62=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @63=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @64=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @65=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @66=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @67=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @68=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @69=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @70=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @71=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @72=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @73=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @74=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @75=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @76=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @77=NULL /* ENUM(1 byte) meta=63233 nullable=1 is_null=1 */ +### @78=NULL /* SET(1 bytes) meta=63489 nullable=1 is_null=1 */ +### @79=3 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=1 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=1 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=1 /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=1 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=1 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=1 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='2008:08:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='2008-08-04 16:18:06' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=1217855904 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='16:18:47' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2008 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='a' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='e' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ä' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ö' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='\x00ä' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='\x00ö' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='a' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ä' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='\x00ä' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='0' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='1' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='b' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64=''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-8 trans +/*!100001 SET @@session.gtid_seq_no=8*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = NULL, +#Q> c02 = NULL, +#Q> c03 = NULL, +#Q> c04 = NULL, +#Q> c05 = NULL, +#Q> c06 = NULL, +#Q> c07 = NULL, +#Q> c08 = NULL, +#Q> c09 = NULL, +#Q> c10 = NULL, +#Q> c11 = NULL, +#Q> c12 = NULL, +#Q> c13 = NULL, +#Q> c14 = NULL, +#Q> c15 = NULL, +#Q> c16 = NULL, +#Q> c17 = NULL, +#Q> c18 = NULL, +#Q> c19 = NULL, +#Q> c20 = NULL, +#Q> c21 = NULL, +#Q> c22 = NULL, +#Q> c23 = NULL, +#Q> c24 = NULL, +#Q> c25 = NULL, +#Q> c26 = NULL, +#Q> c27 = NULL, +#Q> # +#Q> c28 = NULL, +#Q> c29 = NULL, +#Q> c30 = NULL, +#Q> c31 = NULL, +#Q> c32 = NULL, +#Q> # +#Q> c33 = NULL, +#Q> c34 = NULL, +#Q> c35 = NULL, +#Q> c36 = NULL, +#Q> c37 = NULL, +#Q> c38 = NULL, +#Q> c39 = NULL, +#Q> c40 = NULL, +#Q> c41 = NULL, +#Q> c42 = NULL, +#Q> c43 = NULL, +#Q> c44 = NULL, +#Q> # +#Q> c45 = NULL, +#Q> c46 = NULL, +#Q> c47 = NULL, +#Q> c48 = NULL, +#Q> c49 = NULL, +#Q> c50 = NULL, +#Q> c51 = NULL, +#Q> c52 = NULL, +#Q> c53 = NULL, +#Q> c54 = NULL, +#Q> c55 = NULL, +#Q> c56 = NULL, +#Q> # +#Q> c57 = NULL, +#Q> c58 = NULL, +#Q> c59 = NULL, +#Q> c60 = NULL, +#Q> # +#Q> c61 = NULL, +#Q> c62 = NULL, +#Q> c63 = NULL, +#Q> c64 = NULL, +#Q> # +#Q> c65 = NULL, +#Q> c66 = NULL, +#Q> c67 = NULL, +#Q> c68 = NULL, +#Q> c69 = NULL, +#Q> c70 = NULL, +#Q> c71 = NULL, +#Q> c72 = NULL, +#Q> c73 = NULL, +#Q> c74 = NULL, +#Q> c75 = NULL, +#Q> c76 = NULL, +#Q> # +#Q> c77 = NULL, +#Q> c78 = NULL, +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 0 AND +#Q> c05 = 001 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 0 AND +#Q> c09 = 00001 AND +#Q> c10 = 8388607 AND +#Q> c11 = 0 AND +#Q> c12 = 00000001 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000001 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000001 AND +#Q> c19 > -1.175494352E-38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000001 AND +#Q> c22 > -2.2250738585073E-308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 00000000000000000000001 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 0000000001 AND +#Q> # +#Q> c28 = '2008-08-04' AND +#Q> c29 = '2008-08-04 16:18:06' AND +#Q> c30 = '2008-08-04 16:18:24' AND +#Q> c31 = '16:18:47' AND +#Q> c32 = '2008' AND +#Q> # +#Q> c33 = 'a' AND +#Q> c34 = '' AND +#Q> c35 = 'e' AND +#Q> c36 = REPEAT('i',255) AND +#Q> c37 = _utf8 x'c3a4' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'c3b6' AND +#Q> c40 = REPEAT(_utf8 x'c3bc',255) AND +#Q> c41 = _ucs2 x'00e4' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'00f6' AND +#Q> c44 = REPEAT(_ucs2 x'00fc',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = 'a' AND +#Q> c47 = REPEAT('e',255) AND +#Q> c48 = REPEAT('i',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'c3a4' AND +#Q> c51 = REPEAT(_utf8 x'c3b6',255) AND +#Q> c52 = REPEAT(_utf8 x'c3bc',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'00e4' AND +#Q> c55 = REPEAT(_ucs2 x'00f6',255) AND +#Q> c56 = REPEAT(_ucs2 x'00fc',261) AND +#Q> # +#Q> c57 = '0' AND +#Q> c58 = '' AND +#Q> c59 = '1' AND +#Q> c60 = REPEAT('1',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = 'b' AND +#Q> c63 = REPEAT('c',255) AND +#Q> c64 = REPEAT('\'',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob' AND +#Q> c72 = 'me +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=1 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=1 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=1 /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=1 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=1 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=1 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='2008:08:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='2008-08-04 16:18:06' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=1217855904 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='16:18:47' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2008 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='a' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='e' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ä' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ö' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='\x00ä' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='\x00ö' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='a' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ä' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='\x00ä' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='0' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='1' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='b' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64=''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=4 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1=NULL /* BIT(1) meta=1 nullable=1 is_null=1 */ +### @2=NULL /* BIT(64) meta=2048 nullable=1 is_null=1 */ +### @3=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @4=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @5=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @6=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @7=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @8=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @9=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @10=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @11=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @12=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @13=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @14=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @15=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @16=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @17=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @18=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @19=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @20=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @21=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @22=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @23=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @24=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @25=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @26=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @27=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @28=NULL /* DATE meta=0 nullable=1 is_null=1 */ +### @29=NULL /* DATETIME(0) meta=0 nullable=1 is_null=1 */ +### @30=1000000000 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31=NULL /* TIME(0) meta=0 nullable=1 is_null=1 */ +### @32=NULL /* YEAR meta=0 nullable=1 is_null=1 */ +### @33=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @34=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @35=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @36=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @37=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @38=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @39=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @40=NULL /* STRING(765) meta=57085 nullable=1 is_null=1 */ +### @41=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @42=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @43=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @44=NULL /* STRING(510) meta=61182 nullable=1 is_null=1 */ +### @45=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @46=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @47=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @48=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @49=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @50=NULL /* VARSTRING(3) meta=3 nullable=1 is_null=1 */ +### @51=NULL /* VARSTRING(765) meta=765 nullable=1 is_null=1 */ +### @52=NULL /* VARSTRING(783) meta=783 nullable=1 is_null=1 */ +### @53=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @54=NULL /* VARSTRING(2) meta=2 nullable=1 is_null=1 */ +### @55=NULL /* VARSTRING(510) meta=510 nullable=1 is_null=1 */ +### @56=NULL /* VARSTRING(522) meta=522 nullable=1 is_null=1 */ +### @57=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @58=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @59=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @60=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @61=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @62=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @63=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @64=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @65=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @66=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @67=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @68=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @69=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @70=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @71=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @72=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @73=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @74=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @75=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @76=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @77=NULL /* ENUM(1 byte) meta=63233 nullable=1 is_null=1 */ +### @78=NULL /* SET(1 bytes) meta=63489 nullable=1 is_null=1 */ +### @79=4 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-9 trans +/*!100001 SET @@session.gtid_seq_no=9*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 255 AND +#Q> c05 = 255 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 65535 AND +#Q> c09 = 65535 AND +#Q> c10 = 8388607 AND +#Q> c11 = 16777215 AND +#Q> c12 = 16777215 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 4294967295 AND +#Q> c15 = 4294967295 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 18446744073709551615 AND +#Q> c18 = 18446744073709551615 AND +#Q> c19 > 3.402823465E+38 AND +#Q> c20 > 3.402823465E+38 AND +#Q> c21 > 3.402823465E+38 AND +#Q> c22 > 1.7976931348622E+308 AND +#Q> c23 > 1.7976931348622E+308 AND +#Q> c24 > 1.7976931348622E+308 AND +#Q> c25 = 9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 9999999999 AND +#Q> # +#Q> c28 = '9999-12-31' AND +#Q> c29 = '9999-12-31 23:59:59' AND +#Q> c30 = '2038-01-08 03:14:07' AND +#Q> c31 = '838:59:59' AND +#Q> c32 = '2155' AND +#Q> # +#Q> c33 = x'ff' AND +#Q> c34 = '' AND +#Q> c35 = x'ff' AND +#Q> c36 = REPEAT(x'ff',255) AND +#Q> c37 = _utf8 x'efbfbf' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'efbfbf' AND +#Q> c40 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c41 = _ucs2 x'ffff' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'ffff' AND +#Q> c44 = REPEAT(_ucs2 x'ffff',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = x'ff' AND +#Q> c47 = REPEAT(x'ff',255) AND +#Q> c48 = REPEAT(x'ff',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'efbfbf' AND +#Q> c51 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c52 = REPEAT(_utf8 x'efbfbf',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'ffff' AND +#Q> c55 = REPEAT(_ucs2 x'ffff',255) AND +#Q> c56 = REPEAT(_ucs2 x'ffff',261) AND +#Q> # +#Q> c57 = x'ff' AND +#Q> c58 = '' AND +#Q> c59 = x'ff' AND +#Q> c60 = REPEAT(x'ff',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = x'ff' AND +#Q> c63 = REPEAT(x'ff',255) AND +#Q> c64 = REPEAT(x'ff',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob' AND +#Q> c72 = 'mediumtext' AND +#Q> c73 = 'mediumtext-ucs2' AND +#Q> c74 = 'longblob' AND +#Q> c75 = ' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @15=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='9999:12:31' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='9999-12-31 23:59:59' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=2146522447 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2155 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ï¿¿' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='ÿÿ' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=3 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=1 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-10 trans +/*!100001 SET @@session.gtid_seq_no=10*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 = b'0' AND +#Q> c02 = b'0000000000000000000000000000000000000000000000000000000000000000' AND +#Q> c03 = -128 AND +#Q> c04 = 0 AND +#Q> c05 = 000 AND +#Q> c06 = false AND +#Q> c07 = -32768 AND +#Q> c08 = 0 AND +#Q> c09 = 00000 AND +#Q> c10 = -8388608 AND +#Q> c11 = 0 AND +#Q> c12 = 00000000 AND +#Q> c13 = -2147483648 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000000 AND +#Q> c16 = -9223372036854775808 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000000 AND +#Q> c19 < -3.402823465E+38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000 AND +#Q> c22 < -1.7976931348622E+308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 0000000000000000000000 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 0 AND +#Q> c27 = 0000000000 AND +#Q> # +#Q> c28 = '1000-01-01' AND +#Q> c29 = '1000-01-01 00:00:00' AND +#Q> c30 = '1970-01-02 00:00:01' AND +#Q> c31 = '-838:59:59' AND +#Q> c32 = '1901' AND +#Q> # +#Q> c33 = '' AND +#Q> c34 = '' AND +#Q> c35 = '' AND +#Q> c36 = '' AND +#Q> c37 = '' AND +#Q> c38 = '' AND +#Q> c39 = '' AND +#Q> c40 = '' AND +#Q> c41 = '' AND +#Q> c42 = '' AND +#Q> c43 = '' AND +#Q> c44 = '' AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = '' AND +#Q> c47 = '' AND +#Q> c48 = '' AND +#Q> c49 = '' AND +#Q> c50 = '' AND +#Q> c51 = '' AND +#Q> c52 = '' AND +#Q> c53 = '' AND +#Q> c54 = '' AND +#Q> c55 = '' AND +#Q> c56 = '' AND +#Q> # +#Q> # this does not reproduce the inserted value: c57 = '' AND +#Q> c58 = '' AND +#Q> # this does not reproduce the inserted value: c59 = '' AND +#Q> # this does not reproduce the inserted value: c60 = '' AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = '' AND +#Q> c63 = '' AND +#Q> c64 = '' AND +#Q> # +#Q> c65 = '' AND +#Q> c66 = '' AND +#Q> c67 = '' AND +#Q> c68 = '' AND +#Q> c69 = '' AND +#Q> c70 = '' AND +#Q> c71 = '' AND +#Q> c72 = '' AND +#Q> c73 = '' A +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=b'0' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'0000000000000000000000000000000000000000000000000000000000000000' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=-32768 (32768) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=-8388608 (8388608) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=-2147483648 (2147483648) /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=0 /* INT meta=0 nullable=1 is_null=0 */ +### @16=-9223372036854775808 (9223372036854775808) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=0 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=0 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='1000:01:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='1000-01-01 00:00:00' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=75601 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='-838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=1901 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=1 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=2 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-11 trans +/*!100001 SET @@session.gtid_seq_no=11*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 0 AND +#Q> c05 = 001 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 0 AND +#Q> c09 = 00001 AND +#Q> c10 = 8388607 AND +#Q> c11 = 0 AND +#Q> c12 = 00000001 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000001 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000001 AND +#Q> c19 > -1.175494352E-38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000001 AND +#Q> c22 > -2.2250738585073E-308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 00000000000000000000001 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 0000000001 AND +#Q> # +#Q> c28 = '2008-08-04' AND +#Q> c29 = '2008-08-04 16:18:06' AND +#Q> c30 = '2008-08-04 16:18:24' AND +#Q> c31 = '16:18:47' AND +#Q> c32 = '2008' AND +#Q> # +#Q> c33 = 'a' AND +#Q> c34 = '' AND +#Q> c35 = 'e' AND +#Q> c36 = REPEAT('i',255) AND +#Q> c37 = _utf8 x'c3a4' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'c3b6' AND +#Q> c40 = REPEAT(_utf8 x'c3bc',255) AND +#Q> c41 = _ucs2 x'00e4' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'00f6' AND +#Q> c44 = REPEAT(_ucs2 x'00fc',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = 'a' AND +#Q> c47 = REPEAT('e',255) AND +#Q> c48 = REPEAT('i',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'c3a4' AND +#Q> c51 = REPEAT(_utf8 x'c3b6',255) AND +#Q> c52 = REPEAT(_utf8 x'c3bc',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'00e4' AND +#Q> c55 = REPEAT(_ucs2 x'00f6',255) AND +#Q> c56 = REPEAT(_ucs2 x'00fc',261) AND +#Q> # +#Q> c57 = '0' AND +#Q> c58 = '' AND +#Q> c59 = '1' AND +#Q> c60 = REPEAT('1',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = 'b' AND +#Q> c63 = REPEAT('c',255) AND +#Q> c64 = REPEAT('\'',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob' AND +#Q> c72 = 'mediumtext' AND +#Q> c73 = 'mediumtext-ucs2' AND +#Q> c74 = 'longblob' AND +#Q> c75 = 'longtext' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=1 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=1 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=1 /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=1 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=1 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=1 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='2008:08:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='2008-08-04 16:18:06' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=1217855904 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='16:18:47' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2008 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='a' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='e' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ä' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ö' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='\x00ä' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='\x00ö' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='a' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ä' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='\x00ä' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='0' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='1' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='b' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64=''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-12 trans +/*!100001 SET @@session.gtid_seq_no=12*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 IS NULL AND +#Q> c02 IS NULL AND +#Q> c03 IS NULL AND +#Q> c04 IS NULL AND +#Q> c05 IS NULL AND +#Q> c06 IS NULL AND +#Q> c07 IS NULL AND +#Q> c08 IS NULL AND +#Q> c09 IS NULL AND +#Q> c10 IS NULL AND +#Q> c11 IS NULL AND +#Q> c12 IS NULL AND +#Q> c13 IS NULL AND +#Q> c14 IS NULL AND +#Q> c15 IS NULL AND +#Q> c16 IS NULL AND +#Q> c17 IS NULL AND +#Q> c18 IS NULL AND +#Q> c19 IS NULL AND +#Q> c20 IS NULL AND +#Q> c21 IS NULL AND +#Q> c22 IS NULL AND +#Q> c23 IS NULL AND +#Q> c24 IS NULL AND +#Q> c25 IS NULL AND +#Q> c26 IS NULL AND +#Q> c27 IS NULL AND +#Q> # +#Q> c28 IS NULL AND +#Q> c29 IS NULL AND +#Q> # this got a timestamp instead of NULL: c30 IS NULL AND +#Q> c31 IS NULL AND +#Q> c32 IS NULL AND +#Q> # +#Q> c33 IS NULL AND +#Q> c34 IS NULL AND +#Q> c35 IS NULL AND +#Q> c36 IS NULL AND +#Q> c37 IS NULL AND +#Q> c38 IS NULL AND +#Q> c39 IS NULL AND +#Q> c40 IS NULL AND +#Q> c41 IS NULL AND +#Q> c42 IS NULL AND +#Q> c43 IS NULL AND +#Q> c44 IS NULL AND +#Q> # +#Q> c45 IS NULL AND +#Q> c46 IS NULL AND +#Q> c47 IS NULL AND +#Q> c48 IS NULL AND +#Q> c49 IS NULL AND +#Q> c50 IS NULL AND +#Q> c51 IS NULL AND +#Q> c52 IS NULL AND +#Q> c53 IS NULL AND +#Q> c54 IS NULL AND +#Q> c55 IS NULL AND +#Q> c56 IS NULL AND +#Q> # +#Q> c57 IS NULL AND +#Q> c58 IS NULL AND +#Q> c59 IS NULL AND +#Q> c60 IS NULL AND +#Q> # +#Q> c61 IS NULL AND +#Q> c62 IS NULL AND +#Q> c63 IS NULL AND +#Q> c64 IS NULL AND +#Q> # +#Q> c65 IS NULL AND +#Q> c66 IS NULL AND +#Q> c67 IS NULL AND +#Q> c68 IS NULL AND +#Q> c69 IS NULL AND +#Q> c70 IS NULL AND +#Q> c71 IS NULL AND +#Q> c72 IS NULL AND +#Q> c73 IS NULL AND +#Q> c74 IS NUL +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=NULL /* BIT(1) meta=1 nullable=1 is_null=1 */ +### @2=NULL /* BIT(64) meta=2048 nullable=1 is_null=1 */ +### @3=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @4=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @5=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @6=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @7=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @8=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @9=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @10=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @11=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @12=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @13=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @14=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @15=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @16=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @17=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @18=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @19=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @20=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @21=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @22=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @23=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @24=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @25=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @26=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @27=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @28=NULL /* DATE meta=0 nullable=1 is_null=1 */ +### @29=NULL /* DATETIME(0) meta=0 nullable=1 is_null=1 */ +### @30=1000000000 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31=NULL /* TIME(0) meta=0 nullable=1 is_null=1 */ +### @32=NULL /* YEAR meta=0 nullable=1 is_null=1 */ +### @33=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @34=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @35=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @36=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @37=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @38=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @39=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @40=NULL /* STRING(765) meta=57085 nullable=1 is_null=1 */ +### @41=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @42=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @43=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @44=NULL /* STRING(510) meta=61182 nullable=1 is_null=1 */ +### @45=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @46=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @47=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @48=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @49=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @50=NULL /* VARSTRING(3) meta=3 nullable=1 is_null=1 */ +### @51=NULL /* VARSTRING(765) meta=765 nullable=1 is_null=1 */ +### @52=NULL /* VARSTRING(783) meta=783 nullable=1 is_null=1 */ +### @53=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @54=NULL /* VARSTRING(2) meta=2 nullable=1 is_null=1 */ +### @55=NULL /* VARSTRING(510) meta=510 nullable=1 is_null=1 */ +### @56=NULL /* VARSTRING(522) meta=522 nullable=1 is_null=1 */ +### @57=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @58=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @59=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @60=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @61=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @62=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @63=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @64=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @65=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @66=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @67=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @68=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @69=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @70=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @71=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @72=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @73=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @74=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @75=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @76=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @77=NULL /* ENUM(1 byte) meta=63233 nullable=1 is_null=1 */ +### @78=NULL /* SET(1 bytes) meta=63489 nullable=1 is_null=1 */ +### @79=4 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +# Cleanup. +# +DROP TABLE t1; +# +# ========================================= +# Test #2 - Multi-row insert/update/delete. +# ========================================= +# +# Delete all existing binary logs. +# +RESET MASTER; +# +# Create a test table with selected data types. +# +CREATE TABLE t1 ( +c28 DATE, +c47 VARCHAR(24), +crn INT -- row number +) ENGINE=InnoDB DEFAULT CHARSET latin1; +# +# Show how much rows are affected by each statement. +# +# +# Multi-row insert. +# +INSERT INTO t1 VALUES +('2008-08-01','VARCHAR-01',1), +('2008-08-02','VARCHAR-02',2), +('2008-08-03','VARCHAR-03',3), +('2008-08-04','VARCHAR-04',4), +('2008-08-05','VARCHAR-05',5), +('2008-08-06','VARCHAR-06',6), +('2008-08-07','VARCHAR-07',7), +('2008-08-08','VARCHAR-08',8), +('2008-08-09','VARCHAR-09',9); +affected rows: 9 +info: Records: 9 Duplicates: 0 Warnings: 0 +# +# Multi-row update. +# +UPDATE t1 SET c28 = ADDDATE(c28,10) WHERE crn < 8; +affected rows: 7 +info: Rows matched: 7 Changed: 7 Warnings: 0 +# +# Show what we have in the table. +# +SELECT * FROM t1; +c28 c47 crn +2008-08-11 VARCHAR-01 1 +2008-08-12 VARCHAR-02 2 +2008-08-13 VARCHAR-03 3 +2008-08-14 VARCHAR-04 4 +2008-08-15 VARCHAR-05 5 +2008-08-16 VARCHAR-06 6 +2008-08-17 VARCHAR-07 7 +2008-08-08 VARCHAR-08 8 +2008-08-09 VARCHAR-09 9 +affected rows: 9 +# +# Multi-row delete. +# +DELETE FROM t1 WHERE crn < 8; +affected rows: 7 +# +# Show what we have in the table. +# +SELECT * FROM t1; +c28 c47 crn +2008-08-08 VARCHAR-08 8 +2008-08-09 VARCHAR-09 9 +affected rows: 2 +# +# Hide how much rows are affected by each statement. +# +# +# Flush all log buffers to the log file. +# +FLUSH LOGS; +# +# Call mysqlbinlog to display the log file contents. +# +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [] +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C utf8 *//*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 ( +c28 DATE, +c47 VARCHAR(24), +crn INT -- row number +) ENGINE=InnoDB DEFAULT CHARSET latin1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-2 trans +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES +#Q> ('2008-08-01','VARCHAR-01',1), +#Q> ('2008-08-02','VARCHAR-02',2), +#Q> ('2008-08-03','VARCHAR-03',3), +#Q> ('2008-08-04','VARCHAR-04',4), +#Q> ('2008-08-05','VARCHAR-05',5), +#Q> ('2008-08-06','VARCHAR-06',6), +#Q> ('2008-08-07','VARCHAR-07',7), +#Q> ('2008-08-08','VARCHAR-08',8), +#Q> ('2008-08-09','VARCH +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-04' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-05' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-06' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-07' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:08' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-08' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=8 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:09' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-09' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=9 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 9 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-3 trans +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c28 = ADDDATE(c28,10) WHERE crn < 8 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1='2008:08:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=1 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2008:08:11' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=1 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:08:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2008:08:12' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:08:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2008:08:13' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:08:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-04' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2008:08:14' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-04' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:08:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-05' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2008:08:15' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-05' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:08:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-06' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2008:08:16' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-06' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:08:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-07' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2008:08:17' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-07' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 7 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-4 trans +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE crn < 8 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='2008:08:11' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=1 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2008:08:12' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2008:08:13' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2008:08:14' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-04' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2008:08:15' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-05' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2008:08:16' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-06' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2008:08:17' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-07' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 7 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +# Cleanup. +# +DROP TABLE t1; +# +# ==================================== +# Test #3 - Multi-table update/delete. +# ==================================== +# +# Delete all existing binary logs. +# +RESET MASTER; +# +# Create test tables with selected data types. +# +CREATE TABLE t1 ( +c_1_1 DATE, +c_1_2 VARCHAR(255), +c_1_n INT -- row number +) ENGINE=InnoDB DEFAULT CHARSET latin1; +CREATE TABLE t2 ( +c_2_1 DATE, +c_2_2 VARCHAR(255), +c_2_n INT -- row number +) ENGINE=InnoDB DEFAULT CHARSET latin1; +CREATE TABLE t3 ( +c_3_1 DATE, +c_3_2 VARCHAR(255), +c_3_n INT -- row number +) ENGINE=InnoDB DEFAULT CHARSET latin1; +# +# Show how much rows are affected by each statement. +# +# +# Insert data. +# +INSERT INTO t1 VALUES +('2008-01-01','VARCHAR-01-01',11), +('2008-01-02','VARCHAR-01-02',2), +('2008-01-03','VARCHAR-01-03',3), +('2008-01-04','VARCHAR-01-04',4), +('2008-01-05','VARCHAR-01-05',5), +('2008-01-06','VARCHAR-01-06',6), +('2008-01-07','VARCHAR-01-07',7), +('2008-01-08','VARCHAR-01-08',18), +('2008-01-09','VARCHAR-01-09',19); +affected rows: 9 +info: Records: 9 Duplicates: 0 Warnings: 0 +INSERT INTO t2 VALUES +('2008-02-01','VARCHAR-02-01',21), +('2008-02-02','VARCHAR-02-02',2), +('2008-02-03','VARCHAR-02-03',3), +('2008-02-04','VARCHAR-02-04',4), +('2008-02-05','VARCHAR-02-05',5), +('2008-02-06','VARCHAR-02-06',6), +('2008-02-07','VARCHAR-02-07',7), +('2008-02-08','VARCHAR-02-08',28), +('2008-02-09','VARCHAR-02-09',29); +affected rows: 9 +info: Records: 9 Duplicates: 0 Warnings: 0 +INSERT INTO t3 VALUES +('2008-03-01','VARCHAR-03-01',31), +('2008-03-02','VARCHAR-03-02',2), +('2008-03-03','VARCHAR-03-03',3), +('2008-03-04','VARCHAR-03-04',4), +('2008-03-05','VARCHAR-03-05',5), +('2008-03-06','VARCHAR-03-06',6), +('2008-03-07','VARCHAR-03-07',7), +('2008-03-08','VARCHAR-03-08',38), +('2008-03-09','VARCHAR-03-09',39); +affected rows: 9 +info: Records: 9 Duplicates: 0 Warnings: 0 +# +# Multi-table update. +# +UPDATE t1,t2,t3 SET +c_1_1 = ADDDATE(c_1_1,INTERVAL 10 YEAR), +c_2_1 = ADDDATE(c_2_1,INTERVAL 20 YEAR), +c_3_1 = ADDDATE(c_3_1,INTERVAL 30 YEAR) +WHERE c_1_n = c_2_n AND c_2_n = c_3_n; +affected rows: 18 +info: Rows matched: 18 Changed: 18 Warnings: 0 +# +# Show what we have in the tables. +# +SELECT * FROM t1; +c_1_1 c_1_2 c_1_n +2008-01-01 VARCHAR-01-01 11 +2018-01-02 VARCHAR-01-02 2 +2018-01-03 VARCHAR-01-03 3 +2018-01-04 VARCHAR-01-04 4 +2018-01-05 VARCHAR-01-05 5 +2018-01-06 VARCHAR-01-06 6 +2018-01-07 VARCHAR-01-07 7 +2008-01-08 VARCHAR-01-08 18 +2008-01-09 VARCHAR-01-09 19 +affected rows: 9 +SELECT * FROM t2; +c_2_1 c_2_2 c_2_n +2008-02-01 VARCHAR-02-01 21 +2028-02-02 VARCHAR-02-02 2 +2028-02-03 VARCHAR-02-03 3 +2028-02-04 VARCHAR-02-04 4 +2028-02-05 VARCHAR-02-05 5 +2028-02-06 VARCHAR-02-06 6 +2028-02-07 VARCHAR-02-07 7 +2008-02-08 VARCHAR-02-08 28 +2008-02-09 VARCHAR-02-09 29 +affected rows: 9 +SELECT * FROM t3; +c_3_1 c_3_2 c_3_n +2008-03-01 VARCHAR-03-01 31 +2038-03-02 VARCHAR-03-02 2 +2038-03-03 VARCHAR-03-03 3 +2038-03-04 VARCHAR-03-04 4 +2038-03-05 VARCHAR-03-05 5 +2038-03-06 VARCHAR-03-06 6 +2038-03-07 VARCHAR-03-07 7 +2008-03-08 VARCHAR-03-08 38 +2008-03-09 VARCHAR-03-09 39 +affected rows: 9 +# +# Multi-table delete. +# +DELETE FROM t1,t2,t3 USING t1 INNER JOIN t2 INNER JOIN t3 +WHERE c_1_n = c_2_n AND c_2_n = c_3_n; +affected rows: 18 +# +# Show what we have in the tables. +# +SELECT * FROM t1; +c_1_1 c_1_2 c_1_n +2008-01-01 VARCHAR-01-01 11 +2008-01-08 VARCHAR-01-08 18 +2008-01-09 VARCHAR-01-09 19 +affected rows: 3 +SELECT * FROM t2; +c_2_1 c_2_2 c_2_n +2008-02-01 VARCHAR-02-01 21 +2008-02-08 VARCHAR-02-08 28 +2008-02-09 VARCHAR-02-09 29 +affected rows: 3 +SELECT * FROM t3; +c_3_1 c_3_2 c_3_n +2008-03-01 VARCHAR-03-01 31 +2008-03-08 VARCHAR-03-08 38 +2008-03-09 VARCHAR-03-09 39 +affected rows: 3 +# +# Hide how much rows are affected by each statement. +# +# +# Flush all log buffers to the log file. +# +FLUSH LOGS; +# +# Call mysqlbinlog to display the log file contents. +# +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [] +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C utf8 *//*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 ( +c_1_1 DATE, +c_1_2 VARCHAR(255), +c_1_n INT -- row number +) ENGINE=InnoDB DEFAULT CHARSET latin1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-2 ddl +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t2 ( +c_2_1 DATE, +c_2_2 VARCHAR(255), +c_2_n INT -- row number +) ENGINE=InnoDB DEFAULT CHARSET latin1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-3 ddl +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t3 ( +c_3_1 DATE, +c_3_2 VARCHAR(255), +c_3_n INT -- row number +) ENGINE=InnoDB DEFAULT CHARSET latin1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-4 trans +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES +#Q> ('2008-01-01','VARCHAR-01-01',11), +#Q> ('2008-01-02','VARCHAR-01-02',2), +#Q> ('2008-01-03','VARCHAR-01-03',3), +#Q> ('2008-01-04','VARCHAR-01-04',4), +#Q> ('2008-01-05','VARCHAR-01-05',5), +#Q> ('2008-01-06','VARCHAR-01-06',6), +#Q> ('2008-01-07','VARCHAR-01-07',7), +#Q> ('2008-01-08','VARCHAR-01-08',18), +#Q> ('2008-01-09','VARCHAR-0 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-01' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=11 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:08' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-08' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=18 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:09' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-09' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=19 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 9 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-5 trans +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 VALUES +#Q> ('2008-02-01','VARCHAR-02-01',21), +#Q> ('2008-02-02','VARCHAR-02-02',2), +#Q> ('2008-02-03','VARCHAR-02-03',3), +#Q> ('2008-02-04','VARCHAR-02-04',4), +#Q> ('2008-02-05','VARCHAR-02-05',5), +#Q> ('2008-02-06','VARCHAR-02-06',6), +#Q> ('2008-02-07','VARCHAR-02-07',7), +#Q> ('2008-02-08','VARCHAR-02-08',28), +#Q> ('2008-02-09','VARCHAR-0 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-01' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=21 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:08' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-08' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=28 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:09' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-09' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=29 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 9 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-6 trans +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t3 VALUES +#Q> ('2008-03-01','VARCHAR-03-01',31), +#Q> ('2008-03-02','VARCHAR-03-02',2), +#Q> ('2008-03-03','VARCHAR-03-03',3), +#Q> ('2008-03-04','VARCHAR-03-04',4), +#Q> ('2008-03-05','VARCHAR-03-05',5), +#Q> ('2008-03-06','VARCHAR-03-06',6), +#Q> ('2008-03-07','VARCHAR-03-07',7), +#Q> ('2008-03-08','VARCHAR-03-08',38), +#Q> ('2008-03-09','VARCHAR-0 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t3` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-01' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=31 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:08' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-08' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=38 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:09' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-09' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=39 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 9 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-7 trans +/*!100001 SET @@session.gtid_seq_no=7*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1,t2,t3 SET +#Q> c_1_1 = ADDDATE(c_1_1,INTERVAL 10 YEAR), +#Q> c_2_1 = ADDDATE(c_2_1,INTERVAL 20 YEAR), +#Q> c_3_1 = ADDDATE(c_3_1,INTERVAL 30 YEAR) +#Q> WHERE c_1_n = c_2_n AND c_2_n = c +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t3` mapped to number # +# at # +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1='2008:01:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2018:01:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:01:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2018:01:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:01:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2018:01:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:01:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2018:01:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:01:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2018:01:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:01:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2018:01:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1='2008:02:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2028:02:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1='2008:02:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2028:02:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1='2008:02:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2028:02:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1='2008:02:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2028:02:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1='2008:02:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2028:02:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1='2008:02:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2028:02:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t3` +### WHERE +### @1='2008:03:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2038:03:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t3` +### WHERE +### @1='2008:03:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2038:03:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t3` +### WHERE +### @1='2008:03:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2038:03:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t3` +### WHERE +### @1='2008:03:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2038:03:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t3` +### WHERE +### @1='2008:03:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2038:03:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t3` +### WHERE +### @1='2008:03:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2038:03:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 18 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-8 trans +/*!100001 SET @@session.gtid_seq_no=8*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1,t2,t3 USING t1 INNER JOIN t2 INNER JOIN t3 +#Q> WHERE c_1_n = c_2_n AND c_2_n = c_3_ +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t3` mapped to number # +# at # +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='2018:01:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2018:01:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2018:01:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2018:01:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2018:01:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2018:01:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t2` +### WHERE +### @1='2028:02:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t2` +### WHERE +### @1='2028:02:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t2` +### WHERE +### @1='2028:02:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t2` +### WHERE +### @1='2028:02:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t2` +### WHERE +### @1='2028:02:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t2` +### WHERE +### @1='2028:02:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t3` +### WHERE +### @1='2038:03:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t3` +### WHERE +### @1='2038:03:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t3` +### WHERE +### @1='2038:03:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t3` +### WHERE +### @1='2038:03:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t3` +### WHERE +### @1='2038:03:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t3` +### WHERE +### @1='2038:03:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 18 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +# Cleanup. +# +DROP TABLE t1, t2, t3; +# +# =========================== +# Test #4 - LOAD DATA INFILE. +# =========================== +# +# Delete all existing binary logs. +# +RESET MASTER; +# +# Create a test table with selected data types. +# +CREATE TABLE t1 ( +c1 INT DEFAULT 100, +c2 INT, +c3 VARCHAR(60) +) ENGINE=InnoDB DEFAULT CHARSET latin1; +# +# Show how much rows are affected by each statement. +# +# +# Load data. +# +LOAD DATA INFILE '../../std_data/loaddata5.dat' + INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (c1,c2) +SET c3 = 'Wow'; +affected rows: 3 +info: Records: 3 Deleted: 0 Skipped: 0 Warnings: 6 +Warnings: +Note 1265 Data truncated for column 'c1' at row 1 +Note 1265 Data truncated for column 'c2' at row 1 +Note 1265 Data truncated for column 'c1' at row 2 +Note 1265 Data truncated for column 'c2' at row 2 +Note 1265 Data truncated for column 'c1' at row 3 +Note 1265 Data truncated for column 'c2' at row 3 +# +# Show what we have in the table. +# +SELECT * FROM t1; +c1 c2 c3 +1 2 Wow +3 4 Wow +5 6 Wow +affected rows: 3 +# +# Hide how much rows are affected by each statement. +# +# +# Flush all log buffers to the log file. +# +FLUSH LOGS; +# +# Call mysqlbinlog to display the log file contents. +# +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [] +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C utf8 *//*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 ( +c1 INT DEFAULT 100, +c2 INT, +c3 VARCHAR(60) +) ENGINE=InnoDB DEFAULT CHARSET latin1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-2 trans +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> LOAD DATA INFILE '../../std_data/loaddata5.dat' +#Q> INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (c1,c2) +#Q> SET c3 = 'Wo +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### @2=2 /* INT meta=0 nullable=1 is_null=0 */ +### @3='Wow' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### @2=4 /* INT meta=0 nullable=1 is_null=0 */ +### @3='Wow' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=5 /* INT meta=0 nullable=1 is_null=0 */ +### @2=6 /* INT meta=0 nullable=1 is_null=0 */ +### @3='Wow' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +# Cleanup. +# +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result new file mode 100644 index 00000000..47b366fc --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result @@ -0,0 +1,6415 @@ +set sql_mode=""; +SET NAMES 'utf8'; +# +# Preparatory cleanup. +# +DROP TABLE IF EXISTS t1, t2, t3; +# +# We need a fixed timestamp to avoid varying results. +# +SET timestamp=1000000000; +# +# =================================================== +# Test #1 - Insert/update/delete with all data types. +# =================================================== +# +# Delete all existing binary logs. +# +RESET MASTER; +# +# Create a test table with all data types. +# +CREATE TABLE t1 ( +c01 BIT, +c02 BIT(64), +c03 TINYINT, +c04 TINYINT UNSIGNED, +c05 TINYINT ZEROFILL, +c06 BOOL, +c07 SMALLINT, +c08 SMALLINT UNSIGNED, +c09 SMALLINT ZEROFILL, +c10 MEDIUMINT, +c11 MEDIUMINT UNSIGNED, +c12 MEDIUMINT ZEROFILL, +c13 INT, +c14 INT UNSIGNED, +c15 INT ZEROFILL, +c16 BIGINT, +c17 BIGINT UNSIGNED, +c18 BIGINT ZEROFILL, +c19 FLOAT, +c20 FLOAT UNSIGNED, +c21 FLOAT ZEROFILL, +c22 DOUBLE, +c23 DOUBLE UNSIGNED, +c24 DOUBLE ZEROFILL, +c25 DECIMAL, +c26 DECIMAL UNSIGNED, +c27 DECIMAL ZEROFILL, +# +c28 DATE, +c29 DATETIME, +c30 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, +c31 TIME, +c32 YEAR, +# +c33 CHAR, +c34 CHAR(0), +c35 CHAR(1), +c36 CHAR(255), +c37 NATIONAL CHAR, +c38 NATIONAL CHAR(0), +c39 NATIONAL CHAR(1), +c40 NATIONAL CHAR(255), +c41 CHAR CHARACTER SET UCS2, +c42 CHAR(0) CHARACTER SET UCS2, +c43 CHAR(1) CHARACTER SET UCS2, +c44 CHAR(255) CHARACTER SET UCS2, +# +c45 VARCHAR(0), +c46 VARCHAR(1), +c47 VARCHAR(255), +c48 VARCHAR(261), +c49 NATIONAL VARCHAR(0), +c50 NATIONAL VARCHAR(1), +c51 NATIONAL VARCHAR(255), +c52 NATIONAL VARCHAR(261), +c53 VARCHAR(0) CHARACTER SET UCS2, +c54 VARCHAR(1) CHARACTER SET UCS2, +c55 VARCHAR(255) CHARACTER SET UCS2, +c56 VARCHAR(261) CHARACTER SET UCS2, +# +c57 BINARY, +c58 BINARY(0), +c59 BINARY(1), +c60 BINARY(255), +# +c61 VARBINARY(0), +c62 VARBINARY(1), +c63 VARBINARY(255), +c64 VARBINARY(261), +# +c65 TINYBLOB, +c66 TINYTEXT, +c67 TINYTEXT CHARACTER SET UCS2, +c68 BLOB, +c69 TEXT, +c70 TEXT CHARACTER SET UCS2, +c71 MEDIUMBLOB, +c72 MEDIUMTEXT, +c73 MEDIUMTEXT CHARACTER SET UCS2, +c74 LONGBLOB, +c75 LONGTEXT, +c76 LONGTEXT CHARACTER SET UCS2, +# +c77 ENUM('a','b','c'), +c78 SET('a','b','c'), +# +crn INT -- row number +) ENGINE=MyISAM DEFAULT CHARSET latin1; +# +# Insert minimum values. +# +INSERT INTO t1 VALUES ( +b'0', -- c01 +b'0000000000000000000000000000000000000000000000000000000000000000', -- c02 +-128, -- c03 +0, -- c04 +000, -- c05 +false, -- c06 +-32768, -- c07 +0, -- c08 +00000, -- c09 +-8388608, -- c10 +0, -- c11 +00000000, -- c12 +-2147483648, -- c13 +0, -- c14 +0000000000, -- c15 +-9223372036854775808, -- c16 +0, -- c17 +00000000000000000000, -- c18 +-3.402823466E+38, -- c19 +1.175494351E-38, -- c20 +000000000000, -- c21 +-1.7976931348623E+308, -- c22 three digits cut for ps-protocol +2.2250738585072E-308, -- c23 three digits cut for ps-protocol +0000000000000000000000, -- c24 +-9999999999, -- c25 +0, -- c26 +0000000000, -- c27 +# +'1000-01-01', -- c28 +'1000-01-01 00:00:00', -- c29 +'1970-01-02 00:00:01', -- c30 one day later due to timezone issues +'-838:59:59', -- c31 +'1901', -- c32 +# +'', -- c33 +'', -- c34 +'', -- c35 +'', -- c36 +'', -- c37 +'', -- c38 +'', -- c39 +'', -- c40 +'', -- c41 +'', -- c42 +'', -- c43 +'', -- c44 +# +'', -- c45 +'', -- c46 +'', -- c47 +'', -- c48 +'', -- c49 +'', -- c50 +'', -- c51 +'', -- c52 +'', -- c53 +'', -- c54 +'', -- c55 +'', -- c56 +# +'', -- c57 +'', -- c58 +'', -- c59 +'', -- c60 +# +'', -- c61 +'', -- c62 +'', -- c63 +'', -- c64 +# +'', -- c65 +'', -- c66 +'', -- c67 +'', -- c68 +'', -- c69 +'', -- c70 +'', -- c71 +'', -- c72 +'', -- c73 +'', -- c74 +'', -- c75 +'', -- c76 +# +'a', -- c77 +'', -- c78 +# +1 -- crn -- row number +); +# +# Insert maximum values. +# +INSERT INTO t1 VALUES ( +b'1', -- c01 +b'1111111111111111111111111111111111111111111111111111111111111111', -- c02 +127, -- c03 +255, -- c04 +255, -- c05 +true, -- c06 +32767, -- c07 +65535, -- c08 +65535, -- c09 +8388607, -- c10 +16777215, -- c11 +16777215, -- c12 +2147483647, -- c13 +4294967295, -- c14 +4294967295, -- c15 +9223372036854775807, -- c16 +18446744073709551615, -- c17 +18446744073709551615, -- c18 +3.402823466E+38, -- c19 +3.402823466E+38, -- c20 +3.402823466E+38, -- c21 +1.7976931348623E+308, -- c22 three digits cut for ps-protocol +1.7976931348623E+308, -- c23 three digits cut for ps-protocol +1.7976931348623E+308, -- c24 three digits cut for ps-protocol +9999999999, -- c25 +9999999999, -- c26 +9999999999, -- c27 +# +'9999-12-31', -- c28 +'9999-12-31 23:59:59', -- c29 +'2038-01-08 03:14:07', -- c30 one day earlier due to timezone issues +'838:59:59', -- c31 +'2155', -- c32 +# +x'ff', -- c33 +'', -- c34 +x'ff', -- c35 +REPEAT(x'ff',255), -- c36 +_utf8 x'efbfbf', -- c37 +'', -- c38 +_utf8 x'efbfbf', -- c39 +REPEAT(_utf8 x'efbfbf',255), -- c40 +_ucs2 x'ffff', -- c41 +'', -- c42 +_ucs2 x'ffff', -- c43 +REPEAT(_ucs2 x'ffff',255), -- c44 +# +'', -- c45 +x'ff', -- c46 +REPEAT(x'ff',255), -- c47 +REPEAT(x'ff',261), -- c48 +'', -- c49 +_utf8 x'efbfbf', -- c50 +REPEAT(_utf8 x'efbfbf',255), -- c51 +REPEAT(_utf8 x'efbfbf',261), -- c52 +'', -- c53 +_ucs2 x'ffff', -- c54 +REPEAT(_ucs2 x'ffff',255), -- c55 +REPEAT(_ucs2 x'ffff',261), -- c56 +# +x'ff', -- c57 +'', -- c58 +x'ff', -- c59 +REPEAT(x'ff',255), -- c60 +# +'', -- c61 +x'ff', -- c62 +REPEAT(x'ff',255), -- c63 +REPEAT(x'ff',261), -- c64 +# +'tinyblob', -- c65 not using maximum value here +'tinytext', -- c66 not using maximum value here +'tinytext-ucs2', -- c67 not using maximum value here +'blob', -- c68 not using maximum value here +'text', -- c69 not using maximum value here +'text-ucs2', -- c70 not using maximum value here +'mediumblob', -- c71 not using maximum value here +'mediumtext', -- c72 not using maximum value here +'mediumtext-ucs2', -- c73 not using maximum value here +'longblob', -- c74 not using maximum value here +'longtext', -- c75 not using maximum value here +'longtext-ucs2', -- c76 not using maximum value here +# +'c', -- c77 +'a,b,c', -- c78 +# +2 -- crn -- row number +); +# +# Insert a row with NULL values and one with arbitrary values. +# +INSERT INTO t1 VALUES ( +NULL, -- c01 +NULL, -- c02 +NULL, -- c03 +NULL, -- c04 +NULL, -- c05 +NULL, -- c06 +NULL, -- c07 +NULL, -- c08 +NULL, -- c09 +NULL, -- c10 +NULL, -- c11 +NULL, -- c12 +NULL, -- c13 +NULL, -- c14 +NULL, -- c15 +NULL, -- c16 +NULL, -- c17 +NULL, -- c18 +NULL, -- c19 +NULL, -- c20 +NULL, -- c21 +NULL, -- c22 +NULL, -- c23 +NULL, -- c24 +NULL, -- c25 +NULL, -- c26 +NULL, -- c27 +# +NULL, -- c28 +NULL, -- c29 +NULL, -- c30 +NULL, -- c31 +NULL, -- c32 +# +NULL, -- c33 +NULL, -- c34 +NULL, -- c35 +NULL, -- c36 +NULL, -- c37 +NULL, -- c38 +NULL, -- c39 +NULL, -- c40 +NULL, -- c41 +NULL, -- c42 +NULL, -- c43 +NULL, -- c44 +# +NULL, -- c45 +NULL, -- c46 +NULL, -- c47 +NULL, -- c48 +NULL, -- c49 +NULL, -- c50 +NULL, -- c51 +NULL, -- c52 +NULL, -- c53 +NULL, -- c54 +NULL, -- c55 +NULL, -- c56 +# +NULL, -- c57 +NULL, -- c58 +NULL, -- c59 +NULL, -- c60 +# +NULL, -- c61 +NULL, -- c62 +NULL, -- c63 +NULL, -- c64 +# +NULL, -- c65 +NULL, -- c66 +NULL, -- c67 +NULL, -- c68 +NULL, -- c69 +NULL, -- c70 +NULL, -- c71 +NULL, -- c72 +NULL, -- c73 +NULL, -- c74 +NULL, -- c75 +NULL, -- c76 +# +NULL, -- c77 +NULL, -- c78 +# +3 -- crn -- row number +), ( +b'1', -- c01 +b'1111111111111111111111111111111111111111111111111111111111111111', -- c02 +127, -- c03 +0, -- c04 +001, -- c05 +true, -- c06 +32767, -- c07 +0, -- c08 +00001, -- c09 +8388607, -- c10 +0, -- c11 +00000001, -- c12 +2147483647, -- c13 +0, -- c14 +0000000001, -- c15 +9223372036854775807, -- c16 +0, -- c17 +00000000000000000001, -- c18 +-1.175494351E-38, -- c19 +1.175494351E-38, -- c20 +000000000000001, -- c21 +-2.2250738585072E-308, -- c22 +2.2250738585072E-308, -- c23 +00000000000000000000001, -- c24 +-9999999999, -- c25 +9999999999, -- c26 +0000000001, -- c27 +# +'2008-08-04', -- c28 +'2008-08-04 16:18:06', -- c29 +'2008-08-04 16:18:24', -- c30 +'16:18:47', -- c31 +'2008', -- c32 +# +'a', -- c33 +'', -- c34 +'e', -- c35 +REPEAT('i',255), -- c36 +_utf8 x'c3a4', -- c37 +'', -- c38 +_utf8 x'c3b6', -- c39 +REPEAT(_utf8 x'c3bc',255), -- c40 +_ucs2 x'00e4', -- c41 +'', -- c42 +_ucs2 x'00f6', -- c43 +REPEAT(_ucs2 x'00fc',255), -- c44 +# +'', -- c45 +'a', -- c46 +REPEAT('e',255), -- c47 +REPEAT('i',261), -- c48 +'', -- c49 +_utf8 x'c3a4', -- c50 +REPEAT(_utf8 x'c3b6',255), -- c51 +REPEAT(_utf8 x'c3bc',261), -- c52 +'', -- c53 +_ucs2 x'00e4', -- c54 +REPEAT(_ucs2 x'00f6',255), -- c55 +REPEAT(_ucs2 x'00fc',261), -- c56 +# +'0', -- c57 +'', -- c58 +'1', -- c59 +REPEAT('1',255), -- c60 +# +'', -- c61 +'b', -- c62 +REPEAT('c',255), -- c63 +REPEAT('\'',261), -- c64 + # + 'tinyblob', -- c65 + 'tinytext', -- c66 + 'tinytext-ucs2', -- c67 + 'blob', -- c68 + 'text', -- c69 + 'text-ucs2', -- c70 + 'mediumblob', -- c71 + 'mediumtext', -- c72 + 'mediumtext-ucs2', -- c73 + 'longblob', -- c74 + 'longtext', -- c75 + 'longtext-ucs2', -- c76 + # + 'b', -- c77 + 'b,c', -- c78 + # + 4 -- crn -- row number + ); +# +# Show what we have in the table. +# Do not display bit type output. It's binary and confuses diff. +# Also BINARY with nul-bytes should be avoided. +# +SELECT * FROM t1; +c01 # +c02 # +c03 -128 +c04 0 +c05 000 +c06 0 +c07 -32768 +c08 0 +c09 00000 +c10 -8388608 +c11 0 +c12 00000000 +c13 -2147483648 +c14 0 +c15 0000000000 +c16 -9223372036854775808 +c17 0 +c18 00000000000000000000 +c19 -3.40282e38 +c20 1.17549e-38 +c21 000000000000 +c22 -1.7976931348623e308 +c23 2.2250738585072e-308 +c24 0000000000000000000000 +c25 -9999999999 +c26 0 +c27 0000000000 +c28 1000-01-01 +c29 1000-01-01 00:00:00 +c30 1970-01-02 00:00:01 +c31 -838:59:59 +c32 1901 +c33 +c34 +c35 +c36 +c37 +c38 +c39 +c40 +c41 +c42 +c43 +c44 +c45 +c46 +c47 +c48 +c49 +c50 +c51 +c52 +c53 +c54 +c55 +c56 +c57 # +c58 # +c59 # +c60 # +c61 +c62 +c63 +c64 +c65 +c66 +c67 +c68 +c69 +c70 +c71 +c72 +c73 +c74 +c75 +c76 +c77 a +c78 +crn 1 +c01 # +c02 # +c03 127 +c04 255 +c05 255 +c06 1 +c07 32767 +c08 65535 +c09 65535 +c10 8388607 +c11 16777215 +c12 16777215 +c13 2147483647 +c14 4294967295 +c15 4294967295 +c16 9223372036854775807 +c17 18446744073709551615 +c18 18446744073709551615 +c19 3.40282e38 +c20 3.40282e38 +c21 003.40282e38 +c22 1.7976931348623e308 +c23 1.7976931348623e308 +c24 0001.7976931348623e308 +c25 9999999999 +c26 9999999999 +c27 9999999999 +c28 9999-12-31 +c29 9999-12-31 23:59:59 +c30 2038-01-08 03:14:07 +c31 838:59:59 +c32 2155 +c33 ÿ +c34 +c35 ÿ +c36 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c37 ï¿¿ +c38 +c39 ï¿¿ +c40 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c41 ï¿¿ +c42 +c43 ï¿¿ +c44 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c45 +c46 ÿ +c47 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c48 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c49 +c50 ï¿¿ +c51 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c52 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c53 +c54 ï¿¿ +c55 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c56 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c57 # +c58 # +c59 # +c60 # +c61 +c62 ÿ +c63 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c64 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c65 tinyblob +c66 tinytext +c67 tinytext-ucs2 +c68 blob +c69 text +c70 text-ucs2 +c71 mediumblob +c72 mediumtext +c73 mediumtext-ucs2 +c74 longblob +c75 longtext +c76 longtext-ucs2 +c77 c +c78 a,b,c +crn 2 +c01 # +c02 # +c03 NULL +c04 NULL +c05 NULL +c06 NULL +c07 NULL +c08 NULL +c09 NULL +c10 NULL +c11 NULL +c12 NULL +c13 NULL +c14 NULL +c15 NULL +c16 NULL +c17 NULL +c18 NULL +c19 NULL +c20 NULL +c21 NULL +c22 NULL +c23 NULL +c24 NULL +c25 NULL +c26 NULL +c27 NULL +c28 NULL +c29 NULL +c30 2001-09-09 04:46:40 +c31 NULL +c32 NULL +c33 NULL +c34 NULL +c35 NULL +c36 NULL +c37 NULL +c38 NULL +c39 NULL +c40 NULL +c41 NULL +c42 NULL +c43 NULL +c44 NULL +c45 NULL +c46 NULL +c47 NULL +c48 NULL +c49 NULL +c50 NULL +c51 NULL +c52 NULL +c53 NULL +c54 NULL +c55 NULL +c56 NULL +c57 # +c58 # +c59 # +c60 # +c61 NULL +c62 NULL +c63 NULL +c64 NULL +c65 NULL +c66 NULL +c67 NULL +c68 NULL +c69 NULL +c70 NULL +c71 NULL +c72 NULL +c73 NULL +c74 NULL +c75 NULL +c76 NULL +c77 NULL +c78 NULL +crn 3 +c01 # +c02 # +c03 127 +c04 0 +c05 001 +c06 1 +c07 32767 +c08 0 +c09 00001 +c10 8388607 +c11 0 +c12 00000001 +c13 2147483647 +c14 0 +c15 0000000001 +c16 9223372036854775807 +c17 0 +c18 00000000000000000001 +c19 -1.17549e-38 +c20 1.17549e-38 +c21 000000000001 +c22 -2.2250738585072e-308 +c23 2.2250738585072e-308 +c24 0000000000000000000001 +c25 -9999999999 +c26 9999999999 +c27 0000000001 +c28 2008-08-04 +c29 2008-08-04 16:18:06 +c30 2008-08-04 16:18:24 +c31 16:18:47 +c32 2008 +c33 a +c34 +c35 e +c36 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +c37 ä +c38 +c39 ö +c40 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c41 ä +c42 +c43 ö +c44 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c45 +c46 a +c47 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +c48 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +c49 +c50 ä +c51 ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö +c52 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c53 +c54 ä +c55 ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö +c56 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c57 # +c58 # +c59 # +c60 # +c61 +c62 b +c63 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +c64 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +c65 tinyblob +c66 tinytext +c67 tinytext-ucs2 +c68 blob +c69 text +c70 text-ucs2 +c71 mediumblob +c72 mediumtext +c73 mediumtext-ucs2 +c74 longblob +c75 longtext +c76 longtext-ucs2 +c77 b +c78 b,c +crn 4 +# +# NOTE: For matching FLOAT and DOUBLE values in WHERE conditions, +# don't use exact match, but < or > and tweak the numbers a bit. +# +# Show how much rows are affected by each statement. +# +# +# Update min values to max values. +# +UPDATE t1 SET +c01 = b'1', +c02 = b'1111111111111111111111111111111111111111111111111111111111111111', +c03 = 127, +c04 = 255, +c05 = 255, +c06 = true, +c07 = 32767, +c08 = 65535, +c09 = 65535, +c10 = 8388607, +c11 = 16777215, +c12 = 16777215, +c13 = 2147483647, +c14 = 4294967295, +c15 = 4294967295, +c16 = 9223372036854775807, +c17 = 18446744073709551615, +c18 = 18446744073709551615, +c19 = 3.402823466E+38, +c20 = 3.402823466E+38, +c21 = 3.402823466E+38, +c22 = 1.7976931348623E+308, +c23 = 1.7976931348623E+308, +c24 = 1.7976931348623E+308, +c25 = 9999999999, +c26 = 9999999999, +c27 = 9999999999, +# +c28 = '9999-12-31', +c29 = '9999-12-31 23:59:59', +c30 = '2038-01-08 03:14:07', +c31 = '838:59:59', +c32 = '2155', +# +c33 = x'ff', +c34 = '', +c35 = x'ff', +c36 = REPEAT(x'ff',255), +c37 = _utf8 x'efbfbf', +c38 = '', +c39 = _utf8 x'efbfbf', +c40 = REPEAT(_utf8 x'efbfbf',255), +c41 = _ucs2 x'ffff', +c42 = '', +c43 = _ucs2 x'ffff', +c44 = REPEAT(_ucs2 x'ffff',255), +# +c45 = '', +c46 = x'ff', +c47 = REPEAT(x'ff',255), +c48 = REPEAT(x'ff',261), +c49 = '', +c50 = _utf8 x'efbfbf', +c51 = REPEAT(_utf8 x'efbfbf',255), +c52 = REPEAT(_utf8 x'efbfbf',261), +c53 = '', +c54 = _ucs2 x'ffff', +c55 = REPEAT(_ucs2 x'ffff',255), +c56 = REPEAT(_ucs2 x'ffff',261), +# +c57 = x'ff', +c58 = '', +c59 = x'ff', +c60 = REPEAT(x'ff',255), +# +c61 = '', +c62 = x'ff', +c63 = REPEAT(x'ff',255), +c64 = REPEAT(x'ff',261), +# +c65 = 'tinyblob', +c66 = 'tinytext', +c67 = 'tinytext-ucs2', +c68 = 'blob', +c69 = 'text', +c70 = 'text-ucs2', +c71 = 'mediumblob', +c72 = 'mediumtext', +c73 = 'mediumtext-ucs2', +c74 = 'longblob', +c75 = 'longtext', +c76 = 'longtext-ucs2', +# +c77 = 'c', +c78 = 'a,b,c', +# +crn = crn +# +WHERE +# +c01 = b'0' AND +c02 = b'0000000000000000000000000000000000000000000000000000000000000000' AND +c03 = -128 AND +c04 = 0 AND +c05 = 000 AND +c06 = false AND +c07 = -32768 AND +c08 = 0 AND +c09 = 00000 AND +c10 = -8388608 AND +c11 = 0 AND +c12 = 00000000 AND +c13 = -2147483648 AND +c14 = 0 AND +c15 = 0000000000 AND +c16 = -9223372036854775808 AND +c17 = 0 AND +c18 = 00000000000000000000 AND +c19 < -3.402823465E+38 AND +c20 < 1.175494352E-38 AND +c21 = 000000000000 AND +c22 < -1.7976931348622E+308 AND +c23 < 2.2250738585073E-308 AND +c24 = 0000000000000000000000 AND +c25 = -9999999999 AND +c26 = 0 AND +c27 = 0000000000 AND +# +c28 = '1000-01-01' AND +c29 = '1000-01-01 00:00:00' AND +c30 = '1970-01-02 00:00:01' AND +c31 = '-838:59:59' AND +c32 = '1901' AND +# +c33 = '' AND +c34 = '' AND +c35 = '' AND +c36 = '' AND +c37 = '' AND +c38 = '' AND +c39 = '' AND +c40 = '' AND +c41 = '' AND +c42 = '' AND +c43 = '' AND +c44 = '' AND +# +c45 = '' AND +c46 = '' AND +c47 = '' AND +c48 = '' AND +c49 = '' AND +c50 = '' AND +c51 = '' AND +c52 = '' AND +c53 = '' AND +c54 = '' AND +c55 = '' AND +c56 = '' AND +# +# this does not reproduce the inserted value: c57 = '' AND +c58 = '' AND +# this does not reproduce the inserted value: c59 = '' AND +# this does not reproduce the inserted value: c60 = '' AND +# +c61 = '' AND +c62 = '' AND +c63 = '' AND +c64 = '' AND +# +c65 = '' AND +c66 = '' AND +c67 = '' AND +c68 = '' AND +c69 = '' AND +c70 = '' AND +c71 = '' AND +c72 = '' AND +c73 = '' AND +c74 = '' AND +c75 = '' AND +c76 = '' AND +# +c77 = 'a' AND +c78 = '' AND +# +crn = 1; +affected rows: 1 +info: Rows matched: 1 Changed: 1 Warnings: 0 +# +# Update max values to min values. +# +UPDATE t1 SET +c01 = b'0', +c02 = b'0000000000000000000000000000000000000000000000000000000000000000', +c03 = -128, +c04 = 0, +c05 = 000, +c06 = false, +c07 = -32768, +c08 = 0, +c09 = 00000, +c10 = -8388608, +c11 = 0, +c12 = 00000000, +c13 = -2147483648, +c14 = 0, +c15 = 0000000000, +c16 = -9223372036854775808, +c17 = 0, +c18 = 00000000000000000000, +c19 = -3.402823466E+38, +c20 = 1.175494351E-38, +c21 = 000000000000, +c22 = -1.7976931348623E+308, +c23 = 2.2250738585072E-308, +c24 = 0000000000000000000000, +c25 = -9999999999, +c26 = 0, +c27 = 0000000000, +# +c28 = '1000-01-01', +c29 = '1000-01-01 00:00:00', +c30 = '1970-01-02 00:00:01', +c31 = '-838:59:59', +c32 = '1901', +# +c33 = '', +c34 = '', +c35 = '', +c36 = '', +c37 = '', +c38 = '', +c39 = '', +c40 = '', +c41 = '', +c42 = '', +c43 = '', +c44 = '', +# +c45 = '', +c46 = '', +c47 = '', +c48 = '', +c49 = '', +c50 = '', +c51 = '', +c52 = '', +c53 = '', +c54 = '', +c55 = '', +c56 = '', +# +c57 = '', +c58 = '', +c59 = '', +c60 = '', +# +c61 = '', +c62 = '', +c63 = '', +c64 = '', +# +c65 = '', +c66 = '', +c67 = '', +c68 = '', +c69 = '', +c70 = '', +c71 = '', +c72 = '', +c73 = '', +c74 = '', +c75 = '', +c76 = '', +# +c77 = 'a', +c78 = '', +# +crn = crn +# +WHERE +# +c01 = b'1' AND +# the below does not reproduce the inserted value: +#c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +c03 = 127 AND +c04 = 255 AND +c05 = 255 AND +c06 = true AND +c07 = 32767 AND +c08 = 65535 AND +c09 = 65535 AND +c10 = 8388607 AND +c11 = 16777215 AND +c12 = 16777215 AND +c13 = 2147483647 AND +c14 = 4294967295 AND +c15 = 4294967295 AND +c16 = 9223372036854775807 AND +c17 = 18446744073709551615 AND +c18 = 18446744073709551615 AND +c19 > 3.402823465E+38 AND +c20 > 3.402823465E+38 AND +c21 > 3.402823465E+38 AND +c22 > 1.7976931348622E+308 AND +c23 > 1.7976931348622E+308 AND +c24 > 1.7976931348622E+308 AND +c25 = 9999999999 AND +c26 = 9999999999 AND +c27 = 9999999999 AND +# +c28 = '9999-12-31' AND +c29 = '9999-12-31 23:59:59' AND +c30 = '2038-01-08 03:14:07' AND +c31 = '838:59:59' AND +c32 = '2155' AND +# +c33 = x'ff' AND +c34 = '' AND +c35 = x'ff' AND +c36 = REPEAT(x'ff',255) AND +c37 = _utf8 x'efbfbf' AND +c38 = '' AND +c39 = _utf8 x'efbfbf' AND +c40 = REPEAT(_utf8 x'efbfbf',255) AND +c41 = _ucs2 x'ffff' AND +c42 = '' AND +c43 = _ucs2 x'ffff' AND +c44 = REPEAT(_ucs2 x'ffff',255) AND +# +c45 = '' AND +c46 = x'ff' AND +c47 = REPEAT(x'ff',255) AND +c48 = REPEAT(x'ff',261) AND +c49 = '' AND +c50 = _utf8 x'efbfbf' AND +c51 = REPEAT(_utf8 x'efbfbf',255) AND +c52 = REPEAT(_utf8 x'efbfbf',261) AND +c53 = '' AND +c54 = _ucs2 x'ffff' AND +c55 = REPEAT(_ucs2 x'ffff',255) AND +c56 = REPEAT(_ucs2 x'ffff',261) AND +# +c57 = x'ff' AND +c58 = '' AND +c59 = x'ff' AND +c60 = REPEAT(x'ff',255) AND +# +c61 = '' AND +c62 = x'ff' AND +c63 = REPEAT(x'ff',255) AND +c64 = REPEAT(x'ff',261) AND +# +c65 = 'tinyblob' AND +c66 = 'tinytext' AND +c67 = 'tinytext-ucs2' AND +c68 = 'blob' AND +c69 = 'text' AND +c70 = 'text-ucs2' AND +c71 = 'mediumblob' AND +c72 = 'mediumtext' AND +c73 = 'mediumtext-ucs2' AND +c74 = 'longblob' AND +c75 = 'longtext' AND +c76 = 'longtext-ucs2' AND +# +c77 = 'c' AND +c78 = 'a,b,c' AND +# +crn = 2; +affected rows: 1 +info: Rows matched: 1 Changed: 1 Warnings: 0 +# +# Update NULL values to arbitrary values. +# +UPDATE t1 SET +c01 = b'1', +c02 = b'1111111111111111111111111111111111111111111111111111111111111111', +c03 = 127, +c04 = 0, +c05 = 001, +c06 = true, +c07 = 32767, +c08 = 0, +c09 = 00001, +c10 = 8388607, +c11 = 0, +c12 = 00000001, +c13 = 2147483647, +c14 = 0, +c15 = 0000000001, +c16 = 9223372036854775807, +c17 = 0, +c18 = 00000000000000000001, +c19 = -1.175494351E-38, +c20 = 1.175494351E-38, +c21 = 000000000000001, +c22 = -2.2250738585072E-308, +c23 = 2.2250738585072E-308, +c24 = 00000000000000000000001, +c25 = -9999999999, +c26 = 9999999999, +c27 = 0000000001, +# +c28 = '2008-08-04', +c29 = '2008-08-04 16:18:06', +c30 = '2008-08-04 16:18:24', +c31 = '16:18:47', +c32 = '2008', +# +c33 = 'a', +c34 = '', +c35 = 'e', +c36 = REPEAT('i',255), +c37 = _utf8 x'c3a4', +c38 = '', +c39 = _utf8 x'c3b6', +c40 = REPEAT(_utf8 x'c3bc',255), +c41 = _ucs2 x'00e4', +c42 = '', +c43 = _ucs2 x'00f6', +c44 = REPEAT(_ucs2 x'00fc',255), +# +c45 = '', +c46 = 'a', +c47 = REPEAT('e',255), +c48 = REPEAT('i',261), +c49 = '', +c50 = _utf8 x'c3a4', +c51 = REPEAT(_utf8 x'c3b6',255), +c52 = REPEAT(_utf8 x'c3bc',261), +c53 = '', +c54 = _ucs2 x'00e4', +c55 = REPEAT(_ucs2 x'00f6',255), +c56 = REPEAT(_ucs2 x'00fc',261), +# +c57 = '0', +c58 = '', +c59 = '1', +c60 = REPEAT('1',255), +# +c61 = '', +c62 = 'b', +c63 = REPEAT('c',255), +c64 = REPEAT('\'',261), + # + c65 = 'tinyblob', + c66 = 'tinytext', + c67 = 'tinytext-ucs2', + c68 = 'blob', + c69 = 'text', + c70 = 'text-ucs2', + c71 = 'mediumblob', + c72 = 'mediumtext', + c73 = 'mediumtext-ucs2', + c74 = 'longblob', + c75 = 'longtext', + c76 = 'longtext-ucs2', + # + c77 = 'b', + c78 = 'b,c', + # + crn = crn + # + WHERE + # + c01 IS NULL AND + c02 IS NULL AND + c03 IS NULL AND + c04 IS NULL AND + c05 IS NULL AND + c06 IS NULL AND + c07 IS NULL AND + c08 IS NULL AND + c09 IS NULL AND + c10 IS NULL AND + c11 IS NULL AND + c12 IS NULL AND + c13 IS NULL AND + c14 IS NULL AND + c15 IS NULL AND + c16 IS NULL AND + c17 IS NULL AND + c18 IS NULL AND + c19 IS NULL AND + c20 IS NULL AND + c21 IS NULL AND + c22 IS NULL AND + c23 IS NULL AND + c24 IS NULL AND + c25 IS NULL AND + c26 IS NULL AND + c27 IS NULL AND + # + c28 IS NULL AND + c29 IS NULL AND + # this got a timestamp instead of NULL: c30 IS NULL AND + c31 IS NULL AND + c32 IS NULL AND + # + c33 IS NULL AND + c34 IS NULL AND + c35 IS NULL AND + c36 IS NULL AND + c37 IS NULL AND + c38 IS NULL AND + c39 IS NULL AND + c40 IS NULL AND + c41 IS NULL AND + c42 IS NULL AND + c43 IS NULL AND + c44 IS NULL AND + # + c45 IS NULL AND + c46 IS NULL AND + c47 IS NULL AND + c48 IS NULL AND + c49 IS NULL AND + c50 IS NULL AND + c51 IS NULL AND + c52 IS NULL AND + c53 IS NULL AND + c54 IS NULL AND + c55 IS NULL AND + c56 IS NULL AND + # + c57 IS NULL AND + c58 IS NULL AND + c59 IS NULL AND + c60 IS NULL AND + # + c61 IS NULL AND + c62 IS NULL AND + c63 IS NULL AND + c64 IS NULL AND + # + c65 IS NULL AND + c66 IS NULL AND + c67 IS NULL AND + c68 IS NULL AND + c69 IS NULL AND + c70 IS NULL AND + c71 IS NULL AND + c72 IS NULL AND + c73 IS NULL AND + c74 IS NULL AND + c75 IS NULL AND + c76 IS NULL AND + # + c77 IS NULL AND + c78 IS NULL AND + # + crn = 3; +affected rows: 1 +info: Rows matched: 1 Changed: 1 Warnings: 0 +# +# Update arbitrary values to NULL values. +# +UPDATE t1 SET +c01 = NULL, +c02 = NULL, +c03 = NULL, +c04 = NULL, +c05 = NULL, +c06 = NULL, +c07 = NULL, +c08 = NULL, +c09 = NULL, +c10 = NULL, +c11 = NULL, +c12 = NULL, +c13 = NULL, +c14 = NULL, +c15 = NULL, +c16 = NULL, +c17 = NULL, +c18 = NULL, +c19 = NULL, +c20 = NULL, +c21 = NULL, +c22 = NULL, +c23 = NULL, +c24 = NULL, +c25 = NULL, +c26 = NULL, +c27 = NULL, +# +c28 = NULL, +c29 = NULL, +c30 = NULL, +c31 = NULL, +c32 = NULL, +# +c33 = NULL, +c34 = NULL, +c35 = NULL, +c36 = NULL, +c37 = NULL, +c38 = NULL, +c39 = NULL, +c40 = NULL, +c41 = NULL, +c42 = NULL, +c43 = NULL, +c44 = NULL, +# +c45 = NULL, +c46 = NULL, +c47 = NULL, +c48 = NULL, +c49 = NULL, +c50 = NULL, +c51 = NULL, +c52 = NULL, +c53 = NULL, +c54 = NULL, +c55 = NULL, +c56 = NULL, +# +c57 = NULL, +c58 = NULL, +c59 = NULL, +c60 = NULL, +# +c61 = NULL, +c62 = NULL, +c63 = NULL, +c64 = NULL, +# +c65 = NULL, +c66 = NULL, +c67 = NULL, +c68 = NULL, +c69 = NULL, +c70 = NULL, +c71 = NULL, +c72 = NULL, +c73 = NULL, +c74 = NULL, +c75 = NULL, +c76 = NULL, +# +c77 = NULL, +c78 = NULL, +# +crn = crn +# +WHERE +# +c01 = b'1' AND +# the below does not reproduce the inserted value: +#c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +c03 = 127 AND +c04 = 0 AND +c05 = 001 AND +c06 = true AND +c07 = 32767 AND +c08 = 0 AND +c09 = 00001 AND +c10 = 8388607 AND +c11 = 0 AND +c12 = 00000001 AND +c13 = 2147483647 AND +c14 = 0 AND +c15 = 0000000001 AND +c16 = 9223372036854775807 AND +c17 = 0 AND +c18 = 00000000000000000001 AND +c19 > -1.175494352E-38 AND +c20 < 1.175494352E-38 AND +c21 = 000000000000001 AND +c22 > -2.2250738585073E-308 AND +c23 < 2.2250738585073E-308 AND +c24 = 00000000000000000000001 AND +c25 = -9999999999 AND +c26 = 9999999999 AND +c27 = 0000000001 AND +# +c28 = '2008-08-04' AND +c29 = '2008-08-04 16:18:06' AND +c30 = '2008-08-04 16:18:24' AND +c31 = '16:18:47' AND +c32 = '2008' AND +# +c33 = 'a' AND +c34 = '' AND +c35 = 'e' AND +c36 = REPEAT('i',255) AND +c37 = _utf8 x'c3a4' AND +c38 = '' AND +c39 = _utf8 x'c3b6' AND +c40 = REPEAT(_utf8 x'c3bc',255) AND +c41 = _ucs2 x'00e4' AND +c42 = '' AND +c43 = _ucs2 x'00f6' AND +c44 = REPEAT(_ucs2 x'00fc',255) AND +# +c45 = '' AND +c46 = 'a' AND +c47 = REPEAT('e',255) AND +c48 = REPEAT('i',261) AND +c49 = '' AND +c50 = _utf8 x'c3a4' AND +c51 = REPEAT(_utf8 x'c3b6',255) AND +c52 = REPEAT(_utf8 x'c3bc',261) AND +c53 = '' AND +c54 = _ucs2 x'00e4' AND +c55 = REPEAT(_ucs2 x'00f6',255) AND +c56 = REPEAT(_ucs2 x'00fc',261) AND +# +c57 = '0' AND +c58 = '' AND +c59 = '1' AND +c60 = REPEAT('1',255) AND +# +c61 = '' AND +c62 = 'b' AND +c63 = REPEAT('c',255) AND +c64 = REPEAT('\'',261) AND + # + c65 = 'tinyblob' AND + c66 = 'tinytext' AND + c67 = 'tinytext-ucs2' AND + c68 = 'blob' AND + c69 = 'text' AND + c70 = 'text-ucs2' AND + c71 = 'mediumblob' AND + c72 = 'mediumtext' AND + c73 = 'mediumtext-ucs2' AND + c74 = 'longblob' AND + c75 = 'longtext' AND + c76 = 'longtext-ucs2' AND + # + c77 = 'b' AND + c78 = 'b,c' AND + # + crn = 4; +affected rows: 1 +info: Rows matched: 1 Changed: 1 Warnings: 0 +# +# Show what we have in the table. +# Do not display bit type output. It's binary and confuses diff. +# Also BINARY with nul-bytes should be avoided. +# +SELECT * FROM t1; +c01 # +c02 # +c03 127 +c04 255 +c05 255 +c06 1 +c07 32767 +c08 65535 +c09 65535 +c10 8388607 +c11 16777215 +c12 16777215 +c13 2147483647 +c14 4294967295 +c15 4294967295 +c16 9223372036854775807 +c17 18446744073709551615 +c18 18446744073709551615 +c19 3.40282e38 +c20 3.40282e38 +c21 003.40282e38 +c22 1.7976931348623e308 +c23 1.7976931348623e308 +c24 0001.7976931348623e308 +c25 9999999999 +c26 9999999999 +c27 9999999999 +c28 9999-12-31 +c29 9999-12-31 23:59:59 +c30 2038-01-08 03:14:07 +c31 838:59:59 +c32 2155 +c33 ÿ +c34 +c35 ÿ +c36 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c37 ï¿¿ +c38 +c39 ï¿¿ +c40 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c41 ï¿¿ +c42 +c43 ï¿¿ +c44 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c45 +c46 ÿ +c47 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c48 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c49 +c50 ï¿¿ +c51 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c52 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c53 +c54 ï¿¿ +c55 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c56 ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ +c57 # +c58 # +c59 # +c60 # +c61 +c62 ÿ +c63 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c64 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +c65 tinyblob +c66 tinytext +c67 tinytext-ucs2 +c68 blob +c69 text +c70 text-ucs2 +c71 mediumblob +c72 mediumtext +c73 mediumtext-ucs2 +c74 longblob +c75 longtext +c76 longtext-ucs2 +c77 c +c78 a,b,c +crn 1 +c01 # +c02 # +c03 -128 +c04 0 +c05 000 +c06 0 +c07 -32768 +c08 0 +c09 00000 +c10 -8388608 +c11 0 +c12 00000000 +c13 -2147483648 +c14 0 +c15 0000000000 +c16 -9223372036854775808 +c17 0 +c18 00000000000000000000 +c19 -3.40282e38 +c20 1.17549e-38 +c21 000000000000 +c22 -1.7976931348623e308 +c23 2.2250738585072e-308 +c24 0000000000000000000000 +c25 -9999999999 +c26 0 +c27 0000000000 +c28 1000-01-01 +c29 1000-01-01 00:00:00 +c30 1970-01-02 00:00:01 +c31 -838:59:59 +c32 1901 +c33 +c34 +c35 +c36 +c37 +c38 +c39 +c40 +c41 +c42 +c43 +c44 +c45 +c46 +c47 +c48 +c49 +c50 +c51 +c52 +c53 +c54 +c55 +c56 +c57 # +c58 # +c59 # +c60 # +c61 +c62 +c63 +c64 +c65 +c66 +c67 +c68 +c69 +c70 +c71 +c72 +c73 +c74 +c75 +c76 +c77 a +c78 +crn 2 +c01 # +c02 # +c03 127 +c04 0 +c05 001 +c06 1 +c07 32767 +c08 0 +c09 00001 +c10 8388607 +c11 0 +c12 00000001 +c13 2147483647 +c14 0 +c15 0000000001 +c16 9223372036854775807 +c17 0 +c18 00000000000000000001 +c19 -1.17549e-38 +c20 1.17549e-38 +c21 000000000001 +c22 -2.2250738585072e-308 +c23 2.2250738585072e-308 +c24 0000000000000000000001 +c25 -9999999999 +c26 9999999999 +c27 0000000001 +c28 2008-08-04 +c29 2008-08-04 16:18:06 +c30 2008-08-04 16:18:24 +c31 16:18:47 +c32 2008 +c33 a +c34 +c35 e +c36 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +c37 ä +c38 +c39 ö +c40 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c41 ä +c42 +c43 ö +c44 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c45 +c46 a +c47 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +c48 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +c49 +c50 ä +c51 ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö +c52 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c53 +c54 ä +c55 ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö +c56 üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü +c57 # +c58 # +c59 # +c60 # +c61 +c62 b +c63 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +c64 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +c65 tinyblob +c66 tinytext +c67 tinytext-ucs2 +c68 blob +c69 text +c70 text-ucs2 +c71 mediumblob +c72 mediumtext +c73 mediumtext-ucs2 +c74 longblob +c75 longtext +c76 longtext-ucs2 +c77 b +c78 b,c +crn 3 +c01 # +c02 # +c03 NULL +c04 NULL +c05 NULL +c06 NULL +c07 NULL +c08 NULL +c09 NULL +c10 NULL +c11 NULL +c12 NULL +c13 NULL +c14 NULL +c15 NULL +c16 NULL +c17 NULL +c18 NULL +c19 NULL +c20 NULL +c21 NULL +c22 NULL +c23 NULL +c24 NULL +c25 NULL +c26 NULL +c27 NULL +c28 NULL +c29 NULL +c30 2001-09-09 04:46:40 +c31 NULL +c32 NULL +c33 NULL +c34 NULL +c35 NULL +c36 NULL +c37 NULL +c38 NULL +c39 NULL +c40 NULL +c41 NULL +c42 NULL +c43 NULL +c44 NULL +c45 NULL +c46 NULL +c47 NULL +c48 NULL +c49 NULL +c50 NULL +c51 NULL +c52 NULL +c53 NULL +c54 NULL +c55 NULL +c56 NULL +c57 # +c58 # +c59 # +c60 # +c61 NULL +c62 NULL +c63 NULL +c64 NULL +c65 NULL +c66 NULL +c67 NULL +c68 NULL +c69 NULL +c70 NULL +c71 NULL +c72 NULL +c73 NULL +c74 NULL +c75 NULL +c76 NULL +c77 NULL +c78 NULL +crn 4 +affected rows: 4 +# +# Delete the row that has max values now. +# +DELETE FROM t1 WHERE +# +c01 = b'1' AND +# the below does not reproduce the inserted value: +#c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +c03 = 127 AND +c04 = 255 AND +c05 = 255 AND +c06 = true AND +c07 = 32767 AND +c08 = 65535 AND +c09 = 65535 AND +c10 = 8388607 AND +c11 = 16777215 AND +c12 = 16777215 AND +c13 = 2147483647 AND +c14 = 4294967295 AND +c15 = 4294967295 AND +c16 = 9223372036854775807 AND +c17 = 18446744073709551615 AND +c18 = 18446744073709551615 AND +c19 > 3.402823465E+38 AND +c20 > 3.402823465E+38 AND +c21 > 3.402823465E+38 AND +c22 > 1.7976931348622E+308 AND +c23 > 1.7976931348622E+308 AND +c24 > 1.7976931348622E+308 AND +c25 = 9999999999 AND +c26 = 9999999999 AND +c27 = 9999999999 AND +# +c28 = '9999-12-31' AND +c29 = '9999-12-31 23:59:59' AND +c30 = '2038-01-08 03:14:07' AND +c31 = '838:59:59' AND +c32 = '2155' AND +# +c33 = x'ff' AND +c34 = '' AND +c35 = x'ff' AND +c36 = REPEAT(x'ff',255) AND +c37 = _utf8 x'efbfbf' AND +c38 = '' AND +c39 = _utf8 x'efbfbf' AND +c40 = REPEAT(_utf8 x'efbfbf',255) AND +c41 = _ucs2 x'ffff' AND +c42 = '' AND +c43 = _ucs2 x'ffff' AND +c44 = REPEAT(_ucs2 x'ffff',255) AND +# +c45 = '' AND +c46 = x'ff' AND +c47 = REPEAT(x'ff',255) AND +c48 = REPEAT(x'ff',261) AND +c49 = '' AND +c50 = _utf8 x'efbfbf' AND +c51 = REPEAT(_utf8 x'efbfbf',255) AND +c52 = REPEAT(_utf8 x'efbfbf',261) AND +c53 = '' AND +c54 = _ucs2 x'ffff' AND +c55 = REPEAT(_ucs2 x'ffff',255) AND +c56 = REPEAT(_ucs2 x'ffff',261) AND +# +c57 = x'ff' AND +c58 = '' AND +c59 = x'ff' AND +c60 = REPEAT(x'ff',255) AND +# +c61 = '' AND +c62 = x'ff' AND +c63 = REPEAT(x'ff',255) AND +c64 = REPEAT(x'ff',261) AND +# +c65 = 'tinyblob' AND +c66 = 'tinytext' AND +c67 = 'tinytext-ucs2' AND +c68 = 'blob' AND +c69 = 'text' AND +c70 = 'text-ucs2' AND +c71 = 'mediumblob' AND +c72 = 'mediumtext' AND +c73 = 'mediumtext-ucs2' AND +c74 = 'longblob' AND +c75 = 'longtext' AND +c76 = 'longtext-ucs2' AND +# +c77 = 'c' AND +c78 = 'a,b,c' AND +# +crn = 1; +affected rows: 1 +# +# Delete the row that has min values now. +# +DELETE FROM t1 WHERE +# +c01 = b'0' AND +c02 = b'0000000000000000000000000000000000000000000000000000000000000000' AND +c03 = -128 AND +c04 = 0 AND +c05 = 000 AND +c06 = false AND +c07 = -32768 AND +c08 = 0 AND +c09 = 00000 AND +c10 = -8388608 AND +c11 = 0 AND +c12 = 00000000 AND +c13 = -2147483648 AND +c14 = 0 AND +c15 = 0000000000 AND +c16 = -9223372036854775808 AND +c17 = 0 AND +c18 = 00000000000000000000 AND +c19 < -3.402823465E+38 AND +c20 < 1.175494352E-38 AND +c21 = 000000000000 AND +c22 < -1.7976931348622E+308 AND +c23 < 2.2250738585073E-308 AND +c24 = 0000000000000000000000 AND +c25 = -9999999999 AND +c26 = 0 AND +c27 = 0000000000 AND +# +c28 = '1000-01-01' AND +c29 = '1000-01-01 00:00:00' AND +c30 = '1970-01-02 00:00:01' AND +c31 = '-838:59:59' AND +c32 = '1901' AND +# +c33 = '' AND +c34 = '' AND +c35 = '' AND +c36 = '' AND +c37 = '' AND +c38 = '' AND +c39 = '' AND +c40 = '' AND +c41 = '' AND +c42 = '' AND +c43 = '' AND +c44 = '' AND +# +c45 = '' AND +c46 = '' AND +c47 = '' AND +c48 = '' AND +c49 = '' AND +c50 = '' AND +c51 = '' AND +c52 = '' AND +c53 = '' AND +c54 = '' AND +c55 = '' AND +c56 = '' AND +# +# this does not reproduce the inserted value: c57 = '' AND +c58 = '' AND +# this does not reproduce the inserted value: c59 = '' AND +# this does not reproduce the inserted value: c60 = '' AND +# +c61 = '' AND +c62 = '' AND +c63 = '' AND +c64 = '' AND +# +c65 = '' AND +c66 = '' AND +c67 = '' AND +c68 = '' AND +c69 = '' AND +c70 = '' AND +c71 = '' AND +c72 = '' AND +c73 = '' AND +c74 = '' AND +c75 = '' AND +c76 = '' AND +# +c77 = 'a' AND +c78 = '' AND +# +crn = 2; +affected rows: 1 +# +# Delete the row that has arbitrary values now. +# +DELETE FROM t1 WHERE +# +c01 = b'1' AND +# the below does not reproduce the inserted value: +#c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +c03 = 127 AND +c04 = 0 AND +c05 = 001 AND +c06 = true AND +c07 = 32767 AND +c08 = 0 AND +c09 = 00001 AND +c10 = 8388607 AND +c11 = 0 AND +c12 = 00000001 AND +c13 = 2147483647 AND +c14 = 0 AND +c15 = 0000000001 AND +c16 = 9223372036854775807 AND +c17 = 0 AND +c18 = 00000000000000000001 AND +c19 > -1.175494352E-38 AND +c20 < 1.175494352E-38 AND +c21 = 000000000000001 AND +c22 > -2.2250738585073E-308 AND +c23 < 2.2250738585073E-308 AND +c24 = 00000000000000000000001 AND +c25 = -9999999999 AND +c26 = 9999999999 AND +c27 = 0000000001 AND +# +c28 = '2008-08-04' AND +c29 = '2008-08-04 16:18:06' AND +c30 = '2008-08-04 16:18:24' AND +c31 = '16:18:47' AND +c32 = '2008' AND +# +c33 = 'a' AND +c34 = '' AND +c35 = 'e' AND +c36 = REPEAT('i',255) AND +c37 = _utf8 x'c3a4' AND +c38 = '' AND +c39 = _utf8 x'c3b6' AND +c40 = REPEAT(_utf8 x'c3bc',255) AND +c41 = _ucs2 x'00e4' AND +c42 = '' AND +c43 = _ucs2 x'00f6' AND +c44 = REPEAT(_ucs2 x'00fc',255) AND +# +c45 = '' AND +c46 = 'a' AND +c47 = REPEAT('e',255) AND +c48 = REPEAT('i',261) AND +c49 = '' AND +c50 = _utf8 x'c3a4' AND +c51 = REPEAT(_utf8 x'c3b6',255) AND +c52 = REPEAT(_utf8 x'c3bc',261) AND +c53 = '' AND +c54 = _ucs2 x'00e4' AND +c55 = REPEAT(_ucs2 x'00f6',255) AND +c56 = REPEAT(_ucs2 x'00fc',261) AND +# +c57 = '0' AND +c58 = '' AND +c59 = '1' AND +c60 = REPEAT('1',255) AND +# +c61 = '' AND +c62 = 'b' AND +c63 = REPEAT('c',255) AND +c64 = REPEAT('\'',261) AND + # + c65 = 'tinyblob' AND + c66 = 'tinytext' AND + c67 = 'tinytext-ucs2' AND + c68 = 'blob' AND + c69 = 'text' AND + c70 = 'text-ucs2' AND + c71 = 'mediumblob' AND + c72 = 'mediumtext' AND + c73 = 'mediumtext-ucs2' AND + c74 = 'longblob' AND + c75 = 'longtext' AND + c76 = 'longtext-ucs2' AND + # + c77 = 'b' AND + c78 = 'b,c' AND + # + crn = 3; +affected rows: 1 +# +# Delete the row that has NULL values now. +# +DELETE FROM t1 WHERE +# +c01 IS NULL AND +c02 IS NULL AND +c03 IS NULL AND +c04 IS NULL AND +c05 IS NULL AND +c06 IS NULL AND +c07 IS NULL AND +c08 IS NULL AND +c09 IS NULL AND +c10 IS NULL AND +c11 IS NULL AND +c12 IS NULL AND +c13 IS NULL AND +c14 IS NULL AND +c15 IS NULL AND +c16 IS NULL AND +c17 IS NULL AND +c18 IS NULL AND +c19 IS NULL AND +c20 IS NULL AND +c21 IS NULL AND +c22 IS NULL AND +c23 IS NULL AND +c24 IS NULL AND +c25 IS NULL AND +c26 IS NULL AND +c27 IS NULL AND +# +c28 IS NULL AND +c29 IS NULL AND +# this got a timestamp instead of NULL: c30 IS NULL AND +c31 IS NULL AND +c32 IS NULL AND +# +c33 IS NULL AND +c34 IS NULL AND +c35 IS NULL AND +c36 IS NULL AND +c37 IS NULL AND +c38 IS NULL AND +c39 IS NULL AND +c40 IS NULL AND +c41 IS NULL AND +c42 IS NULL AND +c43 IS NULL AND +c44 IS NULL AND +# +c45 IS NULL AND +c46 IS NULL AND +c47 IS NULL AND +c48 IS NULL AND +c49 IS NULL AND +c50 IS NULL AND +c51 IS NULL AND +c52 IS NULL AND +c53 IS NULL AND +c54 IS NULL AND +c55 IS NULL AND +c56 IS NULL AND +# +c57 IS NULL AND +c58 IS NULL AND +c59 IS NULL AND +c60 IS NULL AND +# +c61 IS NULL AND +c62 IS NULL AND +c63 IS NULL AND +c64 IS NULL AND +# +c65 IS NULL AND +c66 IS NULL AND +c67 IS NULL AND +c68 IS NULL AND +c69 IS NULL AND +c70 IS NULL AND +c71 IS NULL AND +c72 IS NULL AND +c73 IS NULL AND +c74 IS NULL AND +c75 IS NULL AND +c76 IS NULL AND +# +c77 IS NULL AND +c78 IS NULL AND +# +crn = 4; +affected rows: 1 +# +# Show what we have in the table. Should be empty now. +# +SELECT * FROM t1; +affected rows: 0 +# +# Hide how much rows are affected by each statement. +# +# +# Flush all log buffers to the log file. +# +FLUSH LOGS; +# +# Call mysqlbinlog to display the log file contents. +# +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [] +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C utf8 *//*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 ( +c01 BIT, +c02 BIT(64), +c03 TINYINT, +c04 TINYINT UNSIGNED, +c05 TINYINT ZEROFILL, +c06 BOOL, +c07 SMALLINT, +c08 SMALLINT UNSIGNED, +c09 SMALLINT ZEROFILL, +c10 MEDIUMINT, +c11 MEDIUMINT UNSIGNED, +c12 MEDIUMINT ZEROFILL, +c13 INT, +c14 INT UNSIGNED, +c15 INT ZEROFILL, +c16 BIGINT, +c17 BIGINT UNSIGNED, +c18 BIGINT ZEROFILL, +c19 FLOAT, +c20 FLOAT UNSIGNED, +c21 FLOAT ZEROFILL, +c22 DOUBLE, +c23 DOUBLE UNSIGNED, +c24 DOUBLE ZEROFILL, +c25 DECIMAL, +c26 DECIMAL UNSIGNED, +c27 DECIMAL ZEROFILL, +# +c28 DATE, +c29 DATETIME, +c30 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, +c31 TIME, +c32 YEAR, +# +c33 CHAR, +c34 CHAR(0), +c35 CHAR(1), +c36 CHAR(255), +c37 NATIONAL CHAR, +c38 NATIONAL CHAR(0), +c39 NATIONAL CHAR(1), +c40 NATIONAL CHAR(255), +c41 CHAR CHARACTER SET UCS2, +c42 CHAR(0) CHARACTER SET UCS2, +c43 CHAR(1) CHARACTER SET UCS2, +c44 CHAR(255) CHARACTER SET UCS2, +# +c45 VARCHAR(0), +c46 VARCHAR(1), +c47 VARCHAR(255), +c48 VARCHAR(261), +c49 NATIONAL VARCHAR(0), +c50 NATIONAL VARCHAR(1), +c51 NATIONAL VARCHAR(255), +c52 NATIONAL VARCHAR(261), +c53 VARCHAR(0) CHARACTER SET UCS2, +c54 VARCHAR(1) CHARACTER SET UCS2, +c55 VARCHAR(255) CHARACTER SET UCS2, +c56 VARCHAR(261) CHARACTER SET UCS2, +# +c57 BINARY, +c58 BINARY(0), +c59 BINARY(1), +c60 BINARY(255), +# +c61 VARBINARY(0), +c62 VARBINARY(1), +c63 VARBINARY(255), +c64 VARBINARY(261), +# +c65 TINYBLOB, +c66 TINYTEXT, +c67 TINYTEXT CHARACTER SET UCS2, +c68 BLOB, +c69 TEXT, +c70 TEXT CHARACTER SET UCS2, +c71 MEDIUMBLOB, +c72 MEDIUMTEXT, +c73 MEDIUMTEXT CHARACTER SET UCS2, +c74 LONGBLOB, +c75 LONGTEXT, +c76 LONGTEXT CHARACTER SET UCS2, +# +c77 ENUM('a','b','c'), +c78 SET('a','b','c'), +# +crn INT -- row number +) ENGINE=MyISAM DEFAULT CHARSET latin1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-2 +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ( +#Q> b'0', -- c01 +#Q> b'0000000000000000000000000000000000000000000000000000000000000000', -- c02 +#Q> -128, -- c03 +#Q> 0, -- c04 +#Q> 000, -- c05 +#Q> false, -- c06 +#Q> -32768, -- c07 +#Q> 0, -- c08 +#Q> 00000, -- c09 +#Q> -8388608, -- c10 +#Q> 0, -- c11 +#Q> 00000000, -- c12 +#Q> -2147483648, -- c13 +#Q> 0, -- c14 +#Q> 0000000000, -- c15 +#Q> -9223372036854775808, -- c16 +#Q> 0, -- c17 +#Q> 00000000000000000000, -- c18 +#Q> -3.402823466E+38, -- c19 +#Q> 1.175494351E-38, -- c20 +#Q> 000000000000, -- c21 +#Q> -1.7976931348623E+308, -- c22 three digits cut for ps-protocol +#Q> 2.2250738585072E-308, -- c23 three digits cut for ps-protocol +#Q> 0000000000000000000000, -- c24 +#Q> -9999999999, -- c25 +#Q> 0, -- c26 +#Q> 0000000000, -- c27 +#Q> # +#Q> '1000-01-01', -- c28 +#Q> '1000-01-01 00:00:00', -- c29 +#Q> '1970-01-02 00:00:01', -- c30 one day later due to timezone issues +#Q> '-838:59:59', -- c31 +#Q> '1901', -- c32 +#Q> # +#Q> '', -- c33 +#Q> '', -- c34 +#Q> '', -- c35 +#Q> '', -- c36 +#Q> '', -- c37 +#Q> '', -- c38 +#Q> '', -- c39 +#Q> '', -- c40 +#Q> '', -- c41 +#Q> '', -- c42 +#Q> '', -- c43 +#Q> '', -- c44 +#Q> # +#Q> '', -- c45 +#Q> '', -- c46 +#Q> '', -- c47 +#Q> '', -- c48 +#Q> '', -- c49 +#Q> '', -- c50 +#Q> '', -- c51 +#Q> '', -- c52 +#Q> '', -- c53 +#Q> '', -- c54 +#Q> '', -- c55 +#Q> '', -- c56 +#Q> # +#Q> '', -- c57 +#Q> '', -- c58 +#Q> '', -- c59 +#Q> '', -- c60 +#Q> # +#Q> '', -- c61 +#Q> '', -- c62 +#Q> '', -- c63 +#Q> '', -- c64 +#Q> # +#Q> '', -- c65 +#Q> '', -- c66 +#Q> '', -- c67 +#Q> '', -- c68 +#Q> '', -- c69 +#Q> '', -- c70 +#Q> '', -- c71 +#Q> '', -- c72 +#Q> '', -- c73 +#Q> '', -- c74 +#Q> '', -- c75 +#Q> '', -- c76 +#Q> # +#Q> 'a', -- c77 +#Q> '', +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'0' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'0000000000000000000000000000000000000000000000000000000000000000' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=-32768 (32768) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=-8388608 (8388608) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=-2147483648 (2147483648) /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=0 /* INT meta=0 nullable=1 is_null=0 */ +### @16=-9223372036854775808 (9223372036854775808) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=0 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=0 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='1000:01:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='1000-01-01 00:00:00' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=75601 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='-838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=1901 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=1 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=1 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +SET @@session.time_zone='SYSTEM'/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-3 +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ( +#Q> b'1', -- c01 +#Q> b'1111111111111111111111111111111111111111111111111111111111111111', -- c02 +#Q> 127, -- c03 +#Q> 255, -- c04 +#Q> 255, -- c05 +#Q> true, -- c06 +#Q> 32767, -- c07 +#Q> 65535, -- c08 +#Q> 65535, -- c09 +#Q> 8388607, -- c10 +#Q> 16777215, -- c11 +#Q> 16777215, -- c12 +#Q> 2147483647, -- c13 +#Q> 4294967295, -- c14 +#Q> 4294967295, -- c15 +#Q> 9223372036854775807, -- c16 +#Q> 18446744073709551615, -- c17 +#Q> 18446744073709551615, -- c18 +#Q> 3.402823466E+38, -- c19 +#Q> 3.402823466E+38, -- c20 +#Q> 3.402823466E+38, -- c21 +#Q> 1.7976931348623E+308, -- c22 three digits cut for ps-protocol +#Q> 1.7976931348623E+308, -- c23 three digits cut for ps-protocol +#Q> 1.7976931348623E+308, -- c24 three digits cut for ps-protocol +#Q> 9999999999, -- c25 +#Q> 9999999999, -- c26 +#Q> 9999999999, -- c27 +#Q> # +#Q> '9999-12-31', -- c28 +#Q> '9999-12-31 23:59:59', -- c29 +#Q> '2038-01-08 03:14:07', -- c30 one day earlier due to timezone issues +#Q> '838:59:59', -- c31 +#Q> '2155', -- c32 +#Q> # +#Q> x'ff', -- c33 +#Q> '', -- c34 +#Q> x'ff', -- c35 +#Q> REPEAT(x'ff',255), -- c36 +#Q> _utf8 x'efbfbf', -- c37 +#Q> '', -- c38 +#Q> _utf8 x'efbfbf', -- c39 +#Q> REPEAT(_utf8 x'efbfbf',255), -- c40 +#Q> _ucs2 x'ffff', -- c41 +#Q> '', -- c42 +#Q> _ucs2 x'ffff', -- c43 +#Q> REPEAT(_ucs2 x'ffff',255), -- c44 +#Q> # +#Q> '', -- c45 +#Q> x'ff', -- c46 +#Q> REPEAT(x'ff',255), -- c47 +#Q> REPEAT(x'ff',261), -- c48 +#Q> '', -- c49 +#Q> _utf8 x'efbfbf', -- c50 +#Q> REPEAT(_utf8 x'efbfbf',255), -- c51 +#Q> REPEAT(_utf8 x'efbfbf',261), -- c52 +#Q> '', -- c53 +#Q> _ucs2 x'ffff', -- c54 +#Q> REPEAT(_ucs2 x'ffff',255), -- c55 +#Q> REPEAT(_ucs2 x'ffff',261), -- c56 +#Q> # +#Q> x'ff', -- c57 +#Q> '', -- c58 +#Q> x'ff', -- c59 +#Q> REPEAT(x'ff',255), -- c60 +#Q> # +#Q> '', -- c61 +#Q> x'ff', -- c62 +#Q> REPEAT(x'ff',255), -- c63 +#Q> REPEAT(x'ff',261), -- c64 +#Q> # +#Q> 'tinyblob', -- c65 not using maximum value here +#Q> 'tinytext', -- c66 not using maximum value here +#Q> 'tinytext-ucs2', -- c67 not using maximum value here +#Q> 'blob', -- c68 not using maximum value here +#Q> 'text', -- c69 not using maximum value here +#Q> 'text-ucs2', -- c70 not using maximum value here +#Q> 'mediumblob', -- c71 not using maximum value here +#Q> 'mediumtext', -- c72 not using maximum value here +#Q> 'mediumtext-ucs2', -- c73 not using maximum value here +#Q> 'longblob', -- c74 not using maximum value here +#Q> 'longtext', -- c75 not using maximum value here +#Q> 'longtext-ucs2', -- c76 not using maximum value here +#Q> # +#Q> 'c', -- c77 +#Q> 'a,b,c +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @15=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='9999:12:31' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='9999-12-31 23:59:59' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=2146522447 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2155 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ï¿¿' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='ÿÿ' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=3 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=2 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-4 +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ( +#Q> NULL, -- c01 +#Q> NULL, -- c02 +#Q> NULL, -- c03 +#Q> NULL, -- c04 +#Q> NULL, -- c05 +#Q> NULL, -- c06 +#Q> NULL, -- c07 +#Q> NULL, -- c08 +#Q> NULL, -- c09 +#Q> NULL, -- c10 +#Q> NULL, -- c11 +#Q> NULL, -- c12 +#Q> NULL, -- c13 +#Q> NULL, -- c14 +#Q> NULL, -- c15 +#Q> NULL, -- c16 +#Q> NULL, -- c17 +#Q> NULL, -- c18 +#Q> NULL, -- c19 +#Q> NULL, -- c20 +#Q> NULL, -- c21 +#Q> NULL, -- c22 +#Q> NULL, -- c23 +#Q> NULL, -- c24 +#Q> NULL, -- c25 +#Q> NULL, -- c26 +#Q> NULL, -- c27 +#Q> # +#Q> NULL, -- c28 +#Q> NULL, -- c29 +#Q> NULL, -- c30 +#Q> NULL, -- c31 +#Q> NULL, -- c32 +#Q> # +#Q> NULL, -- c33 +#Q> NULL, -- c34 +#Q> NULL, -- c35 +#Q> NULL, -- c36 +#Q> NULL, -- c37 +#Q> NULL, -- c38 +#Q> NULL, -- c39 +#Q> NULL, -- c40 +#Q> NULL, -- c41 +#Q> NULL, -- c42 +#Q> NULL, -- c43 +#Q> NULL, -- c44 +#Q> # +#Q> NULL, -- c45 +#Q> NULL, -- c46 +#Q> NULL, -- c47 +#Q> NULL, -- c48 +#Q> NULL, -- c49 +#Q> NULL, -- c50 +#Q> NULL, -- c51 +#Q> NULL, -- c52 +#Q> NULL, -- c53 +#Q> NULL, -- c54 +#Q> NULL, -- c55 +#Q> NULL, -- c56 +#Q> # +#Q> NULL, -- c57 +#Q> NULL, -- c58 +#Q> NULL, -- c59 +#Q> NULL, -- c60 +#Q> # +#Q> NULL, -- c61 +#Q> NULL, -- c62 +#Q> NULL, -- c63 +#Q> NULL, -- c64 +#Q> # +#Q> NULL, -- c65 +#Q> NULL, -- c66 +#Q> NULL, -- c67 +#Q> NULL, -- c68 +#Q> NULL, -- c69 +#Q> NULL, -- c70 +#Q> NULL, -- c71 +#Q> NULL, -- c72 +#Q> NULL, -- c73 +#Q> NULL, -- c74 +#Q> NULL, -- c75 +#Q> NULL, -- c76 +#Q> # +#Q> NULL, -- c77 +#Q> NULL, -- c78 +#Q> # +#Q> 3 -- crn -- row number +#Q> ), ( +#Q> b'1', -- c01 +#Q> b'1111111111111111111111111111111111111111111111111111111111111111', -- c02 +#Q> 127, -- c03 +#Q> 0, -- c04 +#Q> 001, -- c05 +#Q> true, -- c06 +#Q> 32767, -- c07 +#Q> 0, -- c08 +#Q> 00001, -- c09 +#Q> 8388607, -- c10 +#Q> 0, -- c11 +#Q> 00000001, -- c12 +#Q> 2147483647, -- c13 +#Q> 0, -- c14 +#Q> 0000000001, -- c15 +#Q> 9223372036854775807, -- c16 +#Q> 0, -- c17 +#Q> 00000000000000000001, -- c18 +#Q> -1.175494351E-38, -- c19 +#Q> 1.175494351E-38, -- c20 +#Q> 000000000000001, -- c21 +#Q> -2.2250738585072E-308, -- c22 +#Q> 2.2250738585072E-308, -- c23 +#Q> 00000000000000000000001, -- c24 +#Q> -9999999999, -- c25 +#Q> 9999999999, -- c26 +#Q> 0000000001, -- c27 +#Q> # +#Q> '2008-08-04', -- c28 +#Q> '2008-08-04 16:18:06', -- c29 +#Q> '2008-08-04 16:18:24', -- c30 +#Q> '16:18:47', -- c31 +#Q> '2008', -- c32 +#Q> # +#Q> 'a', -- c33 +#Q> '', -- c34 +#Q> 'e', -- c35 +#Q> REPEAT('i',255), -- c36 +#Q> _utf8 x'c3a4', -- c37 +#Q> '', -- c38 +#Q> _utf8 x'c3b6', -- c39 +#Q> REPEAT(_utf8 x'c3bc',255), -- c40 +#Q> _ucs2 x'00e4', -- c41 +#Q> '', -- c42 +#Q> _ucs2 x'00f6', -- c43 +#Q> REPEAT(_ucs2 x'00fc',255), -- c44 +#Q> # +#Q> '', -- c45 +#Q> 'a', -- c46 +#Q> REPEAT('e',255), -- c47 +#Q> REPEAT('i',261), -- c48 +#Q> '', -- c49 +#Q> _utf8 x'c3a4', -- c50 +#Q> REPEAT(_utf8 x'c3b6',255), -- c51 +#Q> REPEAT(_utf8 x'c3bc',261), -- c52 +#Q> '', -- c53 +#Q> _ucs2 x'00e4', -- c54 +#Q> REPEAT(_ucs2 x'00f6',255), -- c55 +#Q> REPEAT(_ucs2 x'00fc',261), -- c56 +#Q> # +#Q> '0', -- c57 +#Q> '', -- c58 +#Q> '1', -- c59 +#Q> REPEAT('1',255), -- c60 +#Q> # +#Q> '', -- c61 +#Q> 'b', -- c62 +#Q> REPEAT('c',255), -- c63 +#Q> REPEAT('\'',261), -- c64 +#Q> # +#Q> 'tinyblob', -- c65 +#Q> 'tinytext', -- c66 +#Q> 'tinytext-ucs2', -- c67 +#Q> 'blob', -- c68 +#Q> 'text', -- c69 +#Q> 'text-ucs2', -- c70 +#Q> 'mediumblob', -- c71 +#Q> 'mediumtext', -- c72 +#Q> 'mediumtext-ucs2', -- c73 +#Q> 'longblob', -- c74 +#Q> 'longtext', -- c75 +#Q> 'longtext +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=NULL /* BIT(1) meta=1 nullable=1 is_null=1 */ +### @2=NULL /* BIT(64) meta=2048 nullable=1 is_null=1 */ +### @3=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @4=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @5=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @6=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @7=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @8=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @9=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @10=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @11=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @12=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @13=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @14=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @15=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @16=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @17=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @18=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @19=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @20=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @21=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @22=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @23=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @24=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @25=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @26=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @27=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @28=NULL /* DATE meta=0 nullable=1 is_null=1 */ +### @29=NULL /* DATETIME(0) meta=0 nullable=1 is_null=1 */ +### @30=1000000000 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31=NULL /* TIME(0) meta=0 nullable=1 is_null=1 */ +### @32=NULL /* YEAR meta=0 nullable=1 is_null=1 */ +### @33=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @34=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @35=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @36=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @37=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @38=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @39=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @40=NULL /* STRING(765) meta=57085 nullable=1 is_null=1 */ +### @41=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @42=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @43=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @44=NULL /* STRING(510) meta=61182 nullable=1 is_null=1 */ +### @45=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @46=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @47=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @48=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @49=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @50=NULL /* VARSTRING(3) meta=3 nullable=1 is_null=1 */ +### @51=NULL /* VARSTRING(765) meta=765 nullable=1 is_null=1 */ +### @52=NULL /* VARSTRING(783) meta=783 nullable=1 is_null=1 */ +### @53=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @54=NULL /* VARSTRING(2) meta=2 nullable=1 is_null=1 */ +### @55=NULL /* VARSTRING(510) meta=510 nullable=1 is_null=1 */ +### @56=NULL /* VARSTRING(522) meta=522 nullable=1 is_null=1 */ +### @57=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @58=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @59=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @60=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @61=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @62=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @63=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @64=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @65=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @66=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @67=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @68=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @69=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @70=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @71=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @72=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @73=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @74=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @75=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @76=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @77=NULL /* ENUM(1 byte) meta=63233 nullable=1 is_null=1 */ +### @78=NULL /* SET(1 bytes) meta=63489 nullable=1 is_null=1 */ +### @79=3 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=1 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=1 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=1 /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=1 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=1 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=1 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='2008:08:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='2008-08-04 16:18:06' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=1217855904 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='16:18:47' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2008 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='a' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='e' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ä' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ö' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='\x00ä' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='\x00ö' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='a' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ä' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='\x00ä' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='0' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='1' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='b' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64=''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=4 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-5 +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = b'1', +#Q> c02 = b'1111111111111111111111111111111111111111111111111111111111111111', +#Q> c03 = 127, +#Q> c04 = 255, +#Q> c05 = 255, +#Q> c06 = true, +#Q> c07 = 32767, +#Q> c08 = 65535, +#Q> c09 = 65535, +#Q> c10 = 8388607, +#Q> c11 = 16777215, +#Q> c12 = 16777215, +#Q> c13 = 2147483647, +#Q> c14 = 4294967295, +#Q> c15 = 4294967295, +#Q> c16 = 9223372036854775807, +#Q> c17 = 18446744073709551615, +#Q> c18 = 18446744073709551615, +#Q> c19 = 3.402823466E+38, +#Q> c20 = 3.402823466E+38, +#Q> c21 = 3.402823466E+38, +#Q> c22 = 1.7976931348623E+308, +#Q> c23 = 1.7976931348623E+308, +#Q> c24 = 1.7976931348623E+308, +#Q> c25 = 9999999999, +#Q> c26 = 9999999999, +#Q> c27 = 9999999999, +#Q> # +#Q> c28 = '9999-12-31', +#Q> c29 = '9999-12-31 23:59:59', +#Q> c30 = '2038-01-08 03:14:07', +#Q> c31 = '838:59:59', +#Q> c32 = '2155', +#Q> # +#Q> c33 = x'ff', +#Q> c34 = '', +#Q> c35 = x'ff', +#Q> c36 = REPEAT(x'ff',255), +#Q> c37 = _utf8 x'efbfbf', +#Q> c38 = '', +#Q> c39 = _utf8 x'efbfbf', +#Q> c40 = REPEAT(_utf8 x'efbfbf',255), +#Q> c41 = _ucs2 x'ffff', +#Q> c42 = '', +#Q> c43 = _ucs2 x'ffff', +#Q> c44 = REPEAT(_ucs2 x'ffff',255), +#Q> # +#Q> c45 = '', +#Q> c46 = x'ff', +#Q> c47 = REPEAT(x'ff',255), +#Q> c48 = REPEAT(x'ff',261), +#Q> c49 = '', +#Q> c50 = _utf8 x'efbfbf', +#Q> c51 = REPEAT(_utf8 x'efbfbf',255), +#Q> c52 = REPEAT(_utf8 x'efbfbf',261), +#Q> c53 = '', +#Q> c54 = _ucs2 x'ffff', +#Q> c55 = REPEAT(_ucs2 x'ffff',255), +#Q> c56 = REPEAT(_ucs2 x'ffff',261), +#Q> # +#Q> c57 = x'ff', +#Q> c58 = '', +#Q> c59 = x'ff', +#Q> c60 = REPEAT(x'ff',255), +#Q> # +#Q> c61 = '', +#Q> c62 = x'ff', +#Q> c63 = REPEAT(x'ff',255), +#Q> c64 = REPEAT(x'ff',261), +#Q> # +#Q> c65 = 'tinyblob', +#Q> c66 = 'tinytext', +#Q> c67 = 'tinytext-ucs2', +#Q> c68 = 'blob', +#Q> c69 = 'text', +#Q> c70 = 'text-ucs2', +#Q> c71 = 'mediumblob', +#Q> c72 = 'mediumtext', +#Q> c73 = 'mediumtext-ucs2', +#Q> c74 = 'longblob', +#Q> c75 = 'longtext', +#Q> c76 = 'longtext-ucs2', +#Q> # +#Q> c77 = 'c', +#Q> c78 = 'a,b,c', +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 = b'0' AND +#Q> c02 = b'0000000000000000000000000000000000000000000000000000000000000000' AND +#Q> c03 = -128 AND +#Q> c04 = 0 AND +#Q> c05 = 000 AND +#Q> c06 = false AND +#Q> c07 = -32768 AND +#Q> c08 = 0 AND +#Q> c09 = 00000 AND +#Q> c10 = -8388608 AND +#Q> c11 = 0 AND +#Q> c12 = 00000000 AND +#Q> c13 = -2147483648 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000000 AND +#Q> c16 = -9223372036854775808 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000000 AND +#Q> c19 < -3.402823465E+38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000 AND +#Q> c22 < -1.7976931348622E+308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 0000000000000000000000 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 0 AND +#Q> c27 = 0000000000 AND +#Q> # +#Q> c28 = '1000-01-01' AND +#Q> c29 = '1000-01-01 00:00:00' AND +#Q> c30 = '1970-01-02 00:00:01' AND +#Q> c31 = '-838:59:59' AND +#Q> c32 = '1901' AND +#Q> # +#Q> c33 = '' AND +#Q> c34 = '' AND +#Q> c35 = '' AND +#Q> c36 = '' AND +#Q> c37 = '' AND +#Q> c38 = '' AND +#Q> c39 = '' AND +#Q> c40 = '' AND +#Q> c41 = '' AND +#Q> c42 = '' AND +#Q> c43 = '' AND +#Q> c44 = '' AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = '' AND +#Q> c47 = '' AND +#Q> c48 = '' AND +#Q> c49 = '' AND +#Q> c50 = '' AND +#Q> c51 = '' AND +#Q> c52 = '' AND +#Q> c53 = '' AND +#Q> c54 = '' AND +#Q> c55 = '' AND +#Q> c56 = '' AND +#Q> # +#Q> # this does not reproduce the inserted value: c57 = '' AND +#Q> c58 = '' AND +#Q> # this does not reproduce the inserted value: c59 = '' AND +#Q> # this does not reproduce the inserted value: c60 = '' AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = '' AND +#Q> c63 = '' AND +#Q> c64 = '' AND +#Q> # +#Q> c65 = '' AND +#Q> c66 = '' AND +#Q> c67 = +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=b'0' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'0000000000000000000000000000000000000000000000000000000000000000' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=-32768 (32768) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=-8388608 (8388608) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=-2147483648 (2147483648) /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=0 /* INT meta=0 nullable=1 is_null=0 */ +### @16=-9223372036854775808 (9223372036854775808) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=0 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=0 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='1000:01:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='1000-01-01 00:00:00' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=75601 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='-838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=1901 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=1 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=1 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @15=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='9999:12:31' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='9999-12-31 23:59:59' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=2146522447 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2155 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ï¿¿' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='ÿÿ' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=3 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=1 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-6 +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = b'0', +#Q> c02 = b'0000000000000000000000000000000000000000000000000000000000000000', +#Q> c03 = -128, +#Q> c04 = 0, +#Q> c05 = 000, +#Q> c06 = false, +#Q> c07 = -32768, +#Q> c08 = 0, +#Q> c09 = 00000, +#Q> c10 = -8388608, +#Q> c11 = 0, +#Q> c12 = 00000000, +#Q> c13 = -2147483648, +#Q> c14 = 0, +#Q> c15 = 0000000000, +#Q> c16 = -9223372036854775808, +#Q> c17 = 0, +#Q> c18 = 00000000000000000000, +#Q> c19 = -3.402823466E+38, +#Q> c20 = 1.175494351E-38, +#Q> c21 = 000000000000, +#Q> c22 = -1.7976931348623E+308, +#Q> c23 = 2.2250738585072E-308, +#Q> c24 = 0000000000000000000000, +#Q> c25 = -9999999999, +#Q> c26 = 0, +#Q> c27 = 0000000000, +#Q> # +#Q> c28 = '1000-01-01', +#Q> c29 = '1000-01-01 00:00:00', +#Q> c30 = '1970-01-02 00:00:01', +#Q> c31 = '-838:59:59', +#Q> c32 = '1901', +#Q> # +#Q> c33 = '', +#Q> c34 = '', +#Q> c35 = '', +#Q> c36 = '', +#Q> c37 = '', +#Q> c38 = '', +#Q> c39 = '', +#Q> c40 = '', +#Q> c41 = '', +#Q> c42 = '', +#Q> c43 = '', +#Q> c44 = '', +#Q> # +#Q> c45 = '', +#Q> c46 = '', +#Q> c47 = '', +#Q> c48 = '', +#Q> c49 = '', +#Q> c50 = '', +#Q> c51 = '', +#Q> c52 = '', +#Q> c53 = '', +#Q> c54 = '', +#Q> c55 = '', +#Q> c56 = '', +#Q> # +#Q> c57 = '', +#Q> c58 = '', +#Q> c59 = '', +#Q> c60 = '', +#Q> # +#Q> c61 = '', +#Q> c62 = '', +#Q> c63 = '', +#Q> c64 = '', +#Q> # +#Q> c65 = '', +#Q> c66 = '', +#Q> c67 = '', +#Q> c68 = '', +#Q> c69 = '', +#Q> c70 = '', +#Q> c71 = '', +#Q> c72 = '', +#Q> c73 = '', +#Q> c74 = '', +#Q> c75 = '', +#Q> c76 = '', +#Q> # +#Q> c77 = 'a', +#Q> c78 = '', +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 255 AND +#Q> c05 = 255 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 65535 AND +#Q> c09 = 65535 AND +#Q> c10 = 8388607 AND +#Q> c11 = 16777215 AND +#Q> c12 = 16777215 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 4294967295 AND +#Q> c15 = 4294967295 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 18446744073709551615 AND +#Q> c18 = 18446744073709551615 AND +#Q> c19 > 3.402823465E+38 AND +#Q> c20 > 3.402823465E+38 AND +#Q> c21 > 3.402823465E+38 AND +#Q> c22 > 1.7976931348622E+308 AND +#Q> c23 > 1.7976931348622E+308 AND +#Q> c24 > 1.7976931348622E+308 AND +#Q> c25 = 9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 9999999999 AND +#Q> # +#Q> c28 = '9999-12-31' AND +#Q> c29 = '9999-12-31 23:59:59' AND +#Q> c30 = '2038-01-08 03:14:07' AND +#Q> c31 = '838:59:59' AND +#Q> c32 = '2155' AND +#Q> # +#Q> c33 = x'ff' AND +#Q> c34 = '' AND +#Q> c35 = x'ff' AND +#Q> c36 = REPEAT(x'ff',255) AND +#Q> c37 = _utf8 x'efbfbf' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'efbfbf' AND +#Q> c40 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c41 = _ucs2 x'ffff' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'ffff' AND +#Q> c44 = REPEAT(_ucs2 x'ffff',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = x'ff' AND +#Q> c47 = REPEAT(x'ff',255) AND +#Q> c48 = REPEAT(x'ff',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'efbfbf' AND +#Q> c51 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c52 = REPEAT(_utf8 x'efbfbf',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'ffff' AND +#Q> c55 = REPEAT(_ucs2 x'ffff',255) AND +#Q> c56 = REPEAT(_ucs2 x'ffff',261) AND +#Q> # +#Q> c57 = x'ff' AND +#Q> c58 = '' AND +#Q> c59 = x'ff' AND +#Q> c60 = REPEAT(x'ff',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = x'ff' AND +#Q> c63 = REPEAT(x'ff',255) AND +#Q> c64 = REPEAT(x'ff',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @15=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='9999:12:31' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='9999-12-31 23:59:59' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=2146522447 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2155 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ï¿¿' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='ÿÿ' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=3 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=2 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1=b'0' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'0000000000000000000000000000000000000000000000000000000000000000' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=-32768 (32768) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=-8388608 (8388608) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=-2147483648 (2147483648) /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=0 /* INT meta=0 nullable=1 is_null=0 */ +### @16=-9223372036854775808 (9223372036854775808) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=0 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=0 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='1000:01:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='1000-01-01 00:00:00' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=75601 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='-838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=1901 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=1 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=2 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-7 +/*!100001 SET @@session.gtid_seq_no=7*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = b'1', +#Q> c02 = b'1111111111111111111111111111111111111111111111111111111111111111', +#Q> c03 = 127, +#Q> c04 = 0, +#Q> c05 = 001, +#Q> c06 = true, +#Q> c07 = 32767, +#Q> c08 = 0, +#Q> c09 = 00001, +#Q> c10 = 8388607, +#Q> c11 = 0, +#Q> c12 = 00000001, +#Q> c13 = 2147483647, +#Q> c14 = 0, +#Q> c15 = 0000000001, +#Q> c16 = 9223372036854775807, +#Q> c17 = 0, +#Q> c18 = 00000000000000000001, +#Q> c19 = -1.175494351E-38, +#Q> c20 = 1.175494351E-38, +#Q> c21 = 000000000000001, +#Q> c22 = -2.2250738585072E-308, +#Q> c23 = 2.2250738585072E-308, +#Q> c24 = 00000000000000000000001, +#Q> c25 = -9999999999, +#Q> c26 = 9999999999, +#Q> c27 = 0000000001, +#Q> # +#Q> c28 = '2008-08-04', +#Q> c29 = '2008-08-04 16:18:06', +#Q> c30 = '2008-08-04 16:18:24', +#Q> c31 = '16:18:47', +#Q> c32 = '2008', +#Q> # +#Q> c33 = 'a', +#Q> c34 = '', +#Q> c35 = 'e', +#Q> c36 = REPEAT('i',255), +#Q> c37 = _utf8 x'c3a4', +#Q> c38 = '', +#Q> c39 = _utf8 x'c3b6', +#Q> c40 = REPEAT(_utf8 x'c3bc',255), +#Q> c41 = _ucs2 x'00e4', +#Q> c42 = '', +#Q> c43 = _ucs2 x'00f6', +#Q> c44 = REPEAT(_ucs2 x'00fc',255), +#Q> # +#Q> c45 = '', +#Q> c46 = 'a', +#Q> c47 = REPEAT('e',255), +#Q> c48 = REPEAT('i',261), +#Q> c49 = '', +#Q> c50 = _utf8 x'c3a4', +#Q> c51 = REPEAT(_utf8 x'c3b6',255), +#Q> c52 = REPEAT(_utf8 x'c3bc',261), +#Q> c53 = '', +#Q> c54 = _ucs2 x'00e4', +#Q> c55 = REPEAT(_ucs2 x'00f6',255), +#Q> c56 = REPEAT(_ucs2 x'00fc',261), +#Q> # +#Q> c57 = '0', +#Q> c58 = '', +#Q> c59 = '1', +#Q> c60 = REPEAT('1',255), +#Q> # +#Q> c61 = '', +#Q> c62 = 'b', +#Q> c63 = REPEAT('c',255), +#Q> c64 = REPEAT('\'',261), +#Q> # +#Q> c65 = 'tinyblob', +#Q> c66 = 'tinytext', +#Q> c67 = 'tinytext-ucs2', +#Q> c68 = 'blob', +#Q> c69 = 'text', +#Q> c70 = 'text-ucs2', +#Q> c71 = 'mediumblob', +#Q> c72 = 'mediumtext', +#Q> c73 = 'mediumtext-ucs2', +#Q> c74 = 'longblob', +#Q> c75 = 'longtext', +#Q> c76 = 'longtext-ucs2', +#Q> # +#Q> c77 = 'b', +#Q> c78 = 'b,c', +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 IS NULL AND +#Q> c02 IS NULL AND +#Q> c03 IS NULL AND +#Q> c04 IS NULL AND +#Q> c05 IS NULL AND +#Q> c06 IS NULL AND +#Q> c07 IS NULL AND +#Q> c08 IS NULL AND +#Q> c09 IS NULL AND +#Q> c10 IS NULL AND +#Q> c11 IS NULL AND +#Q> c12 IS NULL AND +#Q> c13 IS NULL AND +#Q> c14 IS NULL AND +#Q> c15 IS NULL AND +#Q> c16 IS NULL AND +#Q> c17 IS NULL AND +#Q> c18 IS NULL AND +#Q> c19 IS NULL AND +#Q> c20 IS NULL AND +#Q> c21 IS NULL AND +#Q> c22 IS NULL AND +#Q> c23 IS NULL AND +#Q> c24 IS NULL AND +#Q> c25 IS NULL AND +#Q> c26 IS NULL AND +#Q> c27 IS NULL AND +#Q> # +#Q> c28 IS NULL AND +#Q> c29 IS NULL AND +#Q> # this got a timestamp instead of NULL: c30 IS NULL AND +#Q> c31 IS NULL AND +#Q> c32 IS NULL AND +#Q> # +#Q> c33 IS NULL AND +#Q> c34 IS NULL AND +#Q> c35 IS NULL AND +#Q> c36 IS NULL AND +#Q> c37 IS NULL AND +#Q> c38 IS NULL AND +#Q> c39 IS NULL AND +#Q> c40 IS NULL AND +#Q> c41 IS NULL AND +#Q> c42 IS NULL AND +#Q> c43 IS NULL AND +#Q> c44 IS NULL AND +#Q> # +#Q> c45 IS NULL AND +#Q> c46 IS NULL AND +#Q> c47 IS NULL AND +#Q> c48 IS NULL AND +#Q> c49 IS NULL AND +#Q> c50 IS NULL AND +#Q> c51 IS NULL AND +#Q> c52 IS NULL AND +#Q> c53 IS NULL AND +#Q> c54 IS NULL AND +#Q> c55 IS NULL AND +#Q> c56 IS NULL AND +#Q> # +#Q> c57 IS NULL AND +#Q> c58 IS NULL AND +#Q> c59 IS NULL AND +#Q> c60 IS NULL AND +#Q> # +#Q> c61 IS NULL AND +#Q> c62 IS NULL AND +#Q> c63 IS NULL AND +#Q> c64 IS NULL AND +#Q> # +#Q> c65 IS NULL AND +#Q> c66 IS NULL AND +#Q> c67 IS NULL AND +#Q> c68 IS NULL AND +#Q> c69 IS NULL AND +#Q> c70 IS NULL +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=NULL /* BIT(1) meta=1 nullable=1 is_null=1 */ +### @2=NULL /* BIT(64) meta=2048 nullable=1 is_null=1 */ +### @3=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @4=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @5=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @6=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @7=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @8=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @9=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @10=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @11=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @12=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @13=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @14=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @15=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @16=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @17=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @18=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @19=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @20=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @21=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @22=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @23=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @24=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @25=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @26=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @27=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @28=NULL /* DATE meta=0 nullable=1 is_null=1 */ +### @29=NULL /* DATETIME(0) meta=0 nullable=1 is_null=1 */ +### @30=1000000000 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31=NULL /* TIME(0) meta=0 nullable=1 is_null=1 */ +### @32=NULL /* YEAR meta=0 nullable=1 is_null=1 */ +### @33=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @34=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @35=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @36=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @37=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @38=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @39=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @40=NULL /* STRING(765) meta=57085 nullable=1 is_null=1 */ +### @41=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @42=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @43=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @44=NULL /* STRING(510) meta=61182 nullable=1 is_null=1 */ +### @45=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @46=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @47=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @48=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @49=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @50=NULL /* VARSTRING(3) meta=3 nullable=1 is_null=1 */ +### @51=NULL /* VARSTRING(765) meta=765 nullable=1 is_null=1 */ +### @52=NULL /* VARSTRING(783) meta=783 nullable=1 is_null=1 */ +### @53=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @54=NULL /* VARSTRING(2) meta=2 nullable=1 is_null=1 */ +### @55=NULL /* VARSTRING(510) meta=510 nullable=1 is_null=1 */ +### @56=NULL /* VARSTRING(522) meta=522 nullable=1 is_null=1 */ +### @57=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @58=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @59=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @60=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @61=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @62=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @63=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @64=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @65=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @66=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @67=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @68=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @69=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @70=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @71=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @72=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @73=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @74=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @75=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @76=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @77=NULL /* ENUM(1 byte) meta=63233 nullable=1 is_null=1 */ +### @78=NULL /* SET(1 bytes) meta=63489 nullable=1 is_null=1 */ +### @79=3 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=1 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=1 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=1 /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=1 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=1 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=1 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='2008:08:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='2008-08-04 16:18:06' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=1217855904 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='16:18:47' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2008 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='a' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='e' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ä' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ö' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='\x00ä' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='\x00ö' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='a' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ä' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='\x00ä' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='0' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='1' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='b' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64=''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-8 +/*!100001 SET @@session.gtid_seq_no=8*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET +#Q> c01 = NULL, +#Q> c02 = NULL, +#Q> c03 = NULL, +#Q> c04 = NULL, +#Q> c05 = NULL, +#Q> c06 = NULL, +#Q> c07 = NULL, +#Q> c08 = NULL, +#Q> c09 = NULL, +#Q> c10 = NULL, +#Q> c11 = NULL, +#Q> c12 = NULL, +#Q> c13 = NULL, +#Q> c14 = NULL, +#Q> c15 = NULL, +#Q> c16 = NULL, +#Q> c17 = NULL, +#Q> c18 = NULL, +#Q> c19 = NULL, +#Q> c20 = NULL, +#Q> c21 = NULL, +#Q> c22 = NULL, +#Q> c23 = NULL, +#Q> c24 = NULL, +#Q> c25 = NULL, +#Q> c26 = NULL, +#Q> c27 = NULL, +#Q> # +#Q> c28 = NULL, +#Q> c29 = NULL, +#Q> c30 = NULL, +#Q> c31 = NULL, +#Q> c32 = NULL, +#Q> # +#Q> c33 = NULL, +#Q> c34 = NULL, +#Q> c35 = NULL, +#Q> c36 = NULL, +#Q> c37 = NULL, +#Q> c38 = NULL, +#Q> c39 = NULL, +#Q> c40 = NULL, +#Q> c41 = NULL, +#Q> c42 = NULL, +#Q> c43 = NULL, +#Q> c44 = NULL, +#Q> # +#Q> c45 = NULL, +#Q> c46 = NULL, +#Q> c47 = NULL, +#Q> c48 = NULL, +#Q> c49 = NULL, +#Q> c50 = NULL, +#Q> c51 = NULL, +#Q> c52 = NULL, +#Q> c53 = NULL, +#Q> c54 = NULL, +#Q> c55 = NULL, +#Q> c56 = NULL, +#Q> # +#Q> c57 = NULL, +#Q> c58 = NULL, +#Q> c59 = NULL, +#Q> c60 = NULL, +#Q> # +#Q> c61 = NULL, +#Q> c62 = NULL, +#Q> c63 = NULL, +#Q> c64 = NULL, +#Q> # +#Q> c65 = NULL, +#Q> c66 = NULL, +#Q> c67 = NULL, +#Q> c68 = NULL, +#Q> c69 = NULL, +#Q> c70 = NULL, +#Q> c71 = NULL, +#Q> c72 = NULL, +#Q> c73 = NULL, +#Q> c74 = NULL, +#Q> c75 = NULL, +#Q> c76 = NULL, +#Q> # +#Q> c77 = NULL, +#Q> c78 = NULL, +#Q> # +#Q> crn = crn +#Q> # +#Q> WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 0 AND +#Q> c05 = 001 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 0 AND +#Q> c09 = 00001 AND +#Q> c10 = 8388607 AND +#Q> c11 = 0 AND +#Q> c12 = 00000001 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000001 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000001 AND +#Q> c19 > -1.175494352E-38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000001 AND +#Q> c22 > -2.2250738585073E-308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 00000000000000000000001 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 0000000001 AND +#Q> # +#Q> c28 = '2008-08-04' AND +#Q> c29 = '2008-08-04 16:18:06' AND +#Q> c30 = '2008-08-04 16:18:24' AND +#Q> c31 = '16:18:47' AND +#Q> c32 = '2008' AND +#Q> # +#Q> c33 = 'a' AND +#Q> c34 = '' AND +#Q> c35 = 'e' AND +#Q> c36 = REPEAT('i',255) AND +#Q> c37 = _utf8 x'c3a4' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'c3b6' AND +#Q> c40 = REPEAT(_utf8 x'c3bc',255) AND +#Q> c41 = _ucs2 x'00e4' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'00f6' AND +#Q> c44 = REPEAT(_ucs2 x'00fc',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = 'a' AND +#Q> c47 = REPEAT('e',255) AND +#Q> c48 = REPEAT('i',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'c3a4' AND +#Q> c51 = REPEAT(_utf8 x'c3b6',255) AND +#Q> c52 = REPEAT(_utf8 x'c3bc',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'00e4' AND +#Q> c55 = REPEAT(_ucs2 x'00f6',255) AND +#Q> c56 = REPEAT(_ucs2 x'00fc',261) AND +#Q> # +#Q> c57 = '0' AND +#Q> c58 = '' AND +#Q> c59 = '1' AND +#Q> c60 = REPEAT('1',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = 'b' AND +#Q> c63 = REPEAT('c',255) AND +#Q> c64 = REPEAT('\'',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob' AND +#Q> c72 = 'me +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=1 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=1 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=1 /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=1 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=1 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=1 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='2008:08:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='2008-08-04 16:18:06' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=1217855904 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='16:18:47' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2008 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='a' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='e' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ä' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ö' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='\x00ä' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='\x00ö' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='a' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ä' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='\x00ä' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='0' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='1' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='b' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64=''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=4 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1=NULL /* BIT(1) meta=1 nullable=1 is_null=1 */ +### @2=NULL /* BIT(64) meta=2048 nullable=1 is_null=1 */ +### @3=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @4=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @5=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @6=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @7=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @8=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @9=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @10=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @11=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @12=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @13=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @14=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @15=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @16=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @17=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @18=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @19=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @20=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @21=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @22=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @23=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @24=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @25=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @26=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @27=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @28=NULL /* DATE meta=0 nullable=1 is_null=1 */ +### @29=NULL /* DATETIME(0) meta=0 nullable=1 is_null=1 */ +### @30=1000000000 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31=NULL /* TIME(0) meta=0 nullable=1 is_null=1 */ +### @32=NULL /* YEAR meta=0 nullable=1 is_null=1 */ +### @33=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @34=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @35=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @36=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @37=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @38=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @39=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @40=NULL /* STRING(765) meta=57085 nullable=1 is_null=1 */ +### @41=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @42=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @43=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @44=NULL /* STRING(510) meta=61182 nullable=1 is_null=1 */ +### @45=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @46=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @47=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @48=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @49=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @50=NULL /* VARSTRING(3) meta=3 nullable=1 is_null=1 */ +### @51=NULL /* VARSTRING(765) meta=765 nullable=1 is_null=1 */ +### @52=NULL /* VARSTRING(783) meta=783 nullable=1 is_null=1 */ +### @53=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @54=NULL /* VARSTRING(2) meta=2 nullable=1 is_null=1 */ +### @55=NULL /* VARSTRING(510) meta=510 nullable=1 is_null=1 */ +### @56=NULL /* VARSTRING(522) meta=522 nullable=1 is_null=1 */ +### @57=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @58=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @59=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @60=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @61=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @62=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @63=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @64=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @65=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @66=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @67=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @68=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @69=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @70=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @71=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @72=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @73=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @74=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @75=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @76=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @77=NULL /* ENUM(1 byte) meta=63233 nullable=1 is_null=1 */ +### @78=NULL /* SET(1 bytes) meta=63489 nullable=1 is_null=1 */ +### @79=4 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-9 +/*!100001 SET @@session.gtid_seq_no=9*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 255 AND +#Q> c05 = 255 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 65535 AND +#Q> c09 = 65535 AND +#Q> c10 = 8388607 AND +#Q> c11 = 16777215 AND +#Q> c12 = 16777215 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 4294967295 AND +#Q> c15 = 4294967295 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 18446744073709551615 AND +#Q> c18 = 18446744073709551615 AND +#Q> c19 > 3.402823465E+38 AND +#Q> c20 > 3.402823465E+38 AND +#Q> c21 > 3.402823465E+38 AND +#Q> c22 > 1.7976931348622E+308 AND +#Q> c23 > 1.7976931348622E+308 AND +#Q> c24 > 1.7976931348622E+308 AND +#Q> c25 = 9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 9999999999 AND +#Q> # +#Q> c28 = '9999-12-31' AND +#Q> c29 = '9999-12-31 23:59:59' AND +#Q> c30 = '2038-01-08 03:14:07' AND +#Q> c31 = '838:59:59' AND +#Q> c32 = '2155' AND +#Q> # +#Q> c33 = x'ff' AND +#Q> c34 = '' AND +#Q> c35 = x'ff' AND +#Q> c36 = REPEAT(x'ff',255) AND +#Q> c37 = _utf8 x'efbfbf' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'efbfbf' AND +#Q> c40 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c41 = _ucs2 x'ffff' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'ffff' AND +#Q> c44 = REPEAT(_ucs2 x'ffff',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = x'ff' AND +#Q> c47 = REPEAT(x'ff',255) AND +#Q> c48 = REPEAT(x'ff',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'efbfbf' AND +#Q> c51 = REPEAT(_utf8 x'efbfbf',255) AND +#Q> c52 = REPEAT(_utf8 x'efbfbf',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'ffff' AND +#Q> c55 = REPEAT(_ucs2 x'ffff',255) AND +#Q> c56 = REPEAT(_ucs2 x'ffff',261) AND +#Q> # +#Q> c57 = x'ff' AND +#Q> c58 = '' AND +#Q> c59 = x'ff' AND +#Q> c60 = REPEAT(x'ff',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = x'ff' AND +#Q> c63 = REPEAT(x'ff',255) AND +#Q> c64 = REPEAT(x'ff',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob' AND +#Q> c72 = 'mediumtext' AND +#Q> c73 = 'mediumtext-ucs2' AND +#Q> c74 = 'longblob' AND +#Q> c75 = ' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=-1 (65535) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=-1 (16777215) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @15=-1 (4294967295) /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=-1 (18446744073709551615) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='9999:12:31' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='9999-12-31 23:59:59' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=2146522447 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2155 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ï¿¿' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='ÿÿ' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ï¿¿' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿ï¿¿' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='ÿÿ' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='ÿ' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='ÿ' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=3 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=1 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-10 +/*!100001 SET @@session.gtid_seq_no=10*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 = b'0' AND +#Q> c02 = b'0000000000000000000000000000000000000000000000000000000000000000' AND +#Q> c03 = -128 AND +#Q> c04 = 0 AND +#Q> c05 = 000 AND +#Q> c06 = false AND +#Q> c07 = -32768 AND +#Q> c08 = 0 AND +#Q> c09 = 00000 AND +#Q> c10 = -8388608 AND +#Q> c11 = 0 AND +#Q> c12 = 00000000 AND +#Q> c13 = -2147483648 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000000 AND +#Q> c16 = -9223372036854775808 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000000 AND +#Q> c19 < -3.402823465E+38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000 AND +#Q> c22 < -1.7976931348622E+308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 0000000000000000000000 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 0 AND +#Q> c27 = 0000000000 AND +#Q> # +#Q> c28 = '1000-01-01' AND +#Q> c29 = '1000-01-01 00:00:00' AND +#Q> c30 = '1970-01-02 00:00:01' AND +#Q> c31 = '-838:59:59' AND +#Q> c32 = '1901' AND +#Q> # +#Q> c33 = '' AND +#Q> c34 = '' AND +#Q> c35 = '' AND +#Q> c36 = '' AND +#Q> c37 = '' AND +#Q> c38 = '' AND +#Q> c39 = '' AND +#Q> c40 = '' AND +#Q> c41 = '' AND +#Q> c42 = '' AND +#Q> c43 = '' AND +#Q> c44 = '' AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = '' AND +#Q> c47 = '' AND +#Q> c48 = '' AND +#Q> c49 = '' AND +#Q> c50 = '' AND +#Q> c51 = '' AND +#Q> c52 = '' AND +#Q> c53 = '' AND +#Q> c54 = '' AND +#Q> c55 = '' AND +#Q> c56 = '' AND +#Q> # +#Q> # this does not reproduce the inserted value: c57 = '' AND +#Q> c58 = '' AND +#Q> # this does not reproduce the inserted value: c59 = '' AND +#Q> # this does not reproduce the inserted value: c60 = '' AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = '' AND +#Q> c63 = '' AND +#Q> c64 = '' AND +#Q> # +#Q> c65 = '' AND +#Q> c66 = '' AND +#Q> c67 = '' AND +#Q> c68 = '' AND +#Q> c69 = '' AND +#Q> c70 = '' AND +#Q> c71 = '' AND +#Q> c72 = '' AND +#Q> c73 = '' A +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=b'0' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'0000000000000000000000000000000000000000000000000000000000000000' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=-32768 (32768) /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=-8388608 (8388608) /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=-2147483648 (2147483648) /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=0 /* INT meta=0 nullable=1 is_null=0 */ +### @16=-9223372036854775808 (9223372036854775808) /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-3.402... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=0 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-1.797... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=0 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=0 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='1000:01:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='1000-01-01 00:00:00' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=75601 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='-838:59:59' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=1901 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64='' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=1 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=2 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-11 +/*!100001 SET @@session.gtid_seq_no=11*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 = b'1' AND +#Q> # the below does not reproduce the inserted value: +#Q> #c02 = b'1111111111111111111111111111111111111111111111111111111111111111' AND +#Q> c03 = 127 AND +#Q> c04 = 0 AND +#Q> c05 = 001 AND +#Q> c06 = true AND +#Q> c07 = 32767 AND +#Q> c08 = 0 AND +#Q> c09 = 00001 AND +#Q> c10 = 8388607 AND +#Q> c11 = 0 AND +#Q> c12 = 00000001 AND +#Q> c13 = 2147483647 AND +#Q> c14 = 0 AND +#Q> c15 = 0000000001 AND +#Q> c16 = 9223372036854775807 AND +#Q> c17 = 0 AND +#Q> c18 = 00000000000000000001 AND +#Q> c19 > -1.175494352E-38 AND +#Q> c20 < 1.175494352E-38 AND +#Q> c21 = 000000000000001 AND +#Q> c22 > -2.2250738585073E-308 AND +#Q> c23 < 2.2250738585073E-308 AND +#Q> c24 = 00000000000000000000001 AND +#Q> c25 = -9999999999 AND +#Q> c26 = 9999999999 AND +#Q> c27 = 0000000001 AND +#Q> # +#Q> c28 = '2008-08-04' AND +#Q> c29 = '2008-08-04 16:18:06' AND +#Q> c30 = '2008-08-04 16:18:24' AND +#Q> c31 = '16:18:47' AND +#Q> c32 = '2008' AND +#Q> # +#Q> c33 = 'a' AND +#Q> c34 = '' AND +#Q> c35 = 'e' AND +#Q> c36 = REPEAT('i',255) AND +#Q> c37 = _utf8 x'c3a4' AND +#Q> c38 = '' AND +#Q> c39 = _utf8 x'c3b6' AND +#Q> c40 = REPEAT(_utf8 x'c3bc',255) AND +#Q> c41 = _ucs2 x'00e4' AND +#Q> c42 = '' AND +#Q> c43 = _ucs2 x'00f6' AND +#Q> c44 = REPEAT(_ucs2 x'00fc',255) AND +#Q> # +#Q> c45 = '' AND +#Q> c46 = 'a' AND +#Q> c47 = REPEAT('e',255) AND +#Q> c48 = REPEAT('i',261) AND +#Q> c49 = '' AND +#Q> c50 = _utf8 x'c3a4' AND +#Q> c51 = REPEAT(_utf8 x'c3b6',255) AND +#Q> c52 = REPEAT(_utf8 x'c3bc',261) AND +#Q> c53 = '' AND +#Q> c54 = _ucs2 x'00e4' AND +#Q> c55 = REPEAT(_ucs2 x'00f6',255) AND +#Q> c56 = REPEAT(_ucs2 x'00fc',261) AND +#Q> # +#Q> c57 = '0' AND +#Q> c58 = '' AND +#Q> c59 = '1' AND +#Q> c60 = REPEAT('1',255) AND +#Q> # +#Q> c61 = '' AND +#Q> c62 = 'b' AND +#Q> c63 = REPEAT('c',255) AND +#Q> c64 = REPEAT('\'',261) AND +#Q> # +#Q> c65 = 'tinyblob' AND +#Q> c66 = 'tinytext' AND +#Q> c67 = 'tinytext-ucs2' AND +#Q> c68 = 'blob' AND +#Q> c69 = 'text' AND +#Q> c70 = 'text-ucs2' AND +#Q> c71 = 'mediumblob' AND +#Q> c72 = 'mediumtext' AND +#Q> c73 = 'mediumtext-ucs2' AND +#Q> c74 = 'longblob' AND +#Q> c75 = 'longtext' +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */ +### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */ +### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @5=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @6=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @7=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @8=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @9=1 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @10=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @11=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @12=1 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @13=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @14=0 /* INT meta=0 nullable=1 is_null=0 */ +### @15=1 /* INT meta=0 nullable=1 is_null=0 */ +### @16=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @17=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @18=1 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @19=-1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @20=1.175... /* FLOAT meta=4 nullable=1 is_null=0 */ +### @21=1 /* FLOAT meta=4 nullable=1 is_null=0 */ +### @22=-2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @23=2.225... /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @24=1 /* DOUBLE meta=8 nullable=1 is_null=0 */ +### @25=-9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @26=9999999999 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @27=1 /* DECIMAL(10,0) meta=2560 nullable=1 is_null=0 */ +### @28='2008:08:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @29='2008-08-04 16:18:06' /* DATETIME(0) meta=0 nullable=1 is_null=0 */ +### @30=1217855904 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31='16:18:47' /* TIME(0) meta=0 nullable=1 is_null=0 */ +### @32=2008 /* YEAR meta=0 nullable=1 is_null=0 */ +### @33='a' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @34='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @35='e' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @36='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @37='ä' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @38='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @39='ö' /* STRING(3) meta=65027 nullable=1 is_null=0 */ +### @40='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* STRING(765) meta=57085 nullable=1 is_null=0 */ +### @41='\x00ä' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @42='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @43='\x00ö' /* STRING(2) meta=65026 nullable=1 is_null=0 */ +### @44='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* STRING(510) meta=61182 nullable=1 is_null=0 */ +### @45='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @46='a' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @47='eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @48='iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @49='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @50='ä' /* VARSTRING(3) meta=3 nullable=1 is_null=0 */ +### @51='ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö' /* VARSTRING(765) meta=765 nullable=1 is_null=0 */ +### @52='üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü' /* VARSTRING(783) meta=783 nullable=1 is_null=0 */ +### @53='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @54='\x00ä' /* VARSTRING(2) meta=2 nullable=1 is_null=0 */ +### @55='\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö\x00ö' /* VARSTRING(510) meta=510 nullable=1 is_null=0 */ +### @56='\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü\x00ü' /* VARSTRING(522) meta=522 nullable=1 is_null=0 */ +### @57='0' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @58='' /* STRING(0) meta=65024 nullable=1 is_null=0 */ +### @59='1' /* STRING(1) meta=65025 nullable=1 is_null=0 */ +### @60='111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111' /* STRING(255) meta=65279 nullable=1 is_null=0 */ +### @61='' /* VARSTRING(0) meta=0 nullable=1 is_null=0 */ +### @62='b' /* VARSTRING(1) meta=1 nullable=1 is_null=0 */ +### @63='ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @64=''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /* VARSTRING(261) meta=261 nullable=1 is_null=0 */ +### @65='tinyblob' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @66='tinytext' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @67='\x00t\x00i\x00n\x00y\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=0 */ +### @68='blob' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @69='text' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @70='\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### @71='mediumblob' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @72='mediumtext' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @73='\x00m\x00e\x00d\x00i\x00u\x00m\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=0 */ +### @74='longblob' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @75='longtext' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @76='\x00l\x00o\x00n\x00g\x00t\x00e\x00x\x00t\x00-\x00u\x00c\x00s\x002' /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=0 */ +### @77=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */ +### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */ +### @79=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-12 +/*!100001 SET @@session.gtid_seq_no=12*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE +#Q> # +#Q> c01 IS NULL AND +#Q> c02 IS NULL AND +#Q> c03 IS NULL AND +#Q> c04 IS NULL AND +#Q> c05 IS NULL AND +#Q> c06 IS NULL AND +#Q> c07 IS NULL AND +#Q> c08 IS NULL AND +#Q> c09 IS NULL AND +#Q> c10 IS NULL AND +#Q> c11 IS NULL AND +#Q> c12 IS NULL AND +#Q> c13 IS NULL AND +#Q> c14 IS NULL AND +#Q> c15 IS NULL AND +#Q> c16 IS NULL AND +#Q> c17 IS NULL AND +#Q> c18 IS NULL AND +#Q> c19 IS NULL AND +#Q> c20 IS NULL AND +#Q> c21 IS NULL AND +#Q> c22 IS NULL AND +#Q> c23 IS NULL AND +#Q> c24 IS NULL AND +#Q> c25 IS NULL AND +#Q> c26 IS NULL AND +#Q> c27 IS NULL AND +#Q> # +#Q> c28 IS NULL AND +#Q> c29 IS NULL AND +#Q> # this got a timestamp instead of NULL: c30 IS NULL AND +#Q> c31 IS NULL AND +#Q> c32 IS NULL AND +#Q> # +#Q> c33 IS NULL AND +#Q> c34 IS NULL AND +#Q> c35 IS NULL AND +#Q> c36 IS NULL AND +#Q> c37 IS NULL AND +#Q> c38 IS NULL AND +#Q> c39 IS NULL AND +#Q> c40 IS NULL AND +#Q> c41 IS NULL AND +#Q> c42 IS NULL AND +#Q> c43 IS NULL AND +#Q> c44 IS NULL AND +#Q> # +#Q> c45 IS NULL AND +#Q> c46 IS NULL AND +#Q> c47 IS NULL AND +#Q> c48 IS NULL AND +#Q> c49 IS NULL AND +#Q> c50 IS NULL AND +#Q> c51 IS NULL AND +#Q> c52 IS NULL AND +#Q> c53 IS NULL AND +#Q> c54 IS NULL AND +#Q> c55 IS NULL AND +#Q> c56 IS NULL AND +#Q> # +#Q> c57 IS NULL AND +#Q> c58 IS NULL AND +#Q> c59 IS NULL AND +#Q> c60 IS NULL AND +#Q> # +#Q> c61 IS NULL AND +#Q> c62 IS NULL AND +#Q> c63 IS NULL AND +#Q> c64 IS NULL AND +#Q> # +#Q> c65 IS NULL AND +#Q> c66 IS NULL AND +#Q> c67 IS NULL AND +#Q> c68 IS NULL AND +#Q> c69 IS NULL AND +#Q> c70 IS NULL AND +#Q> c71 IS NULL AND +#Q> c72 IS NULL AND +#Q> c73 IS NULL AND +#Q> c74 IS NUL +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=NULL /* BIT(1) meta=1 nullable=1 is_null=1 */ +### @2=NULL /* BIT(64) meta=2048 nullable=1 is_null=1 */ +### @3=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @4=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @5=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @6=NULL /* TINYINT meta=0 nullable=1 is_null=1 */ +### @7=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @8=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @9=NULL /* SHORTINT meta=0 nullable=1 is_null=1 */ +### @10=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @11=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @12=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */ +### @13=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @14=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @15=NULL /* INT meta=0 nullable=1 is_null=1 */ +### @16=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @17=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @18=NULL /* LONGINT meta=0 nullable=1 is_null=1 */ +### @19=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @20=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @21=NULL /* FLOAT meta=4 nullable=1 is_null=1 */ +### @22=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @23=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @24=NULL /* DOUBLE meta=8 nullable=1 is_null=1 */ +### @25=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @26=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @27=NULL /* DECIMAL(10,0) meta=2560 nullable=1 is_null=1 */ +### @28=NULL /* DATE meta=0 nullable=1 is_null=1 */ +### @29=NULL /* DATETIME(0) meta=0 nullable=1 is_null=1 */ +### @30=1000000000 /* TIMESTAMP(0) meta=0 nullable=0 is_null=0 */ +### @31=NULL /* TIME(0) meta=0 nullable=1 is_null=1 */ +### @32=NULL /* YEAR meta=0 nullable=1 is_null=1 */ +### @33=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @34=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @35=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @36=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @37=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @38=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @39=NULL /* STRING(3) meta=65027 nullable=1 is_null=1 */ +### @40=NULL /* STRING(765) meta=57085 nullable=1 is_null=1 */ +### @41=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @42=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @43=NULL /* STRING(2) meta=65026 nullable=1 is_null=1 */ +### @44=NULL /* STRING(510) meta=61182 nullable=1 is_null=1 */ +### @45=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @46=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @47=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @48=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @49=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @50=NULL /* VARSTRING(3) meta=3 nullable=1 is_null=1 */ +### @51=NULL /* VARSTRING(765) meta=765 nullable=1 is_null=1 */ +### @52=NULL /* VARSTRING(783) meta=783 nullable=1 is_null=1 */ +### @53=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @54=NULL /* VARSTRING(2) meta=2 nullable=1 is_null=1 */ +### @55=NULL /* VARSTRING(510) meta=510 nullable=1 is_null=1 */ +### @56=NULL /* VARSTRING(522) meta=522 nullable=1 is_null=1 */ +### @57=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @58=NULL /* STRING(0) meta=65024 nullable=1 is_null=1 */ +### @59=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */ +### @60=NULL /* STRING(255) meta=65279 nullable=1 is_null=1 */ +### @61=NULL /* VARSTRING(0) meta=0 nullable=1 is_null=1 */ +### @62=NULL /* VARSTRING(1) meta=1 nullable=1 is_null=1 */ +### @63=NULL /* VARSTRING(255) meta=255 nullable=1 is_null=1 */ +### @64=NULL /* VARSTRING(261) meta=261 nullable=1 is_null=1 */ +### @65=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @66=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @67=NULL /* TINYBLOB/TINYTEXT meta=1 nullable=1 is_null=1 */ +### @68=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @69=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @70=NULL /* BLOB/TEXT meta=2 nullable=1 is_null=1 */ +### @71=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @72=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @73=NULL /* MEDIUMBLOB/MEDIUMTEXT meta=3 nullable=1 is_null=1 */ +### @74=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @75=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @76=NULL /* LONGBLOB/LONGTEXT meta=4 nullable=1 is_null=1 */ +### @77=NULL /* ENUM(1 byte) meta=63233 nullable=1 is_null=1 */ +### @78=NULL /* SET(1 bytes) meta=63489 nullable=1 is_null=1 */ +### @79=4 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +# Cleanup. +# +DROP TABLE t1; +# +# ========================================= +# Test #2 - Multi-row insert/update/delete. +# ========================================= +# +# Delete all existing binary logs. +# +RESET MASTER; +# +# Create a test table with selected data types. +# +CREATE TABLE t1 ( +c28 DATE, +c47 VARCHAR(24), +crn INT -- row number +) ENGINE=MyISAM DEFAULT CHARSET latin1; +# +# Show how much rows are affected by each statement. +# +# +# Multi-row insert. +# +INSERT INTO t1 VALUES +('2008-08-01','VARCHAR-01',1), +('2008-08-02','VARCHAR-02',2), +('2008-08-03','VARCHAR-03',3), +('2008-08-04','VARCHAR-04',4), +('2008-08-05','VARCHAR-05',5), +('2008-08-06','VARCHAR-06',6), +('2008-08-07','VARCHAR-07',7), +('2008-08-08','VARCHAR-08',8), +('2008-08-09','VARCHAR-09',9); +affected rows: 9 +info: Records: 9 Duplicates: 0 Warnings: 0 +# +# Multi-row update. +# +UPDATE t1 SET c28 = ADDDATE(c28,10) WHERE crn < 8; +affected rows: 7 +info: Rows matched: 7 Changed: 7 Warnings: 0 +# +# Show what we have in the table. +# +SELECT * FROM t1; +c28 c47 crn +2008-08-11 VARCHAR-01 1 +2008-08-12 VARCHAR-02 2 +2008-08-13 VARCHAR-03 3 +2008-08-14 VARCHAR-04 4 +2008-08-15 VARCHAR-05 5 +2008-08-16 VARCHAR-06 6 +2008-08-17 VARCHAR-07 7 +2008-08-08 VARCHAR-08 8 +2008-08-09 VARCHAR-09 9 +affected rows: 9 +# +# Multi-row delete. +# +DELETE FROM t1 WHERE crn < 8; +affected rows: 7 +# +# Show what we have in the table. +# +SELECT * FROM t1; +c28 c47 crn +2008-08-08 VARCHAR-08 8 +2008-08-09 VARCHAR-09 9 +affected rows: 2 +# +# Hide how much rows are affected by each statement. +# +# +# Flush all log buffers to the log file. +# +FLUSH LOGS; +# +# Call mysqlbinlog to display the log file contents. +# +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [] +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C utf8 *//*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 ( +c28 DATE, +c47 VARCHAR(24), +crn INT -- row number +) ENGINE=MyISAM DEFAULT CHARSET latin1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-2 +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES +#Q> ('2008-08-01','VARCHAR-01',1), +#Q> ('2008-08-02','VARCHAR-02',2), +#Q> ('2008-08-03','VARCHAR-03',3), +#Q> ('2008-08-04','VARCHAR-04',4), +#Q> ('2008-08-05','VARCHAR-05',5), +#Q> ('2008-08-06','VARCHAR-06',6), +#Q> ('2008-08-07','VARCHAR-07',7), +#Q> ('2008-08-08','VARCHAR-08',8), +#Q> ('2008-08-09','VARCH +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-04' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-05' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-06' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-07' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:08' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-08' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=8 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:08:09' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-09' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=9 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 9 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-3 +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c28 = ADDDATE(c28,10) WHERE crn < 8 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1='2008:08:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=1 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2008:08:11' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=1 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:08:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2008:08:12' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:08:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2008:08:13' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:08:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-04' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2008:08:14' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-04' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:08:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-05' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2008:08:15' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-05' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:08:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-06' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2008:08:16' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-06' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:08:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-07' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2008:08:17' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-07' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 7 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-4 +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE crn < 8 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='2008:08:11' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=1 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2008:08:12' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2008:08:13' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2008:08:14' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-04' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2008:08:15' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-05' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2008:08:16' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-06' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2008:08:17' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-07' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 7 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +# Cleanup. +# +DROP TABLE t1; +# +# ==================================== +# Test #3 - Multi-table update/delete. +# ==================================== +# +# Delete all existing binary logs. +# +RESET MASTER; +# +# Create test tables with selected data types. +# +CREATE TABLE t1 ( +c_1_1 DATE, +c_1_2 VARCHAR(255), +c_1_n INT -- row number +) ENGINE=MyISAM DEFAULT CHARSET latin1; +CREATE TABLE t2 ( +c_2_1 DATE, +c_2_2 VARCHAR(255), +c_2_n INT -- row number +) ENGINE=MyISAM DEFAULT CHARSET latin1; +CREATE TABLE t3 ( +c_3_1 DATE, +c_3_2 VARCHAR(255), +c_3_n INT -- row number +) ENGINE=MyISAM DEFAULT CHARSET latin1; +# +# Show how much rows are affected by each statement. +# +# +# Insert data. +# +INSERT INTO t1 VALUES +('2008-01-01','VARCHAR-01-01',11), +('2008-01-02','VARCHAR-01-02',2), +('2008-01-03','VARCHAR-01-03',3), +('2008-01-04','VARCHAR-01-04',4), +('2008-01-05','VARCHAR-01-05',5), +('2008-01-06','VARCHAR-01-06',6), +('2008-01-07','VARCHAR-01-07',7), +('2008-01-08','VARCHAR-01-08',18), +('2008-01-09','VARCHAR-01-09',19); +affected rows: 9 +info: Records: 9 Duplicates: 0 Warnings: 0 +INSERT INTO t2 VALUES +('2008-02-01','VARCHAR-02-01',21), +('2008-02-02','VARCHAR-02-02',2), +('2008-02-03','VARCHAR-02-03',3), +('2008-02-04','VARCHAR-02-04',4), +('2008-02-05','VARCHAR-02-05',5), +('2008-02-06','VARCHAR-02-06',6), +('2008-02-07','VARCHAR-02-07',7), +('2008-02-08','VARCHAR-02-08',28), +('2008-02-09','VARCHAR-02-09',29); +affected rows: 9 +info: Records: 9 Duplicates: 0 Warnings: 0 +INSERT INTO t3 VALUES +('2008-03-01','VARCHAR-03-01',31), +('2008-03-02','VARCHAR-03-02',2), +('2008-03-03','VARCHAR-03-03',3), +('2008-03-04','VARCHAR-03-04',4), +('2008-03-05','VARCHAR-03-05',5), +('2008-03-06','VARCHAR-03-06',6), +('2008-03-07','VARCHAR-03-07',7), +('2008-03-08','VARCHAR-03-08',38), +('2008-03-09','VARCHAR-03-09',39); +affected rows: 9 +info: Records: 9 Duplicates: 0 Warnings: 0 +# +# Multi-table update. +# +UPDATE t1,t2,t3 SET +c_1_1 = ADDDATE(c_1_1,INTERVAL 10 YEAR), +c_2_1 = ADDDATE(c_2_1,INTERVAL 20 YEAR), +c_3_1 = ADDDATE(c_3_1,INTERVAL 30 YEAR) +WHERE c_1_n = c_2_n AND c_2_n = c_3_n; +affected rows: 18 +info: Rows matched: 18 Changed: 18 Warnings: 0 +# +# Show what we have in the tables. +# +SELECT * FROM t1; +c_1_1 c_1_2 c_1_n +2008-01-01 VARCHAR-01-01 11 +2018-01-02 VARCHAR-01-02 2 +2018-01-03 VARCHAR-01-03 3 +2018-01-04 VARCHAR-01-04 4 +2018-01-05 VARCHAR-01-05 5 +2018-01-06 VARCHAR-01-06 6 +2018-01-07 VARCHAR-01-07 7 +2008-01-08 VARCHAR-01-08 18 +2008-01-09 VARCHAR-01-09 19 +affected rows: 9 +SELECT * FROM t2; +c_2_1 c_2_2 c_2_n +2008-02-01 VARCHAR-02-01 21 +2028-02-02 VARCHAR-02-02 2 +2028-02-03 VARCHAR-02-03 3 +2028-02-04 VARCHAR-02-04 4 +2028-02-05 VARCHAR-02-05 5 +2028-02-06 VARCHAR-02-06 6 +2028-02-07 VARCHAR-02-07 7 +2008-02-08 VARCHAR-02-08 28 +2008-02-09 VARCHAR-02-09 29 +affected rows: 9 +SELECT * FROM t3; +c_3_1 c_3_2 c_3_n +2008-03-01 VARCHAR-03-01 31 +2038-03-02 VARCHAR-03-02 2 +2038-03-03 VARCHAR-03-03 3 +2038-03-04 VARCHAR-03-04 4 +2038-03-05 VARCHAR-03-05 5 +2038-03-06 VARCHAR-03-06 6 +2038-03-07 VARCHAR-03-07 7 +2008-03-08 VARCHAR-03-08 38 +2008-03-09 VARCHAR-03-09 39 +affected rows: 9 +# +# Multi-table delete. +# +DELETE FROM t1,t2,t3 USING t1 INNER JOIN t2 INNER JOIN t3 +WHERE c_1_n = c_2_n AND c_2_n = c_3_n; +affected rows: 18 +# +# Show what we have in the tables. +# +SELECT * FROM t1; +c_1_1 c_1_2 c_1_n +2008-01-01 VARCHAR-01-01 11 +2008-01-08 VARCHAR-01-08 18 +2008-01-09 VARCHAR-01-09 19 +affected rows: 3 +SELECT * FROM t2; +c_2_1 c_2_2 c_2_n +2008-02-01 VARCHAR-02-01 21 +2008-02-08 VARCHAR-02-08 28 +2008-02-09 VARCHAR-02-09 29 +affected rows: 3 +SELECT * FROM t3; +c_3_1 c_3_2 c_3_n +2008-03-01 VARCHAR-03-01 31 +2008-03-08 VARCHAR-03-08 38 +2008-03-09 VARCHAR-03-09 39 +affected rows: 3 +# +# Hide how much rows are affected by each statement. +# +# +# Flush all log buffers to the log file. +# +FLUSH LOGS; +# +# Call mysqlbinlog to display the log file contents. +# +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [] +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C utf8 *//*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 ( +c_1_1 DATE, +c_1_2 VARCHAR(255), +c_1_n INT -- row number +) ENGINE=MyISAM DEFAULT CHARSET latin1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-2 ddl +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t2 ( +c_2_1 DATE, +c_2_2 VARCHAR(255), +c_2_n INT -- row number +) ENGINE=MyISAM DEFAULT CHARSET latin1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-3 ddl +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t3 ( +c_3_1 DATE, +c_3_2 VARCHAR(255), +c_3_n INT -- row number +) ENGINE=MyISAM DEFAULT CHARSET latin1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-4 +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES +#Q> ('2008-01-01','VARCHAR-01-01',11), +#Q> ('2008-01-02','VARCHAR-01-02',2), +#Q> ('2008-01-03','VARCHAR-01-03',3), +#Q> ('2008-01-04','VARCHAR-01-04',4), +#Q> ('2008-01-05','VARCHAR-01-05',5), +#Q> ('2008-01-06','VARCHAR-01-06',6), +#Q> ('2008-01-07','VARCHAR-01-07',7), +#Q> ('2008-01-08','VARCHAR-01-08',18), +#Q> ('2008-01-09','VARCHAR-0 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-01' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=11 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:08' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-08' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=18 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1='2008:01:09' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-09' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=19 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 9 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-5 +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 VALUES +#Q> ('2008-02-01','VARCHAR-02-01',21), +#Q> ('2008-02-02','VARCHAR-02-02',2), +#Q> ('2008-02-03','VARCHAR-02-03',3), +#Q> ('2008-02-04','VARCHAR-02-04',4), +#Q> ('2008-02-05','VARCHAR-02-05',5), +#Q> ('2008-02-06','VARCHAR-02-06',6), +#Q> ('2008-02-07','VARCHAR-02-07',7), +#Q> ('2008-02-08','VARCHAR-02-08',28), +#Q> ('2008-02-09','VARCHAR-0 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-01' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=21 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:08' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-08' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=28 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1='2008:02:09' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-09' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=29 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 9 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-6 +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t3 VALUES +#Q> ('2008-03-01','VARCHAR-03-01',31), +#Q> ('2008-03-02','VARCHAR-03-02',2), +#Q> ('2008-03-03','VARCHAR-03-03',3), +#Q> ('2008-03-04','VARCHAR-03-04',4), +#Q> ('2008-03-05','VARCHAR-03-05',5), +#Q> ('2008-03-06','VARCHAR-03-06',6), +#Q> ('2008-03-07','VARCHAR-03-07',7), +#Q> ('2008-03-08','VARCHAR-03-08',38), +#Q> ('2008-03-09','VARCHAR-0 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t3` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:01' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-01' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=31 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:08' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-08' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=38 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t3` +### SET +### @1='2008:03:09' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-09' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=39 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 9 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-7 +/*!100001 SET @@session.gtid_seq_no=7*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1,t2,t3 SET +#Q> c_1_1 = ADDDATE(c_1_1,INTERVAL 10 YEAR), +#Q> c_2_1 = ADDDATE(c_2_1,INTERVAL 20 YEAR), +#Q> c_3_1 = ADDDATE(c_3_1,INTERVAL 30 YEAR) +#Q> WHERE c_1_n = c_2_n AND c_2_n = c +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t3` mapped to number # +# at # +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1='2008:01:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2018:01:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:01:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2018:01:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:01:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2018:01:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:01:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2018:01:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:01:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2018:01:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1='2008:01:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2018:01:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1='2008:02:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2028:02:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1='2008:02:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2028:02:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1='2008:02:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2028:02:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1='2008:02:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2028:02:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1='2008:02:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2028:02:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1='2008:02:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2028:02:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t3` +### WHERE +### @1='2008:03:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2038:03:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t3` +### WHERE +### @1='2008:03:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2038:03:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t3` +### WHERE +### @1='2008:03:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2038:03:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t3` +### WHERE +### @1='2008:03:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2038:03:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t3` +### WHERE +### @1='2008:03:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2038:03:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### UPDATE `test`.`t3` +### WHERE +### @1='2008:03:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### SET +### @1='2038:03:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 18 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-8 +/*!100001 SET @@session.gtid_seq_no=8*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1,t2,t3 USING t1 INNER JOIN t2 INNER JOIN t3 +#Q> WHERE c_1_n = c_2_n AND c_2_n = c_3_ +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t3` mapped to number # +# at # +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1='2018:01:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2018:01:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2018:01:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2018:01:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2018:01:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1='2018:01:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-01-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t2` +### WHERE +### @1='2028:02:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t2` +### WHERE +### @1='2028:02:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t2` +### WHERE +### @1='2028:02:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t2` +### WHERE +### @1='2028:02:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t2` +### WHERE +### @1='2028:02:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t2` +### WHERE +### @1='2028:02:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-02-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t3` +### WHERE +### @1='2038:03:02' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-02' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t3` +### WHERE +### @1='2038:03:03' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-03' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t3` +### WHERE +### @1='2038:03:04' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-04' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=4 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t3` +### WHERE +### @1='2038:03:05' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-05' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=5 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t3` +### WHERE +### @1='2038:03:06' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-06' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=6 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t3` +### WHERE +### @1='2038:03:07' /* DATE meta=0 nullable=1 is_null=0 */ +### @2='VARCHAR-03-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */ +### @3=7 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 18 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +# Cleanup. +# +DROP TABLE t1, t2, t3; +# +# =========================== +# Test #4 - LOAD DATA INFILE. +# =========================== +# +# Delete all existing binary logs. +# +RESET MASTER; +# +# Create a test table with selected data types. +# +CREATE TABLE t1 ( +c1 INT DEFAULT 100, +c2 INT, +c3 VARCHAR(60) +) ENGINE=MyISAM DEFAULT CHARSET latin1; +# +# Show how much rows are affected by each statement. +# +# +# Load data. +# +LOAD DATA INFILE '../../std_data/loaddata5.dat' + INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (c1,c2) +SET c3 = 'Wow'; +affected rows: 3 +info: Records: 3 Deleted: 0 Skipped: 0 Warnings: 6 +Warnings: +Note 1265 Data truncated for column 'c1' at row 1 +Note 1265 Data truncated for column 'c2' at row 1 +Note 1265 Data truncated for column 'c1' at row 2 +Note 1265 Data truncated for column 'c2' at row 2 +Note 1265 Data truncated for column 'c1' at row 3 +Note 1265 Data truncated for column 'c2' at row 3 +# +# Show what we have in the table. +# +SELECT * FROM t1; +c1 c2 c3 +1 2 Wow +3 4 Wow +5 6 Wow +affected rows: 3 +# +# Hide how much rows are affected by each statement. +# +# +# Flush all log buffers to the log file. +# +FLUSH LOGS; +# +# Call mysqlbinlog to display the log file contents. +# +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [] +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C utf8 *//*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 ( +c1 INT DEFAULT 100, +c2 INT, +c3 VARCHAR(60) +) ENGINE=MyISAM DEFAULT CHARSET latin1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-2 +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> LOAD DATA INFILE '../../std_data/loaddata5.dat' +#Q> INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY '' (c1,c2) +#Q> SET c3 = 'Wo +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### @2=2 /* INT meta=0 nullable=1 is_null=0 */ +### @3='Wow' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### @2=4 /* INT meta=0 nullable=1 is_null=0 */ +### @3='Wow' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=5 /* INT meta=0 nullable=1 is_null=0 */ +### @2=6 /* INT meta=0 nullable=1 is_null=0 */ +### @3='Wow' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +# Cleanup. +# +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result new file mode 100644 index 00000000..349dc8b7 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result @@ -0,0 +1,550 @@ +# +# Preparatory cleanup. +# +DROP TABLE IF EXISTS t1, t2; +# +# We need a fixed timestamp to avoid varying results. +# +SET timestamp=1000000000; +# +# Delete all existing binary logs. +# +RESET MASTER; +# +# Create test tables. +# +CREATE TABLE t1 ( +c1 INT, +c2 VARCHAR(20) +) ENGINE=InnoDB DEFAULT CHARSET latin1; +CREATE TABLE t2 ( +c1 INT, +c2 VARCHAR(20) +) ENGINE=MyISAM DEFAULT CHARSET latin1; +# +# Start transaction #1, transactional table only, commit. +# +START TRANSACTION; +# +# Do some statements. +# +INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); +UPDATE t1 SET c1 = c1 + 10; +DELETE FROM t1 WHERE c1 = 12; +# +# Commit transaction. +# +COMMIT; +SELECT * FROM t1; +c1 c2 +11 varchar-1 +13 varchar-3 +TRUNCATE TABLE t1; +# +# Start transaction #2, transactional table only, rollback. +# +START TRANSACTION; +# +# Do some statements. +# +INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); +UPDATE t1 SET c1 = c1 + 10; +DELETE FROM t1 WHERE c1 = 12; +# +# Rollback transaction. +# +ROLLBACK; +SELECT * FROM t1; +c1 c2 +TRUNCATE TABLE t1; +# +# Start transaction #3, both tables, commit. +# +START TRANSACTION; +# +# Do some statements on the transactional table. +# +INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); +UPDATE t1 SET c1 = c1 + 10; +DELETE FROM t1 WHERE c1 = 12; +# +# Do some statements on the non-transactional table. +# +INSERT INTO t2 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); +UPDATE t2 SET c1 = c1 + 10; +DELETE FROM t2 WHERE c1 = 12; +# +# Commit transaction. +# +COMMIT; +SELECT * FROM t1; +c1 c2 +11 varchar-1 +13 varchar-3 +SELECT * FROM t2; +c1 c2 +11 varchar-1 +13 varchar-3 +TRUNCATE TABLE t1; +TRUNCATE TABLE t2; +# +# Start transaction #4, both tables, rollback. +# +START TRANSACTION; +# +# Do some statements on the transactional table. +# +INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); +UPDATE t1 SET c1 = c1 + 10; +DELETE FROM t1 WHERE c1 = 12; +# +# Do some statements on the non-transactional table. +# +INSERT INTO t2 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); +UPDATE t2 SET c1 = c1 + 10; +DELETE FROM t2 WHERE c1 = 12; +# +# Rollback transaction. +# +ROLLBACK; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +SELECT * FROM t1; +c1 c2 +SELECT * FROM t2; +c1 c2 +11 varchar-1 +13 varchar-3 +TRUNCATE TABLE t1; +TRUNCATE TABLE t2; +# +# Flush all log buffers to the log file. +# +FLUSH LOGS; +# +# Call mysqlbinlog to display the log file contents. +# +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [] +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=1411383296/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 ( +c1 INT, +c2 VARCHAR(20) +) ENGINE=InnoDB DEFAULT CHARSET latin1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-2 ddl +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t2 ( +c1 INT, +c2 VARCHAR(20) +) ENGINE=MyISAM DEFAULT CHARSET latin1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-3 trans +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c1 = c1 + 10 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### SET +### @1=11 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### SET +### @1=12 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### SET +### @1=13 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c1 = 12 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=12 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-4 ddl +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +TRUNCATE TABLE t1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-5 ddl +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +TRUNCATE TABLE t1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-6 +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t2` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-7 +/*!100001 SET @@session.gtid_seq_no=7*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t2 SET c1 = c1 + 10 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t2` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### SET +### @1=11 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### SET +### @1=12 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### SET +### @1=13 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-8 +/*!100001 SET @@session.gtid_seq_no=8*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t2 WHERE c1 = 12 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t2` +### WHERE +### @1=12 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-9 trans +/*!100001 SET @@session.gtid_seq_no=9*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c1 = c1 + 10 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### SET +### @1=11 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### SET +### @1=12 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### SET +### @1=13 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 WHERE c1 = 12 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=12 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-10 ddl +/*!100001 SET @@session.gtid_seq_no=10*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +TRUNCATE TABLE t1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-11 ddl +/*!100001 SET @@session.gtid_seq_no=11*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +TRUNCATE TABLE t2 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-12 +/*!100001 SET @@session.gtid_seq_no=12*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3') +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t2` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t2` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-13 +/*!100001 SET @@session.gtid_seq_no=13*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t2 SET c1 = c1 + 10 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t2` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### SET +### @1=11 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### SET +### @1=12 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### UPDATE `test`.`t2` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### SET +### @1=13 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-14 +/*!100001 SET @@session.gtid_seq_no=14*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t2 WHERE c1 = 12 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t2` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t2` +### WHERE +### @1=12 /* INT meta=0 nullable=1 is_null=0 */ +### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-15 ddl +/*!100001 SET @@session.gtid_seq_no=15*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +TRUNCATE TABLE t1 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-16 ddl +/*!100001 SET @@session.gtid_seq_no=16*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +TRUNCATE TABLE t2 +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +# Cleanup. +# +DROP TABLE t1, t2; diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_stop_never.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_stop_never.result new file mode 100644 index 00000000..e94f17b9 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_stop_never.result @@ -0,0 +1,16 @@ +RESET MASTER; +include/stop_dump_threads.inc +# Step-1: Execute some dummy statements. +CREATE TABLE t1(i int); +INSERT INTO t1 values (1); +# Step-2: Disable binary log temporarily and drop the table 't1'. +set @@SESSION.SQL_LOG_BIN = 0; +DROP TABLE t1; +set @@SESSION.SQL_LOG_BIN = 1; +# Step-3: Execute MYSQL_BINLOG with --stop-never and source it to mysql client. +# Step-4: Wait till dump thread transfer is completed. +# Step-5: Check that the data is there. +# Step-6: Cleanup +# kill the dump thread serving the mysqlbinlog --stop-never process +include/stop_dump_threads.inc +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_mysqlbinlog_suppress_O_TMPFILE.result b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_suppress_O_TMPFILE.result new file mode 100644 index 00000000..0154495f --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_mysqlbinlog_suppress_O_TMPFILE.result @@ -0,0 +1,21 @@ +RESET MASTER; +CREATE TABLE t(f text); +INSERT INTO t VALUES (repeat('x',4096)); +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +SELECT COUNT(*) FROM t; +COUNT(*) +512 +FLUSH LOGS; +DROP TABLE t; +# 512- Rows must be present +include/assert.inc [Table t should have 512 rows.] +DROP TABLE t; +RESET MASTER; diff --git a/mysql-test/suite/binlog/r/binlog_no_uniqfile_crash.result b/mysql-test/suite/binlog/r/binlog_no_uniqfile_crash.result new file mode 100644 index 00000000..88ed236a --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_no_uniqfile_crash.result @@ -0,0 +1,45 @@ +call mtr.add_suppression("Next log extension: 2147483647. Remaining log filename extensions: 0"); +call mtr.add_suppression("Log filename extension number exhausted:."); +call mtr.add_suppression("Can't generate a unique log-filename"); +call mtr.add_suppression("MYSQL_BIN_LOG::open failed to generate new file name."); +call mtr.add_suppression("Could not use master-bin for logging"); +"Test case verifies creation of binary log with max entension value." +RESET MASTER TO 2147483647; +show binary logs; +Log_name File_size +master-bin.2147483647 # +FOUND 1 /Next log extension: 2147483647. Remaining log filename extensions: 0./ in mysqld.1.err +CREATE DATABASE db1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.2147483647 # Gtid # # GTID #-#-# +master-bin.2147483647 # Query # # CREATE DATABASE db1 +RESET MASTER TO 2147483648; +ERROR HY000: Can't generate a unique log-filename master-bin.(1-999) + +FOUND 1 /Turning logging off for the whole duration of the MariaDB server process/ in mysqld.1.err +"Following CREATE DATABSE db2 command will not be present in binary log" +"as binary log got closed due to ER_NO_UNIQUE_LOGFILE error." +CREATE DATABASE db2; +"RESET MASTER command fails to generate a new binary log" +"log-bin will be disabled and server needs to be restarted to" +"re-enable the binary log." +SHOW BINARY LOGS; +ERROR HY000: You are not using binary logging +# restart +show binary logs; +Log_name File_size +master-bin.000001 # +SHOW DATABASES LIKE 'db%'; +Database (db%) +db1 +db2 +include/show_binlog_events.inc +DROP DATABASE db1; +DROP DATABASE db2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP DATABASE db1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP DATABASE db2 diff --git a/mysql-test/suite/binlog/r/binlog_old_versions.result b/mysql-test/suite/binlog/r/binlog_old_versions.result new file mode 100644 index 00000000..30b64535 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_old_versions.result @@ -0,0 +1,70 @@ +==== Read binlog with v2 row events ==== +SELECT * FROM t1 ORDER BY a; +a b +0 last_insert_id +1 one +3 last stm in trx: next event should be xid +4 four +62046 random +SELECT * FROM t2 ORDER BY a; +a b +3 first stm in trx +SELECT COUNT(*) FROM t3; +COUNT(*) +17920 +DROP TABLE t1, t2, t3; +==== Read modern binlog (version 5.1.23) ==== +SELECT * FROM t1 ORDER BY a; +a b +0 last_insert_id +1 one +3 last stm in trx: next event should be xid +4 four +674568 random +SELECT * FROM t2 ORDER BY a; +a b +3 first stm in trx +SELECT COUNT(*) FROM t3; +COUNT(*) +17920 +DROP TABLE t1, t2, t3; +==== Read binlog from version 5.1.17 ==== +SELECT * FROM t1 ORDER BY a; +a b +0 last_insert_id +1 one +3 last stm in trx: next event should be xid +4 four +764247 random +SELECT * FROM t2 ORDER BY a; +a b +3 first stm in trx +SELECT COUNT(*) FROM t3; +COUNT(*) +17920 +DROP TABLE t1, t2, t3; +==== Read binlog from version 4.1 ==== +SELECT * FROM t1 ORDER BY a; +a b +0 last_insert_id +4 four +190243 random +SELECT COUNT(*) FROM t3; +COUNT(*) +17920 +DROP TABLE t1, t3; +==== Read binlog from telco tree (mysql-5.1-telco-6.1) ==== +SELECT * FROM t1 ORDER BY a; +a b +0 last_insert_id +1 one +3 last stm in trx: next event should be xid +4 four +703356 random +SELECT * FROM t2 ORDER BY a; +a b +3 first stm in trx +SELECT COUNT(*) FROM t3; +COUNT(*) +17920 +DROP TABLE t1, t2, t3; diff --git a/mysql-test/suite/binlog/r/binlog_parallel_replication_marks_row.result b/mysql-test/suite/binlog/r/binlog_parallel_replication_marks_row.result new file mode 100644 index 00000000..bca96dd5 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_parallel_replication_marks_row.result @@ -0,0 +1,108 @@ +RESET MASTER; +CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; +/* GTID */ INSERT INTO t1 VALUES (1,0); +/* GTID */ BEGIN; +/* GTID */ INSERT INTO t1 VALUES (2,0); +/* GTID */ ALTER TABLE t1 ADD c INT; +/* GTID */ INSERT INTO t1 VALUES (3,0,0); +/* GTID */ COMMIT; +/* GTID */ BEGIN; +/* GTID */ UPDATE t1 SET b=1, c=1 WHERE a=2; +/* GTID */ CREATE TEMPORARY TABLE t2 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; +/* GTID */ INSERT INTO t2 VALUES (4,10), (5,20); +/* GTID */ INSERT INTO t1 SELECT a, 2, b FROM t2; +/* GTID */ DROP TEMPORARY TABLE t2; +/* GTID */ INSERT INTO t1 VALUES (6, 3, 0); +/* GTID */ COMMIT; +/* GTID */ CREATE TEMPORARY TABLE t3 (a INT PRIMARY KEY) ENGINE=InnoDB; +/* GTID */ BEGIN; +/* GTID */ DELETE FROM t1 WHERE a=5; +/* GTID */ INSERT INTO t3 VALUES (7); +/* GTID */ INSERT INTO t1 SELECT a, 4, 0 FROM t3; +/* GTID */ UPDATE t1 SET c=1 WHERE a=7; +/* GTID */ DROP TEMPORARY TABLE t3; +/* GTID */ COMMIT; +/* GTID */ CREATE TEMPORARY TABLE t4 (a INT PRIMARY KEY) ENGINE=InnoDB; +/* GTID */ BEGIN; +/* GTID */ INSERT INTO t1 VALUES (8, 5, 0); +/* GTID */ ALTER TABLE t4 ADD b INT; +/* GTID */ INSERT INTO t1 VALUES (9, 5, 1); +/* GTID */ COMMIT; +connect tmp_con,localhost,root,,; +/* GTID */ INSERT INTO t1 VALUES (10, 6, 0); +/* GTID */ BEGIN; +/* GTID */ CREATE TEMPORARY TABLE t5 (a INT PRIMARY KEY) ENGINE=InnoDB; +/* GTID */ INSERT INTO t1 VALUES (11, 7, 0); +/* GTID */ COMMIT; +disconnect tmp_con; +connection default; +FLUSH LOGS; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +#Q> /* GTID */ INSERT INTO t1 VALUES (1,0) +# server id 1 end_log_pos # CRC32 0x######## Table_map: `test`.`t1` mapped to number # +# server id 1 end_log_pos # CRC32 0x######## Write_rows: table id # flags: STMT_END_F +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +#Q> /* GTID */ INSERT INTO t1 VALUES (2,0) +# server id 1 end_log_pos # CRC32 0x######## Table_map: `test`.`t1` mapped to number # +# server id 1 end_log_pos # CRC32 0x######## Write_rows: table id # flags: STMT_END_F +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# ddl +/* GTID */ ALTER TABLE t1 ADD c INT +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +#Q> /* GTID */ INSERT INTO t1 VALUES (3,0,0) +# server id 1 end_log_pos # CRC32 0x######## Table_map: `test`.`t1` mapped to number # +# server id 1 end_log_pos # CRC32 0x######## Write_rows: table id # flags: STMT_END_F +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +#Q> /* GTID */ UPDATE t1 SET b=1, c=1 WHERE a=2 +# server id 1 end_log_pos # CRC32 0x######## Table_map: `test`.`t1` mapped to number # +# server id 1 end_log_pos # CRC32 0x######## Update_rows: table id # flags: STMT_END_F +#Q> /* GTID */ INSERT INTO t1 SELECT a, 2, b FROM t2 +# server id 1 end_log_pos # CRC32 0x######## Table_map: `test`.`t1` mapped to number # +# server id 1 end_log_pos # CRC32 0x######## Write_rows: table id # flags: STMT_END_F +#Q> /* GTID */ INSERT INTO t1 VALUES (6, 3, 0) +# server id 1 end_log_pos # CRC32 0x######## Table_map: `test`.`t1` mapped to number # +# server id 1 end_log_pos # CRC32 0x######## Write_rows: table id # flags: STMT_END_F +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +#Q> /* GTID */ DELETE FROM t1 WHERE a=5 +# server id 1 end_log_pos # CRC32 0x######## Table_map: `test`.`t1` mapped to number # +# server id 1 end_log_pos # CRC32 0x######## Delete_rows: table id # flags: STMT_END_F +#Q> /* GTID */ INSERT INTO t1 SELECT a, 4, 0 FROM t3 +# server id 1 end_log_pos # CRC32 0x######## Table_map: `test`.`t1` mapped to number # +# server id 1 end_log_pos # CRC32 0x######## Write_rows: table id # flags: STMT_END_F +#Q> /* GTID */ UPDATE t1 SET c=1 WHERE a=7 +# server id 1 end_log_pos # CRC32 0x######## Table_map: `test`.`t1` mapped to number # +# server id 1 end_log_pos # CRC32 0x######## Update_rows: table id # flags: STMT_END_F +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +#Q> /* GTID */ INSERT INTO t1 VALUES (8, 5, 0) +# server id 1 end_log_pos # CRC32 0x######## Table_map: `test`.`t1` mapped to number # +# server id 1 end_log_pos # CRC32 0x######## Write_rows: table id # flags: STMT_END_F +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +#Q> /* GTID */ INSERT INTO t1 VALUES (9, 5, 1) +# server id 1 end_log_pos # CRC32 0x######## Table_map: `test`.`t1` mapped to number # +# server id 1 end_log_pos # CRC32 0x######## Write_rows: table id # flags: STMT_END_F +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +#Q> /* GTID */ INSERT INTO t1 VALUES (10, 6, 0) +# server id 1 end_log_pos # CRC32 0x######## Table_map: `test`.`t1` mapped to number # +# server id 1 end_log_pos # CRC32 0x######## Write_rows: table id # flags: STMT_END_F +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +#Q> /* GTID */ INSERT INTO t1 VALUES (11, 7, 0) +# server id 1 end_log_pos # CRC32 0x######## Table_map: `test`.`t1` mapped to number # +# server id 1 end_log_pos # CRC32 0x######## Write_rows: table id # flags: STMT_END_F +COMMIT/*!*/; +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_parallel_replication_marks_stm_mix.result b/mysql-test/suite/binlog/r/binlog_parallel_replication_marks_stm_mix.result new file mode 100644 index 00000000..4a6cd6f4 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_parallel_replication_marks_stm_mix.result @@ -0,0 +1,96 @@ +RESET MASTER; +CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; +/* GTID */ INSERT INTO t1 VALUES (1,0); +/* GTID */ BEGIN; +/* GTID */ INSERT INTO t1 VALUES (2,0); +/* GTID */ ALTER TABLE t1 ADD c INT; +/* GTID */ INSERT INTO t1 VALUES (3,0,0); +/* GTID */ COMMIT; +/* GTID */ BEGIN; +/* GTID */ UPDATE t1 SET b=1, c=1 WHERE a=2; +/* GTID */ CREATE TEMPORARY TABLE t2 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; +/* GTID */ INSERT INTO t2 VALUES (4,10), (5,20); +/* GTID */ INSERT INTO t1 SELECT a, 2, b FROM t2; +/* GTID */ DROP TEMPORARY TABLE t2; +/* GTID */ INSERT INTO t1 VALUES (6, 3, 0); +/* GTID */ COMMIT; +/* GTID */ CREATE TEMPORARY TABLE t3 (a INT PRIMARY KEY) ENGINE=InnoDB; +/* GTID */ BEGIN; +/* GTID */ DELETE FROM t1 WHERE a=5; +/* GTID */ INSERT INTO t3 VALUES (7); +/* GTID */ INSERT INTO t1 SELECT a, 4, 0 FROM t3; +/* GTID */ UPDATE t1 SET c=1 WHERE a=7; +/* GTID */ DROP TEMPORARY TABLE t3; +/* GTID */ COMMIT; +/* GTID */ CREATE TEMPORARY TABLE t4 (a INT PRIMARY KEY) ENGINE=InnoDB; +/* GTID */ BEGIN; +/* GTID */ INSERT INTO t1 VALUES (8, 5, 0); +/* GTID */ ALTER TABLE t4 ADD b INT; +/* GTID */ INSERT INTO t1 VALUES (9, 5, 1); +/* GTID */ COMMIT; +connect tmp_con,localhost,root,,; +/* GTID */ INSERT INTO t1 VALUES (10, 6, 0); +/* GTID */ BEGIN; +/* GTID */ CREATE TEMPORARY TABLE t5 (a INT PRIMARY KEY) ENGINE=InnoDB; +/* GTID */ INSERT INTO t1 VALUES (11, 7, 0); +/* GTID */ COMMIT; +disconnect tmp_con; +connection default; +FLUSH LOGS; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +/* GTID */ INSERT INTO t1 VALUES (1,0) +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +/* GTID */ INSERT INTO t1 VALUES (2,0) +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# ddl +/* GTID */ ALTER TABLE t1 ADD c INT +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +/* GTID */ INSERT INTO t1 VALUES (3,0,0) +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# ddl +START TRANSACTION +/* GTID */ UPDATE t1 SET b=1, c=1 WHERE a=2 +/* GTID */ CREATE TEMPORARY TABLE t2 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB +/* GTID */ INSERT INTO t2 VALUES (4,10), (5,20) +/* GTID */ INSERT INTO t1 SELECT a, 2, b FROM t2 +DROP TEMPORARY TABLE `t2` /* generated by server */ +/* GTID */ INSERT INTO t1 VALUES (6, 3, 0) +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# ddl +/* GTID */ CREATE TEMPORARY TABLE t3 (a INT PRIMARY KEY) ENGINE=InnoDB +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# ddl +START TRANSACTION +/* GTID */ DELETE FROM t1 WHERE a=5 +/* GTID */ INSERT INTO t3 VALUES (7) +/* GTID */ INSERT INTO t1 SELECT a, 4, 0 FROM t3 +/* GTID */ UPDATE t1 SET c=1 WHERE a=7 +DROP TEMPORARY TABLE `t3` /* generated by server */ +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# ddl +/* GTID */ CREATE TEMPORARY TABLE t4 (a INT PRIMARY KEY) ENGINE=InnoDB +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +/* GTID */ INSERT INTO t1 VALUES (8, 5, 0) +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# ddl +/* GTID */ ALTER TABLE t4 ADD b INT +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +/* GTID */ INSERT INTO t1 VALUES (9, 5, 1) +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# trans +START TRANSACTION +/* GTID */ INSERT INTO t1 VALUES (10, 6, 0) +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# ddl +START TRANSACTION +/* GTID */ CREATE TEMPORARY TABLE t5 (a INT PRIMARY KEY) ENGINE=InnoDB +/* GTID */ INSERT INTO t1 VALUES (11, 7, 0) +COMMIT/*!*/; +# server id 1 end_log_pos # CRC32 0x######## GTID #-#-# ddl +DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `t5` +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_query_filter_rules.result b/mysql-test/suite/binlog/r/binlog_query_filter_rules.result new file mode 100644 index 00000000..520d500e --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_query_filter_rules.result @@ -0,0 +1,11 @@ +drop table if exists t1; +reset master; +create table t1 (a int); +insert into t1 values (1); +flush logs; +drop table t1; +*** must be 1 *** +select * from t1; +a +1 +drop table t1; diff --git a/mysql-test/suite/binlog/r/binlog_recover_checksum_error.result b/mysql-test/suite/binlog/r/binlog_recover_checksum_error.result new file mode 100644 index 00000000..c3a1af2f --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_recover_checksum_error.result @@ -0,0 +1,8 @@ +set @@global.binlog_checksum = CRC32; +call mtr.add_suppression("Replication event checksum verification failed"); +call mtr.add_suppression("Error in Log_event::read_log_event"); +# restart: --master_verify_checksum=ON --debug_dbug=+d,corrupt_read_log_event_char +set @@global.debug_dbug = VALUE; +set @@global.master_verify_checksum = DO_CHECKSUM; +set @@global.binlog_checksum = BINLOG_CHECKSUM; +# EOF the test diff --git a/mysql-test/suite/binlog/r/binlog_rotate_perf.result b/mysql-test/suite/binlog/r/binlog_rotate_perf.result new file mode 100644 index 00000000..d2ebc56e --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_rotate_perf.result @@ -0,0 +1,945 @@ +connect conn1,localhost,root,,test; +reset master; +create database test_rotate_db; +use test_rotate_db; +#currrent engine=myisam +show binary logs; +Log_name File_size +master-bin.000001 # +CREATE TABLE t1_myisam (c1 INT) ENGINE=myisam; +insert into t1_myisam values(0),(1); +show master status; +File Position Binlog_Do_DB Binlog_Ignore_DB +master-bin.000001 # <Binlog_Do_DB> <Binlog_Ignore_DB> +flush logs; +flush logs; +flush logs; +# left times= 99 +flush logs; +flush logs; +flush logs; +# left times= 98 +flush logs; +flush logs; +flush logs; +# left times= 97 +flush logs; +flush logs; +flush logs; +# left times= 96 +flush logs; +flush logs; +flush logs; +# left times= 95 +flush logs; +flush logs; +flush logs; +# left times= 94 +flush logs; +flush logs; +flush logs; +# left times= 93 +flush logs; +flush logs; +flush logs; +# left times= 92 +flush logs; +flush logs; +flush logs; +# left times= 91 +flush logs; +flush logs; +flush logs; +# left times= 90 +flush logs; +flush logs; +flush logs; +# left times= 89 +flush logs; +flush logs; +flush logs; +# left times= 88 +flush logs; +flush logs; +flush logs; +# left times= 87 +flush logs; +flush logs; +flush logs; +# left times= 86 +flush logs; +flush logs; +flush logs; +# left times= 85 +flush logs; +flush logs; +flush logs; +# left times= 84 +flush logs; +flush logs; +flush logs; +# left times= 83 +flush logs; +flush logs; +flush logs; +# left times= 82 +flush logs; +flush logs; +flush logs; +# left times= 81 +flush logs; +flush logs; +flush logs; +# left times= 80 +flush logs; +flush logs; +flush logs; +# left times= 79 +flush logs; +flush logs; +flush logs; +# left times= 78 +flush logs; +flush logs; +flush logs; +# left times= 77 +flush logs; +flush logs; +flush logs; +# left times= 76 +flush logs; +flush logs; +flush logs; +# left times= 75 +flush logs; +flush logs; +flush logs; +# left times= 74 +flush logs; +flush logs; +flush logs; +# left times= 73 +flush logs; +flush logs; +flush logs; +# left times= 72 +flush logs; +flush logs; +flush logs; +# left times= 71 +flush logs; +flush logs; +flush logs; +# left times= 70 +flush logs; +flush logs; +flush logs; +# left times= 69 +flush logs; +flush logs; +flush logs; +# left times= 68 +flush logs; +flush logs; +flush logs; +# left times= 67 +flush logs; +flush logs; +flush logs; +# left times= 66 +flush logs; +flush logs; +flush logs; +# left times= 65 +flush logs; +flush logs; +flush logs; +# left times= 64 +flush logs; +flush logs; +flush logs; +# left times= 63 +flush logs; +flush logs; +flush logs; +# left times= 62 +flush logs; +flush logs; +flush logs; +# left times= 61 +flush logs; +flush logs; +flush logs; +# left times= 60 +flush logs; +flush logs; +flush logs; +# left times= 59 +flush logs; +flush logs; +flush logs; +# left times= 58 +flush logs; +flush logs; +flush logs; +# left times= 57 +flush logs; +flush logs; +flush logs; +# left times= 56 +flush logs; +flush logs; +flush logs; +# left times= 55 +flush logs; +flush logs; +flush logs; +# left times= 54 +flush logs; +flush logs; +flush logs; +# left times= 53 +flush logs; +flush logs; +flush logs; +# left times= 52 +flush logs; +flush logs; +flush logs; +# left times= 51 +flush logs; +flush logs; +flush logs; +# left times= 50 +flush logs; +flush logs; +flush logs; +# left times= 49 +flush logs; +flush logs; +flush logs; +# left times= 48 +flush logs; +flush logs; +flush logs; +# left times= 47 +flush logs; +flush logs; +flush logs; +# left times= 46 +flush logs; +flush logs; +flush logs; +# left times= 45 +flush logs; +flush logs; +flush logs; +# left times= 44 +flush logs; +flush logs; +flush logs; +# left times= 43 +flush logs; +flush logs; +flush logs; +# left times= 42 +flush logs; +flush logs; +flush logs; +# left times= 41 +flush logs; +flush logs; +flush logs; +# left times= 40 +flush logs; +flush logs; +flush logs; +# left times= 39 +flush logs; +flush logs; +flush logs; +# left times= 38 +flush logs; +flush logs; +flush logs; +# left times= 37 +flush logs; +flush logs; +flush logs; +# left times= 36 +flush logs; +flush logs; +flush logs; +# left times= 35 +flush logs; +flush logs; +flush logs; +# left times= 34 +flush logs; +flush logs; +flush logs; +# left times= 33 +flush logs; +flush logs; +flush logs; +# left times= 32 +flush logs; +flush logs; +flush logs; +# left times= 31 +flush logs; +flush logs; +flush logs; +# left times= 30 +flush logs; +flush logs; +flush logs; +# left times= 29 +flush logs; +flush logs; +flush logs; +# left times= 28 +flush logs; +flush logs; +flush logs; +# left times= 27 +flush logs; +flush logs; +flush logs; +# left times= 26 +flush logs; +flush logs; +flush logs; +# left times= 25 +flush logs; +flush logs; +flush logs; +# left times= 24 +flush logs; +flush logs; +flush logs; +# left times= 23 +flush logs; +flush logs; +flush logs; +# left times= 22 +flush logs; +flush logs; +flush logs; +# left times= 21 +flush logs; +flush logs; +flush logs; +# left times= 20 +flush logs; +flush logs; +flush logs; +# left times= 19 +flush logs; +flush logs; +flush logs; +# left times= 18 +flush logs; +flush logs; +flush logs; +# left times= 17 +flush logs; +flush logs; +flush logs; +# left times= 16 +flush logs; +flush logs; +flush logs; +# left times= 15 +flush logs; +flush logs; +flush logs; +# left times= 14 +flush logs; +flush logs; +flush logs; +# left times= 13 +flush logs; +flush logs; +flush logs; +# left times= 12 +flush logs; +flush logs; +flush logs; +# left times= 11 +flush logs; +flush logs; +flush logs; +# left times= 10 +flush logs; +flush logs; +flush logs; +# left times= 9 +flush logs; +flush logs; +flush logs; +# left times= 8 +flush logs; +flush logs; +flush logs; +# left times= 7 +flush logs; +flush logs; +flush logs; +# left times= 6 +flush logs; +flush logs; +flush logs; +# left times= 5 +flush logs; +flush logs; +flush logs; +# left times= 4 +flush logs; +flush logs; +show master status; +File Position Binlog_Do_DB Binlog_Ignore_DB +master-bin.000291 # <Binlog_Do_DB> <Binlog_Ignore_DB> +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +master-bin.000003 # +master-bin.000004 # +master-bin.000005 # +master-bin.000006 # +master-bin.000007 # +master-bin.000008 # +master-bin.000009 # +master-bin.000010 # +master-bin.000011 # +master-bin.000012 # +master-bin.000013 # +master-bin.000014 # +master-bin.000015 # +master-bin.000016 # +master-bin.000017 # +master-bin.000018 # +master-bin.000019 # +master-bin.000020 # +master-bin.000021 # +master-bin.000022 # +master-bin.000023 # +master-bin.000024 # +master-bin.000025 # +master-bin.000026 # +master-bin.000027 # +master-bin.000028 # +master-bin.000029 # +master-bin.000030 # +master-bin.000031 # +master-bin.000032 # +master-bin.000033 # +master-bin.000034 # +master-bin.000035 # +master-bin.000036 # +master-bin.000037 # +master-bin.000038 # +master-bin.000039 # +master-bin.000040 # +master-bin.000041 # +master-bin.000042 # +master-bin.000043 # +master-bin.000044 # +master-bin.000045 # +master-bin.000046 # +master-bin.000047 # +master-bin.000048 # +master-bin.000049 # +master-bin.000050 # +master-bin.000051 # +master-bin.000052 # +master-bin.000053 # +master-bin.000054 # +master-bin.000055 # +master-bin.000056 # +master-bin.000057 # +master-bin.000058 # +master-bin.000059 # +master-bin.000060 # +master-bin.000061 # +master-bin.000062 # +master-bin.000063 # +master-bin.000064 # +master-bin.000065 # +master-bin.000066 # +master-bin.000067 # +master-bin.000068 # +master-bin.000069 # +master-bin.000070 # +master-bin.000071 # +master-bin.000072 # +master-bin.000073 # +master-bin.000074 # +master-bin.000075 # +master-bin.000076 # +master-bin.000077 # +master-bin.000078 # +master-bin.000079 # +master-bin.000080 # +master-bin.000081 # +master-bin.000082 # +master-bin.000083 # +master-bin.000084 # +master-bin.000085 # +master-bin.000086 # +master-bin.000087 # +master-bin.000088 # +master-bin.000089 # +master-bin.000090 # +master-bin.000091 # +master-bin.000092 # +master-bin.000093 # +master-bin.000094 # +master-bin.000095 # +master-bin.000096 # +master-bin.000097 # +master-bin.000098 # +master-bin.000099 # +master-bin.000100 # +master-bin.000101 # +master-bin.000102 # +master-bin.000103 # +master-bin.000104 # +master-bin.000105 # +master-bin.000106 # +master-bin.000107 # +master-bin.000108 # +master-bin.000109 # +master-bin.000110 # +master-bin.000111 # +master-bin.000112 # +master-bin.000113 # +master-bin.000114 # +master-bin.000115 # +master-bin.000116 # +master-bin.000117 # +master-bin.000118 # +master-bin.000119 # +master-bin.000120 # +master-bin.000121 # +master-bin.000122 # +master-bin.000123 # +master-bin.000124 # +master-bin.000125 # +master-bin.000126 # +master-bin.000127 # +master-bin.000128 # +master-bin.000129 # +master-bin.000130 # +master-bin.000131 # +master-bin.000132 # +master-bin.000133 # +master-bin.000134 # +master-bin.000135 # +master-bin.000136 # +master-bin.000137 # +master-bin.000138 # +master-bin.000139 # +master-bin.000140 # +master-bin.000141 # +master-bin.000142 # +master-bin.000143 # +master-bin.000144 # +master-bin.000145 # +master-bin.000146 # +master-bin.000147 # +master-bin.000148 # +master-bin.000149 # +master-bin.000150 # +master-bin.000151 # +master-bin.000152 # +master-bin.000153 # +master-bin.000154 # +master-bin.000155 # +master-bin.000156 # +master-bin.000157 # +master-bin.000158 # +master-bin.000159 # +master-bin.000160 # +master-bin.000161 # +master-bin.000162 # +master-bin.000163 # +master-bin.000164 # +master-bin.000165 # +master-bin.000166 # +master-bin.000167 # +master-bin.000168 # +master-bin.000169 # +master-bin.000170 # +master-bin.000171 # +master-bin.000172 # +master-bin.000173 # +master-bin.000174 # +master-bin.000175 # +master-bin.000176 # +master-bin.000177 # +master-bin.000178 # +master-bin.000179 # +master-bin.000180 # +master-bin.000181 # +master-bin.000182 # +master-bin.000183 # +master-bin.000184 # +master-bin.000185 # +master-bin.000186 # +master-bin.000187 # +master-bin.000188 # +master-bin.000189 # +master-bin.000190 # +master-bin.000191 # +master-bin.000192 # +master-bin.000193 # +master-bin.000194 # +master-bin.000195 # +master-bin.000196 # +master-bin.000197 # +master-bin.000198 # +master-bin.000199 # +master-bin.000200 # +master-bin.000201 # +master-bin.000202 # +master-bin.000203 # +master-bin.000204 # +master-bin.000205 # +master-bin.000206 # +master-bin.000207 # +master-bin.000208 # +master-bin.000209 # +master-bin.000210 # +master-bin.000211 # +master-bin.000212 # +master-bin.000213 # +master-bin.000214 # +master-bin.000215 # +master-bin.000216 # +master-bin.000217 # +master-bin.000218 # +master-bin.000219 # +master-bin.000220 # +master-bin.000221 # +master-bin.000222 # +master-bin.000223 # +master-bin.000224 # +master-bin.000225 # +master-bin.000226 # +master-bin.000227 # +master-bin.000228 # +master-bin.000229 # +master-bin.000230 # +master-bin.000231 # +master-bin.000232 # +master-bin.000233 # +master-bin.000234 # +master-bin.000235 # +master-bin.000236 # +master-bin.000237 # +master-bin.000238 # +master-bin.000239 # +master-bin.000240 # +master-bin.000241 # +master-bin.000242 # +master-bin.000243 # +master-bin.000244 # +master-bin.000245 # +master-bin.000246 # +master-bin.000247 # +master-bin.000248 # +master-bin.000249 # +master-bin.000250 # +master-bin.000251 # +master-bin.000252 # +master-bin.000253 # +master-bin.000254 # +master-bin.000255 # +master-bin.000256 # +master-bin.000257 # +master-bin.000258 # +master-bin.000259 # +master-bin.000260 # +master-bin.000261 # +master-bin.000262 # +master-bin.000263 # +master-bin.000264 # +master-bin.000265 # +master-bin.000266 # +master-bin.000267 # +master-bin.000268 # +master-bin.000269 # +master-bin.000270 # +master-bin.000271 # +master-bin.000272 # +master-bin.000273 # +master-bin.000274 # +master-bin.000275 # +master-bin.000276 # +master-bin.000277 # +master-bin.000278 # +master-bin.000279 # +master-bin.000280 # +master-bin.000281 # +master-bin.000282 # +master-bin.000283 # +master-bin.000284 # +master-bin.000285 # +master-bin.000286 # +master-bin.000287 # +master-bin.000288 # +master-bin.000289 # +master-bin.000290 # +master-bin.000291 # +reset master; +# left times= 3 +flush logs; +flush logs; +show master status; +File Position Binlog_Do_DB Binlog_Ignore_DB +master-bin.000003 # <Binlog_Do_DB> <Binlog_Ignore_DB> +reset master; +# left times= 2 +flush logs; +flush logs; +show master status; +File Position Binlog_Do_DB Binlog_Ignore_DB +master-bin.000003 # <Binlog_Do_DB> <Binlog_Ignore_DB> +reset master; +# left times= 1 +flush logs; +flush logs; +show master status; +File Position Binlog_Do_DB Binlog_Ignore_DB +master-bin.000003 # <Binlog_Do_DB> <Binlog_Ignore_DB> +reset master; +# left times= 0 +# [engine=myisam] after first loop_times=0, show master logs results +show binary logs; +Log_name File_size +master-bin.000001 # +show master status; +File Position Binlog_Do_DB Binlog_Ignore_DB +master-bin.000001 # <Binlog_Do_DB> <Binlog_Ignore_DB> +flush logs; +flush logs; +#begin to restart mysqld current loop_times=10 +# restart +# left restart times= 9 +flush logs; +flush logs; +#begin to restart mysqld current loop_times=9 +# restart +# left restart times= 8 +flush logs; +flush logs; +#begin to restart mysqld current loop_times=8 +# restart +# left restart times= 7 +flush logs; +flush logs; +#begin to restart mysqld current loop_times=7 +# restart +# left restart times= 6 +flush logs; +flush logs; +#begin to restart mysqld current loop_times=6 +# restart +# left restart times= 5 +flush logs; +flush logs; +#begin to restart mysqld current loop_times=5 +# restart +# left restart times= 4 +flush logs; +flush logs; +#begin to restart mysqld current loop_times=4 +# restart +# left restart times= 3 +flush logs; +flush logs; +#begin to restart mysqld current loop_times=3 +# restart +# left restart times= 2 +flush logs; +flush logs; +#begin to restart mysqld current loop_times=2 +# restart +# left restart times= 1 +flush logs; +flush logs; +#begin to restart mysqld current loop_times=1 +# restart +# left restart times= 0 +# [engine=myisam] after second loop_times=0, show master logs results +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +master-bin.000003 # +master-bin.000004 # +master-bin.000005 # +master-bin.000006 # +master-bin.000007 # +master-bin.000008 # +master-bin.000009 # +master-bin.000010 # +master-bin.000011 # +master-bin.000012 # +master-bin.000013 # +master-bin.000014 # +master-bin.000015 # +master-bin.000016 # +master-bin.000017 # +master-bin.000018 # +master-bin.000019 # +master-bin.000020 # +master-bin.000021 # +master-bin.000022 # +master-bin.000023 # +master-bin.000024 # +master-bin.000025 # +master-bin.000026 # +master-bin.000027 # +master-bin.000028 # +master-bin.000029 # +master-bin.000030 # +master-bin.000031 # +# ======= now try to change the log-bin config for mysqld ======= +#begin to restart mysqld +# restart: --log-bin=new_log_bin +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +master-bin.000003 # +master-bin.000004 # +master-bin.000005 # +master-bin.000006 # +master-bin.000007 # +master-bin.000008 # +master-bin.000009 # +master-bin.000010 # +master-bin.000011 # +master-bin.000012 # +master-bin.000013 # +master-bin.000014 # +master-bin.000015 # +master-bin.000016 # +master-bin.000017 # +master-bin.000018 # +master-bin.000019 # +master-bin.000020 # +master-bin.000021 # +master-bin.000022 # +master-bin.000023 # +master-bin.000024 # +master-bin.000025 # +master-bin.000026 # +master-bin.000027 # +master-bin.000028 # +master-bin.000029 # +master-bin.000030 # +master-bin.000031 # +new_log_bin.000001 # +flush logs; +flush logs; +flush logs; +# left times= 9 +flush logs; +flush logs; +flush logs; +# left times= 8 +flush logs; +flush logs; +flush logs; +# left times= 7 +flush logs; +flush logs; +flush logs; +# left times= 6 +flush logs; +flush logs; +flush logs; +# left times= 5 +flush logs; +flush logs; +flush logs; +# left times= 4 +flush logs; +flush logs; +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +master-bin.000003 # +master-bin.000004 # +master-bin.000005 # +master-bin.000006 # +master-bin.000007 # +master-bin.000008 # +master-bin.000009 # +master-bin.000010 # +master-bin.000011 # +master-bin.000012 # +master-bin.000013 # +master-bin.000014 # +master-bin.000015 # +master-bin.000016 # +master-bin.000017 # +master-bin.000018 # +master-bin.000019 # +master-bin.000020 # +master-bin.000021 # +master-bin.000022 # +master-bin.000023 # +master-bin.000024 # +master-bin.000025 # +master-bin.000026 # +master-bin.000027 # +master-bin.000028 # +master-bin.000029 # +master-bin.000030 # +master-bin.000031 # +new_log_bin.000001 # +new_log_bin.000002 # +new_log_bin.000003 # +new_log_bin.000004 # +new_log_bin.000005 # +new_log_bin.000006 # +new_log_bin.000007 # +new_log_bin.000008 # +new_log_bin.000009 # +new_log_bin.000010 # +new_log_bin.000011 # +new_log_bin.000012 # +new_log_bin.000013 # +new_log_bin.000014 # +new_log_bin.000015 # +new_log_bin.000016 # +new_log_bin.000017 # +new_log_bin.000018 # +new_log_bin.000019 # +new_log_bin.000020 # +new_log_bin.000021 # +reset master; +# left times= 3 +flush logs; +flush logs; +reset master; +# left times= 2 +flush logs; +flush logs; +reset master; +# left times= 1 +flush logs; +flush logs; +reset master; +# left times= 0 +# [engine=myisam] after third loop_times=0, show master logs results +show binary logs; +Log_name File_size +new_log_bin.000001 # +drop database test_rotate_db; diff --git a/mysql-test/suite/binlog/r/binlog_row_annotate.result b/mysql-test/suite/binlog/r/binlog_row_annotate.result new file mode 100644 index 00000000..e41258cc --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_row_annotate.result @@ -0,0 +1,1333 @@ +set @old_binlog_checksum=@@binlog_checksum; +set global binlog_checksum=NONE; +set sql_mode=""; +SET timestamp=1000000000; +RESET MASTER; +CREATE DATABASE test1; +CREATE TABLE test1.t1(a int); +CREATE DATABASE test2; +CREATE TABLE test2.t2(a int); +CREATE VIEW test2.v2 AS SELECT * FROM test2.t2; +CREATE DATABASE test3; +CREATE TABLE test3.t3(a int); +CREATE DATABASE xtest1; +CREATE TABLE xtest1.xt1(a int); +CREATE DATABASE xtest2; +CREATE TABLE xtest2.xt2(a int); +INSERT INTO test1.t1 VALUES (1), (2), (3); +SET SESSION binlog_annotate_row_events = ON; +INSERT INTO test2.t2 VALUES (1), (2), (3); +INSERT INTO test3.t3 VALUES (1), (2), (3); +DELETE test1.t1, test2.t2 +FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3 +WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3.a; +INSERT INTO xtest1.xt1 VALUES (1), (2), (3); +INSERT INTO test2.v2 VALUES (1), (2), (3); +DELETE xtest1.xt1, test2.t2 +FROM xtest1.xt1 INNER JOIN test2.t2 INNER JOIN test3.t3 +WHERE xtest1.xt1.a=test2.t2.a AND test2.t2.a=test3.t3.a; +INSERT INTO xtest1.xt1 VALUES (1), (2), (3); +INSERT INTO xtest2.xt2 VALUES (1), (2), (3); +DELETE xtest1.xt1, xtest2.xt2 +FROM xtest1.xt1 INNER JOIN xtest2.xt2 INNER JOIN test3.t3 +WHERE xtest1.xt1.a=xtest2.xt2.a AND xtest2.xt2.a=test3.t3.a; +FLUSH LOGS; +##################################################################################### +# The following Annotate_rows events should appear below: +# - INSERT INTO test2.t2 VALUES (1), (2), (3) +# - INSERT INTO test3.t3 VALUES (1), (2), (3) +# - DELETE test1.t1, test2.t2 FROM <...> +# - INSERT INTO test2.t2 VALUES (1), (2), (3) +# - DELETE xtest1.xt1, test2.t2 FROM <...> +##################################################################################### +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE test1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE test2 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE test3 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO test1.t1 VALUES (1), (2), (3) +master-bin.000001 # Table_map # # table_id: # (test1.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO test2.t2 VALUES (1), (2), (3) +master-bin.000001 # Table_map # # table_id: # (test2.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO test3.t3 VALUES (1), (2), (3) +master-bin.000001 # Table_map # # table_id: # (test3.t3) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # DELETE test1.t1, test2.t2 +FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3 +WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3.a +master-bin.000001 # Table_map # # table_id: # (test1.t1) +master-bin.000001 # Table_map # # table_id: # (test2.t2) +master-bin.000001 # Delete_rows_v1 # # table_id: # +master-bin.000001 # Delete_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO test2.v2 VALUES (1), (2), (3) +master-bin.000001 # Table_map # # table_id: # (test2.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # DELETE xtest1.xt1, test2.t2 +FROM xtest1.xt1 INNER JOIN test2.t2 INNER JOIN test3.t3 +WHERE xtest1.xt1.a=test2.t2.a AND test2.t2.a=test3.t3.a +master-bin.000001 # Table_map # # table_id: # (test2.t2) +master-bin.000001 # Delete_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Rotate # # master-bin.000002;pos=POS +# +##################################################################################### +# mysqlbinlog +# The following Annotates should appear in this output: +# - INSERT INTO test2.t2 VALUES (1), (2), (3) +# - INSERT INTO test3.t3 VALUES (1), (2), (3) +# - DELETE test1.t1, test2.t2 FROM <...> (with two subsequent Table maps) +# - INSERT INTO test2.t2 VALUES (1), (2), (3) +# - DELETE xtest1.xt1, test2.t2 FROM <...> (with one subsequent Table map) +##################################################################################### +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Gtid list [] +# at # +#010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE DATABASE test1 +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE DATABASE test2 +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE DATABASE test3 +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-4 +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test1.t1 VALUES (1), (2), (3) +#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test1`.`t1` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test1`.`t1` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test1`.`t1` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-5 +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test2.t2 VALUES (1), (2), (3) +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test2`.`t2` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-6 +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test3.t3 VALUES (1), (2), (3) +#010909 4:46:40 server id # end_log_pos # Table_map: `test3`.`t3` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test3`.`t3` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test3`.`t3` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test3`.`t3` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-7 +/*!100001 SET @@session.gtid_seq_no=7*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> DELETE test1.t1, test2.t2 +#Q> FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3 +#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3 +#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # +#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test1`.`t1` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test1`.`t1` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test1`.`t1` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 6 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-8 +/*!100001 SET @@session.gtid_seq_no=8*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test2.v2 VALUES (1), (2), (3) +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test2`.`t2` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-9 +/*!100001 SET @@session.gtid_seq_no=9*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> DELETE xtest1.xt1, test2.t2 +#Q> FROM xtest1.xt1 INNER JOIN test2.t2 INNER JOIN test3.t3 +#Q> WHERE xtest1.xt1.a=test2.t2.a AND test2.t2.a=test3.t3 +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test2`.`t2` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +##################################################################################### +# mysqlbinlog --database=test1 +# The following Annotate should appear in this output: +# - DELETE test1.t1, test2.t2 FROM <...> +##################################################################################### +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Gtid list [] +# at # +#010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE DATABASE test1 +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-4 +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test1.t1 VALUES (1), (2), (3) +#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test1`.`t1` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test1`.`t1` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test1`.`t1` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-5 +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-6 +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-7 +/*!100001 SET @@session.gtid_seq_no=7*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> DELETE test1.t1, test2.t2 +#Q> FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3 +#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3 +#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # +# at # +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # +### DELETE FROM `test1`.`t1` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test1`.`t1` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test1`.`t1` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-8 +/*!100001 SET @@session.gtid_seq_no=8*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-9 +/*!100001 SET @@session.gtid_seq_no=9*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +##################################################################################### +# mysqlbinlog --skip-annotate-row-events +# No Annotates should appear in this output +##################################################################################### +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Gtid list [] +# at # +#010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE DATABASE test1 +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE DATABASE test2 +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE DATABASE test3 +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-4 +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test1`.`t1` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test1`.`t1` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test1`.`t1` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-5 +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test2`.`t2` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-6 +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test3`.`t3` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test3`.`t3` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test3`.`t3` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test3`.`t3` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-7 +/*!100001 SET @@session.gtid_seq_no=7*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # +#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test1`.`t1` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test1`.`t1` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test1`.`t1` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 6 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-8 +/*!100001 SET @@session.gtid_seq_no=8*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test2`.`t2` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-9 +/*!100001 SET @@session.gtid_seq_no=9*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test2`.`t2` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +##################################################################################### +# mysqlbinlog --read-from-remote-server +# The following Annotates should appear in this output: +# - INSERT INTO test2.t2 VALUES (1), (2), (3) +# - INSERT INTO test3.t3 VALUES (1), (2), (3) +# - DELETE test1.t1, test2.t2 FROM <...> (with two subsequent Table maps) +# - INSERT INTO test2.t2 VALUES (1), (2), (3) +# - DELETE xtest1.xt1, test2.t2 FROM <...> (with one subsequent Table map) +##################################################################################### +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Gtid list [] +# at # +#010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE DATABASE test1 +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE DATABASE test2 +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE DATABASE test3 +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-4 +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test1.t1 VALUES (1), (2), (3) +#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test1`.`t1` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test1`.`t1` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test1`.`t1` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-5 +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test2.t2 VALUES (1), (2), (3) +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test2`.`t2` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-6 +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test3.t3 VALUES (1), (2), (3) +#010909 4:46:40 server id # end_log_pos # Table_map: `test3`.`t3` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test3`.`t3` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test3`.`t3` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test3`.`t3` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-7 +/*!100001 SET @@session.gtid_seq_no=7*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> DELETE test1.t1, test2.t2 +#Q> FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3 +#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3 +#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # +#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test1`.`t1` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test1`.`t1` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test1`.`t1` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 6 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-8 +/*!100001 SET @@session.gtid_seq_no=8*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test2.v2 VALUES (1), (2), (3) +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test2`.`t2` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-9 +/*!100001 SET @@session.gtid_seq_no=9*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> DELETE xtest1.xt1, test2.t2 +#Q> FROM xtest1.xt1 INNER JOIN test2.t2 INNER JOIN test3.t3 +#Q> WHERE xtest1.xt1.a=test2.t2.a AND test2.t2.a=test3.t3 +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test2`.`t2` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +##################################################################################### +# mysqlbinlog --read-from-remote-server --database=test1 +# The following Annotate should appear in this output: +# - DELETE test1.t1, test2.t2 FROM <...> +##################################################################################### +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Gtid list [] +# at # +#010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE DATABASE test1 +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-4 +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> INSERT INTO test1.t1 VALUES (1), (2), (3) +#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test1`.`t1` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test1`.`t1` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test1`.`t1` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-5 +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-6 +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-7 +/*!100001 SET @@session.gtid_seq_no=7*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Annotate_rows: +#Q> DELETE test1.t1, test2.t2 +#Q> FROM test1.t1 INNER JOIN test2.t2 INNER JOIN test3.t3 +#Q> WHERE test1.t1.a=test2.t2.a AND test2.t2.a=test3.t3 +#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # +# at # +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # +### DELETE FROM `test1`.`t1` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test1`.`t1` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test1`.`t1` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-8 +/*!100001 SET @@session.gtid_seq_no=8*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-9 +/*!100001 SET @@session.gtid_seq_no=9*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +##################################################################################### +# mysqlbinlog --read-from-remote-server --skip-annotate-row-events +# No Annotates should appear in this output +##################################################################################### +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Gtid list [] +# at # +#010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=0/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE DATABASE test1 +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE DATABASE test2 +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE DATABASE test3 +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-4 +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test1`.`t1` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test1`.`t1` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test1`.`t1` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-5 +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +START TRANSACTION +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test2`.`t2` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-6 +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +START TRANSACTION +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test3`.`t3` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test3`.`t3` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test3`.`t3` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test3`.`t3` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-7 +/*!100001 SET @@session.gtid_seq_no=7*//*!*/; +START TRANSACTION +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +# at # +#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # +#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test1`.`t1` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test1`.`t1` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test1`.`t1` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 6 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-8 +/*!100001 SET @@session.gtid_seq_no=8*//*!*/; +START TRANSACTION +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test2`.`t2` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # GTID 0-1-9 +/*!100001 SET @@session.gtid_seq_no=9*//*!*/; +START TRANSACTION +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Table_map: `test2`.`t2` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test2`.`t2` +### WHERE +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### DELETE FROM `test2`.`t2` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +set global binlog_checksum=@old_binlog_checksum; +DROP DATABASE test1; +DROP DATABASE test2; +DROP DATABASE test3; +DROP DATABASE xtest1; +DROP DATABASE xtest2; diff --git a/mysql-test/suite/binlog/r/binlog_row_binlog.result b/mysql-test/suite/binlog/r/binlog_row_binlog.result new file mode 100644 index 00000000..a1622c13 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_row_binlog.result @@ -0,0 +1,1098 @@ +drop table if exists t1, t2; +reset master; +create table t1 (a int) engine=innodb; +create table t2 (a int) engine=innodb; +begin; +insert t1 values (5); +commit; +begin; +insert t2 values (5); +commit; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int) engine=innodb +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t2 (a int) engine=innodb +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert t1 values (5) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert t2 values (5) +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +drop table t1,t2; +reset master; +create table t1 (n int) engine=innodb; +begin; +commit; +drop table t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (n int) engine=innodb +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(100 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(99 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(98 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(97 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(96 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(95 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(94 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(93 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(92 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(91 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(90 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(89 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(88 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(87 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(86 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(85 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(84 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(83 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(82 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(81 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(80 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(79 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(78 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(77 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(76 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(75 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(74 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(73 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(72 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(71 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(70 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(69 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(68 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(67 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(66 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(65 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(64 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(63 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(62 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(61 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(60 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(59 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(58 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(57 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(56 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(55 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(54 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(53 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(52 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(51 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(50 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(49 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(48 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(47 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(46 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(45 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(44 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(43 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(42 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(41 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(40 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(39 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(38 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(37 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(36 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(35 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(34 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(33 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(32 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(31 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(30 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(29 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(28 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(27 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(26 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(25 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(24 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(23 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(22 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(21 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(20 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(19 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(18 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(17 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(16 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(15 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(14 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(13 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(12 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(11 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(10 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(9 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(8 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(7 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(6 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(5 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(4 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(3 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(2 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values(1 + 4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Rotate # # master-bin.000002;pos=POS +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000002 # Binlog_checkpoint # # master-bin.000002 +master-bin.000002 # Gtid # # GTID #-#-# +master-bin.000002 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +set @ac = @@autocommit; +set autocommit= 0; +reset master; +create table t1(n int) engine=innodb; +begin; +insert into t1 values (1); +insert into t1 values (2); +insert into t1 values (3); +commit; +drop table t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1(n int) engine=innodb +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values (2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values (3) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +set @bcs = @@binlog_cache_size; +set global binlog_cache_size=4096; +reset master; +create table t1 (a int, b char(255)) engine=innodb; +flush status; +show status like "binlog_cache_use"; +Variable_name Value +Binlog_cache_use 0 +*** the following must show the counter value = 1 *** +Variable_name Value +Binlog_cache_use 1 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int, b char(255)) engine=innodb +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; flush status +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values( 100, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 99, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 98, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 97, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 96, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 95, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 94, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 93, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 92, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 91, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 90, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 89, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 88, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 87, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 86, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 85, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 84, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 83, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 82, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 81, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 80, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 79, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 78, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 77, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 76, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 75, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 74, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 73, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 72, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 71, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 70, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 69, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 68, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 67, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 66, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 65, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 64, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 63, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 62, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 61, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 60, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 59, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 58, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 57, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 56, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 55, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 54, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 53, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 52, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 51, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 50, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 49, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 48, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 47, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 46, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 45, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 44, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 43, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 42, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 41, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 40, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 39, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 38, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 37, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 36, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 35, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 34, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 33, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 32, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 31, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 30, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 29, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 28, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 27, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 26, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 25, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 24, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 23, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 22, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 21, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 20, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 19, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 18, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 17, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 16, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 15, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 14, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 13, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 12, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 11, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 10, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 9, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 8, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 7, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 6, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 5, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 4, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 3, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 2, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t1 values( 1, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Rotate # # master-bin.000002;pos=POS +drop table t1; +set global binlog_cache_size=@bcs; +set session autocommit = @ac; +drop table if exists t1; +reset master; +create table t1 (a bigint unsigned, b bigint(20) unsigned); +prepare stmt from "insert into t1 values (?,?)"; +set @a= 9999999999999999; +set @b= 14632475938453979136; +execute stmt using @a, @b; +deallocate prepare stmt; +drop table t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a bigint unsigned, b bigint(20) unsigned) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (9999999999999999,14632475938453979136) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +reset master; +CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; +USE bug39182; +CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) +DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +CREATE PROCEDURE p1() +BEGIN +DECLARE s1 VARCHAR(255); +SET s1= "test"; +CREATE TEMPORARY TABLE tmp1 +SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); +SELECT +COLLATION(NAME_CONST('s1', _utf8'test')) c1, +COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, +COLLATION(s1) c3, +COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, +COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, +COERCIBILITY(s1) d3; +DROP TEMPORARY TABLE tmp1; +END// +CALL p1(); +c1 c2 c3 d1 d2 d3 +utf8_general_ci utf8_unicode_ci utf8_unicode_ci 2 2 2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `bug39182`; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) +DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `bug39182`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() +BEGIN +DECLARE s1 VARCHAR(255); +SET s1= "test"; +CREATE TEMPORARY TABLE tmp1 +SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); +SELECT +COLLATION(NAME_CONST('s1', _utf8'test')) c1, +COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, +COLLATION(s1) c3, +COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, +COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, +COERCIBILITY(s1) d3; +DROP TEMPORARY TABLE tmp1; +END +DROP PROCEDURE p1; +DROP TABLE t1; +DROP DATABASE bug39182; +USE test; +CREATE PROCEDURE p1(IN v1 INT) +BEGIN +CREATE TABLE t1 SELECT v1; +DROP TABLE t1; +END// +CREATE PROCEDURE p2() +BEGIN +DECLARE v1 INT; +CREATE TABLE t1 SELECT v1+1; +DROP TABLE t1; +END// +CREATE PROCEDURE p3(IN v1 INT) +BEGIN +CREATE TABLE t1 SELECT 1 FROM DUAL WHERE v1!=0; +DROP TABLE t1; +END// +CREATE PROCEDURE p4(IN v1 INT) +BEGIN +DECLARE v2 INT; +CREATE TABLE t1 SELECT 1, v1, v2; +DROP TABLE t1; +CREATE TABLE t1 SELECT 1, v1+1, v2; +DROP TABLE t1; +END// +CALL p1(1); +CALL p2(); +CALL p3(0); +CALL p4(0); +DROP PROCEDURE p1; +DROP PROCEDURE p2; +DROP PROCEDURE p3; +DROP PROCEDURE p4; +End of 5.0 tests +reset master; +create table t1 (id tinyint auto_increment primary key); +insert into t1 values(5); +set insert_id=128; +insert into t1 values(null) /* Not binlogged */; +ERROR 22003: Out of range value for column 'id' at row 1 +set insert_id=128; +insert ignore into t1 values(null) /* Insert 128 */; +Warnings: +Warning 167 Out of range value for column 'id' at row 1 +set insert_id=5; +insert into t1 values(null) /* Not binlogged */; +ERROR 23000: Duplicate entry '5' for key 'PRIMARY' +set insert_id=5; +insert ignore into t1 values(null) /* Insert 5 */; +Warnings: +Warning 1062 Duplicate entry '5' for key 'PRIMARY' +select * from t1; +id +5 +drop table t1; +create table t1 (id tinyint auto_increment primary key) engine=myisam; +set insert_id=128; +insert into t1 values(5),(null) /* Insert_id 128 */; +ERROR 22003: Out of range value for column 'id' at row 2 +set insert_id=128; +insert ignore into t1 values (4),(null) /* Insert_id 128 */; +Warnings: +Warning 167 Out of range value for column 'id' at row 2 +set insert_id=5; +insert into t1 values(3),(null) /* Insert_id 5 */; +ERROR 23000: Duplicate entry '5' for key 'PRIMARY' +set insert_id=5; +insert ignore into t1 values(2),(null) /* Insert_id 5 */; +Warnings: +Warning 1062 Duplicate entry '5' for key 'PRIMARY' +select * from t1 order by id; +id +2 +3 +4 +5 +drop table t1; +create table t1 (a int); +create table if not exists t2 select * from t1; +create temporary table tt1 (a int); +create table if not exists t3 like tt1; +USE mysql; +INSERT db SET host='localhost', user='@#@', db='Just a test'; +UPDATE db SET db='Another db' WHERE host='localhost' AND user='@#@'; +DELETE FROM db WHERE host='localhost' AND user='@#@'; +use test; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (id tinyint auto_increment primary key) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(5) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (id tinyint auto_increment primary key) engine=myisam +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(5),(null) /* Insert_id 128 */ +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert ignore into t1 values (4),(null) /* Insert_id 128 */ +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(3),(null) /* Insert_id 5 */ +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert ignore into t1 values(2),(null) /* Insert_id 5 */ +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE IF NOT EXISTS `t2` ( + `a` int(11) DEFAULT NULL +) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE IF NOT EXISTS `t3` ( + `a` int(11) DEFAULT NULL +) ENGINE=MyISAM +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT db SET host='localhost', user='@#@', db='Just a test' +master-bin.000001 # Table_map # # table_id: # (mysql.db) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # UPDATE db SET db='Another db' WHERE host='localhost' AND user='@#@' +master-bin.000001 # Table_map # # table_id: # (mysql.db) +master-bin.000001 # Update_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # DELETE FROM db WHERE host='localhost' AND user='@#@' +master-bin.000001 # Table_map # # table_id: # (mysql.db) +master-bin.000001 # Delete_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +drop table t1,t2,t3,tt1; +reset master; +create table t1 (a int not null auto_increment, primary key (a)) engine=myisam; +insert /* before delayed */ delayed /* after delayed */ into t1 values (207); +insert /*! delayed */ into t1 values (null); +insert delayed into t1 values (300); +FLUSH TABLES; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int not null auto_increment, primary key (a)) engine=myisam +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; FLUSH TABLES +RESET MASTER; +insert /* before delayed */ delayed /* after delayed */ into t1 values (null),(null),(null),(null); +insert /*! delayed */ into t1 values (null),(null),(400),(null); +select * from t1; +a +207 +208 +300 +301 +302 +303 +304 +305 +306 +400 +401 +drop table t1; +reset master; +drop table if exists t3; +create table t3 (a int(11) NOT NULL AUTO_INCREMENT, b text, PRIMARY KEY (a) ) engine=innodb; +File master-bin.000001 +insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); +insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); +insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); +insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); +*** show new binlog index after rotating *** +File master-bin.000002 +drop table t3; +# +# Bug #45998: database crashes when running "create as select" +# +CREATE DATABASE test1; +USE test1; +DROP DATABASE test1; +CREATE TABLE test.t1(a int); +INSERT INTO test.t1 VALUES (1), (2); +CREATE TABLE test.t2 SELECT * FROM test.t1; +USE test; +DROP TABLES t1, t2; +connect fresh,localhost,root,,test; +connection fresh; +RESET MASTER; +CREATE TABLE t1 (a INT PRIMARY KEY); +BINLOG ' +3u9kSA8KAAAAZgAAAGoAAAABAAQANS4xLjM1LW1hcmlhLWJldGExLWRlYnVnLWxvZwAAAAAAAAAA +AAAAAAAAAAAAAAAAAADe72RIEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC +'; +INSERT INTO t1 VALUES (1); +BINLOG ' +3u9kSBMUAAAAKQAAAJEBAAAAABoAAAAAAAAABHRlc3QAAnQxAAEDAAA= +3u9kSBcUAAAAIgAAALMBAAAQABoAAAAAAAEAAf/+AgAAAA== +'; +SHOW BINLOG EVENTS; +Log_name Pos Event_type Server_id End_log_pos Info +# # Format_desc 1 # Server ver: #, Binlog ver: # +# # Gtid_list 1 # [] +# # Binlog_checkpoint 1 # master-bin.000001 +# # Gtid 1 # GTID 0-1-1 +# # Query 1 # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY) +# # Gtid 1 # BEGIN GTID 0-1-2 +# # Annotate_rows 1 # INSERT INTO t1 VALUES (1) +# # Table_map 1 # table_id: # (test.t1) +# # Write_rows_v1 1 # table_id: # flags: STMT_END_F +# # Query 1 # COMMIT +# # Gtid 1 # BEGIN GTID 0-1-3 +# # Annotate_rows 1 # BINLOG ' +3u9kSBMUAAAAKQAAAJEBAAAAABoAAAAAAAAABHRlc3QAAnQxAAEDAAA= +3u9kSBcUAAAAIgAAALMBAAAQABoAAAAAAAEAAf/+AgAAAA== +' +# # Table_map 1 # table_id: # (test.t1) +# # Write_rows_v1 1 # table_id: # flags: STMT_END_F +# # Query 1 # COMMIT +DROP TABLE t1; + +# BUG#54903 BINLOG statement toggles session variables +# ---------------------------------------------------------------------- +# This test verify that BINLOG statement doesn't change current session's +# variables foreign_key_checks and unique_checks. + +CREATE TABLE t1 (c1 INT KEY); +SET @@SESSION.foreign_key_checks= ON; +SET @@SESSION.unique_checks= ON; +# INSERT INTO t1 VALUES (1) +# foreign_key_checks=0 and unique_checks=0 +BINLOG ' +dfLtTBMBAAAAKQAAANcAAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE= +dfLtTBcBAAAAIgAAAPkAAAAAABcAAAAAAAcAAf/+AQAAAA== +'; +SELECT * FROM t1; +c1 +1 +# Their values should be ON +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; +Variable_name Value +foreign_key_checks ON +SHOW SESSION VARIABLES LIKE "unique_checks"; +Variable_name Value +unique_checks ON + +SET @@SESSION.foreign_key_checks= OFF; +SET @@SESSION.unique_checks= OFF; +# INSERT INTO t1 VALUES(2) +# foreign_key_checks=1 and unique_checks=1 +BINLOG ' +dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE= +dfLtTBcBAAAAIgAAAM0BAAAAABcAAAAAAAEAAf/+AgAAAA== +'; +SELECT * FROM t1; +c1 +1 +2 +# Their values should be OFF +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; +Variable_name Value +foreign_key_checks OFF +SHOW SESSION VARIABLES LIKE "unique_checks"; +Variable_name Value +unique_checks OFF +# INSERT INTO t1 VALUES(2) +# foreign_key_checks=1 and unique_checks=1 +# It should not change current session's variables, even error happens +call mtr.add_suppression("BINLOG_BASE64_EVENT.*Could not execute Write_rows_v1 event on table test.t1; Duplicate entry .2. for key .PRIMARY., Error_code: 1062"); +BINLOG ' +dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE= +dfLtTBcBAAAAIgAAAM0BAAAAABcAAAAAAAEAAf/+AgAAAA== +'; +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +SELECT * FROM t1; +c1 +1 +2 +# Their values should be OFF +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; +Variable_name Value +foreign_key_checks OFF +SHOW SESSION VARIABLES LIKE "unique_checks"; +Variable_name Value +unique_checks OFF +DROP TABLE t1; +disconnect fresh; +connection default; +# +# MDEV-25595 DROP part of failed CREATE OR REPLACE is not written into binary log +# +reset master; +create table t as select 1 as b, 2 as b; +ERROR 42S21: Duplicate column name 'b' +create table t (old_table_field int); +create or replace table t as select 1 as b, 2 as b; +ERROR 42S21: Duplicate column name 'b' +create or replace temporary table t as select 1 as b, 2 as b; +ERROR 42S21: Duplicate column name 'b' +create table t (new_table_field int); +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t (old_table_field int) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `test`.`t`/* Generated to handle failed CREATE OR REPLACE */ +master-bin.000001 # Query # # ROLLBACK +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t (new_table_field int) +drop table t; diff --git a/mysql-test/suite/binlog/r/binlog_row_cache_stat.result b/mysql-test/suite/binlog/r/binlog_row_cache_stat.result new file mode 100644 index 00000000..6e2df0c5 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_row_cache_stat.result @@ -0,0 +1,72 @@ +drop table if exists t1, t2; +create table t1 (a int) engine=innodb; +create table t2 (a int) engine=myisam; +set @save_binlog_stmt_cache_size=@@global.binlog_stmt_cache_size; +set @save_binlog_cache_size=@@global.binlog_cache_size; +set @@global.binlog_stmt_cache_size=32768; +set @@global.binlog_cache_size=32768; +**** Preparing the enviroment to check commit and its effect on status variables. +**** Expected: binlog_cache_use = 0, binlog_cache_disk_use = 0. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +flush status; +**** Transactional changes which are long enough so they will be flushed to disk... +**** Expected: binlog_cache_use = 1, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +**** Transactional changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +commit; +**** Non-Transactional changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 1, binlog_stmt_cache_disk_use = 0. +begin; +insert into t2 values( 1 ); +commit; +**** Mixed changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 3, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 2, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +insert into t2 values( 1 ); +commit; +**** Preparing the enviroment to check abort and its effect on the status variables. +**** Expected: binlog_cache_use = 0, binlog_cache_disk_use = 0. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +flush status; +**** Transactional changes which are long enough so they will be flushed to disk... +**** Expected: binlog_cache_use = 1, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +**** Transactional changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +rollback; +**** Non-Transactional changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 1, binlog_stmt_cache_disk_use = 0. +begin; +insert into t2 values( 1 ); +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +**** Mixed changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 3, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 2, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +insert into t2 values( 1 ); +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +drop table t1, t2; +set @@global.binlog_stmt_cache_size=@save_binlog_stmt_cache_size; +set @@global.binlog_cache_size=@save_binlog_cache_size; diff --git a/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result b/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result new file mode 100644 index 00000000..f4f97538 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_row_ctype_cp932.result @@ -0,0 +1,11665 @@ +drop table if exists t1; +drop table if exists t2; +drop table if exists t3; +drop table if exists t4; +SET @test_character_set= 'cp932'; +SET @test_collation= 'cp932_japanese_ci'; +SET @safe_character_set_server= @@character_set_server; +SET @safe_collation_server= @@collation_server; +SET @safe_character_set_client= @@character_set_client; +SET @safe_character_set_results= @@character_set_results; +SET character_set_server= @test_character_set; +SET collation_server= @test_collation; +CREATE DATABASE d1; +USE d1; +CREATE TABLE t1 (c CHAR(10), KEY(c)); +SHOW FULL COLUMNS FROM t1; +Field Type Collation Null Key Default Extra Privileges Comment +c char(10) cp932_japanese_ci YES MUL NULL +INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa'); +SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%'; +want3results +aaa +aaaa +aaaaa +DROP TABLE t1; +CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2))); +SHOW FULL COLUMNS FROM t1; +Field Type Collation Null Key Default Extra Privileges Comment +c1 varchar(15) cp932_japanese_ci YES MUL NULL +INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab'); +SELECT c1 as want3results from t1 where c1 like 'l%'; +want3results +location +loberge +lotre +SELECT c1 as want3results from t1 where c1 like 'lo%'; +want3results +location +loberge +lotre +SELECT c1 as want1result from t1 where c1 like 'loc%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'loca%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locat%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locati%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locatio%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'location%'; +want1result +location +DROP TABLE t1; +create table t1 (a set('a') not null); +insert ignore into t1 values (),(); +Warnings: +Warning 1364 Field 'a' doesn't have a default value +select cast(a as char(1)) from t1; +cast(a as char(1)) + + +select a sounds like a from t1; +a sounds like a +1 +1 +select 1 from t1 order by cast(a as char(1)); +1 +1 +1 +drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +cp932_japanese_ci .wwwmysqlcom +set names utf8; +create table t1 ( +name varchar(10), +level smallint unsigned); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `name` varchar(10) DEFAULT NULL, + `level` smallint(5) unsigned DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=cp932 +insert into t1 values ('string',1); +select concat(name,space(level)), concat(name, repeat(' ',level)) from t1; +concat(name,space(level)) concat(name, repeat(' ',level)) +string string +drop table t1; +DROP DATABASE d1; +USE test; +SET character_set_server= @safe_character_set_server; +SET collation_server= @safe_collation_server; +SET character_set_client= @safe_character_set_client; +SET character_set_results= @safe_character_set_results; +set names cp932; +set character_set_database = cp932; +CREATE TABLE t1(c1 CHAR(1)) DEFAULT CHARACTER SET = cp932; +INSERT INTO t1 VALUES +(0x05),(0x7E),(0x815C),(0x815F),(0x8160),(0x8161),(0x817C),(0x8191),(0x8192),(0x81CA); +INSERT INTO t1 VALUES +(0x8740),(0x8741),(0x8742),(0x8743),(0x8744),(0x8745),(0x8746),(0x8747), +(0x8748),(0x8749),(0x874A),(0x874B),(0x874C),(0x874D),(0x874E),(0x874F), +(0x8750),(0x8751),(0x8752),(0x8753),(0x8754),(0x8755),(0x8756),(0x8757), +(0x8758),(0x8759),(0x875A),(0x875B),(0x875C),(0x875D),(0x875F), +(0x8760),(0x8761),(0x8762),(0x8763),(0x8764),(0x8765),(0x8766),(0x8767), +(0x8768),(0x8769),(0x876A),(0x876B),(0x876C),(0x876D),(0x876E),(0x876F), +(0x8770),(0x8771),(0x8772),(0x8773),(0x8774),(0x8775),(0x877E), +(0x8780),(0x8781),(0x8782),(0x8783),(0x8784),(0x8785),(0x8786),(0x8787), +(0x8788),(0x8789),(0x878A),(0x878B),(0x878C),(0x878D),(0x878E),(0x878F), +(0x8790),(0x8791),(0x8792),(0x8793),(0x8794),(0x8795),(0x8796),(0x8797), +(0x8798),(0x8799),(0x879A),(0x879B),(0x879C); +INSERT INTO t1 VALUES +(0xED40),(0xED41),(0xED42),(0xED43),(0xED44),(0xED45),(0xED46),(0xED47), +(0xED48),(0xED49),(0xED4A),(0xED4B),(0xED4C),(0xED4D),(0xED4E),(0xED4F), +(0xED50),(0xED51),(0xED52),(0xED53),(0xED54),(0xED55),(0xED56),(0xED57), +(0xED58),(0xED59),(0xED5A),(0xED5B),(0xED5C),(0xED5D),(0xED5E),(0xED5F), +(0xED60),(0xED61),(0xED62),(0xED63),(0xED64),(0xED65),(0xED66),(0xED67), +(0xED68),(0xED69),(0xED6A),(0xED6B),(0xED6C),(0xED6D),(0xED6E),(0xED6F), +(0xED70),(0xED71),(0xED72),(0xED73),(0xED74),(0xED75),(0xED76),(0xED77), +(0xED78),(0xED79),(0xED7A),(0xED7B),(0xED7C),(0xED7D),(0xED7E), +(0xED80),(0xED81),(0xED82),(0xED83),(0xED84),(0xED85),(0xED86),(0xED87), +(0xED88),(0xED89),(0xED8A),(0xED8B),(0xED8C),(0xED8D),(0xED8E),(0xED8F), +(0xED90),(0xED91),(0xED92),(0xED93),(0xED94),(0xED95),(0xED96),(0xED97), +(0xED98),(0xED99),(0xED9A),(0xED9B),(0xED9C),(0xED9D),(0xED9E),(0xED9F), +(0xEDA0),(0xEDA1),(0xEDA2),(0xEDA3),(0xEDA4),(0xEDA5),(0xEDA6),(0xEDA7), +(0xEDA8),(0xEDA9),(0xEDAA),(0xEDAB),(0xEDAC),(0xEDAD),(0xEDAE),(0xEDAF), +(0xEDB0),(0xEDB1),(0xEDB2),(0xEDB3),(0xEDB4),(0xEDB5),(0xEDB6),(0xEDB7), +(0xEDB8),(0xEDB9),(0xEDBA),(0xEDBB),(0xEDBC),(0xEDBD),(0xEDBE),(0xEDBF), +(0xEDC0),(0xEDC1),(0xEDC2),(0xEDC3),(0xEDC4),(0xEDC5),(0xEDC6),(0xEDC7), +(0xEDC8),(0xEDC9),(0xEDCA),(0xEDCB),(0xEDCC),(0xEDCD),(0xEDCE),(0xEDCF), +(0xEDD0),(0xEDD1),(0xEDD2),(0xEDD3),(0xEDD4),(0xEDD5),(0xEDD6),(0xEDD7), +(0xEDD8),(0xEDD9),(0xEDDA),(0xEDDB),(0xEDDC),(0xEDDD),(0xEDDE),(0xEDDF), +(0xEDE0),(0xEDE1),(0xEDE2),(0xEDE3),(0xEDE4),(0xEDE5),(0xEDE6),(0xEDE7), +(0xEDE8),(0xEDE9),(0xEDEA),(0xEDEB),(0xEDEC),(0xEDED),(0xEDEE),(0xEDEF), +(0xEDF0),(0xEDF1),(0xEDF2),(0xEDF3),(0xEDF4),(0xEDF5),(0xEDF6),(0xEDF7), +(0xEDF8),(0xEDF9),(0xEDFA),(0xEDFB),(0xEDFC), +(0xEE40),(0xEE41),(0xEE42),(0xEE43),(0xEE44),(0xEE45),(0xEE46),(0xEE47), +(0xEE48),(0xEE49),(0xEE4A),(0xEE4B),(0xEE4C),(0xEE4D),(0xEE4E),(0xEE4F), +(0xEE50),(0xEE51),(0xEE52),(0xEE53),(0xEE54),(0xEE55),(0xEE56),(0xEE57), +(0xEE58),(0xEE59),(0xEE5A),(0xEE5B),(0xEE5C),(0xEE5D),(0xEE5E),(0xEE5F), +(0xEE60),(0xEE61),(0xEE62),(0xEE63),(0xEE64),(0xEE65),(0xEE66),(0xEE67), +(0xEE68),(0xEE69),(0xEE6A),(0xEE6B),(0xEE6C),(0xEE6D),(0xEE6E),(0xEE6F), +(0xEE70),(0xEE71),(0xEE72),(0xEE73),(0xEE74),(0xEE75),(0xEE76),(0xEE77), +(0xEE78),(0xEE79),(0xEE7A),(0xEE7B),(0xEE7C),(0xEE7D),(0xEE7E), +(0xEE80),(0xEE81),(0xEE82),(0xEE83),(0xEE84),(0xEE85),(0xEE86),(0xEE87), +(0xEE88),(0xEE89),(0xEE8A),(0xEE8B),(0xEE8C),(0xEE8D),(0xEE8E),(0xEE8F), +(0xEE90),(0xEE91),(0xEE92),(0xEE93),(0xEE94),(0xEE95),(0xEE96),(0xEE97), +(0xEE98),(0xEE99),(0xEE9A),(0xEE9B),(0xEE9C),(0xEE9D),(0xEE9E),(0xEE9F), +(0xEEA0),(0xEEA1),(0xEEA2),(0xEEA3),(0xEEA4),(0xEEA5),(0xEEA6),(0xEEA7), +(0xEEA8),(0xEEA9),(0xEEAA),(0xEEAB),(0xEEAC),(0xEEAD),(0xEEAE),(0xEEAF), +(0xEEB0),(0xEEB1),(0xEEB2),(0xEEB3),(0xEEB4),(0xEEB5),(0xEEB6),(0xEEB7), +(0xEEB8),(0xEEB9),(0xEEBA),(0xEEBB),(0xEEBC),(0xEEBD),(0xEEBE),(0xEEBF), +(0xEEC0),(0xEEC1),(0xEEC2),(0xEEC3),(0xEEC4),(0xEEC5),(0xEEC6),(0xEEC7), +(0xEEC8),(0xEEC9),(0xEECA),(0xEECB),(0xEECC),(0xEECD),(0xEECE),(0xEECF), +(0xEED0),(0xEED1),(0xEED2),(0xEED3),(0xEED4),(0xEED5),(0xEED6),(0xEED7), +(0xEED8),(0xEED9),(0xEEDA),(0xEEDB),(0xEEDC),(0xEEDD),(0xEEDE),(0xEEDF), +(0xEEE0),(0xEEE1),(0xEEE2),(0xEEE3),(0xEEE4),(0xEEE5),(0xEEE6),(0xEEE7), +(0xEEE8),(0xEEE9),(0xEEEA),(0xEEEB),(0xEEEC),(0xEEEF), +(0xEEF0),(0xEEF1),(0xEEF2),(0xEEF3),(0xEEF4),(0xEEF5),(0xEEF6),(0xEEF7), +(0xEEF8),(0xEEF9),(0xEEFA),(0xEEFB),(0xEEFC); +INSERT INTO t1 VALUES +(0xFA40),(0xFA41),(0xFA42),(0xFA43),(0xFA44),(0xFA45),(0xFA46),(0xFA47), +(0xFA48),(0xFA49),(0xFA4A),(0xFA4B),(0xFA4C),(0xFA4D),(0xFA4E),(0xFA4F), +(0xFA50),(0xFA51),(0xFA52),(0xFA53),(0xFA54),(0xFA55),(0xFA56),(0xFA57), +(0xFA58),(0xFA59),(0xFA5A),(0xFA5B),(0xFA5C),(0xFA5D),(0xFA5E),(0xFA5F), +(0xFA60),(0xFA61),(0xFA62),(0xFA63),(0xFA64),(0xFA65),(0xFA66),(0xFA67), +(0xFA68),(0xFA69),(0xFA6A),(0xFA6B),(0xFA6C),(0xFA6D),(0xFA6E),(0xFA6F), +(0xFA70),(0xFA71),(0xFA72),(0xFA73),(0xFA74),(0xFA75),(0xFA76),(0xFA77), +(0xFA78),(0xFA79),(0xFA7A),(0xFA7B),(0xFA7C),(0xFA7D),(0xFA7E), +(0xFA80),(0xFA81),(0xFA82),(0xFA83),(0xFA84),(0xFA85),(0xFA86),(0xFA87), +(0xFA88),(0xFA89),(0xFA8A),(0xFA8B),(0xFA8C),(0xFA8D),(0xFA8E),(0xFA8F), +(0xFA90),(0xFA91),(0xFA92),(0xFA93),(0xFA94),(0xFA95),(0xFA96),(0xFA97), +(0xFA98),(0xFA99),(0xFA9A),(0xFA9B),(0xFA9C),(0xFA9D),(0xFA9E),(0xFA9F), +(0xFAA0),(0xFAA1),(0xFAA2),(0xFAA3),(0xFAA4),(0xFAA5),(0xFAA6),(0xFAA7), +(0xFAA8),(0xFAA9),(0xFAAA),(0xFAAB),(0xFAAC),(0xFAAD),(0xFAAE),(0xFAAF), +(0xFAB0),(0xFAB1),(0xFAB2),(0xFAB3),(0xFAB4),(0xFAB5),(0xFAB6),(0xFAB7), +(0xFAB8),(0xFAB9),(0xFABA),(0xFABB),(0xFABC),(0xFABD),(0xFABE),(0xFABF), +(0xFAC0),(0xFAC1),(0xFAC2),(0xFAC3),(0xFAC4),(0xFAC5),(0xFAC6),(0xFAC7), +(0xFAC8),(0xFAC9),(0xFACA),(0xFACB),(0xFACC),(0xFACD),(0xFACE),(0xFACF), +(0xFAD0),(0xFAD1),(0xFAD2),(0xFAD3),(0xFAD4),(0xFAD5),(0xFAD6),(0xFAD7), +(0xFAD8),(0xFAD9),(0xFADA),(0xFADB),(0xFADC),(0xFADD),(0xFADE),(0xFADF), +(0xFAE0),(0xFAE1),(0xFAE2),(0xFAE3),(0xFAE4),(0xFAE5),(0xFAE6),(0xFAE7), +(0xFAE8),(0xFAE9),(0xFAEA),(0xFAEB),(0xFAEC),(0xFAED),(0xFAEE),(0xFAEF), +(0xFAF0),(0xFAF1),(0xFAF2),(0xFAF3),(0xFAF4),(0xFAF5),(0xFAF6),(0xFAF7), +(0xFAF8),(0xFAF9),(0xFAFA),(0xFAFB),(0xFAFC), +(0xFB40),(0xFB41),(0xFB42),(0xFB43),(0xFB44),(0xFB45),(0xFB46),(0xFB47), +(0xFB48),(0xFB49),(0xFB4A),(0xFB4B),(0xFB4C),(0xFB4D),(0xFB4E),(0xFB4F), +(0xFB50),(0xFB51),(0xFB52),(0xFB53),(0xFB54),(0xFB55),(0xFB56),(0xFB57), +(0xFB58),(0xFB59),(0xFB5A),(0xFB5B),(0xFB5C),(0xFB5D),(0xFB5E),(0xFB5F), +(0xFB60),(0xFB61),(0xFB62),(0xFB63),(0xFB64),(0xFB65),(0xFB66),(0xFB67), +(0xFB68),(0xFB69),(0xFB6A),(0xFB6B),(0xFB6C),(0xFB6D),(0xFB6E),(0xFB6F), +(0xFB70),(0xFB71),(0xFB72),(0xFB73),(0xFB74),(0xFB75),(0xFB76),(0xFB77), +(0xFB78),(0xFB79),(0xFB7A),(0xFB7B),(0xFB7C),(0xFB7D),(0xFB7E), +(0xFB80),(0xFB81),(0xFB82),(0xFB83),(0xFB84),(0xFB85),(0xFB86),(0xFB87), +(0xFB88),(0xFB89),(0xFB8A),(0xFB8B),(0xFB8C),(0xFB8D),(0xFB8E),(0xFB8F), +(0xFB90),(0xFB91),(0xFB92),(0xFB93),(0xFB94),(0xFB95),(0xFB96),(0xFB97), +(0xFB98),(0xFB99),(0xFB9A),(0xFB9B),(0xFB9C),(0xFB9D),(0xFB9E),(0xFB9F), +(0xFBA0),(0xFBA1),(0xFBA2),(0xFBA3),(0xFBA4),(0xFBA5),(0xFBA6),(0xFBA7), +(0xFBA8),(0xFBA9),(0xFBAA),(0xFBAB),(0xFBAC),(0xFBAD),(0xFBAE),(0xFBAF), +(0xFBB0),(0xFBB1),(0xFBB2),(0xFBB3),(0xFBB4),(0xFBB5),(0xFBB6),(0xFBB7), +(0xFBB8),(0xFBB9),(0xFBBA),(0xFBBB),(0xFBBC),(0xFBBD),(0xFBBE),(0xFBBF), +(0xFBC0),(0xFBC1),(0xFBC2),(0xFBC3),(0xFBC4),(0xFBC5),(0xFBC6),(0xFBC7), +(0xFBC8),(0xFBC9),(0xFBCA),(0xFBCB),(0xFBCC),(0xFBCD),(0xFBCE),(0xFBCF), +(0xFBD0),(0xFBD1),(0xFBD2),(0xFBD3),(0xFBD4),(0xFBD5),(0xFBD6),(0xFBD7), +(0xFBD8),(0xFBD9),(0xFBDA),(0xFBDB),(0xFBDC),(0xFBDD),(0xFBDE),(0xFBDF), +(0xFBE0),(0xFBE1),(0xFBE2),(0xFBE3),(0xFBE4),(0xFBE5),(0xFBE6),(0xFBE7), +(0xFBE8),(0xFBE9),(0xFBEA),(0xFBEB),(0xFBEC),(0xFBED),(0xFBEE),(0xFBEF), +(0xFBF0),(0xFBF1),(0xFBF2),(0xFBF3),(0xFBF4),(0xFBF5),(0xFBF6),(0xFBF7), +(0xFBF8),(0xFBF9),(0xFBFA),(0xFBFB),(0xFBFC), +(0xFC40),(0xFC41),(0xFC42),(0xFC43),(0xFC44),(0xFC45),(0xFC46),(0xFC47), +(0xFC48),(0xFC49),(0xFC4A),(0xFC4B); +INSERT INTO t1 VALUES +(0xF040),(0xF041),(0xF042),(0xF043),(0xF044),(0xF045),(0xF046),(0xF047), +(0xF048),(0xF049),(0xF04A),(0xF04B),(0xF04C),(0xF04D),(0xF04E),(0xF04F), +(0xF050),(0xF051),(0xF052),(0xF053),(0xF054),(0xF055),(0xF056),(0xF057), +(0xF058),(0xF059),(0xF05A),(0xF05B),(0xF05C),(0xF05D),(0xF05E),(0xF05F), +(0xF060),(0xF061),(0xF062),(0xF063),(0xF064),(0xF065),(0xF066),(0xF067), +(0xF068),(0xF069),(0xF06A),(0xF06B),(0xF06C),(0xF06D),(0xF06E),(0xF06F), +(0xF070),(0xF071),(0xF072),(0xF073),(0xF074),(0xF075),(0xF076),(0xF077), +(0xF078),(0xF079),(0xF07A),(0xF07B),(0xF07C),(0xF07D),(0xF07E), +(0xF080),(0xF081),(0xF082),(0xF083),(0xF084),(0xF085),(0xF086),(0xF087), +(0xF088),(0xF089),(0xF08A),(0xF08B),(0xF08C),(0xF08D),(0xF08E),(0xF08F), +(0xF090),(0xF091),(0xF092),(0xF093),(0xF094),(0xF095),(0xF096),(0xF097), +(0xF098),(0xF099),(0xF09A),(0xF09B),(0xF09C),(0xF09D),(0xF09E),(0xF09F), +(0xF0A0),(0xF0A1),(0xF0A2),(0xF0A3),(0xF0A4),(0xF0A5),(0xF0A6),(0xF0A7), +(0xF0A8),(0xF0A9),(0xF0AA),(0xF0AB),(0xF0AC),(0xF0AD),(0xF0AE),(0xF0AF), +(0xF0B0),(0xF0B1),(0xF0B2),(0xF0B3),(0xF0B4),(0xF0B5),(0xF0B6),(0xF0B7), +(0xF0B8),(0xF0B9),(0xF0BA),(0xF0BB),(0xF0BC),(0xF0BD),(0xF0BE),(0xF0BF), +(0xF0C0),(0xF0C1),(0xF0C2),(0xF0C3),(0xF0C4),(0xF0C5),(0xF0C6),(0xF0C7), +(0xF0C8),(0xF0C9),(0xF0CA),(0xF0CB),(0xF0CC),(0xF0CD),(0xF0CE),(0xF0CF), +(0xF0D0),(0xF0D1),(0xF0D2),(0xF0D3),(0xF0D4),(0xF0D5),(0xF0D6),(0xF0D7), +(0xF0D8),(0xF0D9),(0xF0DA),(0xF0DB),(0xF0DC),(0xF0DD),(0xF0DE),(0xF0DF), +(0xF0E0),(0xF0E1),(0xF0E2),(0xF0E3),(0xF0E4),(0xF0E5),(0xF0E6),(0xF0E7), +(0xF0E8),(0xF0E9),(0xF0EA),(0xF0EB),(0xF0EC),(0xF0ED),(0xF0EE),(0xF0EF), +(0xF0F0),(0xF0F1),(0xF0F2),(0xF0F3),(0xF0F4),(0xF0F5),(0xF0F6),(0xF0F7), +(0xF0F8),(0xF0F9),(0xF0FA),(0xF0FB),(0xF0FC), +(0xF140),(0xF141),(0xF142),(0xF143),(0xF144),(0xF145),(0xF146),(0xF147), +(0xF148),(0xF149),(0xF14A),(0xF14B),(0xF14C),(0xF14D),(0xF14E),(0xF14F), +(0xF150),(0xF151),(0xF152),(0xF153),(0xF154),(0xF155),(0xF156),(0xF157), +(0xF158),(0xF159),(0xF15A),(0xF15B),(0xF15C),(0xF15D),(0xF15E),(0xF15F), +(0xF160),(0xF161),(0xF162),(0xF163),(0xF164),(0xF165),(0xF166),(0xF167), +(0xF168),(0xF169),(0xF16A),(0xF16B),(0xF16C),(0xF16D),(0xF16E),(0xF16F), +(0xF170),(0xF171),(0xF172),(0xF173),(0xF174),(0xF175),(0xF176),(0xF177), +(0xF178),(0xF179),(0xF17A),(0xF17B),(0xF17C),(0xF17D),(0xF17E), +(0xF180),(0xF181),(0xF182),(0xF183),(0xF184),(0xF185),(0xF186),(0xF187), +(0xF188),(0xF189),(0xF18A),(0xF18B),(0xF18C),(0xF18D),(0xF18E),(0xF18F), +(0xF190),(0xF191),(0xF192),(0xF193),(0xF194),(0xF195),(0xF196),(0xF197), +(0xF198),(0xF199),(0xF19A),(0xF19B),(0xF19C),(0xF19D),(0xF19E),(0xF19F), +(0xF1A0),(0xF1A1),(0xF1A2),(0xF1A3),(0xF1A4),(0xF1A5),(0xF1A6),(0xF1A7), +(0xF1A8),(0xF1A9),(0xF1AA),(0xF1AB),(0xF1AC),(0xF1AD),(0xF1AE),(0xF1AF), +(0xF1B0),(0xF1B1),(0xF1B2),(0xF1B3),(0xF1B4),(0xF1B5),(0xF1B6),(0xF1B7), +(0xF1B8),(0xF1B9),(0xF1BA),(0xF1BB),(0xF1BC),(0xF1BD),(0xF1BE),(0xF1BF), +(0xF1C0),(0xF1C1),(0xF1C2),(0xF1C3),(0xF1C4),(0xF1C5),(0xF1C6),(0xF1C7), +(0xF1C8),(0xF1C9),(0xF1CA),(0xF1CB),(0xF1CC),(0xF1CD),(0xF1CE),(0xF1CF), +(0xF1D0),(0xF1D1),(0xF1D2),(0xF1D3),(0xF1D4),(0xF1D5),(0xF1D6),(0xF1D7), +(0xF1D8),(0xF1D9),(0xF1DA),(0xF1DB),(0xF1DC),(0xF1DD),(0xF1DE),(0xF1DF), +(0xF1E0),(0xF1E1),(0xF1E2),(0xF1E3),(0xF1E4),(0xF1E5),(0xF1E6),(0xF1E7), +(0xF1E8),(0xF1E9),(0xF1EA),(0xF1EB),(0xF1EC),(0xF1ED),(0xF1EE),(0xF1EF), +(0xF1F0),(0xF1F1),(0xF1F2),(0xF1F3),(0xF1F4),(0xF1F5),(0xF1F6),(0xF1F7), +(0xF1F8),(0xF1F9),(0xF1FA),(0xF1FB),(0xF1FC), +(0xF240),(0xF241),(0xF242),(0xF243),(0xF244),(0xF245),(0xF246),(0xF247), +(0xF248),(0xF249),(0xF24A),(0xF24B),(0xF24C),(0xF24D),(0xF24E),(0xF24F), +(0xF250),(0xF251),(0xF252),(0xF253),(0xF254),(0xF255),(0xF256),(0xF257), +(0xF258),(0xF259),(0xF25A),(0xF25B),(0xF25C),(0xF25D),(0xF25E),(0xF25F), +(0xF260),(0xF261),(0xF262),(0xF263),(0xF264),(0xF265),(0xF266),(0xF267), +(0xF268),(0xF269),(0xF26A),(0xF26B),(0xF26C),(0xF26D),(0xF26E),(0xF26F), +(0xF270),(0xF271),(0xF272),(0xF273),(0xF274),(0xF275),(0xF276),(0xF277), +(0xF278),(0xF279),(0xF27A),(0xF27B),(0xF27C),(0xF27D),(0xF27E), +(0xF280),(0xF281),(0xF282),(0xF283),(0xF284),(0xF285),(0xF286),(0xF287), +(0xF288),(0xF289),(0xF28A),(0xF28B),(0xF28C),(0xF28D),(0xF28E),(0xF28F), +(0xF290),(0xF291),(0xF292),(0xF293),(0xF294),(0xF295),(0xF296),(0xF297), +(0xF298),(0xF299),(0xF29A),(0xF29B),(0xF29C),(0xF29D),(0xF29E),(0xF29F), +(0xF2A0),(0xF2A1),(0xF2A2),(0xF2A3),(0xF2A4),(0xF2A5),(0xF2A6),(0xF2A7), +(0xF2A8),(0xF2A9),(0xF2AA),(0xF2AB),(0xF2AC),(0xF2AD),(0xF2AE),(0xF2AF), +(0xF2B0),(0xF2B1),(0xF2B2),(0xF2B3),(0xF2B4),(0xF2B5),(0xF2B6),(0xF2B7), +(0xF2B8),(0xF2B9),(0xF2BA),(0xF2BB),(0xF2BC),(0xF2BD),(0xF2BE),(0xF2BF), +(0xF2C0),(0xF2C1),(0xF2C2),(0xF2C3),(0xF2C4),(0xF2C5),(0xF2C6),(0xF2C7), +(0xF2C8),(0xF2C9),(0xF2CA),(0xF2CB),(0xF2CC),(0xF2CD),(0xF2CE),(0xF2CF), +(0xF2D0),(0xF2D1),(0xF2D2),(0xF2D3),(0xF2D4),(0xF2D5),(0xF2D6),(0xF2D7), +(0xF2D8),(0xF2D9),(0xF2DA),(0xF2DB),(0xF2DC),(0xF2DD),(0xF2DE),(0xF2DF), +(0xF2E0),(0xF2E1),(0xF2E2),(0xF2E3),(0xF2E4),(0xF2E5),(0xF2E6),(0xF2E7), +(0xF2E8),(0xF2E9),(0xF2EA),(0xF2EB),(0xF2EC),(0xF2ED),(0xF2EE),(0xF2EF), +(0xF2F0),(0xF2F1),(0xF2F2),(0xF2F3),(0xF2F4),(0xF2F5),(0xF2F6),(0xF2F7), +(0xF2F8),(0xF2F9),(0xF2FA),(0xF2FB),(0xF2FC), +(0xF340),(0xF341),(0xF342),(0xF343),(0xF344),(0xF345),(0xF346),(0xF347), +(0xF348),(0xF349),(0xF34A),(0xF34B),(0xF34C),(0xF34D),(0xF34E),(0xF34F), +(0xF350),(0xF351),(0xF352),(0xF353),(0xF354),(0xF355),(0xF356),(0xF357), +(0xF358),(0xF359),(0xF35A),(0xF35B),(0xF35C),(0xF35D),(0xF35E),(0xF35F), +(0xF360),(0xF361),(0xF362),(0xF363),(0xF364),(0xF365),(0xF366),(0xF367), +(0xF368),(0xF369),(0xF36A),(0xF36B),(0xF36C),(0xF36D),(0xF36E),(0xF36F), +(0xF370),(0xF371),(0xF372),(0xF373),(0xF374),(0xF375),(0xF376),(0xF377), +(0xF378),(0xF379),(0xF37A),(0xF37B),(0xF37C),(0xF37D),(0xF37E), +(0xF380),(0xF381),(0xF382),(0xF383),(0xF384),(0xF385),(0xF386),(0xF387), +(0xF388),(0xF389),(0xF38A),(0xF38B),(0xF38C),(0xF38D),(0xF38E),(0xF38F), +(0xF390),(0xF391),(0xF392),(0xF393),(0xF394),(0xF395),(0xF396),(0xF397), +(0xF398),(0xF399),(0xF39A),(0xF39B),(0xF39C),(0xF39D),(0xF39E),(0xF39F), +(0xF3A0),(0xF3A1),(0xF3A2),(0xF3A3),(0xF3A4),(0xF3A5),(0xF3A6),(0xF3A7), +(0xF3A8),(0xF3A9),(0xF3AA),(0xF3AB),(0xF3AC),(0xF3AD),(0xF3AE),(0xF3AF), +(0xF3B0),(0xF3B1),(0xF3B2),(0xF3B3),(0xF3B4),(0xF3B5),(0xF3B6),(0xF3B7), +(0xF3B8),(0xF3B9),(0xF3BA),(0xF3BB),(0xF3BC),(0xF3BD),(0xF3BE),(0xF3BF), +(0xF3C0),(0xF3C1),(0xF3C2),(0xF3C3),(0xF3C4),(0xF3C5),(0xF3C6),(0xF3C7), +(0xF3C8),(0xF3C9),(0xF3CA),(0xF3CB),(0xF3CC),(0xF3CD),(0xF3CE),(0xF3CF), +(0xF3D0),(0xF3D1),(0xF3D2),(0xF3D3),(0xF3D4),(0xF3D5),(0xF3D6),(0xF3D7), +(0xF3D8),(0xF3D9),(0xF3DA),(0xF3DB),(0xF3DC),(0xF3DD),(0xF3DE),(0xF3DF), +(0xF3E0),(0xF3E1),(0xF3E2),(0xF3E3),(0xF3E4),(0xF3E5),(0xF3E6),(0xF3E7), +(0xF3E8),(0xF3E9),(0xF3EA),(0xF3EB),(0xF3EC),(0xF3ED),(0xF3EE),(0xF3EF), +(0xF3F0),(0xF3F1),(0xF3F2),(0xF3F3),(0xF3F4),(0xF3F5),(0xF3F6),(0xF3F7), +(0xF3F8),(0xF3F9),(0xF3FA),(0xF3FB),(0xF3FC), +(0xF440),(0xF441),(0xF442),(0xF443),(0xF444),(0xF445),(0xF446),(0xF447), +(0xF448),(0xF449),(0xF44A),(0xF44B),(0xF44C),(0xF44D),(0xF44E),(0xF44F), +(0xF450),(0xF451),(0xF452),(0xF453),(0xF454),(0xF455),(0xF456),(0xF457), +(0xF458),(0xF459),(0xF45A),(0xF45B),(0xF45C),(0xF45D),(0xF45E),(0xF45F), +(0xF460),(0xF461),(0xF462),(0xF463),(0xF464),(0xF465),(0xF466),(0xF467), +(0xF468),(0xF469),(0xF46A),(0xF46B),(0xF46C),(0xF46D),(0xF46E),(0xF46F), +(0xF470),(0xF471),(0xF472),(0xF473),(0xF474),(0xF475),(0xF476),(0xF477), +(0xF478),(0xF479),(0xF47A),(0xF47B),(0xF47C),(0xF47D),(0xF47E), +(0xF480),(0xF481),(0xF482),(0xF483),(0xF484),(0xF485),(0xF486),(0xF487), +(0xF488),(0xF489),(0xF48A),(0xF48B),(0xF48C),(0xF48D),(0xF48E),(0xF48F), +(0xF490),(0xF491),(0xF492),(0xF493),(0xF494),(0xF495),(0xF496),(0xF497), +(0xF498),(0xF499),(0xF49A),(0xF49B),(0xF49C),(0xF49D),(0xF49E),(0xF49F), +(0xF4A0),(0xF4A1),(0xF4A2),(0xF4A3),(0xF4A4),(0xF4A5),(0xF4A6),(0xF4A7), +(0xF4A8),(0xF4A9),(0xF4AA),(0xF4AB),(0xF4AC),(0xF4AD),(0xF4AE),(0xF4AF), +(0xF4B0),(0xF4B1),(0xF4B2),(0xF4B3),(0xF4B4),(0xF4B5),(0xF4B6),(0xF4B7), +(0xF4B8),(0xF4B9),(0xF4BA),(0xF4BB),(0xF4BC),(0xF4BD),(0xF4BE),(0xF4BF), +(0xF4C0),(0xF4C1),(0xF4C2),(0xF4C3),(0xF4C4),(0xF4C5),(0xF4C6),(0xF4C7), +(0xF4C8),(0xF4C9),(0xF4CA),(0xF4CB),(0xF4CC),(0xF4CD),(0xF4CE),(0xF4CF), +(0xF4D0),(0xF4D1),(0xF4D2),(0xF4D3),(0xF4D4),(0xF4D5),(0xF4D6),(0xF4D7), +(0xF4D8),(0xF4D9),(0xF4DA),(0xF4DB),(0xF4DC),(0xF4DD),(0xF4DE),(0xF4DF), +(0xF4E0),(0xF4E1),(0xF4E2),(0xF4E3),(0xF4E4),(0xF4E5),(0xF4E6),(0xF4E7), +(0xF4E8),(0xF4E9),(0xF4EA),(0xF4EB),(0xF4EC),(0xF4ED),(0xF4EE),(0xF4EF), +(0xF4F0),(0xF4F1),(0xF4F2),(0xF4F3),(0xF4F4),(0xF4F5),(0xF4F6),(0xF4F7), +(0xF4F8),(0xF4F9),(0xF4FA),(0xF4FB),(0xF4FC), +(0xF540),(0xF541),(0xF542),(0xF543),(0xF544),(0xF545),(0xF546),(0xF547), +(0xF548),(0xF549),(0xF54A),(0xF54B),(0xF54C),(0xF54D),(0xF54E),(0xF54F), +(0xF550),(0xF551),(0xF552),(0xF553),(0xF554),(0xF555),(0xF556),(0xF557), +(0xF558),(0xF559),(0xF55A),(0xF55B),(0xF55C),(0xF55D),(0xF55E),(0xF55F), +(0xF560),(0xF561),(0xF562),(0xF563),(0xF564),(0xF565),(0xF566),(0xF567), +(0xF568),(0xF569),(0xF56A),(0xF56B),(0xF56C),(0xF56D),(0xF56E),(0xF56F), +(0xF570),(0xF571),(0xF572),(0xF573),(0xF574),(0xF575),(0xF576),(0xF577), +(0xF578),(0xF579),(0xF57A),(0xF57B),(0xF57C),(0xF57D),(0xF57E), +(0xF580),(0xF581),(0xF582),(0xF583),(0xF584),(0xF585),(0xF586),(0xF587), +(0xF588),(0xF589),(0xF58A),(0xF58B),(0xF58C),(0xF58D),(0xF58E),(0xF58F), +(0xF590),(0xF591),(0xF592),(0xF593),(0xF594),(0xF595),(0xF596),(0xF597), +(0xF598),(0xF599),(0xF59A),(0xF59B),(0xF59C),(0xF59D),(0xF59E),(0xF59F), +(0xF5A0),(0xF5A1),(0xF5A2),(0xF5A3),(0xF5A4),(0xF5A5),(0xF5A6),(0xF5A7), +(0xF5A8),(0xF5A9),(0xF5AA),(0xF5AB),(0xF5AC),(0xF5AD),(0xF5AE),(0xF5AF), +(0xF5B0),(0xF5B1),(0xF5B2),(0xF5B3),(0xF5B4),(0xF5B5),(0xF5B6),(0xF5B7), +(0xF5B8),(0xF5B9),(0xF5BA),(0xF5BB),(0xF5BC),(0xF5BD),(0xF5BE),(0xF5BF), +(0xF5C0),(0xF5C1),(0xF5C2),(0xF5C3),(0xF5C4),(0xF5C5),(0xF5C6),(0xF5C7), +(0xF5C8),(0xF5C9),(0xF5CA),(0xF5CB),(0xF5CC),(0xF5CD),(0xF5CE),(0xF5CF), +(0xF5D0),(0xF5D1),(0xF5D2),(0xF5D3),(0xF5D4),(0xF5D5),(0xF5D6),(0xF5D7), +(0xF5D8),(0xF5D9),(0xF5DA),(0xF5DB),(0xF5DC),(0xF5DD),(0xF5DE),(0xF5DF), +(0xF5E0),(0xF5E1),(0xF5E2),(0xF5E3),(0xF5E4),(0xF5E5),(0xF5E6),(0xF5E7), +(0xF5E8),(0xF5E9),(0xF5EA),(0xF5EB),(0xF5EC),(0xF5ED),(0xF5EE),(0xF5EF), +(0xF5F0),(0xF5F1),(0xF5F2),(0xF5F3),(0xF5F4),(0xF5F5),(0xF5F6),(0xF5F7), +(0xF5F8),(0xF5F9),(0xF5FA),(0xF5FB),(0xF5FC), +(0xF640),(0xF641),(0xF642),(0xF643),(0xF644),(0xF645),(0xF646),(0xF647), +(0xF648),(0xF649),(0xF64A),(0xF64B),(0xF64C),(0xF64D),(0xF64E),(0xF64F), +(0xF650),(0xF651),(0xF652),(0xF653),(0xF654),(0xF655),(0xF656),(0xF657), +(0xF658),(0xF659),(0xF65A),(0xF65B),(0xF65C),(0xF65D),(0xF65E),(0xF65F), +(0xF660),(0xF661),(0xF662),(0xF663),(0xF664),(0xF665),(0xF666),(0xF667), +(0xF668),(0xF669),(0xF66A),(0xF66B),(0xF66C),(0xF66D),(0xF66E),(0xF66F), +(0xF670),(0xF671),(0xF672),(0xF673),(0xF674),(0xF675),(0xF676),(0xF677), +(0xF678),(0xF679),(0xF67A),(0xF67B),(0xF67C),(0xF67D),(0xF67E), +(0xF680),(0xF681),(0xF682),(0xF683),(0xF684),(0xF685),(0xF686),(0xF687), +(0xF688),(0xF689),(0xF68A),(0xF68B),(0xF68C),(0xF68D),(0xF68E),(0xF68F), +(0xF690),(0xF691),(0xF692),(0xF693),(0xF694),(0xF695),(0xF696),(0xF697), +(0xF698),(0xF699),(0xF69A),(0xF69B),(0xF69C),(0xF69D),(0xF69E),(0xF69F), +(0xF6A0),(0xF6A1),(0xF6A2),(0xF6A3),(0xF6A4),(0xF6A5),(0xF6A6),(0xF6A7), +(0xF6A8),(0xF6A9),(0xF6AA),(0xF6AB),(0xF6AC),(0xF6AD),(0xF6AE),(0xF6AF), +(0xF6B0),(0xF6B1),(0xF6B2),(0xF6B3),(0xF6B4),(0xF6B5),(0xF6B6),(0xF6B7), +(0xF6B8),(0xF6B9),(0xF6BA),(0xF6BB),(0xF6BC),(0xF6BD),(0xF6BE),(0xF6BF), +(0xF6C0),(0xF6C1),(0xF6C2),(0xF6C3),(0xF6C4),(0xF6C5),(0xF6C6),(0xF6C7), +(0xF6C8),(0xF6C9),(0xF6CA),(0xF6CB),(0xF6CC),(0xF6CD),(0xF6CE),(0xF6CF), +(0xF6D0),(0xF6D1),(0xF6D2),(0xF6D3),(0xF6D4),(0xF6D5),(0xF6D6),(0xF6D7), +(0xF6D8),(0xF6D9),(0xF6DA),(0xF6DB),(0xF6DC),(0xF6DD),(0xF6DE),(0xF6DF), +(0xF6E0),(0xF6E1),(0xF6E2),(0xF6E3),(0xF6E4),(0xF6E5),(0xF6E6),(0xF6E7), +(0xF6E8),(0xF6E9),(0xF6EA),(0xF6EB),(0xF6EC),(0xF6ED),(0xF6EE),(0xF6EF), +(0xF6F0),(0xF6F1),(0xF6F2),(0xF6F3),(0xF6F4),(0xF6F5),(0xF6F6),(0xF6F7), +(0xF6F8),(0xF6F9),(0xF6FA),(0xF6FB),(0xF6FC), +(0xF740),(0xF741),(0xF742),(0xF743),(0xF744),(0xF745),(0xF746),(0xF747), +(0xF748),(0xF749),(0xF74A),(0xF74B),(0xF74C),(0xF74D),(0xF74E),(0xF74F), +(0xF750),(0xF751),(0xF752),(0xF753),(0xF754),(0xF755),(0xF756),(0xF757), +(0xF758),(0xF759),(0xF75A),(0xF75B),(0xF75C),(0xF75D),(0xF75E),(0xF75F), +(0xF760),(0xF761),(0xF762),(0xF763),(0xF764),(0xF765),(0xF766),(0xF767), +(0xF768),(0xF769),(0xF76A),(0xF76B),(0xF76C),(0xF76D),(0xF76E),(0xF76F), +(0xF770),(0xF771),(0xF772),(0xF773),(0xF774),(0xF775),(0xF776),(0xF777), +(0xF778),(0xF779),(0xF77A),(0xF77B),(0xF77C),(0xF77D),(0xF77E), +(0xF780),(0xF781),(0xF782),(0xF783),(0xF784),(0xF785),(0xF786),(0xF787), +(0xF788),(0xF789),(0xF78A),(0xF78B),(0xF78C),(0xF78D),(0xF78E),(0xF78F), +(0xF790),(0xF791),(0xF792),(0xF793),(0xF794),(0xF795),(0xF796),(0xF797), +(0xF798),(0xF799),(0xF79A),(0xF79B),(0xF79C),(0xF79D),(0xF79E),(0xF79F), +(0xF7A0),(0xF7A1),(0xF7A2),(0xF7A3),(0xF7A4),(0xF7A5),(0xF7A6),(0xF7A7), +(0xF7A8),(0xF7A9),(0xF7AA),(0xF7AB),(0xF7AC),(0xF7AD),(0xF7AE),(0xF7AF), +(0xF7B0),(0xF7B1),(0xF7B2),(0xF7B3),(0xF7B4),(0xF7B5),(0xF7B6),(0xF7B7), +(0xF7B8),(0xF7B9),(0xF7BA),(0xF7BB),(0xF7BC),(0xF7BD),(0xF7BE),(0xF7BF), +(0xF7C0),(0xF7C1),(0xF7C2),(0xF7C3),(0xF7C4),(0xF7C5),(0xF7C6),(0xF7C7), +(0xF7C8),(0xF7C9),(0xF7CA),(0xF7CB),(0xF7CC),(0xF7CD),(0xF7CE),(0xF7CF), +(0xF7D0),(0xF7D1),(0xF7D2),(0xF7D3),(0xF7D4),(0xF7D5),(0xF7D6),(0xF7D7), +(0xF7D8),(0xF7D9),(0xF7DA),(0xF7DB),(0xF7DC),(0xF7DD),(0xF7DE),(0xF7DF), +(0xF7E0),(0xF7E1),(0xF7E2),(0xF7E3),(0xF7E4),(0xF7E5),(0xF7E6),(0xF7E7), +(0xF7E8),(0xF7E9),(0xF7EA),(0xF7EB),(0xF7EC),(0xF7ED),(0xF7EE),(0xF7EF), +(0xF7F0),(0xF7F1),(0xF7F2),(0xF7F3),(0xF7F4),(0xF7F5),(0xF7F6),(0xF7F7), +(0xF7F8),(0xF7F9),(0xF7FA),(0xF7FB),(0xF7FC), +(0xF840),(0xF841),(0xF842),(0xF843),(0xF844),(0xF845),(0xF846),(0xF847), +(0xF848),(0xF849),(0xF84A),(0xF84B),(0xF84C),(0xF84D),(0xF84E),(0xF84F), +(0xF850),(0xF851),(0xF852),(0xF853),(0xF854),(0xF855),(0xF856),(0xF857), +(0xF858),(0xF859),(0xF85A),(0xF85B),(0xF85C),(0xF85D),(0xF85E),(0xF85F), +(0xF860),(0xF861),(0xF862),(0xF863),(0xF864),(0xF865),(0xF866),(0xF867), +(0xF868),(0xF869),(0xF86A),(0xF86B),(0xF86C),(0xF86D),(0xF86E),(0xF86F), +(0xF870),(0xF871),(0xF872),(0xF873),(0xF874),(0xF875),(0xF876),(0xF877), +(0xF878),(0xF879),(0xF87A),(0xF87B),(0xF87C),(0xF87D),(0xF87E), +(0xF880),(0xF881),(0xF882),(0xF883),(0xF884),(0xF885),(0xF886),(0xF887), +(0xF888),(0xF889),(0xF88A),(0xF88B),(0xF88C),(0xF88D),(0xF88E),(0xF88F), +(0xF890),(0xF891),(0xF892),(0xF893),(0xF894),(0xF895),(0xF896),(0xF897), +(0xF898),(0xF899),(0xF89A),(0xF89B),(0xF89C),(0xF89D),(0xF89E),(0xF89F), +(0xF8A0),(0xF8A1),(0xF8A2),(0xF8A3),(0xF8A4),(0xF8A5),(0xF8A6),(0xF8A7), +(0xF8A8),(0xF8A9),(0xF8AA),(0xF8AB),(0xF8AC),(0xF8AD),(0xF8AE),(0xF8AF), +(0xF8B0),(0xF8B1),(0xF8B2),(0xF8B3),(0xF8B4),(0xF8B5),(0xF8B6),(0xF8B7), +(0xF8B8),(0xF8B9),(0xF8BA),(0xF8BB),(0xF8BC),(0xF8BD),(0xF8BE),(0xF8BF), +(0xF8C0),(0xF8C1),(0xF8C2),(0xF8C3),(0xF8C4),(0xF8C5),(0xF8C6),(0xF8C7), +(0xF8C8),(0xF8C9),(0xF8CA),(0xF8CB),(0xF8CC),(0xF8CD),(0xF8CE),(0xF8CF), +(0xF8D0),(0xF8D1),(0xF8D2),(0xF8D3),(0xF8D4),(0xF8D5),(0xF8D6),(0xF8D7), +(0xF8D8),(0xF8D9),(0xF8DA),(0xF8DB),(0xF8DC),(0xF8DD),(0xF8DE),(0xF8DF), +(0xF8E0),(0xF8E1),(0xF8E2),(0xF8E3),(0xF8E4),(0xF8E5),(0xF8E6),(0xF8E7), +(0xF8E8),(0xF8E9),(0xF8EA),(0xF8EB),(0xF8EC),(0xF8ED),(0xF8EE),(0xF8EF), +(0xF8F0),(0xF8F1),(0xF8F2),(0xF8F3),(0xF8F4),(0xF8F5),(0xF8F6),(0xF8F7), +(0xF8F8),(0xF8F9),(0xF8FA),(0xF8FB),(0xF8FC), +(0xF940),(0xF941),(0xF942),(0xF943),(0xF944),(0xF945),(0xF946),(0xF947), +(0xF948),(0xF949),(0xF94A),(0xF94B),(0xF94C),(0xF94D),(0xF94E),(0xF94F), +(0xF950),(0xF951),(0xF952),(0xF953),(0xF954),(0xF955),(0xF956),(0xF957), +(0xF958),(0xF959),(0xF95A),(0xF95B),(0xF95C),(0xF95D),(0xF95E),(0xF95F), +(0xF960),(0xF961),(0xF962),(0xF963),(0xF964),(0xF965),(0xF966),(0xF967), +(0xF968),(0xF969),(0xF96A),(0xF96B),(0xF96C),(0xF96D),(0xF96E),(0xF96F), +(0xF970),(0xF971),(0xF972),(0xF973),(0xF974),(0xF975),(0xF976),(0xF977), +(0xF978),(0xF979),(0xF97A),(0xF97B),(0xF97C),(0xF97D),(0xF97E), +(0xF980),(0xF981),(0xF982),(0xF983),(0xF984),(0xF985),(0xF986),(0xF987), +(0xF988),(0xF989),(0xF98A),(0xF98B),(0xF98C),(0xF98D),(0xF98E),(0xF98F), +(0xF990),(0xF991),(0xF992),(0xF993),(0xF994),(0xF995),(0xF996),(0xF997), +(0xF998),(0xF999),(0xF99A),(0xF99B),(0xF99C),(0xF99D),(0xF99E),(0xF99F), +(0xF9A0),(0xF9A1),(0xF9A2),(0xF9A3),(0xF9A4),(0xF9A5),(0xF9A6),(0xF9A7), +(0xF9A8),(0xF9A9),(0xF9AA),(0xF9AB),(0xF9AC),(0xF9AD),(0xF9AE),(0xF9AF), +(0xF9B0),(0xF9B1),(0xF9B2),(0xF9B3),(0xF9B4),(0xF9B5),(0xF9B6),(0xF9B7), +(0xF9B8),(0xF9B9),(0xF9BA),(0xF9BB),(0xF9BC),(0xF9BD),(0xF9BE),(0xF9BF), +(0xF9C0),(0xF9C1),(0xF9C2),(0xF9C3),(0xF9C4),(0xF9C5),(0xF9C6),(0xF9C7), +(0xF9C8),(0xF9C9),(0xF9CA),(0xF9CB),(0xF9CC),(0xF9CD),(0xF9CE),(0xF9CF), +(0xF9D0),(0xF9D1),(0xF9D2),(0xF9D3),(0xF9D4),(0xF9D5),(0xF9D6),(0xF9D7), +(0xF9D8),(0xF9D9),(0xF9DA),(0xF9DB),(0xF9DC),(0xF9DD),(0xF9DE),(0xF9DF), +(0xF9E0),(0xF9E1),(0xF9E2),(0xF9E3),(0xF9E4),(0xF9E5),(0xF9E6),(0xF9E7), +(0xF9E8),(0xF9E9),(0xF9EA),(0xF9EB),(0xF9EC),(0xF9ED),(0xF9EE),(0xF9EF), +(0xF9F0),(0xF9F1),(0xF9F2),(0xF9F3),(0xF9F4),(0xF9F5),(0xF9F6),(0xF9F7), +(0xF9F8),(0xF9F9),(0xF9FA),(0xF9FB),(0xF9FC); +SELECT HEX(c1) FROM t1; +HEX(c1) +05 +7E +815C +815F +8160 +8161 +817C +8191 +8192 +81CA +8740 +8741 +8742 +8743 +8744 +8745 +8746 +8747 +8748 +8749 +874A +874B +874C +874D +874E +874F +8750 +8751 +8752 +8753 +8754 +8755 +8756 +8757 +8758 +8759 +875A +875B +875C +875D +875F +8760 +8761 +8762 +8763 +8764 +8765 +8766 +8767 +8768 +8769 +876A +876B +876C +876D +876E +876F +8770 +8771 +8772 +8773 +8774 +8775 +877E +8780 +8781 +8782 +8783 +8784 +8785 +8786 +8787 +8788 +8789 +878A +878B +878C +878D +878E +878F +8790 +8791 +8792 +8793 +8794 +8795 +8796 +8797 +8798 +8799 +879A +879B +879C +ED40 +ED41 +ED42 +ED43 +ED44 +ED45 +ED46 +ED47 +ED48 +ED49 +ED4A +ED4B +ED4C +ED4D +ED4E +ED4F +ED50 +ED51 +ED52 +ED53 +ED54 +ED55 +ED56 +ED57 +ED58 +ED59 +ED5A +ED5B +ED5C +ED5D +ED5E +ED5F +ED60 +ED61 +ED62 +ED63 +ED64 +ED65 +ED66 +ED67 +ED68 +ED69 +ED6A +ED6B +ED6C +ED6D +ED6E +ED6F +ED70 +ED71 +ED72 +ED73 +ED74 +ED75 +ED76 +ED77 +ED78 +ED79 +ED7A +ED7B +ED7C +ED7D +ED7E +ED80 +ED81 +ED82 +ED83 +ED84 +ED85 +ED86 +ED87 +ED88 +ED89 +ED8A +ED8B +ED8C +ED8D +ED8E +ED8F +ED90 +ED91 +ED92 +ED93 +ED94 +ED95 +ED96 +ED97 +ED98 +ED99 +ED9A +ED9B +ED9C +ED9D +ED9E +ED9F +EDA0 +EDA1 +EDA2 +EDA3 +EDA4 +EDA5 +EDA6 +EDA7 +EDA8 +EDA9 +EDAA +EDAB +EDAC +EDAD +EDAE +EDAF +EDB0 +EDB1 +EDB2 +EDB3 +EDB4 +EDB5 +EDB6 +EDB7 +EDB8 +EDB9 +EDBA +EDBB +EDBC +EDBD +EDBE +EDBF +EDC0 +EDC1 +EDC2 +EDC3 +EDC4 +EDC5 +EDC6 +EDC7 +EDC8 +EDC9 +EDCA +EDCB +EDCC +EDCD +EDCE +EDCF +EDD0 +EDD1 +EDD2 +EDD3 +EDD4 +EDD5 +EDD6 +EDD7 +EDD8 +EDD9 +EDDA +EDDB +EDDC +EDDD +EDDE +EDDF +EDE0 +EDE1 +EDE2 +EDE3 +EDE4 +EDE5 +EDE6 +EDE7 +EDE8 +EDE9 +EDEA +EDEB +EDEC +EDED +EDEE +EDEF +EDF0 +EDF1 +EDF2 +EDF3 +EDF4 +EDF5 +EDF6 +EDF7 +EDF8 +EDF9 +EDFA +EDFB +EDFC +EE40 +EE41 +EE42 +EE43 +EE44 +EE45 +EE46 +EE47 +EE48 +EE49 +EE4A +EE4B +EE4C +EE4D +EE4E +EE4F +EE50 +EE51 +EE52 +EE53 +EE54 +EE55 +EE56 +EE57 +EE58 +EE59 +EE5A +EE5B +EE5C +EE5D +EE5E +EE5F +EE60 +EE61 +EE62 +EE63 +EE64 +EE65 +EE66 +EE67 +EE68 +EE69 +EE6A +EE6B +EE6C +EE6D +EE6E +EE6F +EE70 +EE71 +EE72 +EE73 +EE74 +EE75 +EE76 +EE77 +EE78 +EE79 +EE7A +EE7B +EE7C +EE7D +EE7E +EE80 +EE81 +EE82 +EE83 +EE84 +EE85 +EE86 +EE87 +EE88 +EE89 +EE8A +EE8B +EE8C +EE8D +EE8E +EE8F +EE90 +EE91 +EE92 +EE93 +EE94 +EE95 +EE96 +EE97 +EE98 +EE99 +EE9A +EE9B +EE9C +EE9D +EE9E +EE9F +EEA0 +EEA1 +EEA2 +EEA3 +EEA4 +EEA5 +EEA6 +EEA7 +EEA8 +EEA9 +EEAA +EEAB +EEAC +EEAD +EEAE +EEAF +EEB0 +EEB1 +EEB2 +EEB3 +EEB4 +EEB5 +EEB6 +EEB7 +EEB8 +EEB9 +EEBA +EEBB +EEBC +EEBD +EEBE +EEBF +EEC0 +EEC1 +EEC2 +EEC3 +EEC4 +EEC5 +EEC6 +EEC7 +EEC8 +EEC9 +EECA +EECB +EECC +EECD +EECE +EECF +EED0 +EED1 +EED2 +EED3 +EED4 +EED5 +EED6 +EED7 +EED8 +EED9 +EEDA +EEDB +EEDC +EEDD +EEDE +EEDF +EEE0 +EEE1 +EEE2 +EEE3 +EEE4 +EEE5 +EEE6 +EEE7 +EEE8 +EEE9 +EEEA +EEEB +EEEC +EEEF +EEF0 +EEF1 +EEF2 +EEF3 +EEF4 +EEF5 +EEF6 +EEF7 +EEF8 +EEF9 +EEFA +EEFB +EEFC +FA40 +FA41 +FA42 +FA43 +FA44 +FA45 +FA46 +FA47 +FA48 +FA49 +FA4A +FA4B +FA4C +FA4D +FA4E +FA4F +FA50 +FA51 +FA52 +FA53 +FA54 +FA55 +FA56 +FA57 +FA58 +FA59 +FA5A +FA5B +FA5C +FA5D +FA5E +FA5F +FA60 +FA61 +FA62 +FA63 +FA64 +FA65 +FA66 +FA67 +FA68 +FA69 +FA6A +FA6B +FA6C +FA6D +FA6E +FA6F +FA70 +FA71 +FA72 +FA73 +FA74 +FA75 +FA76 +FA77 +FA78 +FA79 +FA7A +FA7B +FA7C +FA7D +FA7E +FA80 +FA81 +FA82 +FA83 +FA84 +FA85 +FA86 +FA87 +FA88 +FA89 +FA8A +FA8B +FA8C +FA8D +FA8E +FA8F +FA90 +FA91 +FA92 +FA93 +FA94 +FA95 +FA96 +FA97 +FA98 +FA99 +FA9A +FA9B +FA9C +FA9D +FA9E +FA9F +FAA0 +FAA1 +FAA2 +FAA3 +FAA4 +FAA5 +FAA6 +FAA7 +FAA8 +FAA9 +FAAA +FAAB +FAAC +FAAD +FAAE +FAAF +FAB0 +FAB1 +FAB2 +FAB3 +FAB4 +FAB5 +FAB6 +FAB7 +FAB8 +FAB9 +FABA +FABB +FABC +FABD +FABE +FABF +FAC0 +FAC1 +FAC2 +FAC3 +FAC4 +FAC5 +FAC6 +FAC7 +FAC8 +FAC9 +FACA +FACB +FACC +FACD +FACE +FACF +FAD0 +FAD1 +FAD2 +FAD3 +FAD4 +FAD5 +FAD6 +FAD7 +FAD8 +FAD9 +FADA +FADB +FADC +FADD +FADE +FADF +FAE0 +FAE1 +FAE2 +FAE3 +FAE4 +FAE5 +FAE6 +FAE7 +FAE8 +FAE9 +FAEA +FAEB +FAEC +FAED +FAEE +FAEF +FAF0 +FAF1 +FAF2 +FAF3 +FAF4 +FAF5 +FAF6 +FAF7 +FAF8 +FAF9 +FAFA +FAFB +FAFC +FB40 +FB41 +FB42 +FB43 +FB44 +FB45 +FB46 +FB47 +FB48 +FB49 +FB4A +FB4B +FB4C +FB4D +FB4E +FB4F +FB50 +FB51 +FB52 +FB53 +FB54 +FB55 +FB56 +FB57 +FB58 +FB59 +FB5A +FB5B +FB5C +FB5D +FB5E +FB5F +FB60 +FB61 +FB62 +FB63 +FB64 +FB65 +FB66 +FB67 +FB68 +FB69 +FB6A +FB6B +FB6C +FB6D +FB6E +FB6F +FB70 +FB71 +FB72 +FB73 +FB74 +FB75 +FB76 +FB77 +FB78 +FB79 +FB7A +FB7B +FB7C +FB7D +FB7E +FB80 +FB81 +FB82 +FB83 +FB84 +FB85 +FB86 +FB87 +FB88 +FB89 +FB8A +FB8B +FB8C +FB8D +FB8E +FB8F +FB90 +FB91 +FB92 +FB93 +FB94 +FB95 +FB96 +FB97 +FB98 +FB99 +FB9A +FB9B +FB9C +FB9D +FB9E +FB9F +FBA0 +FBA1 +FBA2 +FBA3 +FBA4 +FBA5 +FBA6 +FBA7 +FBA8 +FBA9 +FBAA +FBAB +FBAC +FBAD +FBAE +FBAF +FBB0 +FBB1 +FBB2 +FBB3 +FBB4 +FBB5 +FBB6 +FBB7 +FBB8 +FBB9 +FBBA +FBBB +FBBC +FBBD +FBBE +FBBF +FBC0 +FBC1 +FBC2 +FBC3 +FBC4 +FBC5 +FBC6 +FBC7 +FBC8 +FBC9 +FBCA +FBCB +FBCC +FBCD +FBCE +FBCF +FBD0 +FBD1 +FBD2 +FBD3 +FBD4 +FBD5 +FBD6 +FBD7 +FBD8 +FBD9 +FBDA +FBDB +FBDC +FBDD +FBDE +FBDF +FBE0 +FBE1 +FBE2 +FBE3 +FBE4 +FBE5 +FBE6 +FBE7 +FBE8 +FBE9 +FBEA +FBEB +FBEC +FBED +FBEE +FBEF +FBF0 +FBF1 +FBF2 +FBF3 +FBF4 +FBF5 +FBF6 +FBF7 +FBF8 +FBF9 +FBFA +FBFB +FBFC +FC40 +FC41 +FC42 +FC43 +FC44 +FC45 +FC46 +FC47 +FC48 +FC49 +FC4A +FC4B +F040 +F041 +F042 +F043 +F044 +F045 +F046 +F047 +F048 +F049 +F04A +F04B +F04C +F04D +F04E +F04F +F050 +F051 +F052 +F053 +F054 +F055 +F056 +F057 +F058 +F059 +F05A +F05B +F05C +F05D +F05E +F05F +F060 +F061 +F062 +F063 +F064 +F065 +F066 +F067 +F068 +F069 +F06A +F06B +F06C +F06D +F06E +F06F +F070 +F071 +F072 +F073 +F074 +F075 +F076 +F077 +F078 +F079 +F07A +F07B +F07C +F07D +F07E +F080 +F081 +F082 +F083 +F084 +F085 +F086 +F087 +F088 +F089 +F08A +F08B +F08C +F08D +F08E +F08F +F090 +F091 +F092 +F093 +F094 +F095 +F096 +F097 +F098 +F099 +F09A +F09B +F09C +F09D +F09E +F09F +F0A0 +F0A1 +F0A2 +F0A3 +F0A4 +F0A5 +F0A6 +F0A7 +F0A8 +F0A9 +F0AA +F0AB +F0AC +F0AD +F0AE +F0AF +F0B0 +F0B1 +F0B2 +F0B3 +F0B4 +F0B5 +F0B6 +F0B7 +F0B8 +F0B9 +F0BA +F0BB +F0BC +F0BD +F0BE +F0BF +F0C0 +F0C1 +F0C2 +F0C3 +F0C4 +F0C5 +F0C6 +F0C7 +F0C8 +F0C9 +F0CA +F0CB +F0CC +F0CD +F0CE +F0CF +F0D0 +F0D1 +F0D2 +F0D3 +F0D4 +F0D5 +F0D6 +F0D7 +F0D8 +F0D9 +F0DA +F0DB +F0DC +F0DD +F0DE +F0DF +F0E0 +F0E1 +F0E2 +F0E3 +F0E4 +F0E5 +F0E6 +F0E7 +F0E8 +F0E9 +F0EA +F0EB +F0EC +F0ED +F0EE +F0EF +F0F0 +F0F1 +F0F2 +F0F3 +F0F4 +F0F5 +F0F6 +F0F7 +F0F8 +F0F9 +F0FA +F0FB +F0FC +F140 +F141 +F142 +F143 +F144 +F145 +F146 +F147 +F148 +F149 +F14A +F14B +F14C +F14D +F14E +F14F +F150 +F151 +F152 +F153 +F154 +F155 +F156 +F157 +F158 +F159 +F15A +F15B +F15C +F15D +F15E +F15F +F160 +F161 +F162 +F163 +F164 +F165 +F166 +F167 +F168 +F169 +F16A +F16B +F16C +F16D +F16E +F16F +F170 +F171 +F172 +F173 +F174 +F175 +F176 +F177 +F178 +F179 +F17A +F17B +F17C +F17D +F17E +F180 +F181 +F182 +F183 +F184 +F185 +F186 +F187 +F188 +F189 +F18A +F18B +F18C +F18D +F18E +F18F +F190 +F191 +F192 +F193 +F194 +F195 +F196 +F197 +F198 +F199 +F19A +F19B +F19C +F19D +F19E +F19F +F1A0 +F1A1 +F1A2 +F1A3 +F1A4 +F1A5 +F1A6 +F1A7 +F1A8 +F1A9 +F1AA +F1AB +F1AC +F1AD +F1AE +F1AF +F1B0 +F1B1 +F1B2 +F1B3 +F1B4 +F1B5 +F1B6 +F1B7 +F1B8 +F1B9 +F1BA +F1BB +F1BC +F1BD +F1BE +F1BF +F1C0 +F1C1 +F1C2 +F1C3 +F1C4 +F1C5 +F1C6 +F1C7 +F1C8 +F1C9 +F1CA +F1CB +F1CC +F1CD +F1CE +F1CF +F1D0 +F1D1 +F1D2 +F1D3 +F1D4 +F1D5 +F1D6 +F1D7 +F1D8 +F1D9 +F1DA +F1DB +F1DC +F1DD +F1DE +F1DF +F1E0 +F1E1 +F1E2 +F1E3 +F1E4 +F1E5 +F1E6 +F1E7 +F1E8 +F1E9 +F1EA +F1EB +F1EC +F1ED +F1EE +F1EF +F1F0 +F1F1 +F1F2 +F1F3 +F1F4 +F1F5 +F1F6 +F1F7 +F1F8 +F1F9 +F1FA +F1FB +F1FC +F240 +F241 +F242 +F243 +F244 +F245 +F246 +F247 +F248 +F249 +F24A +F24B +F24C +F24D +F24E +F24F +F250 +F251 +F252 +F253 +F254 +F255 +F256 +F257 +F258 +F259 +F25A +F25B +F25C +F25D +F25E +F25F +F260 +F261 +F262 +F263 +F264 +F265 +F266 +F267 +F268 +F269 +F26A +F26B +F26C +F26D +F26E +F26F +F270 +F271 +F272 +F273 +F274 +F275 +F276 +F277 +F278 +F279 +F27A +F27B +F27C +F27D +F27E +F280 +F281 +F282 +F283 +F284 +F285 +F286 +F287 +F288 +F289 +F28A +F28B +F28C +F28D +F28E +F28F +F290 +F291 +F292 +F293 +F294 +F295 +F296 +F297 +F298 +F299 +F29A +F29B +F29C +F29D +F29E +F29F +F2A0 +F2A1 +F2A2 +F2A3 +F2A4 +F2A5 +F2A6 +F2A7 +F2A8 +F2A9 +F2AA +F2AB +F2AC +F2AD +F2AE +F2AF +F2B0 +F2B1 +F2B2 +F2B3 +F2B4 +F2B5 +F2B6 +F2B7 +F2B8 +F2B9 +F2BA +F2BB +F2BC +F2BD +F2BE +F2BF +F2C0 +F2C1 +F2C2 +F2C3 +F2C4 +F2C5 +F2C6 +F2C7 +F2C8 +F2C9 +F2CA +F2CB +F2CC +F2CD +F2CE +F2CF +F2D0 +F2D1 +F2D2 +F2D3 +F2D4 +F2D5 +F2D6 +F2D7 +F2D8 +F2D9 +F2DA +F2DB +F2DC +F2DD +F2DE +F2DF +F2E0 +F2E1 +F2E2 +F2E3 +F2E4 +F2E5 +F2E6 +F2E7 +F2E8 +F2E9 +F2EA +F2EB +F2EC +F2ED +F2EE +F2EF +F2F0 +F2F1 +F2F2 +F2F3 +F2F4 +F2F5 +F2F6 +F2F7 +F2F8 +F2F9 +F2FA +F2FB +F2FC +F340 +F341 +F342 +F343 +F344 +F345 +F346 +F347 +F348 +F349 +F34A +F34B +F34C +F34D +F34E +F34F +F350 +F351 +F352 +F353 +F354 +F355 +F356 +F357 +F358 +F359 +F35A +F35B +F35C +F35D +F35E +F35F +F360 +F361 +F362 +F363 +F364 +F365 +F366 +F367 +F368 +F369 +F36A +F36B +F36C +F36D +F36E +F36F +F370 +F371 +F372 +F373 +F374 +F375 +F376 +F377 +F378 +F379 +F37A +F37B +F37C +F37D +F37E +F380 +F381 +F382 +F383 +F384 +F385 +F386 +F387 +F388 +F389 +F38A +F38B +F38C +F38D +F38E +F38F +F390 +F391 +F392 +F393 +F394 +F395 +F396 +F397 +F398 +F399 +F39A +F39B +F39C +F39D +F39E +F39F +F3A0 +F3A1 +F3A2 +F3A3 +F3A4 +F3A5 +F3A6 +F3A7 +F3A8 +F3A9 +F3AA +F3AB +F3AC +F3AD +F3AE +F3AF +F3B0 +F3B1 +F3B2 +F3B3 +F3B4 +F3B5 +F3B6 +F3B7 +F3B8 +F3B9 +F3BA +F3BB +F3BC +F3BD +F3BE +F3BF +F3C0 +F3C1 +F3C2 +F3C3 +F3C4 +F3C5 +F3C6 +F3C7 +F3C8 +F3C9 +F3CA +F3CB +F3CC +F3CD +F3CE +F3CF +F3D0 +F3D1 +F3D2 +F3D3 +F3D4 +F3D5 +F3D6 +F3D7 +F3D8 +F3D9 +F3DA +F3DB +F3DC +F3DD +F3DE +F3DF +F3E0 +F3E1 +F3E2 +F3E3 +F3E4 +F3E5 +F3E6 +F3E7 +F3E8 +F3E9 +F3EA +F3EB +F3EC +F3ED +F3EE +F3EF +F3F0 +F3F1 +F3F2 +F3F3 +F3F4 +F3F5 +F3F6 +F3F7 +F3F8 +F3F9 +F3FA +F3FB +F3FC +F440 +F441 +F442 +F443 +F444 +F445 +F446 +F447 +F448 +F449 +F44A +F44B +F44C +F44D +F44E +F44F +F450 +F451 +F452 +F453 +F454 +F455 +F456 +F457 +F458 +F459 +F45A +F45B +F45C +F45D +F45E +F45F +F460 +F461 +F462 +F463 +F464 +F465 +F466 +F467 +F468 +F469 +F46A +F46B +F46C +F46D +F46E +F46F +F470 +F471 +F472 +F473 +F474 +F475 +F476 +F477 +F478 +F479 +F47A +F47B +F47C +F47D +F47E +F480 +F481 +F482 +F483 +F484 +F485 +F486 +F487 +F488 +F489 +F48A +F48B +F48C +F48D +F48E +F48F +F490 +F491 +F492 +F493 +F494 +F495 +F496 +F497 +F498 +F499 +F49A +F49B +F49C +F49D +F49E +F49F +F4A0 +F4A1 +F4A2 +F4A3 +F4A4 +F4A5 +F4A6 +F4A7 +F4A8 +F4A9 +F4AA +F4AB +F4AC +F4AD +F4AE +F4AF +F4B0 +F4B1 +F4B2 +F4B3 +F4B4 +F4B5 +F4B6 +F4B7 +F4B8 +F4B9 +F4BA +F4BB +F4BC +F4BD +F4BE +F4BF +F4C0 +F4C1 +F4C2 +F4C3 +F4C4 +F4C5 +F4C6 +F4C7 +F4C8 +F4C9 +F4CA +F4CB +F4CC +F4CD +F4CE +F4CF +F4D0 +F4D1 +F4D2 +F4D3 +F4D4 +F4D5 +F4D6 +F4D7 +F4D8 +F4D9 +F4DA +F4DB +F4DC +F4DD +F4DE +F4DF +F4E0 +F4E1 +F4E2 +F4E3 +F4E4 +F4E5 +F4E6 +F4E7 +F4E8 +F4E9 +F4EA +F4EB +F4EC +F4ED +F4EE +F4EF +F4F0 +F4F1 +F4F2 +F4F3 +F4F4 +F4F5 +F4F6 +F4F7 +F4F8 +F4F9 +F4FA +F4FB +F4FC +F540 +F541 +F542 +F543 +F544 +F545 +F546 +F547 +F548 +F549 +F54A +F54B +F54C +F54D +F54E +F54F +F550 +F551 +F552 +F553 +F554 +F555 +F556 +F557 +F558 +F559 +F55A +F55B +F55C +F55D +F55E +F55F +F560 +F561 +F562 +F563 +F564 +F565 +F566 +F567 +F568 +F569 +F56A +F56B +F56C +F56D +F56E +F56F +F570 +F571 +F572 +F573 +F574 +F575 +F576 +F577 +F578 +F579 +F57A +F57B +F57C +F57D +F57E +F580 +F581 +F582 +F583 +F584 +F585 +F586 +F587 +F588 +F589 +F58A +F58B +F58C +F58D +F58E +F58F +F590 +F591 +F592 +F593 +F594 +F595 +F596 +F597 +F598 +F599 +F59A +F59B +F59C +F59D +F59E +F59F +F5A0 +F5A1 +F5A2 +F5A3 +F5A4 +F5A5 +F5A6 +F5A7 +F5A8 +F5A9 +F5AA +F5AB +F5AC +F5AD +F5AE +F5AF +F5B0 +F5B1 +F5B2 +F5B3 +F5B4 +F5B5 +F5B6 +F5B7 +F5B8 +F5B9 +F5BA +F5BB +F5BC +F5BD +F5BE +F5BF +F5C0 +F5C1 +F5C2 +F5C3 +F5C4 +F5C5 +F5C6 +F5C7 +F5C8 +F5C9 +F5CA +F5CB +F5CC +F5CD +F5CE +F5CF +F5D0 +F5D1 +F5D2 +F5D3 +F5D4 +F5D5 +F5D6 +F5D7 +F5D8 +F5D9 +F5DA +F5DB +F5DC +F5DD +F5DE +F5DF +F5E0 +F5E1 +F5E2 +F5E3 +F5E4 +F5E5 +F5E6 +F5E7 +F5E8 +F5E9 +F5EA +F5EB +F5EC +F5ED +F5EE +F5EF +F5F0 +F5F1 +F5F2 +F5F3 +F5F4 +F5F5 +F5F6 +F5F7 +F5F8 +F5F9 +F5FA +F5FB +F5FC +F640 +F641 +F642 +F643 +F644 +F645 +F646 +F647 +F648 +F649 +F64A +F64B +F64C +F64D +F64E +F64F +F650 +F651 +F652 +F653 +F654 +F655 +F656 +F657 +F658 +F659 +F65A +F65B +F65C +F65D +F65E +F65F +F660 +F661 +F662 +F663 +F664 +F665 +F666 +F667 +F668 +F669 +F66A +F66B +F66C +F66D +F66E +F66F +F670 +F671 +F672 +F673 +F674 +F675 +F676 +F677 +F678 +F679 +F67A +F67B +F67C +F67D +F67E +F680 +F681 +F682 +F683 +F684 +F685 +F686 +F687 +F688 +F689 +F68A +F68B +F68C +F68D +F68E +F68F +F690 +F691 +F692 +F693 +F694 +F695 +F696 +F697 +F698 +F699 +F69A +F69B +F69C +F69D +F69E +F69F +F6A0 +F6A1 +F6A2 +F6A3 +F6A4 +F6A5 +F6A6 +F6A7 +F6A8 +F6A9 +F6AA +F6AB +F6AC +F6AD +F6AE +F6AF +F6B0 +F6B1 +F6B2 +F6B3 +F6B4 +F6B5 +F6B6 +F6B7 +F6B8 +F6B9 +F6BA +F6BB +F6BC +F6BD +F6BE +F6BF +F6C0 +F6C1 +F6C2 +F6C3 +F6C4 +F6C5 +F6C6 +F6C7 +F6C8 +F6C9 +F6CA +F6CB +F6CC +F6CD +F6CE +F6CF +F6D0 +F6D1 +F6D2 +F6D3 +F6D4 +F6D5 +F6D6 +F6D7 +F6D8 +F6D9 +F6DA +F6DB +F6DC +F6DD +F6DE +F6DF +F6E0 +F6E1 +F6E2 +F6E3 +F6E4 +F6E5 +F6E6 +F6E7 +F6E8 +F6E9 +F6EA +F6EB +F6EC +F6ED +F6EE +F6EF +F6F0 +F6F1 +F6F2 +F6F3 +F6F4 +F6F5 +F6F6 +F6F7 +F6F8 +F6F9 +F6FA +F6FB +F6FC +F740 +F741 +F742 +F743 +F744 +F745 +F746 +F747 +F748 +F749 +F74A +F74B +F74C +F74D +F74E +F74F +F750 +F751 +F752 +F753 +F754 +F755 +F756 +F757 +F758 +F759 +F75A +F75B +F75C +F75D +F75E +F75F +F760 +F761 +F762 +F763 +F764 +F765 +F766 +F767 +F768 +F769 +F76A +F76B +F76C +F76D +F76E +F76F +F770 +F771 +F772 +F773 +F774 +F775 +F776 +F777 +F778 +F779 +F77A +F77B +F77C +F77D +F77E +F780 +F781 +F782 +F783 +F784 +F785 +F786 +F787 +F788 +F789 +F78A +F78B +F78C +F78D +F78E +F78F +F790 +F791 +F792 +F793 +F794 +F795 +F796 +F797 +F798 +F799 +F79A +F79B +F79C +F79D +F79E +F79F +F7A0 +F7A1 +F7A2 +F7A3 +F7A4 +F7A5 +F7A6 +F7A7 +F7A8 +F7A9 +F7AA +F7AB +F7AC +F7AD +F7AE +F7AF +F7B0 +F7B1 +F7B2 +F7B3 +F7B4 +F7B5 +F7B6 +F7B7 +F7B8 +F7B9 +F7BA +F7BB +F7BC +F7BD +F7BE +F7BF +F7C0 +F7C1 +F7C2 +F7C3 +F7C4 +F7C5 +F7C6 +F7C7 +F7C8 +F7C9 +F7CA +F7CB +F7CC +F7CD +F7CE +F7CF +F7D0 +F7D1 +F7D2 +F7D3 +F7D4 +F7D5 +F7D6 +F7D7 +F7D8 +F7D9 +F7DA +F7DB +F7DC +F7DD +F7DE +F7DF +F7E0 +F7E1 +F7E2 +F7E3 +F7E4 +F7E5 +F7E6 +F7E7 +F7E8 +F7E9 +F7EA +F7EB +F7EC +F7ED +F7EE +F7EF +F7F0 +F7F1 +F7F2 +F7F3 +F7F4 +F7F5 +F7F6 +F7F7 +F7F8 +F7F9 +F7FA +F7FB +F7FC +F840 +F841 +F842 +F843 +F844 +F845 +F846 +F847 +F848 +F849 +F84A +F84B +F84C +F84D +F84E +F84F +F850 +F851 +F852 +F853 +F854 +F855 +F856 +F857 +F858 +F859 +F85A +F85B +F85C +F85D +F85E +F85F +F860 +F861 +F862 +F863 +F864 +F865 +F866 +F867 +F868 +F869 +F86A +F86B +F86C +F86D +F86E +F86F +F870 +F871 +F872 +F873 +F874 +F875 +F876 +F877 +F878 +F879 +F87A +F87B +F87C +F87D +F87E +F880 +F881 +F882 +F883 +F884 +F885 +F886 +F887 +F888 +F889 +F88A +F88B +F88C +F88D +F88E +F88F +F890 +F891 +F892 +F893 +F894 +F895 +F896 +F897 +F898 +F899 +F89A +F89B +F89C +F89D +F89E +F89F +F8A0 +F8A1 +F8A2 +F8A3 +F8A4 +F8A5 +F8A6 +F8A7 +F8A8 +F8A9 +F8AA +F8AB +F8AC +F8AD +F8AE +F8AF +F8B0 +F8B1 +F8B2 +F8B3 +F8B4 +F8B5 +F8B6 +F8B7 +F8B8 +F8B9 +F8BA +F8BB +F8BC +F8BD +F8BE +F8BF +F8C0 +F8C1 +F8C2 +F8C3 +F8C4 +F8C5 +F8C6 +F8C7 +F8C8 +F8C9 +F8CA +F8CB +F8CC +F8CD +F8CE +F8CF +F8D0 +F8D1 +F8D2 +F8D3 +F8D4 +F8D5 +F8D6 +F8D7 +F8D8 +F8D9 +F8DA +F8DB +F8DC +F8DD +F8DE +F8DF +F8E0 +F8E1 +F8E2 +F8E3 +F8E4 +F8E5 +F8E6 +F8E7 +F8E8 +F8E9 +F8EA +F8EB +F8EC +F8ED +F8EE +F8EF +F8F0 +F8F1 +F8F2 +F8F3 +F8F4 +F8F5 +F8F6 +F8F7 +F8F8 +F8F9 +F8FA +F8FB +F8FC +F940 +F941 +F942 +F943 +F944 +F945 +F946 +F947 +F948 +F949 +F94A +F94B +F94C +F94D +F94E +F94F +F950 +F951 +F952 +F953 +F954 +F955 +F956 +F957 +F958 +F959 +F95A +F95B +F95C +F95D +F95E +F95F +F960 +F961 +F962 +F963 +F964 +F965 +F966 +F967 +F968 +F969 +F96A +F96B +F96C +F96D +F96E +F96F +F970 +F971 +F972 +F973 +F974 +F975 +F976 +F977 +F978 +F979 +F97A +F97B +F97C +F97D +F97E +F980 +F981 +F982 +F983 +F984 +F985 +F986 +F987 +F988 +F989 +F98A +F98B +F98C +F98D +F98E +F98F +F990 +F991 +F992 +F993 +F994 +F995 +F996 +F997 +F998 +F999 +F99A +F99B +F99C +F99D +F99E +F99F +F9A0 +F9A1 +F9A2 +F9A3 +F9A4 +F9A5 +F9A6 +F9A7 +F9A8 +F9A9 +F9AA +F9AB +F9AC +F9AD +F9AE +F9AF +F9B0 +F9B1 +F9B2 +F9B3 +F9B4 +F9B5 +F9B6 +F9B7 +F9B8 +F9B9 +F9BA +F9BB +F9BC +F9BD +F9BE +F9BF +F9C0 +F9C1 +F9C2 +F9C3 +F9C4 +F9C5 +F9C6 +F9C7 +F9C8 +F9C9 +F9CA +F9CB +F9CC +F9CD +F9CE +F9CF +F9D0 +F9D1 +F9D2 +F9D3 +F9D4 +F9D5 +F9D6 +F9D7 +F9D8 +F9D9 +F9DA +F9DB +F9DC +F9DD +F9DE +F9DF +F9E0 +F9E1 +F9E2 +F9E3 +F9E4 +F9E5 +F9E6 +F9E7 +F9E8 +F9E9 +F9EA +F9EB +F9EC +F9ED +F9EE +F9EF +F9F0 +F9F1 +F9F2 +F9F3 +F9F4 +F9F5 +F9F6 +F9F7 +F9F8 +F9F9 +F9FA +F9FB +F9FC +CREATE TABLE t2 SELECT CONVERT(c1 USING ucs2) AS c1 FROM t1; +SELECT HEX(c1) FROM t2; +HEX(c1) +0005 +007E +2015 +FF3C +FF5E +2225 +FF0D +FFE0 +FFE1 +FFE2 +2460 +2461 +2462 +2463 +2464 +2465 +2466 +2467 +2468 +2469 +246A +246B +246C +246D +246E +246F +2470 +2471 +2472 +2473 +2160 +2161 +2162 +2163 +2164 +2165 +2166 +2167 +2168 +2169 +3349 +3314 +3322 +334D +3318 +3327 +3303 +3336 +3351 +3357 +330D +3326 +3323 +332B +334A +333B +339C +339D +339E +338E +338F +33C4 +33A1 +337B +301D +301F +2116 +33CD +2121 +32A4 +32A5 +32A6 +32A7 +32A8 +3231 +3232 +3239 +337E +337D +337C +2252 +2261 +222B +222E +2211 +221A +22A5 +2220 +221F +22BF +2235 +2229 +222A +7E8A +891C +9348 +9288 +84DC +4FC9 +70BB +6631 +68C8 +92F9 +66FB +5F45 +4E28 +4EE1 +4EFC +4F00 +4F03 +4F39 +4F56 +4F92 +4F8A +4F9A +4F94 +4FCD +5040 +5022 +4FFF +501E +5046 +5070 +5042 +5094 +50F4 +50D8 +514A +5164 +519D +51BE +51EC +5215 +529C +52A6 +52C0 +52DB +5300 +5307 +5324 +5372 +5393 +53B2 +53DD +FA0E +549C +548A +54A9 +54FF +5586 +5759 +5765 +57AC +57C8 +57C7 +FA0F +FA10 +589E +58B2 +590B +5953 +595B +595D +5963 +59A4 +59BA +5B56 +5BC0 +752F +5BD8 +5BEC +5C1E +5CA6 +5CBA +5CF5 +5D27 +5D53 +FA11 +5D42 +5D6D +5DB8 +5DB9 +5DD0 +5F21 +5F34 +5F67 +5FB7 +5FDE +605D +6085 +608A +60DE +60D5 +6120 +60F2 +6111 +6137 +6130 +6198 +6213 +62A6 +63F5 +6460 +649D +64CE +654E +6600 +6615 +663B +6609 +662E +661E +6624 +6665 +6657 +6659 +FA12 +6673 +6699 +66A0 +66B2 +66BF +66FA +670E +F929 +6766 +67BB +6852 +67C0 +6801 +6844 +68CF +FA13 +6968 +FA14 +6998 +69E2 +6A30 +6A6B +6A46 +6A73 +6A7E +6AE2 +6AE4 +6BD6 +6C3F +6C5C +6C86 +6C6F +6CDA +6D04 +6D87 +6D6F +6D96 +6DAC +6DCF +6DF8 +6DF2 +6DFC +6E39 +6E5C +6E27 +6E3C +6EBF +6F88 +6FB5 +6FF5 +7005 +7007 +7028 +7085 +70AB +710F +7104 +715C +7146 +7147 +FA15 +71C1 +71FE +72B1 +72BE +7324 +FA16 +7377 +73BD +73C9 +73D6 +73E3 +73D2 +7407 +73F5 +7426 +742A +7429 +742E +7462 +7489 +749F +7501 +756F +7682 +769C +769E +769B +76A6 +FA17 +7746 +52AF +7821 +784E +7864 +787A +7930 +FA18 +FA19 +FA1A +7994 +FA1B +799B +7AD1 +7AE7 +FA1C +7AEB +7B9E +FA1D +7D48 +7D5C +7DB7 +7DA0 +7DD6 +7E52 +7F47 +7FA1 +FA1E +8301 +8362 +837F +83C7 +83F6 +8448 +84B4 +8553 +8559 +856B +FA1F +85B0 +FA20 +FA21 +8807 +88F5 +8A12 +8A37 +8A79 +8AA7 +8ABE +8ADF +FA22 +8AF6 +8B53 +8B7F +8CF0 +8CF4 +8D12 +8D76 +FA23 +8ECF +FA24 +FA25 +9067 +90DE +FA26 +9115 +9127 +91DA +91D7 +91DE +91ED +91EE +91E4 +91E5 +9206 +9210 +920A +923A +9240 +923C +924E +9259 +9251 +9239 +9267 +92A7 +9277 +9278 +92E7 +92D7 +92D9 +92D0 +FA27 +92D5 +92E0 +92D3 +9325 +9321 +92FB +FA28 +931E +92FF +931D +9302 +9370 +9357 +93A4 +93C6 +93DE +93F8 +9431 +9445 +9448 +9592 +F9DC +FA29 +969D +96AF +9733 +973B +9743 +974D +974F +9751 +9755 +9857 +9865 +FA2A +FA2B +9927 +FA2C +999E +9A4E +9AD9 +9ADC +9B75 +9B72 +9B8F +9BB1 +9BBB +9C00 +9D70 +9D6B +FA2D +9E19 +9ED1 +2170 +2171 +2172 +2173 +2174 +2175 +2176 +2177 +2178 +2179 +FFE2 +FFE4 +FF07 +FF02 +2170 +2171 +2172 +2173 +2174 +2175 +2176 +2177 +2178 +2179 +2160 +2161 +2162 +2163 +2164 +2165 +2166 +2167 +2168 +2169 +FFE2 +FFE4 +FF07 +FF02 +3231 +2116 +2121 +2235 +7E8A +891C +9348 +9288 +84DC +4FC9 +70BB +6631 +68C8 +92F9 +66FB +5F45 +4E28 +4EE1 +4EFC +4F00 +4F03 +4F39 +4F56 +4F92 +4F8A +4F9A +4F94 +4FCD +5040 +5022 +4FFF +501E +5046 +5070 +5042 +5094 +50F4 +50D8 +514A +5164 +519D +51BE +51EC +5215 +529C +52A6 +52C0 +52DB +5300 +5307 +5324 +5372 +5393 +53B2 +53DD +FA0E +549C +548A +54A9 +54FF +5586 +5759 +5765 +57AC +57C8 +57C7 +FA0F +FA10 +589E +58B2 +590B +5953 +595B +595D +5963 +59A4 +59BA +5B56 +5BC0 +752F +5BD8 +5BEC +5C1E +5CA6 +5CBA +5CF5 +5D27 +5D53 +FA11 +5D42 +5D6D +5DB8 +5DB9 +5DD0 +5F21 +5F34 +5F67 +5FB7 +5FDE +605D +6085 +608A +60DE +60D5 +6120 +60F2 +6111 +6137 +6130 +6198 +6213 +62A6 +63F5 +6460 +649D +64CE +654E +6600 +6615 +663B +6609 +662E +661E +6624 +6665 +6657 +6659 +FA12 +6673 +6699 +66A0 +66B2 +66BF +66FA +670E +F929 +6766 +67BB +6852 +67C0 +6801 +6844 +68CF +FA13 +6968 +FA14 +6998 +69E2 +6A30 +6A6B +6A46 +6A73 +6A7E +6AE2 +6AE4 +6BD6 +6C3F +6C5C +6C86 +6C6F +6CDA +6D04 +6D87 +6D6F +6D96 +6DAC +6DCF +6DF8 +6DF2 +6DFC +6E39 +6E5C +6E27 +6E3C +6EBF +6F88 +6FB5 +6FF5 +7005 +7007 +7028 +7085 +70AB +710F +7104 +715C +7146 +7147 +FA15 +71C1 +71FE +72B1 +72BE +7324 +FA16 +7377 +73BD +73C9 +73D6 +73E3 +73D2 +7407 +73F5 +7426 +742A +7429 +742E +7462 +7489 +749F +7501 +756F +7682 +769C +769E +769B +76A6 +FA17 +7746 +52AF +7821 +784E +7864 +787A +7930 +FA18 +FA19 +FA1A +7994 +FA1B +799B +7AD1 +7AE7 +FA1C +7AEB +7B9E +FA1D +7D48 +7D5C +7DB7 +7DA0 +7DD6 +7E52 +7F47 +7FA1 +FA1E +8301 +8362 +837F +83C7 +83F6 +8448 +84B4 +8553 +8559 +856B +FA1F +85B0 +FA20 +FA21 +8807 +88F5 +8A12 +8A37 +8A79 +8AA7 +8ABE +8ADF +FA22 +8AF6 +8B53 +8B7F +8CF0 +8CF4 +8D12 +8D76 +FA23 +8ECF +FA24 +FA25 +9067 +90DE +FA26 +9115 +9127 +91DA +91D7 +91DE +91ED +91EE +91E4 +91E5 +9206 +9210 +920A +923A +9240 +923C +924E +9259 +9251 +9239 +9267 +92A7 +9277 +9278 +92E7 +92D7 +92D9 +92D0 +FA27 +92D5 +92E0 +92D3 +9325 +9321 +92FB +FA28 +931E +92FF +931D +9302 +9370 +9357 +93A4 +93C6 +93DE +93F8 +9431 +9445 +9448 +9592 +F9DC +FA29 +969D +96AF +9733 +973B +9743 +974D +974F +9751 +9755 +9857 +9865 +FA2A +FA2B +9927 +FA2C +999E +9A4E +9AD9 +9ADC +9B75 +9B72 +9B8F +9BB1 +9BBB +9C00 +9D70 +9D6B +FA2D +9E19 +9ED1 +E000 +E001 +E002 +E003 +E004 +E005 +E006 +E007 +E008 +E009 +E00A +E00B +E00C +E00D +E00E +E00F +E010 +E011 +E012 +E013 +E014 +E015 +E016 +E017 +E018 +E019 +E01A +E01B +E01C +E01D +E01E +E01F +E020 +E021 +E022 +E023 +E024 +E025 +E026 +E027 +E028 +E029 +E02A +E02B +E02C +E02D +E02E +E02F +E030 +E031 +E032 +E033 +E034 +E035 +E036 +E037 +E038 +E039 +E03A +E03B +E03C +E03D +E03E +E03F +E040 +E041 +E042 +E043 +E044 +E045 +E046 +E047 +E048 +E049 +E04A +E04B +E04C +E04D +E04E +E04F +E050 +E051 +E052 +E053 +E054 +E055 +E056 +E057 +E058 +E059 +E05A +E05B +E05C +E05D +E05E +E05F +E060 +E061 +E062 +E063 +E064 +E065 +E066 +E067 +E068 +E069 +E06A +E06B +E06C +E06D +E06E +E06F +E070 +E071 +E072 +E073 +E074 +E075 +E076 +E077 +E078 +E079 +E07A +E07B +E07C +E07D +E07E +E07F +E080 +E081 +E082 +E083 +E084 +E085 +E086 +E087 +E088 +E089 +E08A +E08B +E08C +E08D +E08E +E08F +E090 +E091 +E092 +E093 +E094 +E095 +E096 +E097 +E098 +E099 +E09A +E09B +E09C +E09D +E09E +E09F +E0A0 +E0A1 +E0A2 +E0A3 +E0A4 +E0A5 +E0A6 +E0A7 +E0A8 +E0A9 +E0AA +E0AB +E0AC +E0AD +E0AE +E0AF +E0B0 +E0B1 +E0B2 +E0B3 +E0B4 +E0B5 +E0B6 +E0B7 +E0B8 +E0B9 +E0BA +E0BB +E0BC +E0BD +E0BE +E0BF +E0C0 +E0C1 +E0C2 +E0C3 +E0C4 +E0C5 +E0C6 +E0C7 +E0C8 +E0C9 +E0CA +E0CB +E0CC +E0CD +E0CE +E0CF +E0D0 +E0D1 +E0D2 +E0D3 +E0D4 +E0D5 +E0D6 +E0D7 +E0D8 +E0D9 +E0DA +E0DB +E0DC +E0DD +E0DE +E0DF +E0E0 +E0E1 +E0E2 +E0E3 +E0E4 +E0E5 +E0E6 +E0E7 +E0E8 +E0E9 +E0EA +E0EB +E0EC +E0ED +E0EE +E0EF +E0F0 +E0F1 +E0F2 +E0F3 +E0F4 +E0F5 +E0F6 +E0F7 +E0F8 +E0F9 +E0FA +E0FB +E0FC +E0FD +E0FE +E0FF +E100 +E101 +E102 +E103 +E104 +E105 +E106 +E107 +E108 +E109 +E10A +E10B +E10C +E10D +E10E +E10F +E110 +E111 +E112 +E113 +E114 +E115 +E116 +E117 +E118 +E119 +E11A +E11B +E11C +E11D +E11E +E11F +E120 +E121 +E122 +E123 +E124 +E125 +E126 +E127 +E128 +E129 +E12A +E12B +E12C +E12D +E12E +E12F +E130 +E131 +E132 +E133 +E134 +E135 +E136 +E137 +E138 +E139 +E13A +E13B +E13C +E13D +E13E +E13F +E140 +E141 +E142 +E143 +E144 +E145 +E146 +E147 +E148 +E149 +E14A +E14B +E14C +E14D +E14E +E14F +E150 +E151 +E152 +E153 +E154 +E155 +E156 +E157 +E158 +E159 +E15A +E15B +E15C +E15D +E15E +E15F +E160 +E161 +E162 +E163 +E164 +E165 +E166 +E167 +E168 +E169 +E16A +E16B +E16C +E16D +E16E +E16F +E170 +E171 +E172 +E173 +E174 +E175 +E176 +E177 +E178 +E179 +E17A +E17B +E17C +E17D +E17E +E17F +E180 +E181 +E182 +E183 +E184 +E185 +E186 +E187 +E188 +E189 +E18A +E18B +E18C +E18D +E18E +E18F +E190 +E191 +E192 +E193 +E194 +E195 +E196 +E197 +E198 +E199 +E19A +E19B +E19C +E19D +E19E +E19F +E1A0 +E1A1 +E1A2 +E1A3 +E1A4 +E1A5 +E1A6 +E1A7 +E1A8 +E1A9 +E1AA +E1AB +E1AC +E1AD +E1AE +E1AF +E1B0 +E1B1 +E1B2 +E1B3 +E1B4 +E1B5 +E1B6 +E1B7 +E1B8 +E1B9 +E1BA +E1BB +E1BC +E1BD +E1BE +E1BF +E1C0 +E1C1 +E1C2 +E1C3 +E1C4 +E1C5 +E1C6 +E1C7 +E1C8 +E1C9 +E1CA +E1CB +E1CC +E1CD +E1CE +E1CF +E1D0 +E1D1 +E1D2 +E1D3 +E1D4 +E1D5 +E1D6 +E1D7 +E1D8 +E1D9 +E1DA +E1DB +E1DC +E1DD +E1DE +E1DF +E1E0 +E1E1 +E1E2 +E1E3 +E1E4 +E1E5 +E1E6 +E1E7 +E1E8 +E1E9 +E1EA +E1EB +E1EC +E1ED +E1EE +E1EF +E1F0 +E1F1 +E1F2 +E1F3 +E1F4 +E1F5 +E1F6 +E1F7 +E1F8 +E1F9 +E1FA +E1FB +E1FC +E1FD +E1FE +E1FF +E200 +E201 +E202 +E203 +E204 +E205 +E206 +E207 +E208 +E209 +E20A +E20B +E20C +E20D +E20E +E20F +E210 +E211 +E212 +E213 +E214 +E215 +E216 +E217 +E218 +E219 +E21A +E21B +E21C +E21D +E21E +E21F +E220 +E221 +E222 +E223 +E224 +E225 +E226 +E227 +E228 +E229 +E22A +E22B +E22C +E22D +E22E +E22F +E230 +E231 +E232 +E233 +E234 +E235 +E236 +E237 +E238 +E239 +E23A +E23B +E23C +E23D +E23E +E23F +E240 +E241 +E242 +E243 +E244 +E245 +E246 +E247 +E248 +E249 +E24A +E24B +E24C +E24D +E24E +E24F +E250 +E251 +E252 +E253 +E254 +E255 +E256 +E257 +E258 +E259 +E25A +E25B +E25C +E25D +E25E +E25F +E260 +E261 +E262 +E263 +E264 +E265 +E266 +E267 +E268 +E269 +E26A +E26B +E26C +E26D +E26E +E26F +E270 +E271 +E272 +E273 +E274 +E275 +E276 +E277 +E278 +E279 +E27A +E27B +E27C +E27D +E27E +E27F +E280 +E281 +E282 +E283 +E284 +E285 +E286 +E287 +E288 +E289 +E28A +E28B +E28C +E28D +E28E +E28F +E290 +E291 +E292 +E293 +E294 +E295 +E296 +E297 +E298 +E299 +E29A +E29B +E29C +E29D +E29E +E29F +E2A0 +E2A1 +E2A2 +E2A3 +E2A4 +E2A5 +E2A6 +E2A7 +E2A8 +E2A9 +E2AA +E2AB +E2AC +E2AD +E2AE +E2AF +E2B0 +E2B1 +E2B2 +E2B3 +E2B4 +E2B5 +E2B6 +E2B7 +E2B8 +E2B9 +E2BA +E2BB +E2BC +E2BD +E2BE +E2BF +E2C0 +E2C1 +E2C2 +E2C3 +E2C4 +E2C5 +E2C6 +E2C7 +E2C8 +E2C9 +E2CA +E2CB +E2CC +E2CD +E2CE +E2CF +E2D0 +E2D1 +E2D2 +E2D3 +E2D4 +E2D5 +E2D6 +E2D7 +E2D8 +E2D9 +E2DA +E2DB +E2DC +E2DD +E2DE +E2DF +E2E0 +E2E1 +E2E2 +E2E3 +E2E4 +E2E5 +E2E6 +E2E7 +E2E8 +E2E9 +E2EA +E2EB +E2EC +E2ED +E2EE +E2EF +E2F0 +E2F1 +E2F2 +E2F3 +E2F4 +E2F5 +E2F6 +E2F7 +E2F8 +E2F9 +E2FA +E2FB +E2FC +E2FD +E2FE +E2FF +E300 +E301 +E302 +E303 +E304 +E305 +E306 +E307 +E308 +E309 +E30A +E30B +E30C +E30D +E30E +E30F +E310 +E311 +E312 +E313 +E314 +E315 +E316 +E317 +E318 +E319 +E31A +E31B +E31C +E31D +E31E +E31F +E320 +E321 +E322 +E323 +E324 +E325 +E326 +E327 +E328 +E329 +E32A +E32B +E32C +E32D +E32E +E32F +E330 +E331 +E332 +E333 +E334 +E335 +E336 +E337 +E338 +E339 +E33A +E33B +E33C +E33D +E33E +E33F +E340 +E341 +E342 +E343 +E344 +E345 +E346 +E347 +E348 +E349 +E34A +E34B +E34C +E34D +E34E +E34F +E350 +E351 +E352 +E353 +E354 +E355 +E356 +E357 +E358 +E359 +E35A +E35B +E35C +E35D +E35E +E35F +E360 +E361 +E362 +E363 +E364 +E365 +E366 +E367 +E368 +E369 +E36A +E36B +E36C +E36D +E36E +E36F +E370 +E371 +E372 +E373 +E374 +E375 +E376 +E377 +E378 +E379 +E37A +E37B +E37C +E37D +E37E +E37F +E380 +E381 +E382 +E383 +E384 +E385 +E386 +E387 +E388 +E389 +E38A +E38B +E38C +E38D +E38E +E38F +E390 +E391 +E392 +E393 +E394 +E395 +E396 +E397 +E398 +E399 +E39A +E39B +E39C +E39D +E39E +E39F +E3A0 +E3A1 +E3A2 +E3A3 +E3A4 +E3A5 +E3A6 +E3A7 +E3A8 +E3A9 +E3AA +E3AB +E3AC +E3AD +E3AE +E3AF +E3B0 +E3B1 +E3B2 +E3B3 +E3B4 +E3B5 +E3B6 +E3B7 +E3B8 +E3B9 +E3BA +E3BB +E3BC +E3BD +E3BE +E3BF +E3C0 +E3C1 +E3C2 +E3C3 +E3C4 +E3C5 +E3C6 +E3C7 +E3C8 +E3C9 +E3CA +E3CB +E3CC +E3CD +E3CE +E3CF +E3D0 +E3D1 +E3D2 +E3D3 +E3D4 +E3D5 +E3D6 +E3D7 +E3D8 +E3D9 +E3DA +E3DB +E3DC +E3DD +E3DE +E3DF +E3E0 +E3E1 +E3E2 +E3E3 +E3E4 +E3E5 +E3E6 +E3E7 +E3E8 +E3E9 +E3EA +E3EB +E3EC +E3ED +E3EE +E3EF +E3F0 +E3F1 +E3F2 +E3F3 +E3F4 +E3F5 +E3F6 +E3F7 +E3F8 +E3F9 +E3FA +E3FB +E3FC +E3FD +E3FE +E3FF +E400 +E401 +E402 +E403 +E404 +E405 +E406 +E407 +E408 +E409 +E40A +E40B +E40C +E40D +E40E +E40F +E410 +E411 +E412 +E413 +E414 +E415 +E416 +E417 +E418 +E419 +E41A +E41B +E41C +E41D +E41E +E41F +E420 +E421 +E422 +E423 +E424 +E425 +E426 +E427 +E428 +E429 +E42A +E42B +E42C +E42D +E42E +E42F +E430 +E431 +E432 +E433 +E434 +E435 +E436 +E437 +E438 +E439 +E43A +E43B +E43C +E43D +E43E +E43F +E440 +E441 +E442 +E443 +E444 +E445 +E446 +E447 +E448 +E449 +E44A +E44B +E44C +E44D +E44E +E44F +E450 +E451 +E452 +E453 +E454 +E455 +E456 +E457 +E458 +E459 +E45A +E45B +E45C +E45D +E45E +E45F +E460 +E461 +E462 +E463 +E464 +E465 +E466 +E467 +E468 +E469 +E46A +E46B +E46C +E46D +E46E +E46F +E470 +E471 +E472 +E473 +E474 +E475 +E476 +E477 +E478 +E479 +E47A +E47B +E47C +E47D +E47E +E47F +E480 +E481 +E482 +E483 +E484 +E485 +E486 +E487 +E488 +E489 +E48A +E48B +E48C +E48D +E48E +E48F +E490 +E491 +E492 +E493 +E494 +E495 +E496 +E497 +E498 +E499 +E49A +E49B +E49C +E49D +E49E +E49F +E4A0 +E4A1 +E4A2 +E4A3 +E4A4 +E4A5 +E4A6 +E4A7 +E4A8 +E4A9 +E4AA +E4AB +E4AC +E4AD +E4AE +E4AF +E4B0 +E4B1 +E4B2 +E4B3 +E4B4 +E4B5 +E4B6 +E4B7 +E4B8 +E4B9 +E4BA +E4BB +E4BC +E4BD +E4BE +E4BF +E4C0 +E4C1 +E4C2 +E4C3 +E4C4 +E4C5 +E4C6 +E4C7 +E4C8 +E4C9 +E4CA +E4CB +E4CC +E4CD +E4CE +E4CF +E4D0 +E4D1 +E4D2 +E4D3 +E4D4 +E4D5 +E4D6 +E4D7 +E4D8 +E4D9 +E4DA +E4DB +E4DC +E4DD +E4DE +E4DF +E4E0 +E4E1 +E4E2 +E4E3 +E4E4 +E4E5 +E4E6 +E4E7 +E4E8 +E4E9 +E4EA +E4EB +E4EC +E4ED +E4EE +E4EF +E4F0 +E4F1 +E4F2 +E4F3 +E4F4 +E4F5 +E4F6 +E4F7 +E4F8 +E4F9 +E4FA +E4FB +E4FC +E4FD +E4FE +E4FF +E500 +E501 +E502 +E503 +E504 +E505 +E506 +E507 +E508 +E509 +E50A +E50B +E50C +E50D +E50E +E50F +E510 +E511 +E512 +E513 +E514 +E515 +E516 +E517 +E518 +E519 +E51A +E51B +E51C +E51D +E51E +E51F +E520 +E521 +E522 +E523 +E524 +E525 +E526 +E527 +E528 +E529 +E52A +E52B +E52C +E52D +E52E +E52F +E530 +E531 +E532 +E533 +E534 +E535 +E536 +E537 +E538 +E539 +E53A +E53B +E53C +E53D +E53E +E53F +E540 +E541 +E542 +E543 +E544 +E545 +E546 +E547 +E548 +E549 +E54A +E54B +E54C +E54D +E54E +E54F +E550 +E551 +E552 +E553 +E554 +E555 +E556 +E557 +E558 +E559 +E55A +E55B +E55C +E55D +E55E +E55F +E560 +E561 +E562 +E563 +E564 +E565 +E566 +E567 +E568 +E569 +E56A +E56B +E56C +E56D +E56E +E56F +E570 +E571 +E572 +E573 +E574 +E575 +E576 +E577 +E578 +E579 +E57A +E57B +E57C +E57D +E57E +E57F +E580 +E581 +E582 +E583 +E584 +E585 +E586 +E587 +E588 +E589 +E58A +E58B +E58C +E58D +E58E +E58F +E590 +E591 +E592 +E593 +E594 +E595 +E596 +E597 +E598 +E599 +E59A +E59B +E59C +E59D +E59E +E59F +E5A0 +E5A1 +E5A2 +E5A3 +E5A4 +E5A5 +E5A6 +E5A7 +E5A8 +E5A9 +E5AA +E5AB +E5AC +E5AD +E5AE +E5AF +E5B0 +E5B1 +E5B2 +E5B3 +E5B4 +E5B5 +E5B6 +E5B7 +E5B8 +E5B9 +E5BA +E5BB +E5BC +E5BD +E5BE +E5BF +E5C0 +E5C1 +E5C2 +E5C3 +E5C4 +E5C5 +E5C6 +E5C7 +E5C8 +E5C9 +E5CA +E5CB +E5CC +E5CD +E5CE +E5CF +E5D0 +E5D1 +E5D2 +E5D3 +E5D4 +E5D5 +E5D6 +E5D7 +E5D8 +E5D9 +E5DA +E5DB +E5DC +E5DD +E5DE +E5DF +E5E0 +E5E1 +E5E2 +E5E3 +E5E4 +E5E5 +E5E6 +E5E7 +E5E8 +E5E9 +E5EA +E5EB +E5EC +E5ED +E5EE +E5EF +E5F0 +E5F1 +E5F2 +E5F3 +E5F4 +E5F5 +E5F6 +E5F7 +E5F8 +E5F9 +E5FA +E5FB +E5FC +E5FD +E5FE +E5FF +E600 +E601 +E602 +E603 +E604 +E605 +E606 +E607 +E608 +E609 +E60A +E60B +E60C +E60D +E60E +E60F +E610 +E611 +E612 +E613 +E614 +E615 +E616 +E617 +E618 +E619 +E61A +E61B +E61C +E61D +E61E +E61F +E620 +E621 +E622 +E623 +E624 +E625 +E626 +E627 +E628 +E629 +E62A +E62B +E62C +E62D +E62E +E62F +E630 +E631 +E632 +E633 +E634 +E635 +E636 +E637 +E638 +E639 +E63A +E63B +E63C +E63D +E63E +E63F +E640 +E641 +E642 +E643 +E644 +E645 +E646 +E647 +E648 +E649 +E64A +E64B +E64C +E64D +E64E +E64F +E650 +E651 +E652 +E653 +E654 +E655 +E656 +E657 +E658 +E659 +E65A +E65B +E65C +E65D +E65E +E65F +E660 +E661 +E662 +E663 +E664 +E665 +E666 +E667 +E668 +E669 +E66A +E66B +E66C +E66D +E66E +E66F +E670 +E671 +E672 +E673 +E674 +E675 +E676 +E677 +E678 +E679 +E67A +E67B +E67C +E67D +E67E +E67F +E680 +E681 +E682 +E683 +E684 +E685 +E686 +E687 +E688 +E689 +E68A +E68B +E68C +E68D +E68E +E68F +E690 +E691 +E692 +E693 +E694 +E695 +E696 +E697 +E698 +E699 +E69A +E69B +E69C +E69D +E69E +E69F +E6A0 +E6A1 +E6A2 +E6A3 +E6A4 +E6A5 +E6A6 +E6A7 +E6A8 +E6A9 +E6AA +E6AB +E6AC +E6AD +E6AE +E6AF +E6B0 +E6B1 +E6B2 +E6B3 +E6B4 +E6B5 +E6B6 +E6B7 +E6B8 +E6B9 +E6BA +E6BB +E6BC +E6BD +E6BE +E6BF +E6C0 +E6C1 +E6C2 +E6C3 +E6C4 +E6C5 +E6C6 +E6C7 +E6C8 +E6C9 +E6CA +E6CB +E6CC +E6CD +E6CE +E6CF +E6D0 +E6D1 +E6D2 +E6D3 +E6D4 +E6D5 +E6D6 +E6D7 +E6D8 +E6D9 +E6DA +E6DB +E6DC +E6DD +E6DE +E6DF +E6E0 +E6E1 +E6E2 +E6E3 +E6E4 +E6E5 +E6E6 +E6E7 +E6E8 +E6E9 +E6EA +E6EB +E6EC +E6ED +E6EE +E6EF +E6F0 +E6F1 +E6F2 +E6F3 +E6F4 +E6F5 +E6F6 +E6F7 +E6F8 +E6F9 +E6FA +E6FB +E6FC +E6FD +E6FE +E6FF +E700 +E701 +E702 +E703 +E704 +E705 +E706 +E707 +E708 +E709 +E70A +E70B +E70C +E70D +E70E +E70F +E710 +E711 +E712 +E713 +E714 +E715 +E716 +E717 +E718 +E719 +E71A +E71B +E71C +E71D +E71E +E71F +E720 +E721 +E722 +E723 +E724 +E725 +E726 +E727 +E728 +E729 +E72A +E72B +E72C +E72D +E72E +E72F +E730 +E731 +E732 +E733 +E734 +E735 +E736 +E737 +E738 +E739 +E73A +E73B +E73C +E73D +E73E +E73F +E740 +E741 +E742 +E743 +E744 +E745 +E746 +E747 +E748 +E749 +E74A +E74B +E74C +E74D +E74E +E74F +E750 +E751 +E752 +E753 +E754 +E755 +E756 +E757 +CREATE TABLE t3 SELECT CONVERT(c1 USING cp932) AS c1 FROM t2; +SELECT HEX(c1) FROM t3; +HEX(c1) +05 +7E +815C +815F +8160 +8161 +817C +8191 +8192 +81CA +8740 +8741 +8742 +8743 +8744 +8745 +8746 +8747 +8748 +8749 +874A +874B +874C +874D +874E +874F +8750 +8751 +8752 +8753 +8754 +8755 +8756 +8757 +8758 +8759 +875A +875B +875C +875D +875F +8760 +8761 +8762 +8763 +8764 +8765 +8766 +8767 +8768 +8769 +876A +876B +876C +876D +876E +876F +8770 +8771 +8772 +8773 +8774 +8775 +877E +8780 +8781 +8782 +8783 +8784 +8785 +8786 +8787 +8788 +8789 +878A +878B +878C +878D +878E +878F +81E0 +81DF +81E7 +8793 +8794 +81E3 +81DB +81DA +8798 +8799 +81E6 +81BF +81BE +FA5C +FA5D +FA5E +FA5F +FA60 +FA61 +FA62 +FA63 +FA64 +FA65 +FA66 +FA67 +FA68 +FA69 +FA6A +FA6B +FA6C +FA6D +FA6E +FA6F +FA70 +FA71 +FA72 +FA73 +FA74 +FA75 +FA76 +FA77 +FA78 +FA79 +FA7A +FA7B +FA7C +FA7D +FA7E +FA80 +FA81 +FA82 +FA83 +FA84 +FA85 +FA86 +FA87 +FA88 +FA89 +FA8A +FA8B +FA8C +FA8D +FA8E +FA8F +FA90 +FA91 +FA92 +FA93 +FA94 +FA95 +FA96 +FA97 +FA98 +FA99 +FA9A +FA9B +FA9C +FA9D +FA9E +FA9F +FAA0 +FAA1 +FAA2 +FAA3 +FAA4 +FAA5 +FAA6 +FAA7 +FAA8 +FAA9 +FAAA +FAAB +FAAC +FAAD +FAAE +FAAF +FAB0 +FAB1 +FAB2 +FAB3 +FAB4 +FAB5 +FAB6 +FAB7 +FAB8 +FAB9 +FABA +FABB +FABC +FABD +FABE +FABF +FAC0 +FAC1 +FAC2 +FAC3 +FAC4 +FAC5 +FAC6 +FAC7 +FAC8 +FAC9 +FACA +FACB +FACC +FACD +FACE +FACF +FAD0 +FAD1 +FAD2 +FAD3 +FAD4 +FAD5 +FAD6 +FAD7 +FAD8 +FAD9 +FADA +FADB +FADC +FADD +FADE +FADF +FAE0 +FAE1 +FAE2 +FAE3 +FAE4 +FAE5 +FAE6 +FAE7 +FAE8 +FAE9 +FAEA +FAEB +FAEC +FAED +FAEE +FAEF +FAF0 +FAF1 +FAF2 +FAF3 +FAF4 +FAF5 +FAF6 +FAF7 +FAF8 +FAF9 +FAFA +FAFB +FAFC +FB40 +FB41 +FB42 +FB43 +FB44 +FB45 +FB46 +FB47 +FB48 +FB49 +FB4A +FB4B +FB4C +FB4D +FB4E +FB4F +FB50 +FB51 +FB52 +FB53 +FB54 +FB55 +FB56 +FB57 +FB58 +FB59 +FB5A +FB5B +FB5C +FB5D +FB5E +FB5F +FB60 +FB61 +FB62 +FB63 +FB64 +FB65 +FB66 +FB67 +FB68 +FB69 +FB6A +FB6B +FB6C +FB6D +FB6E +FB6F +FB70 +FB71 +FB72 +FB73 +FB74 +FB75 +FB76 +FB77 +FB78 +FB79 +FB7A +FB7B +FB7C +FB7D +FB7E +FB80 +FB81 +FB82 +FB83 +FB84 +FB85 +FB86 +FB87 +FB88 +FB89 +FB8A +FB8B +FB8C +FB8D +FB8E +FB8F +FB90 +FB91 +FB92 +FB93 +FB94 +FB95 +FB96 +FB97 +FB98 +FB99 +FB9A +FB9B +FB9C +FB9D +FB9E +FB9F +FBA0 +FBA1 +FBA2 +FBA3 +FBA4 +FBA5 +FBA6 +FBA7 +FBA8 +FBA9 +FBAA +FBAB +FBAC +FBAD +FBAE +FBAF +FBB0 +FBB1 +FBB2 +FBB3 +FBB4 +FBB5 +FBB6 +FBB7 +FBB8 +FBB9 +FBBA +FBBB +FBBC +FBBD +FBBE +FBBF +FBC0 +FBC1 +FBC2 +FBC3 +FBC4 +FBC5 +FBC6 +FBC7 +FBC8 +FBC9 +FBCA +FBCB +FBCC +FBCD +FBCE +FBCF +FBD0 +FBD1 +FBD2 +FBD3 +FBD4 +FBD5 +FBD6 +FBD7 +FBD8 +FBD9 +FBDA +FBDB +FBDC +FBDD +FBDE +FBDF +FBE0 +FBE1 +FBE2 +FBE3 +FBE4 +FBE5 +FBE6 +FBE7 +FBE8 +FBE9 +FBEA +FBEB +FBEC +FBED +FBEE +FBEF +FBF0 +FBF1 +FBF2 +FBF3 +FBF4 +FBF5 +FBF6 +FBF7 +FBF8 +FBF9 +FBFA +FBFB +FBFC +FC40 +FC41 +FC42 +FC43 +FC44 +FC45 +FC46 +FC47 +FC48 +FC49 +FC4A +FC4B +FA40 +FA41 +FA42 +FA43 +FA44 +FA45 +FA46 +FA47 +FA48 +FA49 +81CA +FA55 +FA56 +FA57 +FA40 +FA41 +FA42 +FA43 +FA44 +FA45 +FA46 +FA47 +FA48 +FA49 +8754 +8755 +8756 +8757 +8758 +8759 +875A +875B +875C +875D +81CA +FA55 +FA56 +FA57 +878A +8782 +8784 +81E6 +FA5C +FA5D +FA5E +FA5F +FA60 +FA61 +FA62 +FA63 +FA64 +FA65 +FA66 +FA67 +FA68 +FA69 +FA6A +FA6B +FA6C +FA6D +FA6E +FA6F +FA70 +FA71 +FA72 +FA73 +FA74 +FA75 +FA76 +FA77 +FA78 +FA79 +FA7A +FA7B +FA7C +FA7D +FA7E +FA80 +FA81 +FA82 +FA83 +FA84 +FA85 +FA86 +FA87 +FA88 +FA89 +FA8A +FA8B +FA8C +FA8D +FA8E +FA8F +FA90 +FA91 +FA92 +FA93 +FA94 +FA95 +FA96 +FA97 +FA98 +FA99 +FA9A +FA9B +FA9C +FA9D +FA9E +FA9F +FAA0 +FAA1 +FAA2 +FAA3 +FAA4 +FAA5 +FAA6 +FAA7 +FAA8 +FAA9 +FAAA +FAAB +FAAC +FAAD +FAAE +FAAF +FAB0 +FAB1 +FAB2 +FAB3 +FAB4 +FAB5 +FAB6 +FAB7 +FAB8 +FAB9 +FABA +FABB +FABC +FABD +FABE +FABF +FAC0 +FAC1 +FAC2 +FAC3 +FAC4 +FAC5 +FAC6 +FAC7 +FAC8 +FAC9 +FACA +FACB +FACC +FACD +FACE +FACF +FAD0 +FAD1 +FAD2 +FAD3 +FAD4 +FAD5 +FAD6 +FAD7 +FAD8 +FAD9 +FADA +FADB +FADC +FADD +FADE +FADF +FAE0 +FAE1 +FAE2 +FAE3 +FAE4 +FAE5 +FAE6 +FAE7 +FAE8 +FAE9 +FAEA +FAEB +FAEC +FAED +FAEE +FAEF +FAF0 +FAF1 +FAF2 +FAF3 +FAF4 +FAF5 +FAF6 +FAF7 +FAF8 +FAF9 +FAFA +FAFB +FAFC +FB40 +FB41 +FB42 +FB43 +FB44 +FB45 +FB46 +FB47 +FB48 +FB49 +FB4A +FB4B +FB4C +FB4D +FB4E +FB4F +FB50 +FB51 +FB52 +FB53 +FB54 +FB55 +FB56 +FB57 +FB58 +FB59 +FB5A +FB5B +FB5C +FB5D +FB5E +FB5F +FB60 +FB61 +FB62 +FB63 +FB64 +FB65 +FB66 +FB67 +FB68 +FB69 +FB6A +FB6B +FB6C +FB6D +FB6E +FB6F +FB70 +FB71 +FB72 +FB73 +FB74 +FB75 +FB76 +FB77 +FB78 +FB79 +FB7A +FB7B +FB7C +FB7D +FB7E +FB80 +FB81 +FB82 +FB83 +FB84 +FB85 +FB86 +FB87 +FB88 +FB89 +FB8A +FB8B +FB8C +FB8D +FB8E +FB8F +FB90 +FB91 +FB92 +FB93 +FB94 +FB95 +FB96 +FB97 +FB98 +FB99 +FB9A +FB9B +FB9C +FB9D +FB9E +FB9F +FBA0 +FBA1 +FBA2 +FBA3 +FBA4 +FBA5 +FBA6 +FBA7 +FBA8 +FBA9 +FBAA +FBAB +FBAC +FBAD +FBAE +FBAF +FBB0 +FBB1 +FBB2 +FBB3 +FBB4 +FBB5 +FBB6 +FBB7 +FBB8 +FBB9 +FBBA +FBBB +FBBC +FBBD +FBBE +FBBF +FBC0 +FBC1 +FBC2 +FBC3 +FBC4 +FBC5 +FBC6 +FBC7 +FBC8 +FBC9 +FBCA +FBCB +FBCC +FBCD +FBCE +FBCF +FBD0 +FBD1 +FBD2 +FBD3 +FBD4 +FBD5 +FBD6 +FBD7 +FBD8 +FBD9 +FBDA +FBDB +FBDC +FBDD +FBDE +FBDF +FBE0 +FBE1 +FBE2 +FBE3 +FBE4 +FBE5 +FBE6 +FBE7 +FBE8 +FBE9 +FBEA +FBEB +FBEC +FBED +FBEE +FBEF +FBF0 +FBF1 +FBF2 +FBF3 +FBF4 +FBF5 +FBF6 +FBF7 +FBF8 +FBF9 +FBFA +FBFB +FBFC +FC40 +FC41 +FC42 +FC43 +FC44 +FC45 +FC46 +FC47 +FC48 +FC49 +FC4A +FC4B +F040 +F041 +F042 +F043 +F044 +F045 +F046 +F047 +F048 +F049 +F04A +F04B +F04C +F04D +F04E +F04F +F050 +F051 +F052 +F053 +F054 +F055 +F056 +F057 +F058 +F059 +F05A +F05B +F05C +F05D +F05E +F05F +F060 +F061 +F062 +F063 +F064 +F065 +F066 +F067 +F068 +F069 +F06A +F06B +F06C +F06D +F06E +F06F +F070 +F071 +F072 +F073 +F074 +F075 +F076 +F077 +F078 +F079 +F07A +F07B +F07C +F07D +F07E +F080 +F081 +F082 +F083 +F084 +F085 +F086 +F087 +F088 +F089 +F08A +F08B +F08C +F08D +F08E +F08F +F090 +F091 +F092 +F093 +F094 +F095 +F096 +F097 +F098 +F099 +F09A +F09B +F09C +F09D +F09E +F09F +F0A0 +F0A1 +F0A2 +F0A3 +F0A4 +F0A5 +F0A6 +F0A7 +F0A8 +F0A9 +F0AA +F0AB +F0AC +F0AD +F0AE +F0AF +F0B0 +F0B1 +F0B2 +F0B3 +F0B4 +F0B5 +F0B6 +F0B7 +F0B8 +F0B9 +F0BA +F0BB +F0BC +F0BD +F0BE +F0BF +F0C0 +F0C1 +F0C2 +F0C3 +F0C4 +F0C5 +F0C6 +F0C7 +F0C8 +F0C9 +F0CA +F0CB +F0CC +F0CD +F0CE +F0CF +F0D0 +F0D1 +F0D2 +F0D3 +F0D4 +F0D5 +F0D6 +F0D7 +F0D8 +F0D9 +F0DA +F0DB +F0DC +F0DD +F0DE +F0DF +F0E0 +F0E1 +F0E2 +F0E3 +F0E4 +F0E5 +F0E6 +F0E7 +F0E8 +F0E9 +F0EA +F0EB +F0EC +F0ED +F0EE +F0EF +F0F0 +F0F1 +F0F2 +F0F3 +F0F4 +F0F5 +F0F6 +F0F7 +F0F8 +F0F9 +F0FA +F0FB +F0FC +F140 +F141 +F142 +F143 +F144 +F145 +F146 +F147 +F148 +F149 +F14A +F14B +F14C +F14D +F14E +F14F +F150 +F151 +F152 +F153 +F154 +F155 +F156 +F157 +F158 +F159 +F15A +F15B +F15C +F15D +F15E +F15F +F160 +F161 +F162 +F163 +F164 +F165 +F166 +F167 +F168 +F169 +F16A +F16B +F16C +F16D +F16E +F16F +F170 +F171 +F172 +F173 +F174 +F175 +F176 +F177 +F178 +F179 +F17A +F17B +F17C +F17D +F17E +F180 +F181 +F182 +F183 +F184 +F185 +F186 +F187 +F188 +F189 +F18A +F18B +F18C +F18D +F18E +F18F +F190 +F191 +F192 +F193 +F194 +F195 +F196 +F197 +F198 +F199 +F19A +F19B +F19C +F19D +F19E +F19F +F1A0 +F1A1 +F1A2 +F1A3 +F1A4 +F1A5 +F1A6 +F1A7 +F1A8 +F1A9 +F1AA +F1AB +F1AC +F1AD +F1AE +F1AF +F1B0 +F1B1 +F1B2 +F1B3 +F1B4 +F1B5 +F1B6 +F1B7 +F1B8 +F1B9 +F1BA +F1BB +F1BC +F1BD +F1BE +F1BF +F1C0 +F1C1 +F1C2 +F1C3 +F1C4 +F1C5 +F1C6 +F1C7 +F1C8 +F1C9 +F1CA +F1CB +F1CC +F1CD +F1CE +F1CF +F1D0 +F1D1 +F1D2 +F1D3 +F1D4 +F1D5 +F1D6 +F1D7 +F1D8 +F1D9 +F1DA +F1DB +F1DC +F1DD +F1DE +F1DF +F1E0 +F1E1 +F1E2 +F1E3 +F1E4 +F1E5 +F1E6 +F1E7 +F1E8 +F1E9 +F1EA +F1EB +F1EC +F1ED +F1EE +F1EF +F1F0 +F1F1 +F1F2 +F1F3 +F1F4 +F1F5 +F1F6 +F1F7 +F1F8 +F1F9 +F1FA +F1FB +F1FC +F240 +F241 +F242 +F243 +F244 +F245 +F246 +F247 +F248 +F249 +F24A +F24B +F24C +F24D +F24E +F24F +F250 +F251 +F252 +F253 +F254 +F255 +F256 +F257 +F258 +F259 +F25A +F25B +F25C +F25D +F25E +F25F +F260 +F261 +F262 +F263 +F264 +F265 +F266 +F267 +F268 +F269 +F26A +F26B +F26C +F26D +F26E +F26F +F270 +F271 +F272 +F273 +F274 +F275 +F276 +F277 +F278 +F279 +F27A +F27B +F27C +F27D +F27E +F280 +F281 +F282 +F283 +F284 +F285 +F286 +F287 +F288 +F289 +F28A +F28B +F28C +F28D +F28E +F28F +F290 +F291 +F292 +F293 +F294 +F295 +F296 +F297 +F298 +F299 +F29A +F29B +F29C +F29D +F29E +F29F +F2A0 +F2A1 +F2A2 +F2A3 +F2A4 +F2A5 +F2A6 +F2A7 +F2A8 +F2A9 +F2AA +F2AB +F2AC +F2AD +F2AE +F2AF +F2B0 +F2B1 +F2B2 +F2B3 +F2B4 +F2B5 +F2B6 +F2B7 +F2B8 +F2B9 +F2BA +F2BB +F2BC +F2BD +F2BE +F2BF +F2C0 +F2C1 +F2C2 +F2C3 +F2C4 +F2C5 +F2C6 +F2C7 +F2C8 +F2C9 +F2CA +F2CB +F2CC +F2CD +F2CE +F2CF +F2D0 +F2D1 +F2D2 +F2D3 +F2D4 +F2D5 +F2D6 +F2D7 +F2D8 +F2D9 +F2DA +F2DB +F2DC +F2DD +F2DE +F2DF +F2E0 +F2E1 +F2E2 +F2E3 +F2E4 +F2E5 +F2E6 +F2E7 +F2E8 +F2E9 +F2EA +F2EB +F2EC +F2ED +F2EE +F2EF +F2F0 +F2F1 +F2F2 +F2F3 +F2F4 +F2F5 +F2F6 +F2F7 +F2F8 +F2F9 +F2FA +F2FB +F2FC +F340 +F341 +F342 +F343 +F344 +F345 +F346 +F347 +F348 +F349 +F34A +F34B +F34C +F34D +F34E +F34F +F350 +F351 +F352 +F353 +F354 +F355 +F356 +F357 +F358 +F359 +F35A +F35B +F35C +F35D +F35E +F35F +F360 +F361 +F362 +F363 +F364 +F365 +F366 +F367 +F368 +F369 +F36A +F36B +F36C +F36D +F36E +F36F +F370 +F371 +F372 +F373 +F374 +F375 +F376 +F377 +F378 +F379 +F37A +F37B +F37C +F37D +F37E +F380 +F381 +F382 +F383 +F384 +F385 +F386 +F387 +F388 +F389 +F38A +F38B +F38C +F38D +F38E +F38F +F390 +F391 +F392 +F393 +F394 +F395 +F396 +F397 +F398 +F399 +F39A +F39B +F39C +F39D +F39E +F39F +F3A0 +F3A1 +F3A2 +F3A3 +F3A4 +F3A5 +F3A6 +F3A7 +F3A8 +F3A9 +F3AA +F3AB +F3AC +F3AD +F3AE +F3AF +F3B0 +F3B1 +F3B2 +F3B3 +F3B4 +F3B5 +F3B6 +F3B7 +F3B8 +F3B9 +F3BA +F3BB +F3BC +F3BD +F3BE +F3BF +F3C0 +F3C1 +F3C2 +F3C3 +F3C4 +F3C5 +F3C6 +F3C7 +F3C8 +F3C9 +F3CA +F3CB +F3CC +F3CD +F3CE +F3CF +F3D0 +F3D1 +F3D2 +F3D3 +F3D4 +F3D5 +F3D6 +F3D7 +F3D8 +F3D9 +F3DA +F3DB +F3DC +F3DD +F3DE +F3DF +F3E0 +F3E1 +F3E2 +F3E3 +F3E4 +F3E5 +F3E6 +F3E7 +F3E8 +F3E9 +F3EA +F3EB +F3EC +F3ED +F3EE +F3EF +F3F0 +F3F1 +F3F2 +F3F3 +F3F4 +F3F5 +F3F6 +F3F7 +F3F8 +F3F9 +F3FA +F3FB +F3FC +F440 +F441 +F442 +F443 +F444 +F445 +F446 +F447 +F448 +F449 +F44A +F44B +F44C +F44D +F44E +F44F +F450 +F451 +F452 +F453 +F454 +F455 +F456 +F457 +F458 +F459 +F45A +F45B +F45C +F45D +F45E +F45F +F460 +F461 +F462 +F463 +F464 +F465 +F466 +F467 +F468 +F469 +F46A +F46B +F46C +F46D +F46E +F46F +F470 +F471 +F472 +F473 +F474 +F475 +F476 +F477 +F478 +F479 +F47A +F47B +F47C +F47D +F47E +F480 +F481 +F482 +F483 +F484 +F485 +F486 +F487 +F488 +F489 +F48A +F48B +F48C +F48D +F48E +F48F +F490 +F491 +F492 +F493 +F494 +F495 +F496 +F497 +F498 +F499 +F49A +F49B +F49C +F49D +F49E +F49F +F4A0 +F4A1 +F4A2 +F4A3 +F4A4 +F4A5 +F4A6 +F4A7 +F4A8 +F4A9 +F4AA +F4AB +F4AC +F4AD +F4AE +F4AF +F4B0 +F4B1 +F4B2 +F4B3 +F4B4 +F4B5 +F4B6 +F4B7 +F4B8 +F4B9 +F4BA +F4BB +F4BC +F4BD +F4BE +F4BF +F4C0 +F4C1 +F4C2 +F4C3 +F4C4 +F4C5 +F4C6 +F4C7 +F4C8 +F4C9 +F4CA +F4CB +F4CC +F4CD +F4CE +F4CF +F4D0 +F4D1 +F4D2 +F4D3 +F4D4 +F4D5 +F4D6 +F4D7 +F4D8 +F4D9 +F4DA +F4DB +F4DC +F4DD +F4DE +F4DF +F4E0 +F4E1 +F4E2 +F4E3 +F4E4 +F4E5 +F4E6 +F4E7 +F4E8 +F4E9 +F4EA +F4EB +F4EC +F4ED +F4EE +F4EF +F4F0 +F4F1 +F4F2 +F4F3 +F4F4 +F4F5 +F4F6 +F4F7 +F4F8 +F4F9 +F4FA +F4FB +F4FC +F540 +F541 +F542 +F543 +F544 +F545 +F546 +F547 +F548 +F549 +F54A +F54B +F54C +F54D +F54E +F54F +F550 +F551 +F552 +F553 +F554 +F555 +F556 +F557 +F558 +F559 +F55A +F55B +F55C +F55D +F55E +F55F +F560 +F561 +F562 +F563 +F564 +F565 +F566 +F567 +F568 +F569 +F56A +F56B +F56C +F56D +F56E +F56F +F570 +F571 +F572 +F573 +F574 +F575 +F576 +F577 +F578 +F579 +F57A +F57B +F57C +F57D +F57E +F580 +F581 +F582 +F583 +F584 +F585 +F586 +F587 +F588 +F589 +F58A +F58B +F58C +F58D +F58E +F58F +F590 +F591 +F592 +F593 +F594 +F595 +F596 +F597 +F598 +F599 +F59A +F59B +F59C +F59D +F59E +F59F +F5A0 +F5A1 +F5A2 +F5A3 +F5A4 +F5A5 +F5A6 +F5A7 +F5A8 +F5A9 +F5AA +F5AB +F5AC +F5AD +F5AE +F5AF +F5B0 +F5B1 +F5B2 +F5B3 +F5B4 +F5B5 +F5B6 +F5B7 +F5B8 +F5B9 +F5BA +F5BB +F5BC +F5BD +F5BE +F5BF +F5C0 +F5C1 +F5C2 +F5C3 +F5C4 +F5C5 +F5C6 +F5C7 +F5C8 +F5C9 +F5CA +F5CB +F5CC +F5CD +F5CE +F5CF +F5D0 +F5D1 +F5D2 +F5D3 +F5D4 +F5D5 +F5D6 +F5D7 +F5D8 +F5D9 +F5DA +F5DB +F5DC +F5DD +F5DE +F5DF +F5E0 +F5E1 +F5E2 +F5E3 +F5E4 +F5E5 +F5E6 +F5E7 +F5E8 +F5E9 +F5EA +F5EB +F5EC +F5ED +F5EE +F5EF +F5F0 +F5F1 +F5F2 +F5F3 +F5F4 +F5F5 +F5F6 +F5F7 +F5F8 +F5F9 +F5FA +F5FB +F5FC +F640 +F641 +F642 +F643 +F644 +F645 +F646 +F647 +F648 +F649 +F64A +F64B +F64C +F64D +F64E +F64F +F650 +F651 +F652 +F653 +F654 +F655 +F656 +F657 +F658 +F659 +F65A +F65B +F65C +F65D +F65E +F65F +F660 +F661 +F662 +F663 +F664 +F665 +F666 +F667 +F668 +F669 +F66A +F66B +F66C +F66D +F66E +F66F +F670 +F671 +F672 +F673 +F674 +F675 +F676 +F677 +F678 +F679 +F67A +F67B +F67C +F67D +F67E +F680 +F681 +F682 +F683 +F684 +F685 +F686 +F687 +F688 +F689 +F68A +F68B +F68C +F68D +F68E +F68F +F690 +F691 +F692 +F693 +F694 +F695 +F696 +F697 +F698 +F699 +F69A +F69B +F69C +F69D +F69E +F69F +F6A0 +F6A1 +F6A2 +F6A3 +F6A4 +F6A5 +F6A6 +F6A7 +F6A8 +F6A9 +F6AA +F6AB +F6AC +F6AD +F6AE +F6AF +F6B0 +F6B1 +F6B2 +F6B3 +F6B4 +F6B5 +F6B6 +F6B7 +F6B8 +F6B9 +F6BA +F6BB +F6BC +F6BD +F6BE +F6BF +F6C0 +F6C1 +F6C2 +F6C3 +F6C4 +F6C5 +F6C6 +F6C7 +F6C8 +F6C9 +F6CA +F6CB +F6CC +F6CD +F6CE +F6CF +F6D0 +F6D1 +F6D2 +F6D3 +F6D4 +F6D5 +F6D6 +F6D7 +F6D8 +F6D9 +F6DA +F6DB +F6DC +F6DD +F6DE +F6DF +F6E0 +F6E1 +F6E2 +F6E3 +F6E4 +F6E5 +F6E6 +F6E7 +F6E8 +F6E9 +F6EA +F6EB +F6EC +F6ED +F6EE +F6EF +F6F0 +F6F1 +F6F2 +F6F3 +F6F4 +F6F5 +F6F6 +F6F7 +F6F8 +F6F9 +F6FA +F6FB +F6FC +F740 +F741 +F742 +F743 +F744 +F745 +F746 +F747 +F748 +F749 +F74A +F74B +F74C +F74D +F74E +F74F +F750 +F751 +F752 +F753 +F754 +F755 +F756 +F757 +F758 +F759 +F75A +F75B +F75C +F75D +F75E +F75F +F760 +F761 +F762 +F763 +F764 +F765 +F766 +F767 +F768 +F769 +F76A +F76B +F76C +F76D +F76E +F76F +F770 +F771 +F772 +F773 +F774 +F775 +F776 +F777 +F778 +F779 +F77A +F77B +F77C +F77D +F77E +F780 +F781 +F782 +F783 +F784 +F785 +F786 +F787 +F788 +F789 +F78A +F78B +F78C +F78D +F78E +F78F +F790 +F791 +F792 +F793 +F794 +F795 +F796 +F797 +F798 +F799 +F79A +F79B +F79C +F79D +F79E +F79F +F7A0 +F7A1 +F7A2 +F7A3 +F7A4 +F7A5 +F7A6 +F7A7 +F7A8 +F7A9 +F7AA +F7AB +F7AC +F7AD +F7AE +F7AF +F7B0 +F7B1 +F7B2 +F7B3 +F7B4 +F7B5 +F7B6 +F7B7 +F7B8 +F7B9 +F7BA +F7BB +F7BC +F7BD +F7BE +F7BF +F7C0 +F7C1 +F7C2 +F7C3 +F7C4 +F7C5 +F7C6 +F7C7 +F7C8 +F7C9 +F7CA +F7CB +F7CC +F7CD +F7CE +F7CF +F7D0 +F7D1 +F7D2 +F7D3 +F7D4 +F7D5 +F7D6 +F7D7 +F7D8 +F7D9 +F7DA +F7DB +F7DC +F7DD +F7DE +F7DF +F7E0 +F7E1 +F7E2 +F7E3 +F7E4 +F7E5 +F7E6 +F7E7 +F7E8 +F7E9 +F7EA +F7EB +F7EC +F7ED +F7EE +F7EF +F7F0 +F7F1 +F7F2 +F7F3 +F7F4 +F7F5 +F7F6 +F7F7 +F7F8 +F7F9 +F7FA +F7FB +F7FC +F840 +F841 +F842 +F843 +F844 +F845 +F846 +F847 +F848 +F849 +F84A +F84B +F84C +F84D +F84E +F84F +F850 +F851 +F852 +F853 +F854 +F855 +F856 +F857 +F858 +F859 +F85A +F85B +F85C +F85D +F85E +F85F +F860 +F861 +F862 +F863 +F864 +F865 +F866 +F867 +F868 +F869 +F86A +F86B +F86C +F86D +F86E +F86F +F870 +F871 +F872 +F873 +F874 +F875 +F876 +F877 +F878 +F879 +F87A +F87B +F87C +F87D +F87E +F880 +F881 +F882 +F883 +F884 +F885 +F886 +F887 +F888 +F889 +F88A +F88B +F88C +F88D +F88E +F88F +F890 +F891 +F892 +F893 +F894 +F895 +F896 +F897 +F898 +F899 +F89A +F89B +F89C +F89D +F89E +F89F +F8A0 +F8A1 +F8A2 +F8A3 +F8A4 +F8A5 +F8A6 +F8A7 +F8A8 +F8A9 +F8AA +F8AB +F8AC +F8AD +F8AE +F8AF +F8B0 +F8B1 +F8B2 +F8B3 +F8B4 +F8B5 +F8B6 +F8B7 +F8B8 +F8B9 +F8BA +F8BB +F8BC +F8BD +F8BE +F8BF +F8C0 +F8C1 +F8C2 +F8C3 +F8C4 +F8C5 +F8C6 +F8C7 +F8C8 +F8C9 +F8CA +F8CB +F8CC +F8CD +F8CE +F8CF +F8D0 +F8D1 +F8D2 +F8D3 +F8D4 +F8D5 +F8D6 +F8D7 +F8D8 +F8D9 +F8DA +F8DB +F8DC +F8DD +F8DE +F8DF +F8E0 +F8E1 +F8E2 +F8E3 +F8E4 +F8E5 +F8E6 +F8E7 +F8E8 +F8E9 +F8EA +F8EB +F8EC +F8ED +F8EE +F8EF +F8F0 +F8F1 +F8F2 +F8F3 +F8F4 +F8F5 +F8F6 +F8F7 +F8F8 +F8F9 +F8FA +F8FB +F8FC +F940 +F941 +F942 +F943 +F944 +F945 +F946 +F947 +F948 +F949 +F94A +F94B +F94C +F94D +F94E +F94F +F950 +F951 +F952 +F953 +F954 +F955 +F956 +F957 +F958 +F959 +F95A +F95B +F95C +F95D +F95E +F95F +F960 +F961 +F962 +F963 +F964 +F965 +F966 +F967 +F968 +F969 +F96A +F96B +F96C +F96D +F96E +F96F +F970 +F971 +F972 +F973 +F974 +F975 +F976 +F977 +F978 +F979 +F97A +F97B +F97C +F97D +F97E +F980 +F981 +F982 +F983 +F984 +F985 +F986 +F987 +F988 +F989 +F98A +F98B +F98C +F98D +F98E +F98F +F990 +F991 +F992 +F993 +F994 +F995 +F996 +F997 +F998 +F999 +F99A +F99B +F99C +F99D +F99E +F99F +F9A0 +F9A1 +F9A2 +F9A3 +F9A4 +F9A5 +F9A6 +F9A7 +F9A8 +F9A9 +F9AA +F9AB +F9AC +F9AD +F9AE +F9AF +F9B0 +F9B1 +F9B2 +F9B3 +F9B4 +F9B5 +F9B6 +F9B7 +F9B8 +F9B9 +F9BA +F9BB +F9BC +F9BD +F9BE +F9BF +F9C0 +F9C1 +F9C2 +F9C3 +F9C4 +F9C5 +F9C6 +F9C7 +F9C8 +F9C9 +F9CA +F9CB +F9CC +F9CD +F9CE +F9CF +F9D0 +F9D1 +F9D2 +F9D3 +F9D4 +F9D5 +F9D6 +F9D7 +F9D8 +F9D9 +F9DA +F9DB +F9DC +F9DD +F9DE +F9DF +F9E0 +F9E1 +F9E2 +F9E3 +F9E4 +F9E5 +F9E6 +F9E7 +F9E8 +F9E9 +F9EA +F9EB +F9EC +F9ED +F9EE +F9EF +F9F0 +F9F1 +F9F2 +F9F3 +F9F4 +F9F5 +F9F6 +F9F7 +F9F8 +F9F9 +F9FA +F9FB +F9FC +CREATE TABLE t4 SELECT CONVERT(c1 USING eucjpms) AS c1 FROM t1; +SELECT HEX(c1) FROM t4; +HEX(c1) +05 +7E +A1BD +A1C0 +A1C1 +A1C2 +A1DD +A1F1 +A1F2 +A2CC +ADA1 +ADA2 +ADA3 +ADA4 +ADA5 +ADA6 +ADA7 +ADA8 +ADA9 +ADAA +ADAB +ADAC +ADAD +ADAE +ADAF +ADB0 +ADB1 +ADB2 +ADB3 +ADB4 +ADB5 +ADB6 +ADB7 +ADB8 +ADB9 +ADBA +ADBB +ADBC +ADBD +ADBE +ADC0 +ADC1 +ADC2 +ADC3 +ADC4 +ADC5 +ADC6 +ADC7 +ADC8 +ADC9 +ADCA +ADCB +ADCC +ADCD +ADCE +ADCF +ADD0 +ADD1 +ADD2 +ADD3 +ADD4 +ADD5 +ADD6 +ADDF +ADE0 +ADE1 +ADE2 +ADE3 +ADE4 +ADE5 +ADE6 +ADE7 +ADE8 +ADE9 +ADEA +ADEB +ADEC +ADED +ADEE +ADEF +A2E2 +A2E1 +A2E9 +ADF3 +ADF4 +A2E5 +A2DD +A2DC +ADF8 +ADF9 +A2E8 +A2C1 +A2C0 +8FD4E3 +8FDCDF +8FE4E9 +8FE3F8 +8FD9A1 +8FB1BB +8FF4AE +8FC2AD +8FC3FC +8FE4D0 +8FC2BF +8FBCF4 +8FB0A9 +8FB0C8 +8FF4AF +8FB0D2 +8FB0D4 +8FB0E3 +8FB0EE +8FB1A7 +8FB1A3 +8FB1AC +8FB1A9 +8FB1BE +8FB1DF +8FB1D8 +8FB1C8 +8FB1D7 +8FB1E3 +8FB1F4 +8FB1E1 +8FB2A3 +8FF4B0 +8FB2BB +8FB2E6 +8FB2ED +8FB2F5 +8FB2FC +8FF4B1 +8FB3B5 +8FB3D8 +8FB3DB +8FB3E5 +8FB3EE +8FB3FB +8FF4B2 +8FF4B3 +8FB4C0 +8FB4C7 +8FB4D0 +8FB4DE +8FF4B4 +8FB5AA +8FF4B5 +8FB5AF +8FB5C4 +8FB5E8 +8FF4B6 +8FB7C2 +8FB7E4 +8FB7E8 +8FB7E7 +8FF4B7 +8FF4B8 +8FF4B9 +8FB8CE +8FB8E1 +8FB8F5 +8FB8F7 +8FB8F8 +8FB8FC +8FB9AF +8FB9B7 +8FBABE +8FBADB +8FCDAA +8FBAE1 +8FF4BA +8FBAEB +8FBBB3 +8FBBB8 +8FF4BB +8FBBCA +8FF4BC +8FF4BD +8FBBD0 +8FBBDE +8FBBF4 +8FBBF5 +8FBBF9 +8FBCE4 +8FBCED +8FBCFE +8FF4BE +8FBDC2 +8FBDE7 +8FF4BF +8FBDF0 +8FBEB0 +8FBEAC +8FF4C0 +8FBEB3 +8FBEBD +8FBECD +8FBEC9 +8FBEE4 +8FBFA8 +8FBFC9 +8FC0C4 +8FC0E4 +8FC0F4 +8FC1A6 +8FF4C1 +8FC1F5 +8FC1FC +8FF4C2 +8FC1F8 +8FC2AB +8FC2A1 +8FC2A5 +8FF4C3 +8FC2B8 +8FC2BA +8FF4C4 +8FC2C4 +8FC2D2 +8FC2D7 +8FC2DB +8FC2DE +8FC2ED +8FC2F0 +8FF4C5 +8FC3A1 +8FC3B5 +8FC3C9 +8FC3B9 +8FF4C6 +8FC3D8 +8FC3FE +8FF4C7 +8FC4CC +8FF4C8 +8FC4D9 +8FC4EA +8FC4FD +8FF4C9 +8FC5A7 +8FC5B5 +8FC5B6 +8FF4CA +8FC5D5 +8FC6B8 +8FC6D7 +8FC6E0 +8FC6EA +8FC6E3 +8FC7A1 +8FC7AB +8FC7C7 +8FC7C3 +8FC7CB +8FC7CF +8FC7D9 +8FF4CB +8FF4CC +8FC7E6 +8FC7EE +8FC7FC +8FC7EB +8FC7F0 +8FC8B1 +8FC8E5 +8FC8F8 +8FC9A6 +8FC9AB +8FC9AD +8FF4CD +8FC9CA +8FC9D3 +8FC9E9 +8FC9E3 +8FC9FC +8FC9F4 +8FC9F5 +8FF4CE +8FCAB3 +8FCABD +8FCAEF +8FCAF1 +8FCBAE +8FF4CF +8FCBCA +8FCBE6 +8FCBEA +8FCBF0 +8FCBF4 +8FCBEE +8FCCA5 +8FCBF9 +8FCCAB +8FCCAE +8FCCAD +8FCCB2 +8FCCC2 +8FCCD0 +8FCCD9 +8FF4D0 +8FCDBB +8FF4D1 +8FCEBB +8FF4D2 +8FCEBA +8FCEC3 +8FF4D3 +8FCEF2 +8FB3DD +8FCFD5 +8FCFE2 +8FCFE9 +8FCFED +8FF4D4 +8FF4D5 +8FF4D6 +8FF4D7 +8FD0E5 +8FF4D8 +8FD0E9 +8FD1E8 +8FF4D9 +8FF4DA +8FD1EC +8FD2BB +8FF4DB +8FD3E1 +8FD3E8 +8FD4A7 +8FF4DC +8FF4DD +8FD4D4 +8FD4F2 +8FD5AE +8FF4DE +8FD7DE +8FF4DF +8FD8A2 +8FD8B7 +8FD8C1 +8FD8D1 +8FD8F4 +8FD9C6 +8FD9C8 +8FD9D1 +8FF4E0 +8FF4E1 +8FF4E2 +8FF4E3 +8FF4E4 +8FDCD3 +8FDDC8 +8FDDD4 +8FDDEA +8FDDFA +8FDEA4 +8FDEB0 +8FF4E5 +8FDEB5 +8FDECB +8FF4E6 +8FDFB9 +8FF4E7 +8FDFC3 +8FF4E8 +8FF4E9 +8FE0D9 +8FF4EA +8FF4EB +8FE1E2 +8FF4EC +8FF4ED +8FF4EE +8FE2C7 +8FE3A8 +8FE3A6 +8FE3A9 +8FE3AF +8FE3B0 +8FE3AA +8FE3AB +8FE3BC +8FE3C1 +8FE3BF +8FE3D5 +8FE3D8 +8FE3D6 +8FE3DF +8FE3E3 +8FE3E1 +8FE3D4 +8FE3E9 +8FE4A6 +8FE3F1 +8FE3F2 +8FE4CB +8FE4C1 +8FE4C3 +8FE4BE +8FF4EF +8FE4C0 +8FE4C7 +8FE4BF +8FE4E0 +8FE4DE +8FE4D1 +8FF4F0 +8FE4DC +8FE4D2 +8FE4DB +8FE4D4 +8FE4FA +8FE4EF +8FE5B3 +8FE5BF +8FE5C9 +8FE5D0 +8FE5E2 +8FE5EA +8FE5EB +8FF4F1 +8FF4F2 +8FF4F3 +8FE6E8 +8FE6EF +8FE7AC +8FF4F4 +8FE7AE +8FF4F5 +8FE7B1 +8FF4F6 +8FE7B2 +8FE8B1 +8FE8B6 +8FF4F7 +8FF4F8 +8FE8DD +8FF4F9 +8FF4FA +8FE9D1 +8FF4FB +8FE9ED +8FEACD +8FF4FC +8FEADB +8FEAE6 +8FEAEA +8FEBA5 +8FEBFB +8FEBFA +8FF4FD +8FECD6 +8FF4FE +8FF3F3 +8FF3F4 +8FF3F5 +8FF3F6 +8FF3F7 +8FF3F8 +8FF3F9 +8FF3FA +8FF3FB +8FF3FC +A2CC +8FA2C3 +8FF4A9 +8FF4AA +8FF3F3 +8FF3F4 +8FF3F5 +8FF3F6 +8FF3F7 +8FF3F8 +8FF3F9 +8FF3FA +8FF3FB +8FF3FC +ADB5 +ADB6 +ADB7 +ADB8 +ADB9 +ADBA +ADBB +ADBC +ADBD +ADBE +A2CC +8FA2C3 +8FF4A9 +8FF4AA +ADEA +ADE2 +ADE4 +A2E8 +8FD4E3 +8FDCDF +8FE4E9 +8FE3F8 +8FD9A1 +8FB1BB +8FF4AE +8FC2AD +8FC3FC +8FE4D0 +8FC2BF +8FBCF4 +8FB0A9 +8FB0C8 +8FF4AF +8FB0D2 +8FB0D4 +8FB0E3 +8FB0EE +8FB1A7 +8FB1A3 +8FB1AC +8FB1A9 +8FB1BE +8FB1DF +8FB1D8 +8FB1C8 +8FB1D7 +8FB1E3 +8FB1F4 +8FB1E1 +8FB2A3 +8FF4B0 +8FB2BB +8FB2E6 +8FB2ED +8FB2F5 +8FB2FC +8FF4B1 +8FB3B5 +8FB3D8 +8FB3DB +8FB3E5 +8FB3EE +8FB3FB +8FF4B2 +8FF4B3 +8FB4C0 +8FB4C7 +8FB4D0 +8FB4DE +8FF4B4 +8FB5AA +8FF4B5 +8FB5AF +8FB5C4 +8FB5E8 +8FF4B6 +8FB7C2 +8FB7E4 +8FB7E8 +8FB7E7 +8FF4B7 +8FF4B8 +8FF4B9 +8FB8CE +8FB8E1 +8FB8F5 +8FB8F7 +8FB8F8 +8FB8FC +8FB9AF +8FB9B7 +8FBABE +8FBADB +8FCDAA +8FBAE1 +8FF4BA +8FBAEB +8FBBB3 +8FBBB8 +8FF4BB +8FBBCA +8FF4BC +8FF4BD +8FBBD0 +8FBBDE +8FBBF4 +8FBBF5 +8FBBF9 +8FBCE4 +8FBCED +8FBCFE +8FF4BE +8FBDC2 +8FBDE7 +8FF4BF +8FBDF0 +8FBEB0 +8FBEAC +8FF4C0 +8FBEB3 +8FBEBD +8FBECD +8FBEC9 +8FBEE4 +8FBFA8 +8FBFC9 +8FC0C4 +8FC0E4 +8FC0F4 +8FC1A6 +8FF4C1 +8FC1F5 +8FC1FC +8FF4C2 +8FC1F8 +8FC2AB +8FC2A1 +8FC2A5 +8FF4C3 +8FC2B8 +8FC2BA +8FF4C4 +8FC2C4 +8FC2D2 +8FC2D7 +8FC2DB +8FC2DE +8FC2ED +8FC2F0 +8FF4C5 +8FC3A1 +8FC3B5 +8FC3C9 +8FC3B9 +8FF4C6 +8FC3D8 +8FC3FE +8FF4C7 +8FC4CC +8FF4C8 +8FC4D9 +8FC4EA +8FC4FD +8FF4C9 +8FC5A7 +8FC5B5 +8FC5B6 +8FF4CA +8FC5D5 +8FC6B8 +8FC6D7 +8FC6E0 +8FC6EA +8FC6E3 +8FC7A1 +8FC7AB +8FC7C7 +8FC7C3 +8FC7CB +8FC7CF +8FC7D9 +8FF4CB +8FF4CC +8FC7E6 +8FC7EE +8FC7FC +8FC7EB +8FC7F0 +8FC8B1 +8FC8E5 +8FC8F8 +8FC9A6 +8FC9AB +8FC9AD +8FF4CD +8FC9CA +8FC9D3 +8FC9E9 +8FC9E3 +8FC9FC +8FC9F4 +8FC9F5 +8FF4CE +8FCAB3 +8FCABD +8FCAEF +8FCAF1 +8FCBAE +8FF4CF +8FCBCA +8FCBE6 +8FCBEA +8FCBF0 +8FCBF4 +8FCBEE +8FCCA5 +8FCBF9 +8FCCAB +8FCCAE +8FCCAD +8FCCB2 +8FCCC2 +8FCCD0 +8FCCD9 +8FF4D0 +8FCDBB +8FF4D1 +8FCEBB +8FF4D2 +8FCEBA +8FCEC3 +8FF4D3 +8FCEF2 +8FB3DD +8FCFD5 +8FCFE2 +8FCFE9 +8FCFED +8FF4D4 +8FF4D5 +8FF4D6 +8FF4D7 +8FD0E5 +8FF4D8 +8FD0E9 +8FD1E8 +8FF4D9 +8FF4DA +8FD1EC +8FD2BB +8FF4DB +8FD3E1 +8FD3E8 +8FD4A7 +8FF4DC +8FF4DD +8FD4D4 +8FD4F2 +8FD5AE +8FF4DE +8FD7DE +8FF4DF +8FD8A2 +8FD8B7 +8FD8C1 +8FD8D1 +8FD8F4 +8FD9C6 +8FD9C8 +8FD9D1 +8FF4E0 +8FF4E1 +8FF4E2 +8FF4E3 +8FF4E4 +8FDCD3 +8FDDC8 +8FDDD4 +8FDDEA +8FDDFA +8FDEA4 +8FDEB0 +8FF4E5 +8FDEB5 +8FDECB +8FF4E6 +8FDFB9 +8FF4E7 +8FDFC3 +8FF4E8 +8FF4E9 +8FE0D9 +8FF4EA +8FF4EB +8FE1E2 +8FF4EC +8FF4ED +8FF4EE +8FE2C7 +8FE3A8 +8FE3A6 +8FE3A9 +8FE3AF +8FE3B0 +8FE3AA +8FE3AB +8FE3BC +8FE3C1 +8FE3BF +8FE3D5 +8FE3D8 +8FE3D6 +8FE3DF +8FE3E3 +8FE3E1 +8FE3D4 +8FE3E9 +8FE4A6 +8FE3F1 +8FE3F2 +8FE4CB +8FE4C1 +8FE4C3 +8FE4BE +8FF4EF +8FE4C0 +8FE4C7 +8FE4BF +8FE4E0 +8FE4DE +8FE4D1 +8FF4F0 +8FE4DC +8FE4D2 +8FE4DB +8FE4D4 +8FE4FA +8FE4EF +8FE5B3 +8FE5BF +8FE5C9 +8FE5D0 +8FE5E2 +8FE5EA +8FE5EB +8FF4F1 +8FF4F2 +8FF4F3 +8FE6E8 +8FE6EF +8FE7AC +8FF4F4 +8FE7AE +8FF4F5 +8FE7B1 +8FF4F6 +8FE7B2 +8FE8B1 +8FE8B6 +8FF4F7 +8FF4F8 +8FE8DD +8FF4F9 +8FF4FA +8FE9D1 +8FF4FB +8FE9ED +8FEACD +8FF4FC +8FEADB +8FEAE6 +8FEAEA +8FEBA5 +8FEBFB +8FEBFA +8FF4FD +8FECD6 +8FF4FE +F5A1 +F5A2 +F5A3 +F5A4 +F5A5 +F5A6 +F5A7 +F5A8 +F5A9 +F5AA +F5AB +F5AC +F5AD +F5AE +F5AF +F5B0 +F5B1 +F5B2 +F5B3 +F5B4 +F5B5 +F5B6 +F5B7 +F5B8 +F5B9 +F5BA +F5BB +F5BC +F5BD +F5BE +F5BF +F5C0 +F5C1 +F5C2 +F5C3 +F5C4 +F5C5 +F5C6 +F5C7 +F5C8 +F5C9 +F5CA +F5CB +F5CC +F5CD +F5CE +F5CF +F5D0 +F5D1 +F5D2 +F5D3 +F5D4 +F5D5 +F5D6 +F5D7 +F5D8 +F5D9 +F5DA +F5DB +F5DC +F5DD +F5DE +F5DF +F5E0 +F5E1 +F5E2 +F5E3 +F5E4 +F5E5 +F5E6 +F5E7 +F5E8 +F5E9 +F5EA +F5EB +F5EC +F5ED +F5EE +F5EF +F5F0 +F5F1 +F5F2 +F5F3 +F5F4 +F5F5 +F5F6 +F5F7 +F5F8 +F5F9 +F5FA +F5FB +F5FC +F5FD +F5FE +F6A1 +F6A2 +F6A3 +F6A4 +F6A5 +F6A6 +F6A7 +F6A8 +F6A9 +F6AA +F6AB +F6AC +F6AD +F6AE +F6AF +F6B0 +F6B1 +F6B2 +F6B3 +F6B4 +F6B5 +F6B6 +F6B7 +F6B8 +F6B9 +F6BA +F6BB +F6BC +F6BD +F6BE +F6BF +F6C0 +F6C1 +F6C2 +F6C3 +F6C4 +F6C5 +F6C6 +F6C7 +F6C8 +F6C9 +F6CA +F6CB +F6CC +F6CD +F6CE +F6CF +F6D0 +F6D1 +F6D2 +F6D3 +F6D4 +F6D5 +F6D6 +F6D7 +F6D8 +F6D9 +F6DA +F6DB +F6DC +F6DD +F6DE +F6DF +F6E0 +F6E1 +F6E2 +F6E3 +F6E4 +F6E5 +F6E6 +F6E7 +F6E8 +F6E9 +F6EA +F6EB +F6EC +F6ED +F6EE +F6EF +F6F0 +F6F1 +F6F2 +F6F3 +F6F4 +F6F5 +F6F6 +F6F7 +F6F8 +F6F9 +F6FA +F6FB +F6FC +F6FD +F6FE +F7A1 +F7A2 +F7A3 +F7A4 +F7A5 +F7A6 +F7A7 +F7A8 +F7A9 +F7AA +F7AB +F7AC +F7AD +F7AE +F7AF +F7B0 +F7B1 +F7B2 +F7B3 +F7B4 +F7B5 +F7B6 +F7B7 +F7B8 +F7B9 +F7BA +F7BB +F7BC +F7BD +F7BE +F7BF +F7C0 +F7C1 +F7C2 +F7C3 +F7C4 +F7C5 +F7C6 +F7C7 +F7C8 +F7C9 +F7CA +F7CB +F7CC +F7CD +F7CE +F7CF +F7D0 +F7D1 +F7D2 +F7D3 +F7D4 +F7D5 +F7D6 +F7D7 +F7D8 +F7D9 +F7DA +F7DB +F7DC +F7DD +F7DE +F7DF +F7E0 +F7E1 +F7E2 +F7E3 +F7E4 +F7E5 +F7E6 +F7E7 +F7E8 +F7E9 +F7EA +F7EB +F7EC +F7ED +F7EE +F7EF +F7F0 +F7F1 +F7F2 +F7F3 +F7F4 +F7F5 +F7F6 +F7F7 +F7F8 +F7F9 +F7FA +F7FB +F7FC +F7FD +F7FE +F8A1 +F8A2 +F8A3 +F8A4 +F8A5 +F8A6 +F8A7 +F8A8 +F8A9 +F8AA +F8AB +F8AC +F8AD +F8AE +F8AF +F8B0 +F8B1 +F8B2 +F8B3 +F8B4 +F8B5 +F8B6 +F8B7 +F8B8 +F8B9 +F8BA +F8BB +F8BC +F8BD +F8BE +F8BF +F8C0 +F8C1 +F8C2 +F8C3 +F8C4 +F8C5 +F8C6 +F8C7 +F8C8 +F8C9 +F8CA +F8CB +F8CC +F8CD +F8CE +F8CF +F8D0 +F8D1 +F8D2 +F8D3 +F8D4 +F8D5 +F8D6 +F8D7 +F8D8 +F8D9 +F8DA +F8DB +F8DC +F8DD +F8DE +F8DF +F8E0 +F8E1 +F8E2 +F8E3 +F8E4 +F8E5 +F8E6 +F8E7 +F8E8 +F8E9 +F8EA +F8EB +F8EC +F8ED +F8EE +F8EF +F8F0 +F8F1 +F8F2 +F8F3 +F8F4 +F8F5 +F8F6 +F8F7 +F8F8 +F8F9 +F8FA +F8FB +F8FC +F8FD +F8FE +F9A1 +F9A2 +F9A3 +F9A4 +F9A5 +F9A6 +F9A7 +F9A8 +F9A9 +F9AA +F9AB +F9AC +F9AD +F9AE +F9AF +F9B0 +F9B1 +F9B2 +F9B3 +F9B4 +F9B5 +F9B6 +F9B7 +F9B8 +F9B9 +F9BA +F9BB +F9BC +F9BD +F9BE +F9BF +F9C0 +F9C1 +F9C2 +F9C3 +F9C4 +F9C5 +F9C6 +F9C7 +F9C8 +F9C9 +F9CA +F9CB +F9CC +F9CD +F9CE +F9CF +F9D0 +F9D1 +F9D2 +F9D3 +F9D4 +F9D5 +F9D6 +F9D7 +F9D8 +F9D9 +F9DA +F9DB +F9DC +F9DD +F9DE +F9DF +F9E0 +F9E1 +F9E2 +F9E3 +F9E4 +F9E5 +F9E6 +F9E7 +F9E8 +F9E9 +F9EA +F9EB +F9EC +F9ED +F9EE +F9EF +F9F0 +F9F1 +F9F2 +F9F3 +F9F4 +F9F5 +F9F6 +F9F7 +F9F8 +F9F9 +F9FA +F9FB +F9FC +F9FD +F9FE +FAA1 +FAA2 +FAA3 +FAA4 +FAA5 +FAA6 +FAA7 +FAA8 +FAA9 +FAAA +FAAB +FAAC +FAAD +FAAE +FAAF +FAB0 +FAB1 +FAB2 +FAB3 +FAB4 +FAB5 +FAB6 +FAB7 +FAB8 +FAB9 +FABA +FABB +FABC +FABD +FABE +FABF +FAC0 +FAC1 +FAC2 +FAC3 +FAC4 +FAC5 +FAC6 +FAC7 +FAC8 +FAC9 +FACA +FACB +FACC +FACD +FACE +FACF +FAD0 +FAD1 +FAD2 +FAD3 +FAD4 +FAD5 +FAD6 +FAD7 +FAD8 +FAD9 +FADA +FADB +FADC +FADD +FADE +FADF +FAE0 +FAE1 +FAE2 +FAE3 +FAE4 +FAE5 +FAE6 +FAE7 +FAE8 +FAE9 +FAEA +FAEB +FAEC +FAED +FAEE +FAEF +FAF0 +FAF1 +FAF2 +FAF3 +FAF4 +FAF5 +FAF6 +FAF7 +FAF8 +FAF9 +FAFA +FAFB +FAFC +FAFD +FAFE +FBA1 +FBA2 +FBA3 +FBA4 +FBA5 +FBA6 +FBA7 +FBA8 +FBA9 +FBAA +FBAB +FBAC +FBAD +FBAE +FBAF +FBB0 +FBB1 +FBB2 +FBB3 +FBB4 +FBB5 +FBB6 +FBB7 +FBB8 +FBB9 +FBBA +FBBB +FBBC +FBBD +FBBE +FBBF +FBC0 +FBC1 +FBC2 +FBC3 +FBC4 +FBC5 +FBC6 +FBC7 +FBC8 +FBC9 +FBCA +FBCB +FBCC +FBCD +FBCE +FBCF +FBD0 +FBD1 +FBD2 +FBD3 +FBD4 +FBD5 +FBD6 +FBD7 +FBD8 +FBD9 +FBDA +FBDB +FBDC +FBDD +FBDE +FBDF +FBE0 +FBE1 +FBE2 +FBE3 +FBE4 +FBE5 +FBE6 +FBE7 +FBE8 +FBE9 +FBEA +FBEB +FBEC +FBED +FBEE +FBEF +FBF0 +FBF1 +FBF2 +FBF3 +FBF4 +FBF5 +FBF6 +FBF7 +FBF8 +FBF9 +FBFA +FBFB +FBFC +FBFD +FBFE +FCA1 +FCA2 +FCA3 +FCA4 +FCA5 +FCA6 +FCA7 +FCA8 +FCA9 +FCAA +FCAB +FCAC +FCAD +FCAE +FCAF +FCB0 +FCB1 +FCB2 +FCB3 +FCB4 +FCB5 +FCB6 +FCB7 +FCB8 +FCB9 +FCBA +FCBB +FCBC +FCBD +FCBE +FCBF +FCC0 +FCC1 +FCC2 +FCC3 +FCC4 +FCC5 +FCC6 +FCC7 +FCC8 +FCC9 +FCCA +FCCB +FCCC +FCCD +FCCE +FCCF +FCD0 +FCD1 +FCD2 +FCD3 +FCD4 +FCD5 +FCD6 +FCD7 +FCD8 +FCD9 +FCDA +FCDB +FCDC +FCDD +FCDE +FCDF +FCE0 +FCE1 +FCE2 +FCE3 +FCE4 +FCE5 +FCE6 +FCE7 +FCE8 +FCE9 +FCEA +FCEB +FCEC +FCED +FCEE +FCEF +FCF0 +FCF1 +FCF2 +FCF3 +FCF4 +FCF5 +FCF6 +FCF7 +FCF8 +FCF9 +FCFA +FCFB +FCFC +FCFD +FCFE +FDA1 +FDA2 +FDA3 +FDA4 +FDA5 +FDA6 +FDA7 +FDA8 +FDA9 +FDAA +FDAB +FDAC +FDAD +FDAE +FDAF +FDB0 +FDB1 +FDB2 +FDB3 +FDB4 +FDB5 +FDB6 +FDB7 +FDB8 +FDB9 +FDBA +FDBB +FDBC +FDBD +FDBE +FDBF +FDC0 +FDC1 +FDC2 +FDC3 +FDC4 +FDC5 +FDC6 +FDC7 +FDC8 +FDC9 +FDCA +FDCB +FDCC +FDCD +FDCE +FDCF +FDD0 +FDD1 +FDD2 +FDD3 +FDD4 +FDD5 +FDD6 +FDD7 +FDD8 +FDD9 +FDDA +FDDB +FDDC +FDDD +FDDE +FDDF +FDE0 +FDE1 +FDE2 +FDE3 +FDE4 +FDE5 +FDE6 +FDE7 +FDE8 +FDE9 +FDEA +FDEB +FDEC +FDED +FDEE +FDEF +FDF0 +FDF1 +FDF2 +FDF3 +FDF4 +FDF5 +FDF6 +FDF7 +FDF8 +FDF9 +FDFA +FDFB +FDFC +FDFD +FDFE +FEA1 +FEA2 +FEA3 +FEA4 +FEA5 +FEA6 +FEA7 +FEA8 +FEA9 +FEAA +FEAB +FEAC +FEAD +FEAE +FEAF +FEB0 +FEB1 +FEB2 +FEB3 +FEB4 +FEB5 +FEB6 +FEB7 +FEB8 +FEB9 +FEBA +FEBB +FEBC +FEBD +FEBE +FEBF +FEC0 +FEC1 +FEC2 +FEC3 +FEC4 +FEC5 +FEC6 +FEC7 +FEC8 +FEC9 +FECA +FECB +FECC +FECD +FECE +FECF +FED0 +FED1 +FED2 +FED3 +FED4 +FED5 +FED6 +FED7 +FED8 +FED9 +FEDA +FEDB +FEDC +FEDD +FEDE +FEDF +FEE0 +FEE1 +FEE2 +FEE3 +FEE4 +FEE5 +FEE6 +FEE7 +FEE8 +FEE9 +FEEA +FEEB +FEEC +FEED +FEEE +FEEF +FEF0 +FEF1 +FEF2 +FEF3 +FEF4 +FEF5 +FEF6 +FEF7 +FEF8 +FEF9 +FEFA +FEFB +FEFC +FEFD +FEFE +8FF5A1 +8FF5A2 +8FF5A3 +8FF5A4 +8FF5A5 +8FF5A6 +8FF5A7 +8FF5A8 +8FF5A9 +8FF5AA +8FF5AB +8FF5AC +8FF5AD +8FF5AE +8FF5AF +8FF5B0 +8FF5B1 +8FF5B2 +8FF5B3 +8FF5B4 +8FF5B5 +8FF5B6 +8FF5B7 +8FF5B8 +8FF5B9 +8FF5BA +8FF5BB +8FF5BC +8FF5BD +8FF5BE +8FF5BF +8FF5C0 +8FF5C1 +8FF5C2 +8FF5C3 +8FF5C4 +8FF5C5 +8FF5C6 +8FF5C7 +8FF5C8 +8FF5C9 +8FF5CA +8FF5CB +8FF5CC +8FF5CD +8FF5CE +8FF5CF +8FF5D0 +8FF5D1 +8FF5D2 +8FF5D3 +8FF5D4 +8FF5D5 +8FF5D6 +8FF5D7 +8FF5D8 +8FF5D9 +8FF5DA +8FF5DB +8FF5DC +8FF5DD +8FF5DE +8FF5DF +8FF5E0 +8FF5E1 +8FF5E2 +8FF5E3 +8FF5E4 +8FF5E5 +8FF5E6 +8FF5E7 +8FF5E8 +8FF5E9 +8FF5EA +8FF5EB +8FF5EC +8FF5ED +8FF5EE +8FF5EF +8FF5F0 +8FF5F1 +8FF5F2 +8FF5F3 +8FF5F4 +8FF5F5 +8FF5F6 +8FF5F7 +8FF5F8 +8FF5F9 +8FF5FA +8FF5FB +8FF5FC +8FF5FD +8FF5FE +8FF6A1 +8FF6A2 +8FF6A3 +8FF6A4 +8FF6A5 +8FF6A6 +8FF6A7 +8FF6A8 +8FF6A9 +8FF6AA +8FF6AB +8FF6AC +8FF6AD +8FF6AE +8FF6AF +8FF6B0 +8FF6B1 +8FF6B2 +8FF6B3 +8FF6B4 +8FF6B5 +8FF6B6 +8FF6B7 +8FF6B8 +8FF6B9 +8FF6BA +8FF6BB +8FF6BC +8FF6BD +8FF6BE +8FF6BF +8FF6C0 +8FF6C1 +8FF6C2 +8FF6C3 +8FF6C4 +8FF6C5 +8FF6C6 +8FF6C7 +8FF6C8 +8FF6C9 +8FF6CA +8FF6CB +8FF6CC +8FF6CD +8FF6CE +8FF6CF +8FF6D0 +8FF6D1 +8FF6D2 +8FF6D3 +8FF6D4 +8FF6D5 +8FF6D6 +8FF6D7 +8FF6D8 +8FF6D9 +8FF6DA +8FF6DB +8FF6DC +8FF6DD +8FF6DE +8FF6DF +8FF6E0 +8FF6E1 +8FF6E2 +8FF6E3 +8FF6E4 +8FF6E5 +8FF6E6 +8FF6E7 +8FF6E8 +8FF6E9 +8FF6EA +8FF6EB +8FF6EC +8FF6ED +8FF6EE +8FF6EF +8FF6F0 +8FF6F1 +8FF6F2 +8FF6F3 +8FF6F4 +8FF6F5 +8FF6F6 +8FF6F7 +8FF6F8 +8FF6F9 +8FF6FA +8FF6FB +8FF6FC +8FF6FD +8FF6FE +8FF7A1 +8FF7A2 +8FF7A3 +8FF7A4 +8FF7A5 +8FF7A6 +8FF7A7 +8FF7A8 +8FF7A9 +8FF7AA +8FF7AB +8FF7AC +8FF7AD +8FF7AE +8FF7AF +8FF7B0 +8FF7B1 +8FF7B2 +8FF7B3 +8FF7B4 +8FF7B5 +8FF7B6 +8FF7B7 +8FF7B8 +8FF7B9 +8FF7BA +8FF7BB +8FF7BC +8FF7BD +8FF7BE +8FF7BF +8FF7C0 +8FF7C1 +8FF7C2 +8FF7C3 +8FF7C4 +8FF7C5 +8FF7C6 +8FF7C7 +8FF7C8 +8FF7C9 +8FF7CA +8FF7CB +8FF7CC +8FF7CD +8FF7CE +8FF7CF +8FF7D0 +8FF7D1 +8FF7D2 +8FF7D3 +8FF7D4 +8FF7D5 +8FF7D6 +8FF7D7 +8FF7D8 +8FF7D9 +8FF7DA +8FF7DB +8FF7DC +8FF7DD +8FF7DE +8FF7DF +8FF7E0 +8FF7E1 +8FF7E2 +8FF7E3 +8FF7E4 +8FF7E5 +8FF7E6 +8FF7E7 +8FF7E8 +8FF7E9 +8FF7EA +8FF7EB +8FF7EC +8FF7ED +8FF7EE +8FF7EF +8FF7F0 +8FF7F1 +8FF7F2 +8FF7F3 +8FF7F4 +8FF7F5 +8FF7F6 +8FF7F7 +8FF7F8 +8FF7F9 +8FF7FA +8FF7FB +8FF7FC +8FF7FD +8FF7FE +8FF8A1 +8FF8A2 +8FF8A3 +8FF8A4 +8FF8A5 +8FF8A6 +8FF8A7 +8FF8A8 +8FF8A9 +8FF8AA +8FF8AB +8FF8AC +8FF8AD +8FF8AE +8FF8AF +8FF8B0 +8FF8B1 +8FF8B2 +8FF8B3 +8FF8B4 +8FF8B5 +8FF8B6 +8FF8B7 +8FF8B8 +8FF8B9 +8FF8BA +8FF8BB +8FF8BC +8FF8BD +8FF8BE +8FF8BF +8FF8C0 +8FF8C1 +8FF8C2 +8FF8C3 +8FF8C4 +8FF8C5 +8FF8C6 +8FF8C7 +8FF8C8 +8FF8C9 +8FF8CA +8FF8CB +8FF8CC +8FF8CD +8FF8CE +8FF8CF +8FF8D0 +8FF8D1 +8FF8D2 +8FF8D3 +8FF8D4 +8FF8D5 +8FF8D6 +8FF8D7 +8FF8D8 +8FF8D9 +8FF8DA +8FF8DB +8FF8DC +8FF8DD +8FF8DE +8FF8DF +8FF8E0 +8FF8E1 +8FF8E2 +8FF8E3 +8FF8E4 +8FF8E5 +8FF8E6 +8FF8E7 +8FF8E8 +8FF8E9 +8FF8EA +8FF8EB +8FF8EC +8FF8ED +8FF8EE +8FF8EF +8FF8F0 +8FF8F1 +8FF8F2 +8FF8F3 +8FF8F4 +8FF8F5 +8FF8F6 +8FF8F7 +8FF8F8 +8FF8F9 +8FF8FA +8FF8FB +8FF8FC +8FF8FD +8FF8FE +8FF9A1 +8FF9A2 +8FF9A3 +8FF9A4 +8FF9A5 +8FF9A6 +8FF9A7 +8FF9A8 +8FF9A9 +8FF9AA +8FF9AB +8FF9AC +8FF9AD +8FF9AE +8FF9AF +8FF9B0 +8FF9B1 +8FF9B2 +8FF9B3 +8FF9B4 +8FF9B5 +8FF9B6 +8FF9B7 +8FF9B8 +8FF9B9 +8FF9BA +8FF9BB +8FF9BC +8FF9BD +8FF9BE +8FF9BF +8FF9C0 +8FF9C1 +8FF9C2 +8FF9C3 +8FF9C4 +8FF9C5 +8FF9C6 +8FF9C7 +8FF9C8 +8FF9C9 +8FF9CA +8FF9CB +8FF9CC +8FF9CD +8FF9CE +8FF9CF +8FF9D0 +8FF9D1 +8FF9D2 +8FF9D3 +8FF9D4 +8FF9D5 +8FF9D6 +8FF9D7 +8FF9D8 +8FF9D9 +8FF9DA +8FF9DB +8FF9DC +8FF9DD +8FF9DE +8FF9DF +8FF9E0 +8FF9E1 +8FF9E2 +8FF9E3 +8FF9E4 +8FF9E5 +8FF9E6 +8FF9E7 +8FF9E8 +8FF9E9 +8FF9EA +8FF9EB +8FF9EC +8FF9ED +8FF9EE +8FF9EF +8FF9F0 +8FF9F1 +8FF9F2 +8FF9F3 +8FF9F4 +8FF9F5 +8FF9F6 +8FF9F7 +8FF9F8 +8FF9F9 +8FF9FA +8FF9FB +8FF9FC +8FF9FD +8FF9FE +8FFAA1 +8FFAA2 +8FFAA3 +8FFAA4 +8FFAA5 +8FFAA6 +8FFAA7 +8FFAA8 +8FFAA9 +8FFAAA +8FFAAB +8FFAAC +8FFAAD +8FFAAE +8FFAAF +8FFAB0 +8FFAB1 +8FFAB2 +8FFAB3 +8FFAB4 +8FFAB5 +8FFAB6 +8FFAB7 +8FFAB8 +8FFAB9 +8FFABA +8FFABB +8FFABC +8FFABD +8FFABE +8FFABF +8FFAC0 +8FFAC1 +8FFAC2 +8FFAC3 +8FFAC4 +8FFAC5 +8FFAC6 +8FFAC7 +8FFAC8 +8FFAC9 +8FFACA +8FFACB +8FFACC +8FFACD +8FFACE +8FFACF +8FFAD0 +8FFAD1 +8FFAD2 +8FFAD3 +8FFAD4 +8FFAD5 +8FFAD6 +8FFAD7 +8FFAD8 +8FFAD9 +8FFADA +8FFADB +8FFADC +8FFADD +8FFADE +8FFADF +8FFAE0 +8FFAE1 +8FFAE2 +8FFAE3 +8FFAE4 +8FFAE5 +8FFAE6 +8FFAE7 +8FFAE8 +8FFAE9 +8FFAEA +8FFAEB +8FFAEC +8FFAED +8FFAEE +8FFAEF +8FFAF0 +8FFAF1 +8FFAF2 +8FFAF3 +8FFAF4 +8FFAF5 +8FFAF6 +8FFAF7 +8FFAF8 +8FFAF9 +8FFAFA +8FFAFB +8FFAFC +8FFAFD +8FFAFE +8FFBA1 +8FFBA2 +8FFBA3 +8FFBA4 +8FFBA5 +8FFBA6 +8FFBA7 +8FFBA8 +8FFBA9 +8FFBAA +8FFBAB +8FFBAC +8FFBAD +8FFBAE +8FFBAF +8FFBB0 +8FFBB1 +8FFBB2 +8FFBB3 +8FFBB4 +8FFBB5 +8FFBB6 +8FFBB7 +8FFBB8 +8FFBB9 +8FFBBA +8FFBBB +8FFBBC +8FFBBD +8FFBBE +8FFBBF +8FFBC0 +8FFBC1 +8FFBC2 +8FFBC3 +8FFBC4 +8FFBC5 +8FFBC6 +8FFBC7 +8FFBC8 +8FFBC9 +8FFBCA +8FFBCB +8FFBCC +8FFBCD +8FFBCE +8FFBCF +8FFBD0 +8FFBD1 +8FFBD2 +8FFBD3 +8FFBD4 +8FFBD5 +8FFBD6 +8FFBD7 +8FFBD8 +8FFBD9 +8FFBDA +8FFBDB +8FFBDC +8FFBDD +8FFBDE +8FFBDF +8FFBE0 +8FFBE1 +8FFBE2 +8FFBE3 +8FFBE4 +8FFBE5 +8FFBE6 +8FFBE7 +8FFBE8 +8FFBE9 +8FFBEA +8FFBEB +8FFBEC +8FFBED +8FFBEE +8FFBEF +8FFBF0 +8FFBF1 +8FFBF2 +8FFBF3 +8FFBF4 +8FFBF5 +8FFBF6 +8FFBF7 +8FFBF8 +8FFBF9 +8FFBFA +8FFBFB +8FFBFC +8FFBFD +8FFBFE +8FFCA1 +8FFCA2 +8FFCA3 +8FFCA4 +8FFCA5 +8FFCA6 +8FFCA7 +8FFCA8 +8FFCA9 +8FFCAA +8FFCAB +8FFCAC +8FFCAD +8FFCAE +8FFCAF +8FFCB0 +8FFCB1 +8FFCB2 +8FFCB3 +8FFCB4 +8FFCB5 +8FFCB6 +8FFCB7 +8FFCB8 +8FFCB9 +8FFCBA +8FFCBB +8FFCBC +8FFCBD +8FFCBE +8FFCBF +8FFCC0 +8FFCC1 +8FFCC2 +8FFCC3 +8FFCC4 +8FFCC5 +8FFCC6 +8FFCC7 +8FFCC8 +8FFCC9 +8FFCCA +8FFCCB +8FFCCC +8FFCCD +8FFCCE +8FFCCF +8FFCD0 +8FFCD1 +8FFCD2 +8FFCD3 +8FFCD4 +8FFCD5 +8FFCD6 +8FFCD7 +8FFCD8 +8FFCD9 +8FFCDA +8FFCDB +8FFCDC +8FFCDD +8FFCDE +8FFCDF +8FFCE0 +8FFCE1 +8FFCE2 +8FFCE3 +8FFCE4 +8FFCE5 +8FFCE6 +8FFCE7 +8FFCE8 +8FFCE9 +8FFCEA +8FFCEB +8FFCEC +8FFCED +8FFCEE +8FFCEF +8FFCF0 +8FFCF1 +8FFCF2 +8FFCF3 +8FFCF4 +8FFCF5 +8FFCF6 +8FFCF7 +8FFCF8 +8FFCF9 +8FFCFA +8FFCFB +8FFCFC +8FFCFD +8FFCFE +8FFDA1 +8FFDA2 +8FFDA3 +8FFDA4 +8FFDA5 +8FFDA6 +8FFDA7 +8FFDA8 +8FFDA9 +8FFDAA +8FFDAB +8FFDAC +8FFDAD +8FFDAE +8FFDAF +8FFDB0 +8FFDB1 +8FFDB2 +8FFDB3 +8FFDB4 +8FFDB5 +8FFDB6 +8FFDB7 +8FFDB8 +8FFDB9 +8FFDBA +8FFDBB +8FFDBC +8FFDBD +8FFDBE +8FFDBF +8FFDC0 +8FFDC1 +8FFDC2 +8FFDC3 +8FFDC4 +8FFDC5 +8FFDC6 +8FFDC7 +8FFDC8 +8FFDC9 +8FFDCA +8FFDCB +8FFDCC +8FFDCD +8FFDCE +8FFDCF +8FFDD0 +8FFDD1 +8FFDD2 +8FFDD3 +8FFDD4 +8FFDD5 +8FFDD6 +8FFDD7 +8FFDD8 +8FFDD9 +8FFDDA +8FFDDB +8FFDDC +8FFDDD +8FFDDE +8FFDDF +8FFDE0 +8FFDE1 +8FFDE2 +8FFDE3 +8FFDE4 +8FFDE5 +8FFDE6 +8FFDE7 +8FFDE8 +8FFDE9 +8FFDEA +8FFDEB +8FFDEC +8FFDED +8FFDEE +8FFDEF +8FFDF0 +8FFDF1 +8FFDF2 +8FFDF3 +8FFDF4 +8FFDF5 +8FFDF6 +8FFDF7 +8FFDF8 +8FFDF9 +8FFDFA +8FFDFB +8FFDFC +8FFDFD +8FFDFE +8FFEA1 +8FFEA2 +8FFEA3 +8FFEA4 +8FFEA5 +8FFEA6 +8FFEA7 +8FFEA8 +8FFEA9 +8FFEAA +8FFEAB +8FFEAC +8FFEAD +8FFEAE +8FFEAF +8FFEB0 +8FFEB1 +8FFEB2 +8FFEB3 +8FFEB4 +8FFEB5 +8FFEB6 +8FFEB7 +8FFEB8 +8FFEB9 +8FFEBA +8FFEBB +8FFEBC +8FFEBD +8FFEBE +8FFEBF +8FFEC0 +8FFEC1 +8FFEC2 +8FFEC3 +8FFEC4 +8FFEC5 +8FFEC6 +8FFEC7 +8FFEC8 +8FFEC9 +8FFECA +8FFECB +8FFECC +8FFECD +8FFECE +8FFECF +8FFED0 +8FFED1 +8FFED2 +8FFED3 +8FFED4 +8FFED5 +8FFED6 +8FFED7 +8FFED8 +8FFED9 +8FFEDA +8FFEDB +8FFEDC +8FFEDD +8FFEDE +8FFEDF +8FFEE0 +8FFEE1 +8FFEE2 +8FFEE3 +8FFEE4 +8FFEE5 +8FFEE6 +8FFEE7 +8FFEE8 +8FFEE9 +8FFEEA +8FFEEB +8FFEEC +8FFEED +8FFEEE +8FFEEF +8FFEF0 +8FFEF1 +8FFEF2 +8FFEF3 +8FFEF4 +8FFEF5 +8FFEF6 +8FFEF7 +8FFEF8 +8FFEF9 +8FFEFA +8FFEFB +8FFEFC +8FFEFD +8FFEFE +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; +SET collation_connection='cp932_japanese_ci'; +create table t1 select repeat('a',4000) a; +delete from t1; +insert into t1 values ('a'), ('a '), ('a\t'); +select collation(a),hex(a) from t1 order by a; +collation(a) hex(a) +cp932_japanese_ci 6109 +cp932_japanese_ci 61 +cp932_japanese_ci 6120 +drop table t1; +# +# MDEV-5453 Assertion `src' fails in my_strnxfrm_unicode on GROUP BY MID(..) WITH ROLLUP +# +SELECT @@collation_connection; +@@collation_connection +cp932_japanese_ci +CREATE TABLE t1 (i INT) ENGINE=MyISAM; +INSERT INTO t1 VALUES (1),(2); +SELECT * FROM t1 GROUP BY MID(CURRENT_USER,0) WITH ROLLUP; +i +1 +1 +SELECT * FROM t1 GROUP BY MID('test',0) WITH ROLLUP; +i +1 +1 +DROP TABLE t1; +# +# MDEV-6170 Incorrect ordering with utf8_bin and utf8mb4_bin collations +# +SELECT @@collation_connection; +@@collation_connection +cp932_japanese_ci +CREATE TABLE t1 ENGINE=MEMORY AS SELECT REPEAT('a',5) AS a LIMIT 0; +INSERT INTO t1 (a) VALUES ("a"); +INSERT INTO t1 (a) VALUES ("b"); +INSERT INTO t1 (a) VALUES ("c"); +INSERT INTO t1 (a) VALUES ("d"); +INSERT INTO t1 (a) VALUES ("e"); +INSERT INTO t1 (a) VALUES ("f"); +INSERT INTO t1 (a) VALUES ("g"); +INSERT INTO t1 (a) VALUES ("h"); +INSERT INTO t1 (a) VALUES ("i"); +INSERT INTO t1 (a) VALUES ("j"); +INSERT INTO t1 (a) VALUES ("k"); +INSERT INTO t1 (a) VALUES ("l"); +INSERT INTO t1 (a) VALUES ("m"); +SELECT * FROM t1 ORDER BY LOWER(a); +a +a +b +c +d +e +f +g +h +i +j +k +l +m +SELECT * FROM t1 ORDER BY LOWER(a) DESC; +a +m +l +k +j +i +h +g +f +e +d +c +b +a +DROP TABLE t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +DROP TABLE t1; +SET collation_connection='cp932_bin'; +create table t1 select repeat('a',4000) a; +delete from t1; +insert into t1 values ('a'), ('a '), ('a\t'); +select collation(a),hex(a) from t1 order by a; +collation(a) hex(a) +cp932_bin 6109 +cp932_bin 61 +cp932_bin 6120 +drop table t1; +# +# MDEV-5453 Assertion `src' fails in my_strnxfrm_unicode on GROUP BY MID(..) WITH ROLLUP +# +SELECT @@collation_connection; +@@collation_connection +cp932_bin +CREATE TABLE t1 (i INT) ENGINE=MyISAM; +INSERT INTO t1 VALUES (1),(2); +SELECT * FROM t1 GROUP BY MID(CURRENT_USER,0) WITH ROLLUP; +i +1 +1 +SELECT * FROM t1 GROUP BY MID('test',0) WITH ROLLUP; +i +1 +1 +DROP TABLE t1; +# +# MDEV-6170 Incorrect ordering with utf8_bin and utf8mb4_bin collations +# +SELECT @@collation_connection; +@@collation_connection +cp932_bin +CREATE TABLE t1 ENGINE=MEMORY AS SELECT REPEAT('a',5) AS a LIMIT 0; +INSERT INTO t1 (a) VALUES ("a"); +INSERT INTO t1 (a) VALUES ("b"); +INSERT INTO t1 (a) VALUES ("c"); +INSERT INTO t1 (a) VALUES ("d"); +INSERT INTO t1 (a) VALUES ("e"); +INSERT INTO t1 (a) VALUES ("f"); +INSERT INTO t1 (a) VALUES ("g"); +INSERT INTO t1 (a) VALUES ("h"); +INSERT INTO t1 (a) VALUES ("i"); +INSERT INTO t1 (a) VALUES ("j"); +INSERT INTO t1 (a) VALUES ("k"); +INSERT INTO t1 (a) VALUES ("l"); +INSERT INTO t1 (a) VALUES ("m"); +SELECT * FROM t1 ORDER BY LOWER(a); +a +a +b +c +d +e +f +g +h +i +j +k +l +m +SELECT * FROM t1 ORDER BY LOWER(a) DESC; +a +m +l +k +j +i +h +g +f +e +d +c +b +a +DROP TABLE t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +DROP TABLE t1; +create table t2 (a char(1)); +insert into t2 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'); +insert into t2 values ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F'); +create table t1 ( +a varchar(2) character set cp932 +) engine=myisam; +insert into t1 +select unhex(concat(t24.a, t23.a, t22.a, t21.a)) +from t2 t21, t2 t22, t2 t23, t2 t24; +delete from t1 where a=''; +alter table t1 add key(a); +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +drop table t1; +drop table t2; +create table t1 (col1 varchar(1)) character set cp932; +insert into t1 values ('a'); +insert ignore into t1 values ('ab'); +Warnings: +Warning 1265 Data truncated for column 'col1' at row 1 +select * from t1; +col1 +a +a +insert ignore into t1 values ('abc'); +Warnings: +Warning 1265 Data truncated for column 'col1' at row 1 +select * from t1; +col1 +a +a +a +drop table t1; +set names utf8; +create table t1 (a text) default character set cp932; +insert into t1 values (_utf8 0xE38182); +show warnings; +Level Code Message +select * from t1; +a +ã‚ +select hex(a) from t1; +hex(a) +82A0 +drop table t1; +ƒ\ +ƒ\ +c_cp932 +ƒ\ +ƒ\ +ƒ\ +ソ +ソ +ƒ\ +ƒ\ diff --git a/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result b/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result new file mode 100644 index 00000000..fc07aed7 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result @@ -0,0 +1,248 @@ +SET TIMESTAMP=10000; +create table t2 (c char(30)) charset=ucs2; +set @v=convert('abc' using ucs2); +reset master; +insert into t2 values (@v); +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 values (@v) +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +flush logs; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +START TRANSACTION +/*!*/; +# Annotate_rows: +#Q> insert into t2 values (@v) +SET TIMESTAMP=10000/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=1411383296/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +drop table t2; +# +# Start of 10.2 tests +# +# +# MDEV-10866 Extend PREPARE and EXECUTE IMMEDIATE to understand expressions +# +SET TIMESTAMP=UNIX_TIMESTAMP('1970-01-01 06:46:40'); +FLUSH LOGS; +SET NAMES utf8; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8); +EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (''ä(i1)'')'; +EXECUTE IMMEDIATE CONVERT('INSERT INTO t1 VALUES (''ä(i2)'')' USING ucs2); +SET @stmt=CONVERT('INSERT INTO t1 VALUES (''ä(i3)'')' USING ucs2); +EXECUTE IMMEDIATE @stmt; +PREPARE stmt FROM 'INSERT INTO t1 VALUES (''ä(p1)'')'; +EXECUTE stmt; +PREPARE stmt FROM CONVERT('INSERT INTO t1 VALUES (''ä(p2)'')' USING ucs2); +EXECUTE stmt; +SET @stmt=CONVERT('INSERT INTO t1 VALUES (''ä(p3)'')' USING ucs2); +PREPARE stmt FROM @stmt; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; +SELECT * FROM t1; +a +ä(i1) +ä(i2) +ä(i3) +ä(p1) +ä(p2) +ä(p3) +DROP TABLE t1; +FLUSH LOGS; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created YYMMDD HH:MM:SS +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Gtid list [#-#-#] +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000002 +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000003 +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=#*//*!*/; +/*!100001 SET @@session.server_id=#*//*!*/; +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=XXX/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=1411383296/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C utf8 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8) +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('ä(i1)') +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='ä(i1)' /* VARSTRING(30) meta=30 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +COMMIT +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('ä(i2)') +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='ä(i2)' /* VARSTRING(30) meta=30 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +COMMIT +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('ä(i3)') +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='ä(i3)' /* VARSTRING(30) meta=30 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +COMMIT +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('ä(p1)') +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='ä(p1)' /* VARSTRING(30) meta=30 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +COMMIT +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('ä(p2)') +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='ä(p2)' /* VARSTRING(30) meta=30 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +COMMIT +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES ('ä(p3)') +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='ä(p3)' /* VARSTRING(30) meta=30 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +COMMIT +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# ddl +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Rotate to master-bin.000004 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +SET TIMESTAMP=DEFAULT; +# +# End of 10.2 tests +# diff --git a/mysql-test/suite/binlog/r/binlog_row_drop_tbl.result b/mysql-test/suite/binlog/r/binlog_row_drop_tbl.result new file mode 100644 index 00000000..574b1a79 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_row_drop_tbl.result @@ -0,0 +1,28 @@ +DROP TABLE IF EXISTS t1; +connect con1,localhost,root,,; +connect con2,localhost,root,,; +connection con1; +RESET MASTER; +CREATE TABLE t1 (a INT); +SET AUTOCOMMIT=OFF; +BEGIN; +INSERT INTO t1 VALUES(1); +connection con2; +DROP TABLE t1;; +connection con1; +COMMIT; +connection con2; +connection default; +disconnect con1; +disconnect con2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES(1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ diff --git a/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result b/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result new file mode 100644 index 00000000..10744956 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result @@ -0,0 +1,104 @@ +DROP DATABASE IF EXISTS `drop-temp+table-test`; +connect con1,localhost,root,,; +connect con2,localhost,root,,; +connection con1; +RESET MASTER; +CREATE DATABASE `drop-temp+table-test`; +USE `drop-temp+table-test`; +CREATE TEMPORARY TABLE shortn1 (a INT); +CREATE TEMPORARY TABLE `table:name` (a INT); +CREATE TEMPORARY TABLE shortn2 (a INT); +CREATE TEMPORARY TABLE tmp(c1 int); +CREATE TEMPORARY TABLE tmp1(c1 int); +CREATE TEMPORARY TABLE tmp2(c1 int); +CREATE TEMPORARY TABLE tmp3(c1 int); +CREATE TABLE t(c1 int); +DROP TEMPORARY TABLE IF EXISTS tmp; +DROP TEMPORARY TABLE IF EXISTS tmp; +DROP TEMPORARY TABLE IF EXISTS tmp, tmp1; +DROP TEMPORARY TABLE tmp3; +DROP TABLE IF EXISTS tmp2, t; +DROP TABLE IF EXISTS tmp2, t; +SELECT GET_LOCK("a",10); +GET_LOCK("a",10) +1 +USE test; +disconnect con1; +connection con2; +SELECT GET_LOCK("a",10); +GET_LOCK("a",10) +1 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE `drop-temp+table-test` +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; CREATE TABLE t(c1 int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; DROP TABLE IF EXISTS `t` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; DROP TABLE IF EXISTS `tmp2`,`t` /* generated by server */ +DROP DATABASE `drop-temp+table-test`; +RESET MASTER; +CREATE TABLE t1 ( i text ); +connect con1,localhost,root,,; +CREATE TEMPORARY TABLE ttmp1 ( i text ); +SET @@session.binlog_format=ROW; +INSERT INTO t1 VALUES ('1'); +SELECT @@session.binlog_format; +@@session.binlog_format +ROW +disconnect con1; +connection default; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 ( i text ) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES ('1') +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +RESET MASTER; +DROP TABLE t1; +# +# BUG#28642318: POINT IN TIME RECOVERY USING MYSQLBINLOG BROKEN +# WITH TEMPORARY TABLE -> ERRORS +# Test case for DELETE query. +RESET MASTER; +connect con1,localhost,root,,; +# Set up. +connection default; +SET @save_binlog_format= @@session.binlog_format; +SET @@session.binlog_format=STATEMENT; +CREATE TABLE t1 (a INT) ENGINE=INNODB; +connection con1; +SET @@session.binlog_format=STATEMENT; +CREATE TEMPORARY TABLE t1 (b BLOB) ENGINE=INNODB; +connection default; +DELETE d1, d2 FROM t1 AS d1, t1 AS d2 WHERE d1.a<>d2.a; +connection default; +DROP TABLE t1; +# DELETE query fails with table re-open error without patch. +# Clean up. +connection con1; +DROP TABLE IF EXISTS t1; +connection default; +DROP TABLE IF EXISTS t1; +RESET MASTER; +# Test case for DROP query. +connection default; +CREATE TABLE t2 (a INT) ENGINE=INNODB; +connection con1; +CREATE TEMPORARY TABLE t2 (b BLOB) ENGINE=INNODB; +connection default; +DROP TABLE t2; +connection con1; +DROP TABLE t2; +connection default; +# DROP table query fails with unknown table error without patch. +# Clean up +connection default; +SET @@session.binlog_format= @save_binlog_format; +RESET MASTER; +disconnect con1; diff --git a/mysql-test/suite/binlog/r/binlog_row_insert_select.result b/mysql-test/suite/binlog/r/binlog_row_insert_select.result new file mode 100644 index 00000000..d92e303a --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_row_insert_select.result @@ -0,0 +1,27 @@ +drop table if exists t1,t2; +create table t1(a int, unique(a)); +insert into t1 values(2); +create table t2(a int); +insert into t2 values(1),(2); +reset master; +insert into t1 select * from t2; +ERROR 23000: Duplicate entry '2' for key 'a' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 select * from t2 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +select * from t1; +a +1 +2 +drop table t1, t2; +create table t1(a int); +insert into t1 values(1),(1); +reset master; +create table t2(unique(a)) select a from t1; +ERROR 23000: Duplicate entry '1' for key 'a' +include/show_binlog_events.inc +drop table t1; diff --git a/mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result b/mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result new file mode 100644 index 00000000..88d1f7dd --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result @@ -0,0 +1,992 @@ +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); +drop table if exists t1, t2; +connect con1,localhost,root,,; +connect con2,localhost,root,,; +connection con1; +create table t1 (a int) engine=innodb; +create table t2 (a int) engine=myisam; +reset master; +begin; +insert into t1 values(1); +insert into t2 select * from t1; +commit; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +delete from t1; +delete from t2; +reset master; +begin; +insert into t1 values(2); +insert into t2 select * from t1; +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +delete from t1; +delete from t2; +reset master; +begin; +insert into t1 values(3); +savepoint my_savepoint; +insert into t1 values(4); +insert into t2 select * from t1; +rollback to savepoint my_savepoint; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +commit; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(3) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # SAVEPOINT `my_savepoint` +master-bin.000001 # Annotate_rows # # insert into t1 values(4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # ROLLBACK TO `my_savepoint` +master-bin.000001 # Xid # # COMMIT /* XID */ +delete from t1; +delete from t2; +reset master; +begin; +insert into t1 values(5); +savepoint my_savepoint; +insert into t1 values(6); +insert into t2 select * from t1; +rollback to savepoint my_savepoint; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +insert into t1 values(7); +commit; +select a from t1 order by a; +a +5 +7 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(5) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # SAVEPOINT `my_savepoint` +master-bin.000001 # Annotate_rows # # insert into t1 values(6) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # ROLLBACK TO `my_savepoint` +master-bin.000001 # Annotate_rows # # insert into t1 values(7) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +delete from t1; +delete from t2; +reset master; +select get_lock("a",10); +get_lock("a",10) +1 +begin; +insert into t1 values(8); +insert into t2 select * from t1; +disconnect con1; +connection con2; +select get_lock("a",10); +get_lock("a",10) +1 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +delete from t1; +delete from t2; +reset master; +insert into t1 values(9); +insert into t2 select * from t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(9) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +delete from t1; +delete from t2; +reset master; +insert into t1 values(10); +begin; +insert into t2 select * from t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(10) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +insert into t1 values(11); +commit; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(10) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(11) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +alter table t2 engine=INNODB; +delete from t1; +delete from t2; +reset master; +begin; +insert into t1 values(12); +insert into t2 select * from t1; +commit; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(12) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t2 select * from t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +delete from t1; +delete from t2; +reset master; +begin; +insert into t1 values(13); +insert into t2 select * from t1; +rollback; +include/show_binlog_events.inc +delete from t1; +delete from t2; +reset master; +begin; +insert into t1 values(14); +savepoint my_savepoint; +insert into t1 values(15); +insert into t2 select * from t1; +rollback to savepoint my_savepoint; +commit; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(14) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # SAVEPOINT `my_savepoint` +master-bin.000001 # Xid # # COMMIT /* XID */ +delete from t1; +delete from t2; +reset master; +begin; +insert into t1 values(16); +savepoint my_savepoint; +insert into t1 values(17); +insert into t2 select * from t1; +rollback to savepoint my_savepoint; +insert into t1 values(18); +commit; +select a from t1 order by a; +a +16 +18 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(16) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # SAVEPOINT `my_savepoint` +master-bin.000001 # Annotate_rows # # insert into t1 values(18) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +connect con3,localhost,root,,; +connection con3; +delete from t1; +delete from t2; +alter table t2 engine=MyISAM; +insert into t1 values (1); +begin; +select * from t1 for update; +a +1 +connection con2; +select (@before:=unix_timestamp())*0; +(@before:=unix_timestamp())*0 +0 +begin; +select * from t1 for update; +connection con3; +insert into t2 values (20); +connection con2; +ERROR HY000: Lock wait timeout exceeded; try restarting transaction +select (@after:=unix_timestamp())*0; +(@after:=unix_timestamp())*0 +0 +select (@after-@before) >= 2; +(@after-@before) >= 2 +1 +connection con3; +commit; +connection con2; +drop table t1,t2; +commit; +connection con2; +begin; +create temporary table ti (a int) engine=innodb; +rollback; +insert into ti values(1); +set autocommit=0; +create temporary table t1 (a int) engine=myisam; +commit; +insert t1 values (1); +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +create table t0 (n int); +insert t0 select * from t1; +set autocommit=1; +insert into t0 select GET_LOCK("lock1",0); +set autocommit=0; +create table t2 (n int) engine=innodb; +insert into t2 values (3); +disconnect con2; +connection con3; +select get_lock("lock1",60); +get_lock("lock1",60) +1 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values(16) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # SAVEPOINT `my_savepoint` +master-bin.000001 # Annotate_rows # # insert into t1 values(18) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # delete from t1 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Delete_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; alter table t2 engine=MyISAM +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (1) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2 values (20) +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1`,`t2` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t0 (n int) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert t0 select * from t1 +master-bin.000001 # Table_map # # table_id: # (test.t0) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t0 select GET_LOCK("lock1",0) +master-bin.000001 # Table_map # # table_id: # (test.t0) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t2 (n int) engine=innodb +do release_lock("lock1"); +drop table t0,t2; +set autocommit=0; +CREATE TABLE t1 (a int, b int) engine=myisam; +reset master; +INSERT INTO t1 values (1,1),(1,2); +CREATE TABLE t2 (primary key (a)) engine=innodb select * from t1; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +DROP TABLE if exists t2; +Warnings: +Note 1051 Unknown table 'test.t2' +INSERT INTO t1 values (3,3); +CREATE TEMPORARY TABLE t2 (primary key (a)) engine=innodb select * from t1; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +ROLLBACK; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +DROP TABLE IF EXISTS t2; +Warnings: +Note 1051 Unknown table 'test.t2' +CREATE TABLE t2 (a int, b int, primary key (a)) engine=innodb; +INSERT INTO t1 VALUES (4,4); +CREATE TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +Warnings: +Note 1050 Table 't2' already exists +SELECT * from t2; +a b +TRUNCATE table t2; +INSERT INTO t1 VALUES (5,5); +INSERT INTO t2 select * from t1; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +SELECT * FROM t2; +a b +DROP TABLE t2; +INSERT INTO t1 values (6,6); +CREATE TEMPORARY TABLE t2 (a int, b int, primary key (a)) engine=innodb ; +INSERT INTO t1 values (7,7); +ROLLBACK; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +INSERT INTO t1 values (8,8); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +Warnings: +Note 1050 Table 't2' already exists +COMMIT; +INSERT INTO t1 values (9,9); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +Warnings: +Note 1050 Table 't2' already exists +ROLLBACK; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +SELECT * from t2; +a b +TRUNCATE table t2; +INSERT INTO t1 values (10,10); +INSERT INTO t2 select * from t1; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +SELECT * from t1; +a b +1 1 +1 2 +3 3 +4 4 +5 5 +6 6 +7 7 +8 8 +9 9 +10 10 +INSERT INTO t2 values (100,100); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +Warnings: +Note 1050 Table 't2' already exists +COMMIT; +INSERT INTO t2 values (101,101); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +Warnings: +Note 1050 Table 't2' already exists +ROLLBACK; +SELECT * from t2; +a b +100 100 +DROP TABLE t1,t2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 values (1,1),(1,2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t2` /* generated by server */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 values (3,3) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t2` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (a int, b int, primary key (a)) engine=innodb +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (4,4) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE table t2 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (5,5) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 values (6,6) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 values (7,7) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 values (8,8) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 values (9,9) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 values (10,10) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +connect con4,localhost,root,,; +connection con3; +reset master; +create table t1 (a int) engine=innodb; +create table t2 (a int) engine=myisam; +select get_lock("a",10); +get_lock("a",10) +1 +begin; +insert into t1 values(8); +insert into t2 select * from t1; +disconnect con3; +connection con4; +select get_lock("a",10); +get_lock("a",10) +1 +flush logs; +There is nothing to roll back; transactional changes are removed from the trans cache. +drop table t1, t2; +create temporary table tt (a int unique); +create table ti (a int) engine=innodb; +reset master; +begin; +insert into ti values (1); +insert into ti values (2) ; +insert into tt select * from ti; +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +select count(*) from tt /* 2 */; +count(*) +2 +include/show_binlog_events.inc +select count(*) from ti /* zero */; +count(*) +0 +insert into ti select * from tt; +select * from ti /* that is what slave would miss - a bug */; +a +1 +2 +delete from ti; +delete from tt where a=1; +reset master; +begin; +insert into ti values (1); +insert into ti values (2) /* to make the dup error in the following */; +insert into tt select * from ti /* one affected and error */; +ERROR 23000: Duplicate entry '2' for key 'a' +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +include/show_binlog_events.inc +select count(*) from ti /* zero */; +count(*) +0 +insert into ti select * from tt; +select * from tt /* that is what otherwise slave missed - the bug */; +a +1 +2 +drop table ti, tt; +drop function if exists bug27417; +drop table if exists t1,t2; +CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM; +CREATE TABLE t2 (a int NOT NULL auto_increment, PRIMARY KEY (a)); +create function bug27417(n int) +RETURNS int(11) +begin +insert into t1 values (null); +return n; +end| +reset master; +insert into t2 values (bug27417(1)); +insert into t2 select bug27417(2); +reset master; +insert into t2 values (bug27417(2)); +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (null) +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +/* only (!) with fixes for #23333 will show there is the query */; +select count(*) from t1 /* must be 3 */; +count(*) +3 +reset master; +select count(*) from t2; +count(*) +2 +delete from t2 where a=bug27417(3); +select count(*) from t2 /* nothing got deleted */; +count(*) +2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (null) +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +/* the query must be in regardless of #23333 */; +select count(*) from t1 /* must be 5 */; +count(*) +5 +delete t2 from t2 where t2.a=bug27417(100) /* must not affect t2 */; +affected rows: 0 +select count(*) from t1 /* must be 7 */; +count(*) +7 +drop table t1,t2; +CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM; +CREATE TABLE t2 (a int, PRIMARY KEY (a)) ENGINE=InnoDB; +CREATE TABLE t3 (a int, PRIMARY KEY (a), b int unique) ENGINE=MyISAM; +CREATE TABLE t4 (a int, PRIMARY KEY (a), b int unique) ENGINE=Innodb; +CREATE TABLE t5 (a int, PRIMARY KEY (a)) ENGINE=InnoDB; +insert into t2 values (1); +reset master; +insert into t2 values (bug27417(1)); +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +/* the output must denote there is the query */; +select count(*) from t1 /* must be 1 */; +count(*) +1 +delete from t1; +delete from t2; +insert into t2 values (2); +reset master; +insert into t2 select bug27417(1) union select bug27417(2); +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +/* the output must denote there is the query */; +select count(*) from t1 /* must be 2 */; +count(*) +2 +delete from t1; +insert into t3 values (1,1),(2,3),(3,4); +reset master; +update t3 set b=b+bug27417(1); +ERROR 23000: Duplicate entry '4' for key 'b' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (null) +master-bin.000001 # Table_map # # table_id: # (test.t3) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # +master-bin.000001 # Update_rows_v1 # # table_id: # +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +/* the output must denote there is the query */; +select count(*) from t1 /* must be 2 */; +count(*) +2 +delete from t3; +delete from t4; +insert into t3 values (1,1); +insert into t4 values (1,1),(2,2); +reset master; +UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */; +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +/* the output must denote there is the query */; +select count(*) from t1 /* must be 4 */; +count(*) +4 +delete from t1; +delete from t3; +delete from t4; +insert into t3 values (1,1),(2,2); +insert into t4 values (1,1),(2,2); +reset master; +UPDATE t3,t4 SET t3.a=t4.a + bug27417(1); +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +select count(*) from t1 /* must be 1 */; +count(*) +2 +drop table t4; +delete from t1; +delete from t2; +delete from t3; +insert into t2 values (1); +insert into t3 values (1,1); +create trigger trg_del before delete on t2 for each row +insert into t3 values (bug27417(1), 2); +reset master; +delete from t2; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t3) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +/* the output must denote there is the query */; +select count(*) from t1 /* must be 1 */; +count(*) +1 +drop trigger trg_del; +delete from t1; +delete from t2; +delete from t5; +create trigger trg_del_t2 after delete on t2 for each row +insert into t1 values (1); +insert into t2 values (2),(3); +insert into t5 values (1),(2); +reset master; +delete t2.* from t2,t5 where t2.a=t5.a + 1; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +/* the output must denote there is the query */; +select count(*) from t1 /* must be 1 */; +count(*) +1 +delete from t1; +create table t4 (a int default 0, b int primary key) engine=innodb; +insert into t4 values (0, 17); +reset master; +load data infile '../../std_data/rpl_loaddata.dat' into table t4 (a, @b) set b= @b + bug27417(2); +ERROR 23000: Duplicate entry '17' for key 'PRIMARY' +select * from t4; +a b +0 17 +select count(*) from t1 /* must be 2 */; +count(*) +2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +/* the output must denote there is the query */; +drop trigger trg_del_t2; +drop table t1,t2,t3,t4,t5; +drop function bug27417; +end of tests +create temporary table tt (a int unique); +create table ti (a int) engine=innodb; +reset master; +begin; +insert into ti values (1); +insert into ti values (2) ; +insert into tt select * from ti; +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +select count(*) from tt /* 2 */; +count(*) +2 +include/show_binlog_events.inc +select count(*) from ti /* zero */; +count(*) +0 +insert into ti select * from tt; +select * from ti /* that is what slave would miss - bug#28960 */; +a +1 +2 +delete from ti; +delete from tt where a=1; +reset master; +begin; +insert into ti values (1); +insert into ti values (2) /* to make the dup error in the following */; +insert into tt select * from ti /* one affected and error */; +ERROR 23000: Duplicate entry '2' for key 'a' +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +include/show_binlog_events.inc +select count(*) from ti /* zero */; +count(*) +0 +insert into ti select * from tt; +select * from tt /* that is what otherwise slave missed - the bug */; +a +1 +2 +drop table ti; +drop function if exists bug27417; +drop table if exists t1,t2; +CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM; +CREATE TABLE t2 (a int NOT NULL auto_increment, PRIMARY KEY (a)); +create function bug27417(n int) +RETURNS int(11) +begin +insert into t1 values (null); +return n; +end| +reset master; +insert into t2 values (bug27417(1)); +insert into t2 select bug27417(2); +reset master; +insert into t2 values (bug27417(2)); +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (null) +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +select count(*) from t1 /* must be 3 */; +count(*) +3 +reset master; +select count(*) from t2; +count(*) +2 +delete from t2 where a=bug27417(3); +select count(*) from t2 /* nothing got deleted */; +count(*) +2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (null) +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +select count(*) from t1 /* must be 5 */; +count(*) +5 +delete t2 from t2 where t2.a=bug27417(100) /* must not affect t2 */; +affected rows: 0 +select count(*) from t1 /* must be 7 */; +count(*) +7 +drop table t1,t2; +CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM; +CREATE TABLE t2 (a int, PRIMARY KEY (a)) ENGINE=InnoDB; +CREATE TABLE t3 (a int, PRIMARY KEY (a), b int unique) ENGINE=MyISAM; +CREATE TABLE t4 (a int, PRIMARY KEY (a), b int unique) ENGINE=Innodb; +CREATE TABLE t5 (a int, PRIMARY KEY (a)) ENGINE=InnoDB; +insert into t2 values (1); +reset master; +insert into t2 values (bug27417(1)); +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +select count(*) from t1 /* must be 1 */; +count(*) +1 +delete from t1; +delete from t2; +insert into t2 values (2); +reset master; +insert into t2 select bug27417(1) union select bug27417(2); +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +select count(*) from t1 /* must be 2 */; +count(*) +2 +delete from t1; +insert into t3 values (1,1),(2,3),(3,4); +reset master; +update t3 set b=b+bug27417(1); +ERROR 23000: Duplicate entry '4' for key 'b' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 values (null) +master-bin.000001 # Table_map # # table_id: # (test.t3) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # +master-bin.000001 # Update_rows_v1 # # table_id: # +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +select count(*) from t1 /* must be 2 */; +count(*) +2 +delete from t3; +delete from t4; +insert into t3 values (1,1); +insert into t4 values (1,1),(2,2); +reset master; +UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */; +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +select count(*) from t1 /* must be 4 */; +count(*) +4 +delete from t1; +delete from t3; +delete from t4; +insert into t3 values (1,1),(2,2); +insert into t4 values (1,1),(2,2); +reset master; +UPDATE t3,t4 SET t3.a = t4.a + bug27417(1) where t3.a = 1; +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +select count(*) from t1 /* must be 1 */; +count(*) +1 +drop table t4; +delete from t1; +delete from t2; +delete from t3; +insert into t2 values (1); +insert into t3 values (1,1); +create trigger trg_del before delete on t2 for each row +insert into t3 values (bug27417(1), 2); +reset master; +delete from t2; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t3) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +select count(*) from t1 /* must be 1 */; +count(*) +1 +drop trigger trg_del; +delete from t1; +delete from t2; +delete from t5; +create trigger trg_del_t2 after delete on t2 for each row +insert into t1 values (1); +insert into t2 values (2),(3); +insert into t5 values (1),(2); +reset master; +delete t2.* from t2,t5 where t2.a=t5.a + 1; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +select count(*) from t1 /* must be 1 */; +count(*) +1 +delete from t1; +create table t4 (a int default 0, b int primary key) engine=innodb; +insert into t4 values (0, 17); +reset master; +load data infile '../../std_data/rpl_loaddata.dat' into table t4 (a, @b) set b= @b + bug27417(2); +ERROR 23000: Duplicate entry '17' for key 'PRIMARY' +select * from t4; +a b +0 17 +select count(*) from t1 /* must be 2 */; +count(*) +2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +drop trigger trg_del_t2; +drop table t1,t2,t3,t4,t5; +drop function bug27417; diff --git a/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_db_filter.result b/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_db_filter.result new file mode 100644 index 00000000..354fd832 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_db_filter.result @@ -0,0 +1,43 @@ +RESET MASTER; +CREATE TABLE t1 (id int); +CREATE TABLE t2 (id int); +CREATE TABLE t3 (txt TEXT); +CREATE TABLE t4 (a int) ENGINE= InnoDB; +INSERT INTO t1 VALUES (1); +INSERT INTO t1 VALUES (2); +INSERT INTO t2 VALUES (1); +INSERT INTO t2 VALUES (2); +INSERT INTO t1 VALUES (3); +LOAD DATA INFILE 'MYSQLTEST_VARDIR/std_data/words.dat' INTO TABLE t3; +INSERT INTO t1 VALUES (4); +CREATE DATABASE b42941; +use b42941; +CREATE TABLE t1 (id int); +CREATE TABLE t2 (id int); +CREATE TABLE t3 (txt TEXT); +CREATE TABLE t4 (a int) ENGINE= InnoDB; +INSERT INTO t1 VALUES (1); +INSERT INTO t1 VALUES (2); +INSERT INTO t2 VALUES (1); +INSERT INTO t2 VALUES (2); +INSERT INTO t1 VALUES (3); +LOAD DATA INFILE 'MYSQLTEST_VARDIR/std_data/words.dat' INTO TABLE t3; +INSERT INTO t1 VALUES (4); +INSERT INTO test.t1 VALUES (5); +FLUSH LOGS; +UPDATE test.t1 t11, b42941.t1 t12 SET t11.id=10, t12.id=100; +BEGIN; +INSERT INTO test.t4 VALUES (1); +INSERT INTO b42941.t4 VALUES (1); +UPDATE test.t4 tn4, b42941.t4 tt4 SET tn4.a= 10, tt4.a= 100; +COMMIT; +FLUSH LOGS; +SET @b42941_output.1= LOAD_FILE('MYSQLTEST_VARDIR/tmp/b42941-mysqlbinlog.1'); +SET @b42941_output.2= LOAD_FILE('MYSQLTEST_VARDIR/tmp/b42941-mysqlbinlog.2'); +SET @b42941_output.1= LOAD_FILE('MYSQLTEST_VARDIR/tmp/b42941-mysqlbinlog.1'); +SET @b42941_output.2= LOAD_FILE('MYSQLTEST_VARDIR/tmp/b42941-mysqlbinlog.2'); +SET @b42941_output.1= LOAD_FILE('MYSQLTEST_VARDIR/tmp/b42941-mysqlbinlog.1'); +SET @b42941_output.2= LOAD_FILE('MYSQLTEST_VARDIR/tmp/b42941-mysqlbinlog.2'); +DROP DATABASE b42941; +use test; +DROP TABLE t1, t2, t3, t4; diff --git a/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result b/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result new file mode 100644 index 00000000..8fc90fd9 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result @@ -0,0 +1,508 @@ +DROP DATABASE IF EXISTS test1; +DROP DATABASE IF EXISTS test2; +DROP DATABASE IF EXISTS test3; +CREATE DATABASE test1; +CREATE DATABASE test2; +CREATE DATABASE test3; +SET timestamp=1000000000; +RESET MASTER; +USE test1; +CREATE TABLE t1 (a INT, b INT); +INSERT INTO t1 VALUES (1,1),(2,2); +USE test2; +CREATE TABLE t2 (a INT); +INSERT INTO t2 VALUES (1),(2); +DELETE FROM test1.t1 WHERE a=1; +USE test3; +CREATE TABLE t3 (a INT); +INSERT INTO t3 VALUES (1),(2); +INSERT INTO test1.t1 VALUES (3,3); +USE test1; +LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE t1 +FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; +DELETE FROM test3.t3 WHERE a=1; +flush logs; +# +# mysqlbinlog output +# --base64-output = decode-rows +# --rewrite-db = test1->new_test1 +# --rewrite-db = test3->new_test3 +# +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Gtid list [] +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +use `new_test1`/*!*/; +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=1411383296/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 (a INT, b INT) +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-2 +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1,1),(2,2) +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `new_test1`.`t1` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### @2=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `new_test1`.`t1` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### @2=2 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-3 ddl +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test2`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t2 (a INT) +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-4 +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 VALUES (1),(2) +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `test2`.`t2` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test2`.`t2` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-5 +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM test1.t1 WHERE a=1 +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `new_test1`.`t1` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### @2=1 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-6 ddl +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +# at # +use `new_test3`/*!*/; +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t3 (a INT) +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-7 +/*!100001 SET @@session.gtid_seq_no=7*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t3 VALUES (1),(2) +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test3`.`t3` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `new_test3`.`t3` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `new_test3`.`t3` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-8 +/*!100001 SET @@session.gtid_seq_no=8*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO test1.t1 VALUES (3,3) +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `new_test1`.`t1` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### @2=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-9 +/*!100001 SET @@session.gtid_seq_no=9*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE t1 +#Q> FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `new_test1`.`t1` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### @2=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `new_test1`.`t1` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### @2=3 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `new_test1`.`t1` +### SET +### @1=4 /* INT meta=0 nullable=1 is_null=0 */ +### @2=4 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `new_test1`.`t1` +### SET +### @1=5 /* INT meta=0 nullable=1 is_null=0 */ +### @2=5 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `new_test1`.`t1` +### SET +### @1=6 /* INT meta=0 nullable=1 is_null=0 */ +### @2=6 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 5 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-10 +/*!100001 SET @@session.gtid_seq_no=10*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM test3.t3 WHERE a=1 +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test3`.`t3` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `new_test3`.`t3` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# +# mysqlbinlog output +# --base64-output = decode-rows +# --rewrite-db = test1->new_test1 +# --rewrite-db = test3->new_test3 +# --read-from-remote-server +# +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Gtid list [] +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +use `new_test1`/*!*/; +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=1411383296/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 (a INT, b INT) +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-2 +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES (1,1),(2,2) +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `new_test1`.`t1` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### @2=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `new_test1`.`t1` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### @2=2 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-3 ddl +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test2`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t2 (a INT) +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-4 +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t2 VALUES (1),(2) +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `test2`.`t2` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test2`.`t2` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `test2`.`t2` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-5 +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM test1.t1 WHERE a=1 +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `new_test1`.`t1` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### @2=1 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-6 ddl +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +# at # +use `new_test3`/*!*/; +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t3 (a INT) +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-7 +/*!100001 SET @@session.gtid_seq_no=7*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t3 VALUES (1),(2) +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test3`.`t3` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `new_test3`.`t3` +### SET +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `new_test3`.`t3` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-8 +/*!100001 SET @@session.gtid_seq_no=8*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO test1.t1 VALUES (3,3) +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `new_test1`.`t1` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### @2=3 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-9 +/*!100001 SET @@session.gtid_seq_no=9*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE t1 +#Q> FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test1`.`t1` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `new_test1`.`t1` +### SET +### @1=2 /* INT meta=0 nullable=1 is_null=0 */ +### @2=2 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `new_test1`.`t1` +### SET +### @1=3 /* INT meta=0 nullable=1 is_null=0 */ +### @2=3 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `new_test1`.`t1` +### SET +### @1=4 /* INT meta=0 nullable=1 is_null=0 */ +### @2=4 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `new_test1`.`t1` +### SET +### @1=5 /* INT meta=0 nullable=1 is_null=0 */ +### @2=5 /* INT meta=0 nullable=1 is_null=0 */ +### INSERT INTO `new_test1`.`t1` +### SET +### @1=6 /* INT meta=0 nullable=1 is_null=0 */ +### @2=6 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 5 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX GTID 0-1-10 +/*!100001 SET @@session.gtid_seq_no=10*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM test3.t3 WHERE a=1 +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Table_map: `new_test3`.`t3` mapped to number # +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `new_test3`.`t3` +### WHERE +### @1=1 /* INT meta=0 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id # end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +DROP DATABASE test1; +DROP DATABASE test2; +DROP DATABASE test3; diff --git a/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_verbose.result b/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_verbose.result new file mode 100644 index 00000000..cbb739a9 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_verbose.result @@ -0,0 +1,161 @@ +Verbose statements from : write-partial-row.binlog +select replace(txt,'\r', '') as stmt from raw_binlog_rows where txt like '###%'; +stmt +### INSERT INTO `mysql`.`ndb_apply_status` +### SET +### @1=1 +### @2=25769803786 +### @3='' +### @4=0 +### @5=0 +### INSERT INTO `test`.`ba` +### SET +### @1=3 +### @2=3 +### @3=3 +### INSERT INTO `test`.`ba` +### SET +### @1=1 +### @2=1 +### @3=1 +### INSERT INTO `test`.`ba` +### SET +### @1=2 +### @2=2 +### @3=2 +### INSERT INTO `test`.`ba` +### SET +### @1=4 +### @2=4 +### @3=4 +### INSERT INTO `test`.`ba` +### SET +### @1=4 +### @3=40 +### DELETE FROM `test`.`ba` +### WHERE +### @1=2 +drop table raw_binlog_rows; +Verbose statements from : write-full-row.binlog +select replace(txt,'\r', '') as stmt from raw_binlog_rows where txt like '###%'; +stmt +### INSERT INTO `mysql`.`ndb_apply_status` +### SET +### @1=2 +### @2=25769803786 +### @3='' +### @4=0 +### @5=0 +### INSERT INTO `test`.`ba` +### SET +### @1=3 +### @2=3 +### @3=3 +### INSERT INTO `test`.`ba` +### SET +### @1=1 +### @2=1 +### @3=1 +### INSERT INTO `test`.`ba` +### SET +### @1=2 +### @2=2 +### @3=2 +### INSERT INTO `test`.`ba` +### SET +### @1=4 +### @2=4 +### @3=4 +### INSERT INTO `test`.`ba` +### SET +### @1=4 +### @2=4 +### @3=40 +### DELETE FROM `test`.`ba` +### WHERE +### @1=2 +drop table raw_binlog_rows; +Verbose statements from : update-partial-row.binlog +select replace(txt,'\r', '') as stmt from raw_binlog_rows where txt like '###%'; +stmt +### INSERT INTO `mysql`.`ndb_apply_status` +### SET +### @1=3 +### @2=25769803786 +### @3='' +### @4=0 +### @5=0 +### INSERT INTO `test`.`ba` +### SET +### @1=3 +### @2=3 +### @3=3 +### INSERT INTO `test`.`ba` +### SET +### @1=1 +### @2=1 +### @3=1 +### INSERT INTO `test`.`ba` +### SET +### @1=2 +### @2=2 +### @3=2 +### INSERT INTO `test`.`ba` +### SET +### @1=4 +### @2=4 +### @3=4 +### UPDATE `test`.`ba` +### WHERE +### @1=4 +### @3=4 +### SET +### @1=4 +### @3=40 +### DELETE FROM `test`.`ba` +### WHERE +### @1=2 +drop table raw_binlog_rows; +Verbose statements from : update-full-row.binlog +select replace(txt,'\r', '') as stmt from raw_binlog_rows where txt like '###%'; +stmt +### INSERT INTO `mysql`.`ndb_apply_status` +### SET +### @1=4 +### @2=25769803786 +### @3='' +### @4=0 +### @5=0 +### INSERT INTO `test`.`ba` +### SET +### @1=3 +### @2=3 +### @3=3 +### INSERT INTO `test`.`ba` +### SET +### @1=1 +### @2=1 +### @3=1 +### INSERT INTO `test`.`ba` +### SET +### @1=2 +### @2=2 +### @3=2 +### INSERT INTO `test`.`ba` +### SET +### @1=4 +### @2=4 +### @3=4 +### UPDATE `test`.`ba` +### WHERE +### @1=4 +### @2=4 +### @3=4 +### SET +### @1=4 +### @2=4 +### @3=40 +### DELETE FROM `test`.`ba` +### WHERE +### @1=2 +drop table raw_binlog_rows; diff --git a/mysql-test/suite/binlog/r/binlog_server_id.result b/mysql-test/suite/binlog/r/binlog_server_id.result new file mode 100644 index 00000000..a18a38dd --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_server_id.result @@ -0,0 +1,49 @@ +set global server_id=1; +reset master; +drop table if exists t1,t2,t3; +create table t1 (a int); +select @@server_id; +@@server_id +1 +show binlog events from <binlog_start>; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid_list 1 # [] +master-bin.000001 # Binlog_checkpoint 1 # master-bin.000001 +master-bin.000001 # Gtid 1 # GTID #-#-# +master-bin.000001 # Query 1 # use `test`; DROP TABLE IF EXISTS `t1`,`t2`,`t3` /* generated by server */ +master-bin.000001 # Gtid 1 # GTID #-#-# +master-bin.000001 # Query 1 # use `test`; create table t1 (a int) +set global server_id=2; +create table t2 (b int); +select @@server_id; +@@server_id +2 +show binlog events from <binlog_start>; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid_list 1 # [] +master-bin.000001 # Binlog_checkpoint 1 # master-bin.000001 +master-bin.000001 # Gtid 1 # GTID #-#-# +master-bin.000001 # Query 1 # use `test`; DROP TABLE IF EXISTS `t1`,`t2`,`t3` /* generated by server */ +master-bin.000001 # Gtid 1 # GTID #-#-# +master-bin.000001 # Query 1 # use `test`; create table t1 (a int) +master-bin.000001 # Gtid 2 # GTID #-#-# +master-bin.000001 # Query 2 # use `test`; create table t2 (b int) +set global server_id=3; +create table t3 (c int); +select @@server_id; +@@server_id +3 +show binlog events from <binlog_start>; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid_list 1 # [] +master-bin.000001 # Binlog_checkpoint 1 # master-bin.000001 +master-bin.000001 # Gtid 1 # GTID #-#-# +master-bin.000001 # Query 1 # use `test`; DROP TABLE IF EXISTS `t1`,`t2`,`t3` /* generated by server */ +master-bin.000001 # Gtid 1 # GTID #-#-# +master-bin.000001 # Query 1 # use `test`; create table t1 (a int) +master-bin.000001 # Gtid 2 # GTID #-#-# +master-bin.000001 # Query 2 # use `test`; create table t2 (b int) +master-bin.000001 # Gtid 3 # GTID #-#-# +master-bin.000001 # Query 3 # use `test`; create table t3 (c int) +set global server_id=1; +drop table t1,t2,t3; diff --git a/mysql-test/suite/binlog/r/binlog_sf.result b/mysql-test/suite/binlog/r/binlog_sf.result new file mode 100644 index 00000000..085ba1eb --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_sf.result @@ -0,0 +1,68 @@ +set global log_bin_trust_function_creators=0; +set binlog_format=STATEMENT; +create function fn16456() +returns int +begin +return unix_timestamp(); +end| +ERROR HY000: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) +set global log_bin_trust_function_creators=1; +create function fn16456() +returns int +begin +return unix_timestamp(); +end| +set global log_bin_trust_function_creators=0; +set binlog_format=ROW; +select fn16456(); +fn16456() +timestamp +set binlog_format=STATEMENT; +select fn16456(); +ERROR HY000: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) +drop function fn16456; +set global log_bin_trust_function_creators=0; +create function fn16456() +returns int deterministic +begin +return unix_timestamp(); +end| +set binlog_format=ROW; +select fn16456(); +fn16456() +timestamp +set binlog_format=STATEMENT; +select fn16456(); +fn16456() +timestamp +drop function fn16456; +set global log_bin_trust_function_creators=0; +create function fn16456() +returns int no sql +begin +return unix_timestamp(); +end| +set binlog_format=ROW; +select fn16456(); +fn16456() +timestamp +set binlog_format=STATEMENT; +select fn16456(); +fn16456() +timestamp +drop function fn16456; +set global log_bin_trust_function_creators=0; +create function fn16456() +returns int reads sql data +begin +return unix_timestamp(); +end| +set binlog_format=ROW; +select fn16456(); +fn16456() +timestamp +set binlog_format=STATEMENT; +select fn16456(); +fn16456() +timestamp +drop function fn16456; diff --git a/mysql-test/suite/binlog/r/binlog_show_binlog_event_random_pos.result b/mysql-test/suite/binlog/r/binlog_show_binlog_event_random_pos.result new file mode 100644 index 00000000..c2e634eb --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_show_binlog_event_random_pos.result @@ -0,0 +1,15 @@ +RESET MASTER; +call mtr.add_suppression("Error in Log_event::read_log_event*"); +call mtr.add_suppression("Replication event checksum verification failed while reading from a log file*"); +DROP TABLE IF EXISTS t1; +Warnings: +Note 1051 Unknown table 'test.t1' +CREATE TABLE t1 (c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255), c5 CHAR(255)); +INSERT INTO t1 VALUES (repeat('a', 255), repeat('a', 255),repeat('a', 255),repeat('a', 255),repeat('a', 255)); +INSERT INTO t1 VALUES (repeat('a', 255), repeat('a', 255),repeat('a', 255),repeat('a', 255),repeat('a', 255)); +UPDATE t1 SET c1=repeat('b',255); +INSERT INTO t1 VALUES (repeat('a', 255), repeat('a', 255),repeat('a', 255),repeat('a', 255),repeat('a', 255)); +SHOW BINLOG EVENTS FROM POS; +ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Invalid pos specified. Requested from pos:POS is greater than actual file size:MAX_POS + +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_spurious_ddl_errors.result b/mysql-test/suite/binlog/r/binlog_spurious_ddl_errors.result new file mode 100644 index 00000000..798bd8ab --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_spurious_ddl_errors.result @@ -0,0 +1,53 @@ +SET @old_binlog_format= @@global.binlog_format; +INSTALL PLUGIN example SONAME 'ha_example'; +################################################################################ +# Verifies if ER_BINLOG_STMT_MODE_AND_ROW_ENGINE happens by setting the binlog +# format to STATEMENT and the transaction isolation level to READ COMMITTED as +# such changes force Innodb to accept changes in the row format. +# +# When CREATE TABLE, ALTER TABLE, CREATE INDEX and CREATE TRIGGER are executed +# any error should be triggered. +# +# In contrast, CREATE TABLE ... SELECT should trigger the following error: +# ER_BINLOG_STMT_MODE_AND_ROW_ENGINE. +################################################################################ +SET binlog_format = STATEMENT; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +CREATE TABLE t_row (a VARCHAR(100)) ENGINE = InnoDB; +ALTER TABLE t_row ADD COLUMN b INT; +CREATE TRIGGER trig_row BEFORE INSERT ON t_row FOR EACH ROW INSERT INTO t_stmt VALUES (1); +CREATE INDEX i ON t_row(a); +CREATE TABLE t_row_new ENGINE = InnoDB SELECT * FROM t_row; +ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. +DROP TABLE t_row; + + +################################################################################ +# Verifies if ER_BINLOG_ROW_MODE_AND_STMT_ENGINE happens by setting the binlog +# format to ROW and using a engine, i.e. EXAMPLE, that only supports STATEMENT. +# +# When CREATE TABLE, ALTER TABLE, CREATE INDEX and CREATE TRIGGER are executed +# the error ER_BINLOG_ROW_MODE_AND_STMT_ENGINE is not triggered. Note that other +# errors are triggered due to restrictions in the engine. +# +# In contrast, CREATE TABLE ... SELECT should trigger the following error: +# ER_BINLOG_ROW_MODE_AND_STMT_ENGINE. +################################################################################ +SET binlog_format = ROW; +CREATE TABLE t_stmt (a VARCHAR(100)) ENGINE = EXAMPLE; +ALTER TABLE t_stmt ADD COLUMN b INT; +CREATE TRIGGER trig_stmt BEFORE INSERT ON t_stmt FOR EACH ROW INSERT INTO t_stmt VALUES (1); +CREATE INDEX i ON t_stmt(a); +ERROR 42000: Too many key parts specified; max 0 parts allowed +CREATE TABLE t_stmt_new ENGINE = EXAMPLE SELECT * FROM t_stmt; +ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = ROW and at least one table uses a storage engine limited to statement-based logging +DROP TABLE t_stmt; + + +################################################################################ +# CLEAN UP # +################################################################################ +flush tables; +UNINSTALL PLUGIN example; +SET @@global.binlog_format = @old_binlog_format; +SET @@session.binlog_format = @old_binlog_format; diff --git a/mysql-test/suite/binlog/r/binlog_sql_mode.result b/mysql-test/suite/binlog/r/binlog_sql_mode.result new file mode 100644 index 00000000..27ba30b5 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_sql_mode.result @@ -0,0 +1,153 @@ +SET @old_sql_mode= @@global.sql_mode; +SET @old_binlog_format=@@session.binlog_format; +SET SESSION sql_mode=8; +Initialization +RESET MASTER; +CREATE TABLE t1 (id INT); +CREATE PROCEDURE testProc() SELECT * FROM t1; +CREATE VIEW testView as SELECT * from t1; +CREATE FUNCTION testFunc() +RETURNS INT +BEGIN +return 1; +END;| +CREATE TRIGGER testTrig BEFORE INSERT ON t1 +FOR EACH ROW BEGIN +UPDATE t1 SET id = id +1; +END;| +CREATE EVENT testEvent ON SCHEDULE +EVERY 1 DAY +DO +BEGIN +UPDATE t1 SET id = id +1; +END;| +Warnings: +Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it. +Check Result +select +(@a:=load_file("MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog")) +is not null; +(@a:=load_file("MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog")) +is not null +1 +*** String sql_mode=0 is found: 0 *** +Clean Up +DROP PROCEDURE testProc; +DROP FUNCTION testFunc; +DROP TRIGGER testTrig; +DROP EVENT testEvent; +DROP VIEW testView; +DROP TABLE t1; +SET @@global.sql_mode= @old_sql_mode; +SET @@session.binlog_format=@old_binlog_format; + +# +# Test for Bug#12601974 - STORED PROCEDURE SQL_MODE=NO_BACKSLASH_ESCAPES +# IGNORED AND BREAKS REPLICATION +# +DROP DATABASE IF EXISTS mysqltest_db; +DROP TABLE IF EXISTS test_table; +CREATE DATABASE mysqltest_db; +USE mysqltest_db; +CREATE TABLE test_table (c1 CHAR(50)); +SET @org_mode=@@sql_mode; +SET @@sql_mode=''; +CREATE PROCEDURE proc_without_sql_mode (IN param1 CHAR(50), IN param2 CHAR(50)) +BEGIN +DECLARE var1 CHAR(50) DEFAULT param1; +DECLARE var2 CHAR(50) DEFAULT param2; +DECLARE var3 CHAR(50) DEFAULT 'abcd\bef'; +DECLARE var4 CHAR(50) DEFAULT 'abcd\nef'; +DECLARE var5 CHAR(50) DEFAULT 'abcd\ref'; +DECLARE var6 CHAR(50) DEFAULT 'abcd\tef'; +DECLARE var7 CHAR(50) DEFAULT 'abcd\\ef'; +DECLARE var8 CHAR(50) DEFAULT 'abcd\%ef'; +DECLARE var9 CHAR(50) DEFAULT 'abcd\_ef'; +INSERT INTO test_table VALUES (var1); +INSERT INTO test_table VALUES (var2); +INSERT INTO test_table VALUES (var3); +INSERT INTO test_table VALUES (var4); +INSERT INTO test_table VALUES (var5); +INSERT INTO test_table VALUES (var6); +INSERT INTO test_table VALUES (var7); +INSERT INTO test_table VALUES (var8); +INSERT INTO test_table VALUES (var9); +END +$ +SET @@sql_mode='NO_BACKSLASH_ESCAPES'$ +CREATE PROCEDURE proc_with_sql_mode (IN param1 CHAR(50), IN param2 CHAR(50)) +BEGIN +DECLARE var1 CHAR(50) DEFAULT param1; +DECLARE var2 CHAR(50) DEFAULT param2; +DECLARE var3 CHAR(50) DEFAULT 'wxyz\bef'; +DECLARE var4 CHAR(50) DEFAULT 'wxyz\nef'; +DECLARE var5 CHAR(50) DEFAULT 'wxyz\ref'; +DECLARE var6 CHAR(50) DEFAULT 'wxyz\tef'; +DECLARE var7 CHAR(50) DEFAULT 'wxyz\\ef'; +DECLARE var8 CHAR(50) DEFAULT 'wxyz\%ef'; +DECLARE var9 CHAR(50) DEFAULT 'wxyz\_ef'; +INSERT INTO test_table VALUES (var1); +INSERT INTO test_table VALUES (var2); +INSERT INTO test_table VALUES (var3); +INSERT INTO test_table VALUES (var4); +INSERT INTO test_table VALUES (var5); +INSERT INTO test_table VALUES (var6); +INSERT INTO test_table VALUES (var7); +INSERT INTO test_table VALUES (var8); +INSERT INTO test_table VALUES (var9); +END +$ +SET @@sql_mode=''; +CALL proc_without_sql_mode('abcd\'ef', 'abcd\"ef'); +CALL proc_with_sql_mode('wxyz\'ef', 'wxyz\"ef'); +SELECT * FROM test_table; +c1 +abcd'ef +abcd"ef +abcdef +abcd +ef +abcd
ef +abcd ef +abcd\ef +abcd\%ef +abcd\_ef +wxyz'ef +wxyz"ef +wxyz\bef +wxyz\nef +wxyz\ref +wxyz\tef +wxyz\\ef +wxyz\%ef +wxyz\_ef +"Dropping table test_table" +DROP TABLE test_table; +#"test_table" content after replaying the binlog +SELECT * FROM test_table; +c1 +abcd'ef +abcd"ef +abcdef +abcd +ef +abcd
ef +abcd ef +abcd\ef +abcd\%ef +abcd\_ef +wxyz'ef +wxyz"ef +wxyz\bef +wxyz\nef +wxyz\ref +wxyz\tef +wxyz\\ef +wxyz\%ef +wxyz\_ef +#Clean up +DROP DATABASE mysqltest_db; +SET @@sql_mode= @org_mode; +use test; + +#End of Test for Bug#12601974 diff --git a/mysql-test/suite/binlog/r/binlog_start_comment.result b/mysql-test/suite/binlog/r/binlog_start_comment.result new file mode 100644 index 00000000..c5c906df --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_start_comment.result @@ -0,0 +1,15 @@ +reset master; +drop table if exists t1,t2; +create table t1 (word varchar(20)) -- create table t1; +create table t2 (word varchar(20)) -- create table t2; +load data infile '../../std_data/words.dat' into table t1 -- load data to t1; +insert into t2 values ("Ada"); +flush logs; +select * from t2; +word +Ada +flush logs; +select * from t2; +word +Ada +drop table t1,t2; diff --git a/mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result b/mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result new file mode 100644 index 00000000..a4cd5b40 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result @@ -0,0 +1,53 @@ +reset master; +create table t1 (a int not null auto_increment, primary key (a)) engine=myisam; +insert /* before delayed */ delayed /* after delayed */ into t1 values (207); +insert /*! delayed */ into t1 values (null); +insert delayed into t1 values (300); +FLUSH TABLES; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int not null auto_increment, primary key (a)) engine=myisam +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert /* before delayed */ /* after delayed */ into t1 values (207) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=208 +master-bin.000001 # Query # # use `test`; insert /*! */ into t1 values (null) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values (300) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; FLUSH TABLES +RESET MASTER; +insert /* before delayed */ delayed /* after delayed */ into t1 values (null),(null),(null),(null); +insert /*! delayed */ into t1 values (null),(null),(400),(null); +FLUSH TABLES; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=301 +master-bin.000001 # Query # # use `test`; insert /* before delayed */ /* after delayed */ into t1 values (null),(null),(null),(null) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=305 +master-bin.000001 # Query # # use `test`; insert /*! */ into t1 values (null),(null),(400),(null) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; FLUSH TABLES +select * from t1; +a +207 +208 +300 +301 +302 +303 +304 +305 +306 +400 +401 +drop table t1; +reset master; diff --git a/mysql-test/suite/binlog/r/binlog_stm_binlog.result b/mysql-test/suite/binlog/r/binlog_stm_binlog.result new file mode 100644 index 00000000..7071cb3b --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_binlog.result @@ -0,0 +1,695 @@ +create table t1 (a int, b int) engine=innodb; +begin; +insert into t1 values (1,2); +commit; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int, b int) engine=innodb +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values (1,2) +master-bin.000001 # Xid # # COMMIT /* XID */ +drop table t1; +drop table if exists t1, t2; +reset master; +create table t1 (a int) engine=innodb; +create table t2 (a int) engine=innodb; +begin; +insert t1 values (5); +commit; +begin; +insert t2 values (5); +commit; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int) engine=innodb +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t2 (a int) engine=innodb +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert t1 values (5) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert t2 values (5) +master-bin.000001 # Xid # # COMMIT /* XID */ +drop table t1,t2; +reset master; +create table t1 (n int) engine=innodb; +begin; +commit; +drop table t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (n int) engine=innodb +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(100 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(99 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(98 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(97 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(96 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(95 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(94 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(93 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(92 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(91 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(90 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(89 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(88 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(87 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(86 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(85 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(84 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(83 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(82 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(81 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(80 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(79 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(78 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(77 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(76 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(75 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(74 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(73 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(72 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(71 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(70 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(69 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(68 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(67 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(66 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(65 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(64 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(63 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(62 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(61 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(60 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(59 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(58 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(57 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(56 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(55 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(54 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(53 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(52 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(51 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(50 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(49 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(48 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(47 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(46 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(45 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(44 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(43 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(42 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(41 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(40 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(39 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(38 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(37 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(36 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(35 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(34 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(33 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(32 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(31 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(30 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(29 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(28 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(27 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(26 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(25 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(24 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(23 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(22 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(21 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(20 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(19 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(18 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(17 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(16 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(15 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(14 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(13 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(12 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(11 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(10 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(9 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(8 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(7 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(6 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(5 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(4 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(3 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(2 + 4) +master-bin.000001 # Query # # use `test`; insert into t1 values(1 + 4) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Rotate # # master-bin.000002;pos=POS +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000002 # Binlog_checkpoint # # master-bin.000002 +master-bin.000002 # Gtid # # GTID #-#-# +master-bin.000002 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +set @ac = @@autocommit; +set autocommit= 0; +reset master; +create table t1(n int) engine=innodb; +begin; +insert into t1 values (1); +insert into t1 values (2); +insert into t1 values (3); +commit; +drop table t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1(n int) engine=innodb +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values (1) +master-bin.000001 # Query # # use `test`; insert into t1 values (2) +master-bin.000001 # Query # # use `test`; insert into t1 values (3) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +set @bcs = @@binlog_cache_size; +set global binlog_cache_size=4096; +reset master; +create table t1 (a int, b char(255)) engine=innodb; +flush status; +show status like "binlog_cache_use"; +Variable_name Value +Binlog_cache_use 0 +*** the following must show the counter value = 1 *** +Variable_name Value +Binlog_cache_use 1 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int, b char(255)) engine=innodb +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; flush status +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values( 100, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 99, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 98, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 97, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 96, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 95, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 94, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 93, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 92, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 91, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 90, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 89, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 88, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 87, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 86, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 85, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 84, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 83, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 82, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 81, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 80, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 79, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 78, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 77, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 76, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 75, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 74, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 73, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 72, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 71, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 70, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 69, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 68, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 67, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 66, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 65, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 64, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 63, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 62, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 61, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 60, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 59, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 58, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 57, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 56, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 55, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 54, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 53, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 52, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 51, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 50, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 49, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 48, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 47, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 46, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 45, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 44, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 43, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 42, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 41, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 40, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 39, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 38, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 37, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 36, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 35, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 34, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 33, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 32, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 31, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 30, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 29, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 28, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 27, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 26, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 25, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 24, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 23, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 22, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 21, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 20, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 19, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 18, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 17, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 16, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 15, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 14, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 13, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 12, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 11, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 10, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 9, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 8, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 7, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 6, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 5, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 4, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 3, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 2, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Query # # use `test`; insert into t1 values( 1, 'just to fill void to make transaction occupying at least two buffers of the trans cache' ) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Rotate # # master-bin.000002;pos=POS +drop table t1; +set global binlog_cache_size=@bcs; +set session autocommit = @ac; +drop table if exists t1; +reset master; +create table t1 (a bigint unsigned, b bigint(20) unsigned); +prepare stmt from "insert into t1 values (?,?)"; +set @a= 9999999999999999; +set @b= 14632475938453979136; +execute stmt using @a, @b; +deallocate prepare stmt; +drop table t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a bigint unsigned, b bigint(20) unsigned) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values (9999999999999999,14632475938453979136) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +reset master; +CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; +USE bug39182; +CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) +DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +CREATE PROCEDURE p1() +BEGIN +DECLARE s1 VARCHAR(255); +SET s1= "test"; +CREATE TEMPORARY TABLE tmp1 +SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); +SELECT +COLLATION(NAME_CONST('s1', _utf8'test')) c1, +COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, +COLLATION(s1) c3, +COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, +COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, +COERCIBILITY(s1) d3; +DROP TEMPORARY TABLE tmp1; +END// +CALL p1(); +c1 c2 c3 d1 d2 d3 +utf8_general_ci utf8_unicode_ci utf8_unicode_ci 2 2 2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `bug39182`; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci) +DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `bug39182`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() +BEGIN +DECLARE s1 VARCHAR(255); +SET s1= "test"; +CREATE TEMPORARY TABLE tmp1 +SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%"); +SELECT +COLLATION(NAME_CONST('s1', _utf8'test')) c1, +COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2, +COLLATION(s1) c3, +COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1, +COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2, +COERCIBILITY(s1) d3; +DROP TEMPORARY TABLE tmp1; +END +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `bug39182`; CREATE TEMPORARY TABLE tmp1 +SELECT * FROM t1 WHERE a LIKE CONCAT("%", NAME_CONST('s1',_utf8'test' COLLATE 'utf8_unicode_ci'), "%") +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `bug39182`; DROP TEMPORARY TABLE `tmp1` /* generated by server */ +DROP PROCEDURE p1; +DROP TABLE t1; +DROP DATABASE bug39182; +USE test; +CREATE PROCEDURE p1(IN v1 INT) +BEGIN +CREATE TABLE t1 SELECT v1; +DROP TABLE t1; +END// +CREATE PROCEDURE p2() +BEGIN +DECLARE v1 INT; +CREATE TABLE t1 SELECT v1+1; +DROP TABLE t1; +END// +CREATE PROCEDURE p3(IN v1 INT) +BEGIN +CREATE TABLE t1 SELECT 1 FROM DUAL WHERE v1!=0; +DROP TABLE t1; +END// +CREATE PROCEDURE p4(IN v1 INT) +BEGIN +DECLARE v2 INT; +CREATE TABLE t1 SELECT 1, v1, v2; +DROP TABLE t1; +CREATE TABLE t1 SELECT 1, v1+1, v2; +DROP TABLE t1; +END// +CALL p1(1); +CALL p2(); +CALL p3(0); +CALL p4(0); +DROP PROCEDURE p1; +DROP PROCEDURE p2; +DROP PROCEDURE p3; +DROP PROCEDURE p4; +End of 5.0 tests +reset master; +create table t1 (id tinyint auto_increment primary key); +insert into t1 values(5); +set insert_id=128; +insert into t1 values(null) /* Not binlogged */; +ERROR 22003: Out of range value for column 'id' at row 1 +set insert_id=128; +insert ignore into t1 values(null) /* Insert 128 */; +Warnings: +Warning 167 Out of range value for column 'id' at row 1 +set insert_id=5; +insert into t1 values(null) /* Not binlogged */; +ERROR 23000: Duplicate entry '5' for key 'PRIMARY' +set insert_id=5; +insert ignore into t1 values(null) /* Insert 5 */; +Warnings: +Warning 1062 Duplicate entry '5' for key 'PRIMARY' +select * from t1; +id +5 +drop table t1; +create table t1 (id tinyint auto_increment primary key) engine=myisam; +set insert_id=128; +insert into t1 values(5),(null) /* Insert_id 128 */; +ERROR 22003: Out of range value for column 'id' at row 2 +set insert_id=128; +insert ignore into t1 values (4),(null) /* Insert_id 128 */; +Warnings: +Warning 167 Out of range value for column 'id' at row 2 +set insert_id=5; +insert into t1 values(3),(null) /* Insert_id 5 */; +ERROR 23000: Duplicate entry '5' for key 'PRIMARY' +set insert_id=5; +insert ignore into t1 values(2),(null) /* Insert_id 5 */; +Warnings: +Warning 1062 Duplicate entry '5' for key 'PRIMARY' +select * from t1 order by id; +id +2 +3 +4 +5 +drop table t1; +create table t1 (a int); +create table if not exists t2 select * from t1; +create temporary table tt1 (a int); +create table if not exists t3 like tt1; +USE mysql; +INSERT db SET host='localhost', user='@#@', db='Just a test'; +UPDATE db SET db='Another db' WHERE host='localhost' AND user='@#@'; +DELETE FROM db WHERE host='localhost' AND user='@#@'; +use test; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (id tinyint auto_increment primary key) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(5) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=128 +master-bin.000001 # Query # # use `test`; insert ignore into t1 values(null) /* Insert 128 */ +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=5 +master-bin.000001 # Query # # use `test`; insert ignore into t1 values(null) /* Insert 5 */ +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (id tinyint auto_increment primary key) engine=myisam +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=128 +master-bin.000001 # Query # # use `test`; insert into t1 values(5),(null) /* Insert_id 128 */ +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=128 +master-bin.000001 # Query # # use `test`; insert ignore into t1 values (4),(null) /* Insert_id 128 */ +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=5 +master-bin.000001 # Query # # use `test`; insert into t1 values(3),(null) /* Insert_id 5 */ +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=5 +master-bin.000001 # Query # # use `test`; insert ignore into t1 values(2),(null) /* Insert_id 5 */ +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table if not exists t2 select * from t1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create temporary table tt1 (a int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table if not exists t3 like tt1 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `mysql`; INSERT db SET host='localhost', user='@#@', db='Just a test' +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `mysql`; UPDATE db SET db='Another db' WHERE host='localhost' AND user='@#@' +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `mysql`; DELETE FROM db WHERE host='localhost' AND user='@#@' +master-bin.000001 # Query # # COMMIT +drop table t1,t2,t3,tt1; +reset master; +create table t1 (a int not null auto_increment, primary key (a)) engine=myisam; +insert /* before delayed */ delayed /* after delayed */ into t1 values (207); +insert /*! delayed */ into t1 values (null); +insert delayed into t1 values (300); +FLUSH TABLES; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int not null auto_increment, primary key (a)) engine=myisam +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; FLUSH TABLES +RESET MASTER; +insert /* before delayed */ delayed /* after delayed */ into t1 values (null),(null),(null),(null); +insert /*! delayed */ into t1 values (null),(null),(400),(null); +select * from t1; +a +207 +208 +300 +301 +302 +303 +304 +305 +306 +400 +401 +drop table t1; +reset master; +drop table if exists t3; +create table t3 (a int(11) NOT NULL AUTO_INCREMENT, b text, PRIMARY KEY (a) ) engine=innodb; +File master-bin.000001 +insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); +insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); +insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); +insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); +*** show new binlog index after rotating *** +File master-bin.000002 +drop table t3; +# +# Bug #45998: database crashes when running "create as select" +# +CREATE DATABASE test1; +USE test1; +DROP DATABASE test1; +CREATE TABLE test.t1(a int); +INSERT INTO test.t1 VALUES (1), (2); +CREATE TABLE test.t2 SELECT * FROM test.t1; +USE test; +DROP TABLES t1, t2; +connect fresh,localhost,root,,test; +connection fresh; +RESET MASTER; +CREATE TABLE t1 (a INT PRIMARY KEY); +BINLOG ' +3u9kSA8KAAAAZgAAAGoAAAABAAQANS4xLjM1LW1hcmlhLWJldGExLWRlYnVnLWxvZwAAAAAAAAAA +AAAAAAAAAAAAAAAAAADe72RIEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC +'; +INSERT INTO t1 VALUES (1); +BINLOG ' +3u9kSBMUAAAAKQAAAJEBAAAAABoAAAAAAAAABHRlc3QAAnQxAAEDAAA= +3u9kSBcUAAAAIgAAALMBAAAQABoAAAAAAAEAAf/+AgAAAA== +'; +SHOW BINLOG EVENTS; +Log_name Pos Event_type Server_id End_log_pos Info +# # Format_desc 1 # Server ver: #, Binlog ver: # +# # Gtid_list 1 # [] +# # Binlog_checkpoint 1 # master-bin.000001 +# # Gtid 1 # GTID 0-1-1 +# # Query 1 # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY) +# # Gtid 1 # BEGIN GTID 0-1-2 +# # Query 1 # use `test`; INSERT INTO t1 VALUES (1) +# # Query 1 # COMMIT +# # Gtid 1 # BEGIN GTID 0-1-3 +# # Annotate_rows 1 # BINLOG ' +3u9kSBMUAAAAKQAAAJEBAAAAABoAAAAAAAAABHRlc3QAAnQxAAEDAAA= +3u9kSBcUAAAAIgAAALMBAAAQABoAAAAAAAEAAf/+AgAAAA== +' +# # Table_map 1 # table_id: # (test.t1) +# # Write_rows_v1 1 # table_id: # flags: STMT_END_F +# # Query 1 # COMMIT +DROP TABLE t1; + +# BUG#54903 BINLOG statement toggles session variables +# ---------------------------------------------------------------------- +# This test verify that BINLOG statement doesn't change current session's +# variables foreign_key_checks and unique_checks. + +CREATE TABLE t1 (c1 INT KEY); +SET @@SESSION.foreign_key_checks= ON; +SET @@SESSION.unique_checks= ON; +# INSERT INTO t1 VALUES (1) +# foreign_key_checks=0 and unique_checks=0 +BINLOG ' +dfLtTBMBAAAAKQAAANcAAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE= +dfLtTBcBAAAAIgAAAPkAAAAAABcAAAAAAAcAAf/+AQAAAA== +'; +SELECT * FROM t1; +c1 +1 +# Their values should be ON +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; +Variable_name Value +foreign_key_checks ON +SHOW SESSION VARIABLES LIKE "unique_checks"; +Variable_name Value +unique_checks ON + +SET @@SESSION.foreign_key_checks= OFF; +SET @@SESSION.unique_checks= OFF; +# INSERT INTO t1 VALUES(2) +# foreign_key_checks=1 and unique_checks=1 +BINLOG ' +dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE= +dfLtTBcBAAAAIgAAAM0BAAAAABcAAAAAAAEAAf/+AgAAAA== +'; +SELECT * FROM t1; +c1 +1 +2 +# Their values should be OFF +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; +Variable_name Value +foreign_key_checks OFF +SHOW SESSION VARIABLES LIKE "unique_checks"; +Variable_name Value +unique_checks OFF +# INSERT INTO t1 VALUES(2) +# foreign_key_checks=1 and unique_checks=1 +# It should not change current session's variables, even error happens +call mtr.add_suppression("BINLOG_BASE64_EVENT.*Could not execute Write_rows_v1 event on table test.t1; Duplicate entry .2. for key .PRIMARY., Error_code: 1062"); +BINLOG ' +dfLtTBMBAAAAKQAAAKsBAAAAABcAAAAAAAEABHRlc3QAAnQxAAEDAAE= +dfLtTBcBAAAAIgAAAM0BAAAAABcAAAAAAAEAAf/+AgAAAA== +'; +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +SELECT * FROM t1; +c1 +1 +2 +# Their values should be OFF +SHOW SESSION VARIABLES LIKE "foreign_key_checks"; +Variable_name Value +foreign_key_checks OFF +SHOW SESSION VARIABLES LIKE "unique_checks"; +Variable_name Value +unique_checks OFF +DROP TABLE t1; +disconnect fresh; +connection default; +# +# MDEV-25595 DROP part of failed CREATE OR REPLACE is not written into binary log +# +reset master; +create table t as select 1 as b, 2 as b; +ERROR 42S21: Duplicate column name 'b' +create table t (old_table_field int); +create or replace table t as select 1 as b, 2 as b; +ERROR 42S21: Duplicate column name 'b' +create or replace temporary table t as select 1 as b, 2 as b; +ERROR 42S21: Duplicate column name 'b' +create table t (new_table_field int); +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t (old_table_field int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `test`.`t`/* Generated to handle failed CREATE OR REPLACE */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`t`/* Generated to handle failed CREATE OR REPLACE */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t (new_table_field int) +drop table t; diff --git a/mysql-test/suite/binlog/r/binlog_stm_blackhole.result b/mysql-test/suite/binlog/r/binlog_stm_blackhole.result new file mode 100644 index 00000000..feed949a --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_blackhole.result @@ -0,0 +1,200 @@ +CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); +drop table if exists t1,t2; +CREATE TABLE t1 ( +Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL, +Varor_period smallint(4) unsigned DEFAULT '0' NOT NULL +) ENGINE=blackhole; +INSERT INTO t1 VALUES (9410,9412); +select period from t1; +period +select * from t1; +Period Varor_period +select t1.* from t1; +Period Varor_period +CREATE TABLE t2 ( +auto int NOT NULL auto_increment, +fld1 int(6) unsigned zerofill DEFAULT '000000' NOT NULL, +companynr tinyint(2) unsigned zerofill DEFAULT '00' NOT NULL, +fld3 char(30) DEFAULT '' NOT NULL, +fld4 char(35) DEFAULT '' NOT NULL, +fld5 char(35) DEFAULT '' NOT NULL, +fld6 char(4) DEFAULT '' NOT NULL, +primary key (auto) +) ENGINE=blackhole; +INSERT INTO t2 VALUES (1192,068305,00,'Colombo','hardware','colicky',''); +INSERT INTO t2 VALUES (1193,000000,00,'nondecreasing','implant','thrillingly',''); +select t2.fld3 from t2 where companynr = 58 and fld3 like "%imaginable%"; +fld3 +select fld3 from t2 where fld3 like "%cultivation" ; +fld3 +select t2.fld3,companynr from t2 where companynr = 57+1 order by fld3; +fld3 companynr +select fld3,companynr from t2 where companynr = 58 order by fld3; +fld3 companynr +select fld3 from t2 order by fld3 desc limit 10; +fld3 +select fld3 from t2 order by fld3 desc limit 5; +fld3 +select fld3 from t2 order by fld3 desc limit 5,5; +fld3 +select t2.fld3 from t2 where fld3 = 'honeysuckle'; +fld3 +select t2.fld3 from t2 where fld3 LIKE 'honeysuckl_'; +fld3 +select t2.fld3 from t2 where fld3 LIKE 'hon_ysuckl_'; +fld3 +select t2.fld3 from t2 where fld3 LIKE 'honeysuckle%'; +fld3 +select t2.fld3 from t2 where fld3 LIKE 'h%le'; +fld3 +select t2.fld3 from t2 where fld3 LIKE 'honeysuckle_'; +fld3 +select t2.fld3 from t2 where fld3 LIKE 'don_t_find_me_please%'; +fld3 +select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3; +fld3 +select fld1,fld3 from t2 where fld3="Colombo" or fld3 = "nondecreasing" order by fld3; +fld1 fld3 +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b)); +INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'), +('Full-text indexes', 'are called collections'), +('Only MyISAM tables','support collections'), +('Function MATCH ... AGAINST()','is used to do a search'), +('Full-text search in MySQL', 'implements vector space model'); +SHOW INDEX FROM t1; +Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment +t1 1 a 1 a NULL NULL NULL NULL YES FULLTEXT +t1 1 a 2 b NULL NULL NULL NULL YES FULLTEXT +select * from t1 where MATCH(a,b) AGAINST ("collections"); +a b +Only MyISAM tables support collections +Full-text indexes are called collections +explain extended select * from t1 where MATCH(a,b) AGAINST ("collections"); +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 fulltext a a 0 1 100.00 Using where +Warnings: +Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (match `test`.`t1`.`a`,`test`.`t1`.`b` against ('collections')) +select * from t1 where MATCH(a,b) AGAINST ("indexes"); +a b +Full-text indexes are called collections +select * from t1 where MATCH(a,b) AGAINST ("indexes collections"); +a b +Full-text indexes are called collections +Only MyISAM tables support collections +select * from t1 where MATCH(a,b) AGAINST ("only"); +a b +reset master; +drop table t1,t2; +create table t1 (a int) engine=blackhole; +delete from t1 where a=10; +update t1 set a=11 where a=15; +insert into t1 values(1); +insert ignore into t1 values(1); +replace into t1 values(100); +create table t2 (a varchar(200)) engine=blackhole; +load data infile '../../std_data/words.dat' into table t2; +alter table t1 add b int; +alter table t1 drop b; +create table t3 like t1; +insert into t1 select * from t3; +replace into t1 select * from t3; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. REPLACE... SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave +select * from t1; +a +select * from t2; +a +select * from t3; +a +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1`,`t2` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int) engine=blackhole +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; delete from t1 where a=10 +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; update t1 set a=11 where a=15 +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(1) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert ignore into t1 values(1) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; replace into t1 values(100) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t2 (a varchar(200)) engine=blackhole +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=# +master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE `t2` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`a`) ;file_id=# +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; alter table t1 add b int +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; alter table t1 drop b +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t3 like t1 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 select * from t3 +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; replace into t1 select * from t3 +master-bin.000001 # Query # # COMMIT +drop table t1,t2,t3; +CREATE TABLE t1(a INT) ENGINE=BLACKHOLE; +INSERT DELAYED INTO t1 VALUES(1); +DROP TABLE t1; +CREATE TABLE t1(a INT, b INT) ENGINE=BLACKHOLE; +DELETE FROM t1 WHERE a=10; +ALTER TABLE t1 ADD INDEX(a); +DELETE FROM t1 WHERE a=10; +ALTER TABLE t1 DROP INDEX a; +ALTER TABLE t1 ADD UNIQUE INDEX(a); +DELETE FROM t1 WHERE a=10; +ALTER TABLE t1 DROP INDEX a; +ALTER TABLE t1 ADD PRIMARY KEY(a); +DELETE FROM t1 WHERE a=10; +DROP TABLE t1; +reset master; +create table t1 (a int) engine=blackhole; +set autocommit=0; +start transaction; +insert into t1 values(1); +commit; +start transaction; +insert into t1 values(2); +rollback; +set autocommit=1; +drop table if exists t1; +reset master; +create table t1 (a int auto_increment, primary key (a)) engine=blackhole; +insert into t1 values (11), (NULL), (NULL), (NULL); +set insert_id= 3; +insert into t1 values (NULL), (33), (NULL); +set insert_id= 5; +insert into t1 values (55), (NULL); +show binlog events from <binlog_start>; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid_list 1 # [] +master-bin.000001 # Binlog_checkpoint 1 # master-bin.000001 +master-bin.000001 # Gtid 1 # GTID #-#-# +master-bin.000001 # Query 1 # use `test`; create table t1 (a int auto_increment, primary key (a)) engine=blackhole +master-bin.000001 # Gtid 1 # BEGIN GTID #-#-# +master-bin.000001 # Intvar 1 # INSERT_ID=1 +master-bin.000001 # Query 1 # use `test`; insert into t1 values (11), (NULL), (NULL), (NULL) +master-bin.000001 # Query 1 # COMMIT +master-bin.000001 # Gtid 1 # BEGIN GTID #-#-# +master-bin.000001 # Intvar 1 # INSERT_ID=3 +master-bin.000001 # Query 1 # use `test`; insert into t1 values (NULL), (33), (NULL) +master-bin.000001 # Query 1 # COMMIT +master-bin.000001 # Gtid 1 # BEGIN GTID #-#-# +master-bin.000001 # Intvar 1 # INSERT_ID=5 +master-bin.000001 # Query 1 # use `test`; insert into t1 values (55), (NULL) +master-bin.000001 # Query 1 # COMMIT +drop table t1; diff --git a/mysql-test/suite/binlog/r/binlog_stm_cache_stat.result b/mysql-test/suite/binlog/r/binlog_stm_cache_stat.result new file mode 100644 index 00000000..6e2df0c5 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_cache_stat.result @@ -0,0 +1,72 @@ +drop table if exists t1, t2; +create table t1 (a int) engine=innodb; +create table t2 (a int) engine=myisam; +set @save_binlog_stmt_cache_size=@@global.binlog_stmt_cache_size; +set @save_binlog_cache_size=@@global.binlog_cache_size; +set @@global.binlog_stmt_cache_size=32768; +set @@global.binlog_cache_size=32768; +**** Preparing the enviroment to check commit and its effect on status variables. +**** Expected: binlog_cache_use = 0, binlog_cache_disk_use = 0. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +flush status; +**** Transactional changes which are long enough so they will be flushed to disk... +**** Expected: binlog_cache_use = 1, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +**** Transactional changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +commit; +**** Non-Transactional changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 1, binlog_stmt_cache_disk_use = 0. +begin; +insert into t2 values( 1 ); +commit; +**** Mixed changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 3, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 2, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +insert into t2 values( 1 ); +commit; +**** Preparing the enviroment to check abort and its effect on the status variables. +**** Expected: binlog_cache_use = 0, binlog_cache_disk_use = 0. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +flush status; +**** Transactional changes which are long enough so they will be flushed to disk... +**** Expected: binlog_cache_use = 1, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +**** Transactional changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +rollback; +**** Non-Transactional changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 2, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 1, binlog_stmt_cache_disk_use = 0. +begin; +insert into t2 values( 1 ); +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +**** Mixed changes which should not be flushed to disk and so should not +**** increase either binlog_cache_disk_use or binlog_stmt_cache_disk_use. +**** Expected: binlog_cache_use = 3, binlog_cache_disk_use = 1. +**** Expected: binlog_stmt_cache_use = 2, binlog_stmt_cache_disk_use = 0. +begin; +insert into t1 values( 1 ); +insert into t2 values( 1 ); +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +drop table t1, t2; +set @@global.binlog_stmt_cache_size=@save_binlog_stmt_cache_size; +set @@global.binlog_cache_size=@save_binlog_cache_size; diff --git a/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result b/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result new file mode 100644 index 00000000..f4f97538 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result @@ -0,0 +1,11665 @@ +drop table if exists t1; +drop table if exists t2; +drop table if exists t3; +drop table if exists t4; +SET @test_character_set= 'cp932'; +SET @test_collation= 'cp932_japanese_ci'; +SET @safe_character_set_server= @@character_set_server; +SET @safe_collation_server= @@collation_server; +SET @safe_character_set_client= @@character_set_client; +SET @safe_character_set_results= @@character_set_results; +SET character_set_server= @test_character_set; +SET collation_server= @test_collation; +CREATE DATABASE d1; +USE d1; +CREATE TABLE t1 (c CHAR(10), KEY(c)); +SHOW FULL COLUMNS FROM t1; +Field Type Collation Null Key Default Extra Privileges Comment +c char(10) cp932_japanese_ci YES MUL NULL +INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa'); +SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%'; +want3results +aaa +aaaa +aaaaa +DROP TABLE t1; +CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2))); +SHOW FULL COLUMNS FROM t1; +Field Type Collation Null Key Default Extra Privileges Comment +c1 varchar(15) cp932_japanese_ci YES MUL NULL +INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab'); +SELECT c1 as want3results from t1 where c1 like 'l%'; +want3results +location +loberge +lotre +SELECT c1 as want3results from t1 where c1 like 'lo%'; +want3results +location +loberge +lotre +SELECT c1 as want1result from t1 where c1 like 'loc%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'loca%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locat%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locati%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locatio%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'location%'; +want1result +location +DROP TABLE t1; +create table t1 (a set('a') not null); +insert ignore into t1 values (),(); +Warnings: +Warning 1364 Field 'a' doesn't have a default value +select cast(a as char(1)) from t1; +cast(a as char(1)) + + +select a sounds like a from t1; +a sounds like a +1 +1 +select 1 from t1 order by cast(a as char(1)); +1 +1 +1 +drop table t1; +# +# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +# +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +COLLATION('.') c1 +cp932_japanese_ci .wwwmysqlcom +set names utf8; +create table t1 ( +name varchar(10), +level smallint unsigned); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `name` varchar(10) DEFAULT NULL, + `level` smallint(5) unsigned DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=cp932 +insert into t1 values ('string',1); +select concat(name,space(level)), concat(name, repeat(' ',level)) from t1; +concat(name,space(level)) concat(name, repeat(' ',level)) +string string +drop table t1; +DROP DATABASE d1; +USE test; +SET character_set_server= @safe_character_set_server; +SET collation_server= @safe_collation_server; +SET character_set_client= @safe_character_set_client; +SET character_set_results= @safe_character_set_results; +set names cp932; +set character_set_database = cp932; +CREATE TABLE t1(c1 CHAR(1)) DEFAULT CHARACTER SET = cp932; +INSERT INTO t1 VALUES +(0x05),(0x7E),(0x815C),(0x815F),(0x8160),(0x8161),(0x817C),(0x8191),(0x8192),(0x81CA); +INSERT INTO t1 VALUES +(0x8740),(0x8741),(0x8742),(0x8743),(0x8744),(0x8745),(0x8746),(0x8747), +(0x8748),(0x8749),(0x874A),(0x874B),(0x874C),(0x874D),(0x874E),(0x874F), +(0x8750),(0x8751),(0x8752),(0x8753),(0x8754),(0x8755),(0x8756),(0x8757), +(0x8758),(0x8759),(0x875A),(0x875B),(0x875C),(0x875D),(0x875F), +(0x8760),(0x8761),(0x8762),(0x8763),(0x8764),(0x8765),(0x8766),(0x8767), +(0x8768),(0x8769),(0x876A),(0x876B),(0x876C),(0x876D),(0x876E),(0x876F), +(0x8770),(0x8771),(0x8772),(0x8773),(0x8774),(0x8775),(0x877E), +(0x8780),(0x8781),(0x8782),(0x8783),(0x8784),(0x8785),(0x8786),(0x8787), +(0x8788),(0x8789),(0x878A),(0x878B),(0x878C),(0x878D),(0x878E),(0x878F), +(0x8790),(0x8791),(0x8792),(0x8793),(0x8794),(0x8795),(0x8796),(0x8797), +(0x8798),(0x8799),(0x879A),(0x879B),(0x879C); +INSERT INTO t1 VALUES +(0xED40),(0xED41),(0xED42),(0xED43),(0xED44),(0xED45),(0xED46),(0xED47), +(0xED48),(0xED49),(0xED4A),(0xED4B),(0xED4C),(0xED4D),(0xED4E),(0xED4F), +(0xED50),(0xED51),(0xED52),(0xED53),(0xED54),(0xED55),(0xED56),(0xED57), +(0xED58),(0xED59),(0xED5A),(0xED5B),(0xED5C),(0xED5D),(0xED5E),(0xED5F), +(0xED60),(0xED61),(0xED62),(0xED63),(0xED64),(0xED65),(0xED66),(0xED67), +(0xED68),(0xED69),(0xED6A),(0xED6B),(0xED6C),(0xED6D),(0xED6E),(0xED6F), +(0xED70),(0xED71),(0xED72),(0xED73),(0xED74),(0xED75),(0xED76),(0xED77), +(0xED78),(0xED79),(0xED7A),(0xED7B),(0xED7C),(0xED7D),(0xED7E), +(0xED80),(0xED81),(0xED82),(0xED83),(0xED84),(0xED85),(0xED86),(0xED87), +(0xED88),(0xED89),(0xED8A),(0xED8B),(0xED8C),(0xED8D),(0xED8E),(0xED8F), +(0xED90),(0xED91),(0xED92),(0xED93),(0xED94),(0xED95),(0xED96),(0xED97), +(0xED98),(0xED99),(0xED9A),(0xED9B),(0xED9C),(0xED9D),(0xED9E),(0xED9F), +(0xEDA0),(0xEDA1),(0xEDA2),(0xEDA3),(0xEDA4),(0xEDA5),(0xEDA6),(0xEDA7), +(0xEDA8),(0xEDA9),(0xEDAA),(0xEDAB),(0xEDAC),(0xEDAD),(0xEDAE),(0xEDAF), +(0xEDB0),(0xEDB1),(0xEDB2),(0xEDB3),(0xEDB4),(0xEDB5),(0xEDB6),(0xEDB7), +(0xEDB8),(0xEDB9),(0xEDBA),(0xEDBB),(0xEDBC),(0xEDBD),(0xEDBE),(0xEDBF), +(0xEDC0),(0xEDC1),(0xEDC2),(0xEDC3),(0xEDC4),(0xEDC5),(0xEDC6),(0xEDC7), +(0xEDC8),(0xEDC9),(0xEDCA),(0xEDCB),(0xEDCC),(0xEDCD),(0xEDCE),(0xEDCF), +(0xEDD0),(0xEDD1),(0xEDD2),(0xEDD3),(0xEDD4),(0xEDD5),(0xEDD6),(0xEDD7), +(0xEDD8),(0xEDD9),(0xEDDA),(0xEDDB),(0xEDDC),(0xEDDD),(0xEDDE),(0xEDDF), +(0xEDE0),(0xEDE1),(0xEDE2),(0xEDE3),(0xEDE4),(0xEDE5),(0xEDE6),(0xEDE7), +(0xEDE8),(0xEDE9),(0xEDEA),(0xEDEB),(0xEDEC),(0xEDED),(0xEDEE),(0xEDEF), +(0xEDF0),(0xEDF1),(0xEDF2),(0xEDF3),(0xEDF4),(0xEDF5),(0xEDF6),(0xEDF7), +(0xEDF8),(0xEDF9),(0xEDFA),(0xEDFB),(0xEDFC), +(0xEE40),(0xEE41),(0xEE42),(0xEE43),(0xEE44),(0xEE45),(0xEE46),(0xEE47), +(0xEE48),(0xEE49),(0xEE4A),(0xEE4B),(0xEE4C),(0xEE4D),(0xEE4E),(0xEE4F), +(0xEE50),(0xEE51),(0xEE52),(0xEE53),(0xEE54),(0xEE55),(0xEE56),(0xEE57), +(0xEE58),(0xEE59),(0xEE5A),(0xEE5B),(0xEE5C),(0xEE5D),(0xEE5E),(0xEE5F), +(0xEE60),(0xEE61),(0xEE62),(0xEE63),(0xEE64),(0xEE65),(0xEE66),(0xEE67), +(0xEE68),(0xEE69),(0xEE6A),(0xEE6B),(0xEE6C),(0xEE6D),(0xEE6E),(0xEE6F), +(0xEE70),(0xEE71),(0xEE72),(0xEE73),(0xEE74),(0xEE75),(0xEE76),(0xEE77), +(0xEE78),(0xEE79),(0xEE7A),(0xEE7B),(0xEE7C),(0xEE7D),(0xEE7E), +(0xEE80),(0xEE81),(0xEE82),(0xEE83),(0xEE84),(0xEE85),(0xEE86),(0xEE87), +(0xEE88),(0xEE89),(0xEE8A),(0xEE8B),(0xEE8C),(0xEE8D),(0xEE8E),(0xEE8F), +(0xEE90),(0xEE91),(0xEE92),(0xEE93),(0xEE94),(0xEE95),(0xEE96),(0xEE97), +(0xEE98),(0xEE99),(0xEE9A),(0xEE9B),(0xEE9C),(0xEE9D),(0xEE9E),(0xEE9F), +(0xEEA0),(0xEEA1),(0xEEA2),(0xEEA3),(0xEEA4),(0xEEA5),(0xEEA6),(0xEEA7), +(0xEEA8),(0xEEA9),(0xEEAA),(0xEEAB),(0xEEAC),(0xEEAD),(0xEEAE),(0xEEAF), +(0xEEB0),(0xEEB1),(0xEEB2),(0xEEB3),(0xEEB4),(0xEEB5),(0xEEB6),(0xEEB7), +(0xEEB8),(0xEEB9),(0xEEBA),(0xEEBB),(0xEEBC),(0xEEBD),(0xEEBE),(0xEEBF), +(0xEEC0),(0xEEC1),(0xEEC2),(0xEEC3),(0xEEC4),(0xEEC5),(0xEEC6),(0xEEC7), +(0xEEC8),(0xEEC9),(0xEECA),(0xEECB),(0xEECC),(0xEECD),(0xEECE),(0xEECF), +(0xEED0),(0xEED1),(0xEED2),(0xEED3),(0xEED4),(0xEED5),(0xEED6),(0xEED7), +(0xEED8),(0xEED9),(0xEEDA),(0xEEDB),(0xEEDC),(0xEEDD),(0xEEDE),(0xEEDF), +(0xEEE0),(0xEEE1),(0xEEE2),(0xEEE3),(0xEEE4),(0xEEE5),(0xEEE6),(0xEEE7), +(0xEEE8),(0xEEE9),(0xEEEA),(0xEEEB),(0xEEEC),(0xEEEF), +(0xEEF0),(0xEEF1),(0xEEF2),(0xEEF3),(0xEEF4),(0xEEF5),(0xEEF6),(0xEEF7), +(0xEEF8),(0xEEF9),(0xEEFA),(0xEEFB),(0xEEFC); +INSERT INTO t1 VALUES +(0xFA40),(0xFA41),(0xFA42),(0xFA43),(0xFA44),(0xFA45),(0xFA46),(0xFA47), +(0xFA48),(0xFA49),(0xFA4A),(0xFA4B),(0xFA4C),(0xFA4D),(0xFA4E),(0xFA4F), +(0xFA50),(0xFA51),(0xFA52),(0xFA53),(0xFA54),(0xFA55),(0xFA56),(0xFA57), +(0xFA58),(0xFA59),(0xFA5A),(0xFA5B),(0xFA5C),(0xFA5D),(0xFA5E),(0xFA5F), +(0xFA60),(0xFA61),(0xFA62),(0xFA63),(0xFA64),(0xFA65),(0xFA66),(0xFA67), +(0xFA68),(0xFA69),(0xFA6A),(0xFA6B),(0xFA6C),(0xFA6D),(0xFA6E),(0xFA6F), +(0xFA70),(0xFA71),(0xFA72),(0xFA73),(0xFA74),(0xFA75),(0xFA76),(0xFA77), +(0xFA78),(0xFA79),(0xFA7A),(0xFA7B),(0xFA7C),(0xFA7D),(0xFA7E), +(0xFA80),(0xFA81),(0xFA82),(0xFA83),(0xFA84),(0xFA85),(0xFA86),(0xFA87), +(0xFA88),(0xFA89),(0xFA8A),(0xFA8B),(0xFA8C),(0xFA8D),(0xFA8E),(0xFA8F), +(0xFA90),(0xFA91),(0xFA92),(0xFA93),(0xFA94),(0xFA95),(0xFA96),(0xFA97), +(0xFA98),(0xFA99),(0xFA9A),(0xFA9B),(0xFA9C),(0xFA9D),(0xFA9E),(0xFA9F), +(0xFAA0),(0xFAA1),(0xFAA2),(0xFAA3),(0xFAA4),(0xFAA5),(0xFAA6),(0xFAA7), +(0xFAA8),(0xFAA9),(0xFAAA),(0xFAAB),(0xFAAC),(0xFAAD),(0xFAAE),(0xFAAF), +(0xFAB0),(0xFAB1),(0xFAB2),(0xFAB3),(0xFAB4),(0xFAB5),(0xFAB6),(0xFAB7), +(0xFAB8),(0xFAB9),(0xFABA),(0xFABB),(0xFABC),(0xFABD),(0xFABE),(0xFABF), +(0xFAC0),(0xFAC1),(0xFAC2),(0xFAC3),(0xFAC4),(0xFAC5),(0xFAC6),(0xFAC7), +(0xFAC8),(0xFAC9),(0xFACA),(0xFACB),(0xFACC),(0xFACD),(0xFACE),(0xFACF), +(0xFAD0),(0xFAD1),(0xFAD2),(0xFAD3),(0xFAD4),(0xFAD5),(0xFAD6),(0xFAD7), +(0xFAD8),(0xFAD9),(0xFADA),(0xFADB),(0xFADC),(0xFADD),(0xFADE),(0xFADF), +(0xFAE0),(0xFAE1),(0xFAE2),(0xFAE3),(0xFAE4),(0xFAE5),(0xFAE6),(0xFAE7), +(0xFAE8),(0xFAE9),(0xFAEA),(0xFAEB),(0xFAEC),(0xFAED),(0xFAEE),(0xFAEF), +(0xFAF0),(0xFAF1),(0xFAF2),(0xFAF3),(0xFAF4),(0xFAF5),(0xFAF6),(0xFAF7), +(0xFAF8),(0xFAF9),(0xFAFA),(0xFAFB),(0xFAFC), +(0xFB40),(0xFB41),(0xFB42),(0xFB43),(0xFB44),(0xFB45),(0xFB46),(0xFB47), +(0xFB48),(0xFB49),(0xFB4A),(0xFB4B),(0xFB4C),(0xFB4D),(0xFB4E),(0xFB4F), +(0xFB50),(0xFB51),(0xFB52),(0xFB53),(0xFB54),(0xFB55),(0xFB56),(0xFB57), +(0xFB58),(0xFB59),(0xFB5A),(0xFB5B),(0xFB5C),(0xFB5D),(0xFB5E),(0xFB5F), +(0xFB60),(0xFB61),(0xFB62),(0xFB63),(0xFB64),(0xFB65),(0xFB66),(0xFB67), +(0xFB68),(0xFB69),(0xFB6A),(0xFB6B),(0xFB6C),(0xFB6D),(0xFB6E),(0xFB6F), +(0xFB70),(0xFB71),(0xFB72),(0xFB73),(0xFB74),(0xFB75),(0xFB76),(0xFB77), +(0xFB78),(0xFB79),(0xFB7A),(0xFB7B),(0xFB7C),(0xFB7D),(0xFB7E), +(0xFB80),(0xFB81),(0xFB82),(0xFB83),(0xFB84),(0xFB85),(0xFB86),(0xFB87), +(0xFB88),(0xFB89),(0xFB8A),(0xFB8B),(0xFB8C),(0xFB8D),(0xFB8E),(0xFB8F), +(0xFB90),(0xFB91),(0xFB92),(0xFB93),(0xFB94),(0xFB95),(0xFB96),(0xFB97), +(0xFB98),(0xFB99),(0xFB9A),(0xFB9B),(0xFB9C),(0xFB9D),(0xFB9E),(0xFB9F), +(0xFBA0),(0xFBA1),(0xFBA2),(0xFBA3),(0xFBA4),(0xFBA5),(0xFBA6),(0xFBA7), +(0xFBA8),(0xFBA9),(0xFBAA),(0xFBAB),(0xFBAC),(0xFBAD),(0xFBAE),(0xFBAF), +(0xFBB0),(0xFBB1),(0xFBB2),(0xFBB3),(0xFBB4),(0xFBB5),(0xFBB6),(0xFBB7), +(0xFBB8),(0xFBB9),(0xFBBA),(0xFBBB),(0xFBBC),(0xFBBD),(0xFBBE),(0xFBBF), +(0xFBC0),(0xFBC1),(0xFBC2),(0xFBC3),(0xFBC4),(0xFBC5),(0xFBC6),(0xFBC7), +(0xFBC8),(0xFBC9),(0xFBCA),(0xFBCB),(0xFBCC),(0xFBCD),(0xFBCE),(0xFBCF), +(0xFBD0),(0xFBD1),(0xFBD2),(0xFBD3),(0xFBD4),(0xFBD5),(0xFBD6),(0xFBD7), +(0xFBD8),(0xFBD9),(0xFBDA),(0xFBDB),(0xFBDC),(0xFBDD),(0xFBDE),(0xFBDF), +(0xFBE0),(0xFBE1),(0xFBE2),(0xFBE3),(0xFBE4),(0xFBE5),(0xFBE6),(0xFBE7), +(0xFBE8),(0xFBE9),(0xFBEA),(0xFBEB),(0xFBEC),(0xFBED),(0xFBEE),(0xFBEF), +(0xFBF0),(0xFBF1),(0xFBF2),(0xFBF3),(0xFBF4),(0xFBF5),(0xFBF6),(0xFBF7), +(0xFBF8),(0xFBF9),(0xFBFA),(0xFBFB),(0xFBFC), +(0xFC40),(0xFC41),(0xFC42),(0xFC43),(0xFC44),(0xFC45),(0xFC46),(0xFC47), +(0xFC48),(0xFC49),(0xFC4A),(0xFC4B); +INSERT INTO t1 VALUES +(0xF040),(0xF041),(0xF042),(0xF043),(0xF044),(0xF045),(0xF046),(0xF047), +(0xF048),(0xF049),(0xF04A),(0xF04B),(0xF04C),(0xF04D),(0xF04E),(0xF04F), +(0xF050),(0xF051),(0xF052),(0xF053),(0xF054),(0xF055),(0xF056),(0xF057), +(0xF058),(0xF059),(0xF05A),(0xF05B),(0xF05C),(0xF05D),(0xF05E),(0xF05F), +(0xF060),(0xF061),(0xF062),(0xF063),(0xF064),(0xF065),(0xF066),(0xF067), +(0xF068),(0xF069),(0xF06A),(0xF06B),(0xF06C),(0xF06D),(0xF06E),(0xF06F), +(0xF070),(0xF071),(0xF072),(0xF073),(0xF074),(0xF075),(0xF076),(0xF077), +(0xF078),(0xF079),(0xF07A),(0xF07B),(0xF07C),(0xF07D),(0xF07E), +(0xF080),(0xF081),(0xF082),(0xF083),(0xF084),(0xF085),(0xF086),(0xF087), +(0xF088),(0xF089),(0xF08A),(0xF08B),(0xF08C),(0xF08D),(0xF08E),(0xF08F), +(0xF090),(0xF091),(0xF092),(0xF093),(0xF094),(0xF095),(0xF096),(0xF097), +(0xF098),(0xF099),(0xF09A),(0xF09B),(0xF09C),(0xF09D),(0xF09E),(0xF09F), +(0xF0A0),(0xF0A1),(0xF0A2),(0xF0A3),(0xF0A4),(0xF0A5),(0xF0A6),(0xF0A7), +(0xF0A8),(0xF0A9),(0xF0AA),(0xF0AB),(0xF0AC),(0xF0AD),(0xF0AE),(0xF0AF), +(0xF0B0),(0xF0B1),(0xF0B2),(0xF0B3),(0xF0B4),(0xF0B5),(0xF0B6),(0xF0B7), +(0xF0B8),(0xF0B9),(0xF0BA),(0xF0BB),(0xF0BC),(0xF0BD),(0xF0BE),(0xF0BF), +(0xF0C0),(0xF0C1),(0xF0C2),(0xF0C3),(0xF0C4),(0xF0C5),(0xF0C6),(0xF0C7), +(0xF0C8),(0xF0C9),(0xF0CA),(0xF0CB),(0xF0CC),(0xF0CD),(0xF0CE),(0xF0CF), +(0xF0D0),(0xF0D1),(0xF0D2),(0xF0D3),(0xF0D4),(0xF0D5),(0xF0D6),(0xF0D7), +(0xF0D8),(0xF0D9),(0xF0DA),(0xF0DB),(0xF0DC),(0xF0DD),(0xF0DE),(0xF0DF), +(0xF0E0),(0xF0E1),(0xF0E2),(0xF0E3),(0xF0E4),(0xF0E5),(0xF0E6),(0xF0E7), +(0xF0E8),(0xF0E9),(0xF0EA),(0xF0EB),(0xF0EC),(0xF0ED),(0xF0EE),(0xF0EF), +(0xF0F0),(0xF0F1),(0xF0F2),(0xF0F3),(0xF0F4),(0xF0F5),(0xF0F6),(0xF0F7), +(0xF0F8),(0xF0F9),(0xF0FA),(0xF0FB),(0xF0FC), +(0xF140),(0xF141),(0xF142),(0xF143),(0xF144),(0xF145),(0xF146),(0xF147), +(0xF148),(0xF149),(0xF14A),(0xF14B),(0xF14C),(0xF14D),(0xF14E),(0xF14F), +(0xF150),(0xF151),(0xF152),(0xF153),(0xF154),(0xF155),(0xF156),(0xF157), +(0xF158),(0xF159),(0xF15A),(0xF15B),(0xF15C),(0xF15D),(0xF15E),(0xF15F), +(0xF160),(0xF161),(0xF162),(0xF163),(0xF164),(0xF165),(0xF166),(0xF167), +(0xF168),(0xF169),(0xF16A),(0xF16B),(0xF16C),(0xF16D),(0xF16E),(0xF16F), +(0xF170),(0xF171),(0xF172),(0xF173),(0xF174),(0xF175),(0xF176),(0xF177), +(0xF178),(0xF179),(0xF17A),(0xF17B),(0xF17C),(0xF17D),(0xF17E), +(0xF180),(0xF181),(0xF182),(0xF183),(0xF184),(0xF185),(0xF186),(0xF187), +(0xF188),(0xF189),(0xF18A),(0xF18B),(0xF18C),(0xF18D),(0xF18E),(0xF18F), +(0xF190),(0xF191),(0xF192),(0xF193),(0xF194),(0xF195),(0xF196),(0xF197), +(0xF198),(0xF199),(0xF19A),(0xF19B),(0xF19C),(0xF19D),(0xF19E),(0xF19F), +(0xF1A0),(0xF1A1),(0xF1A2),(0xF1A3),(0xF1A4),(0xF1A5),(0xF1A6),(0xF1A7), +(0xF1A8),(0xF1A9),(0xF1AA),(0xF1AB),(0xF1AC),(0xF1AD),(0xF1AE),(0xF1AF), +(0xF1B0),(0xF1B1),(0xF1B2),(0xF1B3),(0xF1B4),(0xF1B5),(0xF1B6),(0xF1B7), +(0xF1B8),(0xF1B9),(0xF1BA),(0xF1BB),(0xF1BC),(0xF1BD),(0xF1BE),(0xF1BF), +(0xF1C0),(0xF1C1),(0xF1C2),(0xF1C3),(0xF1C4),(0xF1C5),(0xF1C6),(0xF1C7), +(0xF1C8),(0xF1C9),(0xF1CA),(0xF1CB),(0xF1CC),(0xF1CD),(0xF1CE),(0xF1CF), +(0xF1D0),(0xF1D1),(0xF1D2),(0xF1D3),(0xF1D4),(0xF1D5),(0xF1D6),(0xF1D7), +(0xF1D8),(0xF1D9),(0xF1DA),(0xF1DB),(0xF1DC),(0xF1DD),(0xF1DE),(0xF1DF), +(0xF1E0),(0xF1E1),(0xF1E2),(0xF1E3),(0xF1E4),(0xF1E5),(0xF1E6),(0xF1E7), +(0xF1E8),(0xF1E9),(0xF1EA),(0xF1EB),(0xF1EC),(0xF1ED),(0xF1EE),(0xF1EF), +(0xF1F0),(0xF1F1),(0xF1F2),(0xF1F3),(0xF1F4),(0xF1F5),(0xF1F6),(0xF1F7), +(0xF1F8),(0xF1F9),(0xF1FA),(0xF1FB),(0xF1FC), +(0xF240),(0xF241),(0xF242),(0xF243),(0xF244),(0xF245),(0xF246),(0xF247), +(0xF248),(0xF249),(0xF24A),(0xF24B),(0xF24C),(0xF24D),(0xF24E),(0xF24F), +(0xF250),(0xF251),(0xF252),(0xF253),(0xF254),(0xF255),(0xF256),(0xF257), +(0xF258),(0xF259),(0xF25A),(0xF25B),(0xF25C),(0xF25D),(0xF25E),(0xF25F), +(0xF260),(0xF261),(0xF262),(0xF263),(0xF264),(0xF265),(0xF266),(0xF267), +(0xF268),(0xF269),(0xF26A),(0xF26B),(0xF26C),(0xF26D),(0xF26E),(0xF26F), +(0xF270),(0xF271),(0xF272),(0xF273),(0xF274),(0xF275),(0xF276),(0xF277), +(0xF278),(0xF279),(0xF27A),(0xF27B),(0xF27C),(0xF27D),(0xF27E), +(0xF280),(0xF281),(0xF282),(0xF283),(0xF284),(0xF285),(0xF286),(0xF287), +(0xF288),(0xF289),(0xF28A),(0xF28B),(0xF28C),(0xF28D),(0xF28E),(0xF28F), +(0xF290),(0xF291),(0xF292),(0xF293),(0xF294),(0xF295),(0xF296),(0xF297), +(0xF298),(0xF299),(0xF29A),(0xF29B),(0xF29C),(0xF29D),(0xF29E),(0xF29F), +(0xF2A0),(0xF2A1),(0xF2A2),(0xF2A3),(0xF2A4),(0xF2A5),(0xF2A6),(0xF2A7), +(0xF2A8),(0xF2A9),(0xF2AA),(0xF2AB),(0xF2AC),(0xF2AD),(0xF2AE),(0xF2AF), +(0xF2B0),(0xF2B1),(0xF2B2),(0xF2B3),(0xF2B4),(0xF2B5),(0xF2B6),(0xF2B7), +(0xF2B8),(0xF2B9),(0xF2BA),(0xF2BB),(0xF2BC),(0xF2BD),(0xF2BE),(0xF2BF), +(0xF2C0),(0xF2C1),(0xF2C2),(0xF2C3),(0xF2C4),(0xF2C5),(0xF2C6),(0xF2C7), +(0xF2C8),(0xF2C9),(0xF2CA),(0xF2CB),(0xF2CC),(0xF2CD),(0xF2CE),(0xF2CF), +(0xF2D0),(0xF2D1),(0xF2D2),(0xF2D3),(0xF2D4),(0xF2D5),(0xF2D6),(0xF2D7), +(0xF2D8),(0xF2D9),(0xF2DA),(0xF2DB),(0xF2DC),(0xF2DD),(0xF2DE),(0xF2DF), +(0xF2E0),(0xF2E1),(0xF2E2),(0xF2E3),(0xF2E4),(0xF2E5),(0xF2E6),(0xF2E7), +(0xF2E8),(0xF2E9),(0xF2EA),(0xF2EB),(0xF2EC),(0xF2ED),(0xF2EE),(0xF2EF), +(0xF2F0),(0xF2F1),(0xF2F2),(0xF2F3),(0xF2F4),(0xF2F5),(0xF2F6),(0xF2F7), +(0xF2F8),(0xF2F9),(0xF2FA),(0xF2FB),(0xF2FC), +(0xF340),(0xF341),(0xF342),(0xF343),(0xF344),(0xF345),(0xF346),(0xF347), +(0xF348),(0xF349),(0xF34A),(0xF34B),(0xF34C),(0xF34D),(0xF34E),(0xF34F), +(0xF350),(0xF351),(0xF352),(0xF353),(0xF354),(0xF355),(0xF356),(0xF357), +(0xF358),(0xF359),(0xF35A),(0xF35B),(0xF35C),(0xF35D),(0xF35E),(0xF35F), +(0xF360),(0xF361),(0xF362),(0xF363),(0xF364),(0xF365),(0xF366),(0xF367), +(0xF368),(0xF369),(0xF36A),(0xF36B),(0xF36C),(0xF36D),(0xF36E),(0xF36F), +(0xF370),(0xF371),(0xF372),(0xF373),(0xF374),(0xF375),(0xF376),(0xF377), +(0xF378),(0xF379),(0xF37A),(0xF37B),(0xF37C),(0xF37D),(0xF37E), +(0xF380),(0xF381),(0xF382),(0xF383),(0xF384),(0xF385),(0xF386),(0xF387), +(0xF388),(0xF389),(0xF38A),(0xF38B),(0xF38C),(0xF38D),(0xF38E),(0xF38F), +(0xF390),(0xF391),(0xF392),(0xF393),(0xF394),(0xF395),(0xF396),(0xF397), +(0xF398),(0xF399),(0xF39A),(0xF39B),(0xF39C),(0xF39D),(0xF39E),(0xF39F), +(0xF3A0),(0xF3A1),(0xF3A2),(0xF3A3),(0xF3A4),(0xF3A5),(0xF3A6),(0xF3A7), +(0xF3A8),(0xF3A9),(0xF3AA),(0xF3AB),(0xF3AC),(0xF3AD),(0xF3AE),(0xF3AF), +(0xF3B0),(0xF3B1),(0xF3B2),(0xF3B3),(0xF3B4),(0xF3B5),(0xF3B6),(0xF3B7), +(0xF3B8),(0xF3B9),(0xF3BA),(0xF3BB),(0xF3BC),(0xF3BD),(0xF3BE),(0xF3BF), +(0xF3C0),(0xF3C1),(0xF3C2),(0xF3C3),(0xF3C4),(0xF3C5),(0xF3C6),(0xF3C7), +(0xF3C8),(0xF3C9),(0xF3CA),(0xF3CB),(0xF3CC),(0xF3CD),(0xF3CE),(0xF3CF), +(0xF3D0),(0xF3D1),(0xF3D2),(0xF3D3),(0xF3D4),(0xF3D5),(0xF3D6),(0xF3D7), +(0xF3D8),(0xF3D9),(0xF3DA),(0xF3DB),(0xF3DC),(0xF3DD),(0xF3DE),(0xF3DF), +(0xF3E0),(0xF3E1),(0xF3E2),(0xF3E3),(0xF3E4),(0xF3E5),(0xF3E6),(0xF3E7), +(0xF3E8),(0xF3E9),(0xF3EA),(0xF3EB),(0xF3EC),(0xF3ED),(0xF3EE),(0xF3EF), +(0xF3F0),(0xF3F1),(0xF3F2),(0xF3F3),(0xF3F4),(0xF3F5),(0xF3F6),(0xF3F7), +(0xF3F8),(0xF3F9),(0xF3FA),(0xF3FB),(0xF3FC), +(0xF440),(0xF441),(0xF442),(0xF443),(0xF444),(0xF445),(0xF446),(0xF447), +(0xF448),(0xF449),(0xF44A),(0xF44B),(0xF44C),(0xF44D),(0xF44E),(0xF44F), +(0xF450),(0xF451),(0xF452),(0xF453),(0xF454),(0xF455),(0xF456),(0xF457), +(0xF458),(0xF459),(0xF45A),(0xF45B),(0xF45C),(0xF45D),(0xF45E),(0xF45F), +(0xF460),(0xF461),(0xF462),(0xF463),(0xF464),(0xF465),(0xF466),(0xF467), +(0xF468),(0xF469),(0xF46A),(0xF46B),(0xF46C),(0xF46D),(0xF46E),(0xF46F), +(0xF470),(0xF471),(0xF472),(0xF473),(0xF474),(0xF475),(0xF476),(0xF477), +(0xF478),(0xF479),(0xF47A),(0xF47B),(0xF47C),(0xF47D),(0xF47E), +(0xF480),(0xF481),(0xF482),(0xF483),(0xF484),(0xF485),(0xF486),(0xF487), +(0xF488),(0xF489),(0xF48A),(0xF48B),(0xF48C),(0xF48D),(0xF48E),(0xF48F), +(0xF490),(0xF491),(0xF492),(0xF493),(0xF494),(0xF495),(0xF496),(0xF497), +(0xF498),(0xF499),(0xF49A),(0xF49B),(0xF49C),(0xF49D),(0xF49E),(0xF49F), +(0xF4A0),(0xF4A1),(0xF4A2),(0xF4A3),(0xF4A4),(0xF4A5),(0xF4A6),(0xF4A7), +(0xF4A8),(0xF4A9),(0xF4AA),(0xF4AB),(0xF4AC),(0xF4AD),(0xF4AE),(0xF4AF), +(0xF4B0),(0xF4B1),(0xF4B2),(0xF4B3),(0xF4B4),(0xF4B5),(0xF4B6),(0xF4B7), +(0xF4B8),(0xF4B9),(0xF4BA),(0xF4BB),(0xF4BC),(0xF4BD),(0xF4BE),(0xF4BF), +(0xF4C0),(0xF4C1),(0xF4C2),(0xF4C3),(0xF4C4),(0xF4C5),(0xF4C6),(0xF4C7), +(0xF4C8),(0xF4C9),(0xF4CA),(0xF4CB),(0xF4CC),(0xF4CD),(0xF4CE),(0xF4CF), +(0xF4D0),(0xF4D1),(0xF4D2),(0xF4D3),(0xF4D4),(0xF4D5),(0xF4D6),(0xF4D7), +(0xF4D8),(0xF4D9),(0xF4DA),(0xF4DB),(0xF4DC),(0xF4DD),(0xF4DE),(0xF4DF), +(0xF4E0),(0xF4E1),(0xF4E2),(0xF4E3),(0xF4E4),(0xF4E5),(0xF4E6),(0xF4E7), +(0xF4E8),(0xF4E9),(0xF4EA),(0xF4EB),(0xF4EC),(0xF4ED),(0xF4EE),(0xF4EF), +(0xF4F0),(0xF4F1),(0xF4F2),(0xF4F3),(0xF4F4),(0xF4F5),(0xF4F6),(0xF4F7), +(0xF4F8),(0xF4F9),(0xF4FA),(0xF4FB),(0xF4FC), +(0xF540),(0xF541),(0xF542),(0xF543),(0xF544),(0xF545),(0xF546),(0xF547), +(0xF548),(0xF549),(0xF54A),(0xF54B),(0xF54C),(0xF54D),(0xF54E),(0xF54F), +(0xF550),(0xF551),(0xF552),(0xF553),(0xF554),(0xF555),(0xF556),(0xF557), +(0xF558),(0xF559),(0xF55A),(0xF55B),(0xF55C),(0xF55D),(0xF55E),(0xF55F), +(0xF560),(0xF561),(0xF562),(0xF563),(0xF564),(0xF565),(0xF566),(0xF567), +(0xF568),(0xF569),(0xF56A),(0xF56B),(0xF56C),(0xF56D),(0xF56E),(0xF56F), +(0xF570),(0xF571),(0xF572),(0xF573),(0xF574),(0xF575),(0xF576),(0xF577), +(0xF578),(0xF579),(0xF57A),(0xF57B),(0xF57C),(0xF57D),(0xF57E), +(0xF580),(0xF581),(0xF582),(0xF583),(0xF584),(0xF585),(0xF586),(0xF587), +(0xF588),(0xF589),(0xF58A),(0xF58B),(0xF58C),(0xF58D),(0xF58E),(0xF58F), +(0xF590),(0xF591),(0xF592),(0xF593),(0xF594),(0xF595),(0xF596),(0xF597), +(0xF598),(0xF599),(0xF59A),(0xF59B),(0xF59C),(0xF59D),(0xF59E),(0xF59F), +(0xF5A0),(0xF5A1),(0xF5A2),(0xF5A3),(0xF5A4),(0xF5A5),(0xF5A6),(0xF5A7), +(0xF5A8),(0xF5A9),(0xF5AA),(0xF5AB),(0xF5AC),(0xF5AD),(0xF5AE),(0xF5AF), +(0xF5B0),(0xF5B1),(0xF5B2),(0xF5B3),(0xF5B4),(0xF5B5),(0xF5B6),(0xF5B7), +(0xF5B8),(0xF5B9),(0xF5BA),(0xF5BB),(0xF5BC),(0xF5BD),(0xF5BE),(0xF5BF), +(0xF5C0),(0xF5C1),(0xF5C2),(0xF5C3),(0xF5C4),(0xF5C5),(0xF5C6),(0xF5C7), +(0xF5C8),(0xF5C9),(0xF5CA),(0xF5CB),(0xF5CC),(0xF5CD),(0xF5CE),(0xF5CF), +(0xF5D0),(0xF5D1),(0xF5D2),(0xF5D3),(0xF5D4),(0xF5D5),(0xF5D6),(0xF5D7), +(0xF5D8),(0xF5D9),(0xF5DA),(0xF5DB),(0xF5DC),(0xF5DD),(0xF5DE),(0xF5DF), +(0xF5E0),(0xF5E1),(0xF5E2),(0xF5E3),(0xF5E4),(0xF5E5),(0xF5E6),(0xF5E7), +(0xF5E8),(0xF5E9),(0xF5EA),(0xF5EB),(0xF5EC),(0xF5ED),(0xF5EE),(0xF5EF), +(0xF5F0),(0xF5F1),(0xF5F2),(0xF5F3),(0xF5F4),(0xF5F5),(0xF5F6),(0xF5F7), +(0xF5F8),(0xF5F9),(0xF5FA),(0xF5FB),(0xF5FC), +(0xF640),(0xF641),(0xF642),(0xF643),(0xF644),(0xF645),(0xF646),(0xF647), +(0xF648),(0xF649),(0xF64A),(0xF64B),(0xF64C),(0xF64D),(0xF64E),(0xF64F), +(0xF650),(0xF651),(0xF652),(0xF653),(0xF654),(0xF655),(0xF656),(0xF657), +(0xF658),(0xF659),(0xF65A),(0xF65B),(0xF65C),(0xF65D),(0xF65E),(0xF65F), +(0xF660),(0xF661),(0xF662),(0xF663),(0xF664),(0xF665),(0xF666),(0xF667), +(0xF668),(0xF669),(0xF66A),(0xF66B),(0xF66C),(0xF66D),(0xF66E),(0xF66F), +(0xF670),(0xF671),(0xF672),(0xF673),(0xF674),(0xF675),(0xF676),(0xF677), +(0xF678),(0xF679),(0xF67A),(0xF67B),(0xF67C),(0xF67D),(0xF67E), +(0xF680),(0xF681),(0xF682),(0xF683),(0xF684),(0xF685),(0xF686),(0xF687), +(0xF688),(0xF689),(0xF68A),(0xF68B),(0xF68C),(0xF68D),(0xF68E),(0xF68F), +(0xF690),(0xF691),(0xF692),(0xF693),(0xF694),(0xF695),(0xF696),(0xF697), +(0xF698),(0xF699),(0xF69A),(0xF69B),(0xF69C),(0xF69D),(0xF69E),(0xF69F), +(0xF6A0),(0xF6A1),(0xF6A2),(0xF6A3),(0xF6A4),(0xF6A5),(0xF6A6),(0xF6A7), +(0xF6A8),(0xF6A9),(0xF6AA),(0xF6AB),(0xF6AC),(0xF6AD),(0xF6AE),(0xF6AF), +(0xF6B0),(0xF6B1),(0xF6B2),(0xF6B3),(0xF6B4),(0xF6B5),(0xF6B6),(0xF6B7), +(0xF6B8),(0xF6B9),(0xF6BA),(0xF6BB),(0xF6BC),(0xF6BD),(0xF6BE),(0xF6BF), +(0xF6C0),(0xF6C1),(0xF6C2),(0xF6C3),(0xF6C4),(0xF6C5),(0xF6C6),(0xF6C7), +(0xF6C8),(0xF6C9),(0xF6CA),(0xF6CB),(0xF6CC),(0xF6CD),(0xF6CE),(0xF6CF), +(0xF6D0),(0xF6D1),(0xF6D2),(0xF6D3),(0xF6D4),(0xF6D5),(0xF6D6),(0xF6D7), +(0xF6D8),(0xF6D9),(0xF6DA),(0xF6DB),(0xF6DC),(0xF6DD),(0xF6DE),(0xF6DF), +(0xF6E0),(0xF6E1),(0xF6E2),(0xF6E3),(0xF6E4),(0xF6E5),(0xF6E6),(0xF6E7), +(0xF6E8),(0xF6E9),(0xF6EA),(0xF6EB),(0xF6EC),(0xF6ED),(0xF6EE),(0xF6EF), +(0xF6F0),(0xF6F1),(0xF6F2),(0xF6F3),(0xF6F4),(0xF6F5),(0xF6F6),(0xF6F7), +(0xF6F8),(0xF6F9),(0xF6FA),(0xF6FB),(0xF6FC), +(0xF740),(0xF741),(0xF742),(0xF743),(0xF744),(0xF745),(0xF746),(0xF747), +(0xF748),(0xF749),(0xF74A),(0xF74B),(0xF74C),(0xF74D),(0xF74E),(0xF74F), +(0xF750),(0xF751),(0xF752),(0xF753),(0xF754),(0xF755),(0xF756),(0xF757), +(0xF758),(0xF759),(0xF75A),(0xF75B),(0xF75C),(0xF75D),(0xF75E),(0xF75F), +(0xF760),(0xF761),(0xF762),(0xF763),(0xF764),(0xF765),(0xF766),(0xF767), +(0xF768),(0xF769),(0xF76A),(0xF76B),(0xF76C),(0xF76D),(0xF76E),(0xF76F), +(0xF770),(0xF771),(0xF772),(0xF773),(0xF774),(0xF775),(0xF776),(0xF777), +(0xF778),(0xF779),(0xF77A),(0xF77B),(0xF77C),(0xF77D),(0xF77E), +(0xF780),(0xF781),(0xF782),(0xF783),(0xF784),(0xF785),(0xF786),(0xF787), +(0xF788),(0xF789),(0xF78A),(0xF78B),(0xF78C),(0xF78D),(0xF78E),(0xF78F), +(0xF790),(0xF791),(0xF792),(0xF793),(0xF794),(0xF795),(0xF796),(0xF797), +(0xF798),(0xF799),(0xF79A),(0xF79B),(0xF79C),(0xF79D),(0xF79E),(0xF79F), +(0xF7A0),(0xF7A1),(0xF7A2),(0xF7A3),(0xF7A4),(0xF7A5),(0xF7A6),(0xF7A7), +(0xF7A8),(0xF7A9),(0xF7AA),(0xF7AB),(0xF7AC),(0xF7AD),(0xF7AE),(0xF7AF), +(0xF7B0),(0xF7B1),(0xF7B2),(0xF7B3),(0xF7B4),(0xF7B5),(0xF7B6),(0xF7B7), +(0xF7B8),(0xF7B9),(0xF7BA),(0xF7BB),(0xF7BC),(0xF7BD),(0xF7BE),(0xF7BF), +(0xF7C0),(0xF7C1),(0xF7C2),(0xF7C3),(0xF7C4),(0xF7C5),(0xF7C6),(0xF7C7), +(0xF7C8),(0xF7C9),(0xF7CA),(0xF7CB),(0xF7CC),(0xF7CD),(0xF7CE),(0xF7CF), +(0xF7D0),(0xF7D1),(0xF7D2),(0xF7D3),(0xF7D4),(0xF7D5),(0xF7D6),(0xF7D7), +(0xF7D8),(0xF7D9),(0xF7DA),(0xF7DB),(0xF7DC),(0xF7DD),(0xF7DE),(0xF7DF), +(0xF7E0),(0xF7E1),(0xF7E2),(0xF7E3),(0xF7E4),(0xF7E5),(0xF7E6),(0xF7E7), +(0xF7E8),(0xF7E9),(0xF7EA),(0xF7EB),(0xF7EC),(0xF7ED),(0xF7EE),(0xF7EF), +(0xF7F0),(0xF7F1),(0xF7F2),(0xF7F3),(0xF7F4),(0xF7F5),(0xF7F6),(0xF7F7), +(0xF7F8),(0xF7F9),(0xF7FA),(0xF7FB),(0xF7FC), +(0xF840),(0xF841),(0xF842),(0xF843),(0xF844),(0xF845),(0xF846),(0xF847), +(0xF848),(0xF849),(0xF84A),(0xF84B),(0xF84C),(0xF84D),(0xF84E),(0xF84F), +(0xF850),(0xF851),(0xF852),(0xF853),(0xF854),(0xF855),(0xF856),(0xF857), +(0xF858),(0xF859),(0xF85A),(0xF85B),(0xF85C),(0xF85D),(0xF85E),(0xF85F), +(0xF860),(0xF861),(0xF862),(0xF863),(0xF864),(0xF865),(0xF866),(0xF867), +(0xF868),(0xF869),(0xF86A),(0xF86B),(0xF86C),(0xF86D),(0xF86E),(0xF86F), +(0xF870),(0xF871),(0xF872),(0xF873),(0xF874),(0xF875),(0xF876),(0xF877), +(0xF878),(0xF879),(0xF87A),(0xF87B),(0xF87C),(0xF87D),(0xF87E), +(0xF880),(0xF881),(0xF882),(0xF883),(0xF884),(0xF885),(0xF886),(0xF887), +(0xF888),(0xF889),(0xF88A),(0xF88B),(0xF88C),(0xF88D),(0xF88E),(0xF88F), +(0xF890),(0xF891),(0xF892),(0xF893),(0xF894),(0xF895),(0xF896),(0xF897), +(0xF898),(0xF899),(0xF89A),(0xF89B),(0xF89C),(0xF89D),(0xF89E),(0xF89F), +(0xF8A0),(0xF8A1),(0xF8A2),(0xF8A3),(0xF8A4),(0xF8A5),(0xF8A6),(0xF8A7), +(0xF8A8),(0xF8A9),(0xF8AA),(0xF8AB),(0xF8AC),(0xF8AD),(0xF8AE),(0xF8AF), +(0xF8B0),(0xF8B1),(0xF8B2),(0xF8B3),(0xF8B4),(0xF8B5),(0xF8B6),(0xF8B7), +(0xF8B8),(0xF8B9),(0xF8BA),(0xF8BB),(0xF8BC),(0xF8BD),(0xF8BE),(0xF8BF), +(0xF8C0),(0xF8C1),(0xF8C2),(0xF8C3),(0xF8C4),(0xF8C5),(0xF8C6),(0xF8C7), +(0xF8C8),(0xF8C9),(0xF8CA),(0xF8CB),(0xF8CC),(0xF8CD),(0xF8CE),(0xF8CF), +(0xF8D0),(0xF8D1),(0xF8D2),(0xF8D3),(0xF8D4),(0xF8D5),(0xF8D6),(0xF8D7), +(0xF8D8),(0xF8D9),(0xF8DA),(0xF8DB),(0xF8DC),(0xF8DD),(0xF8DE),(0xF8DF), +(0xF8E0),(0xF8E1),(0xF8E2),(0xF8E3),(0xF8E4),(0xF8E5),(0xF8E6),(0xF8E7), +(0xF8E8),(0xF8E9),(0xF8EA),(0xF8EB),(0xF8EC),(0xF8ED),(0xF8EE),(0xF8EF), +(0xF8F0),(0xF8F1),(0xF8F2),(0xF8F3),(0xF8F4),(0xF8F5),(0xF8F6),(0xF8F7), +(0xF8F8),(0xF8F9),(0xF8FA),(0xF8FB),(0xF8FC), +(0xF940),(0xF941),(0xF942),(0xF943),(0xF944),(0xF945),(0xF946),(0xF947), +(0xF948),(0xF949),(0xF94A),(0xF94B),(0xF94C),(0xF94D),(0xF94E),(0xF94F), +(0xF950),(0xF951),(0xF952),(0xF953),(0xF954),(0xF955),(0xF956),(0xF957), +(0xF958),(0xF959),(0xF95A),(0xF95B),(0xF95C),(0xF95D),(0xF95E),(0xF95F), +(0xF960),(0xF961),(0xF962),(0xF963),(0xF964),(0xF965),(0xF966),(0xF967), +(0xF968),(0xF969),(0xF96A),(0xF96B),(0xF96C),(0xF96D),(0xF96E),(0xF96F), +(0xF970),(0xF971),(0xF972),(0xF973),(0xF974),(0xF975),(0xF976),(0xF977), +(0xF978),(0xF979),(0xF97A),(0xF97B),(0xF97C),(0xF97D),(0xF97E), +(0xF980),(0xF981),(0xF982),(0xF983),(0xF984),(0xF985),(0xF986),(0xF987), +(0xF988),(0xF989),(0xF98A),(0xF98B),(0xF98C),(0xF98D),(0xF98E),(0xF98F), +(0xF990),(0xF991),(0xF992),(0xF993),(0xF994),(0xF995),(0xF996),(0xF997), +(0xF998),(0xF999),(0xF99A),(0xF99B),(0xF99C),(0xF99D),(0xF99E),(0xF99F), +(0xF9A0),(0xF9A1),(0xF9A2),(0xF9A3),(0xF9A4),(0xF9A5),(0xF9A6),(0xF9A7), +(0xF9A8),(0xF9A9),(0xF9AA),(0xF9AB),(0xF9AC),(0xF9AD),(0xF9AE),(0xF9AF), +(0xF9B0),(0xF9B1),(0xF9B2),(0xF9B3),(0xF9B4),(0xF9B5),(0xF9B6),(0xF9B7), +(0xF9B8),(0xF9B9),(0xF9BA),(0xF9BB),(0xF9BC),(0xF9BD),(0xF9BE),(0xF9BF), +(0xF9C0),(0xF9C1),(0xF9C2),(0xF9C3),(0xF9C4),(0xF9C5),(0xF9C6),(0xF9C7), +(0xF9C8),(0xF9C9),(0xF9CA),(0xF9CB),(0xF9CC),(0xF9CD),(0xF9CE),(0xF9CF), +(0xF9D0),(0xF9D1),(0xF9D2),(0xF9D3),(0xF9D4),(0xF9D5),(0xF9D6),(0xF9D7), +(0xF9D8),(0xF9D9),(0xF9DA),(0xF9DB),(0xF9DC),(0xF9DD),(0xF9DE),(0xF9DF), +(0xF9E0),(0xF9E1),(0xF9E2),(0xF9E3),(0xF9E4),(0xF9E5),(0xF9E6),(0xF9E7), +(0xF9E8),(0xF9E9),(0xF9EA),(0xF9EB),(0xF9EC),(0xF9ED),(0xF9EE),(0xF9EF), +(0xF9F0),(0xF9F1),(0xF9F2),(0xF9F3),(0xF9F4),(0xF9F5),(0xF9F6),(0xF9F7), +(0xF9F8),(0xF9F9),(0xF9FA),(0xF9FB),(0xF9FC); +SELECT HEX(c1) FROM t1; +HEX(c1) +05 +7E +815C +815F +8160 +8161 +817C +8191 +8192 +81CA +8740 +8741 +8742 +8743 +8744 +8745 +8746 +8747 +8748 +8749 +874A +874B +874C +874D +874E +874F +8750 +8751 +8752 +8753 +8754 +8755 +8756 +8757 +8758 +8759 +875A +875B +875C +875D +875F +8760 +8761 +8762 +8763 +8764 +8765 +8766 +8767 +8768 +8769 +876A +876B +876C +876D +876E +876F +8770 +8771 +8772 +8773 +8774 +8775 +877E +8780 +8781 +8782 +8783 +8784 +8785 +8786 +8787 +8788 +8789 +878A +878B +878C +878D +878E +878F +8790 +8791 +8792 +8793 +8794 +8795 +8796 +8797 +8798 +8799 +879A +879B +879C +ED40 +ED41 +ED42 +ED43 +ED44 +ED45 +ED46 +ED47 +ED48 +ED49 +ED4A +ED4B +ED4C +ED4D +ED4E +ED4F +ED50 +ED51 +ED52 +ED53 +ED54 +ED55 +ED56 +ED57 +ED58 +ED59 +ED5A +ED5B +ED5C +ED5D +ED5E +ED5F +ED60 +ED61 +ED62 +ED63 +ED64 +ED65 +ED66 +ED67 +ED68 +ED69 +ED6A +ED6B +ED6C +ED6D +ED6E +ED6F +ED70 +ED71 +ED72 +ED73 +ED74 +ED75 +ED76 +ED77 +ED78 +ED79 +ED7A +ED7B +ED7C +ED7D +ED7E +ED80 +ED81 +ED82 +ED83 +ED84 +ED85 +ED86 +ED87 +ED88 +ED89 +ED8A +ED8B +ED8C +ED8D +ED8E +ED8F +ED90 +ED91 +ED92 +ED93 +ED94 +ED95 +ED96 +ED97 +ED98 +ED99 +ED9A +ED9B +ED9C +ED9D +ED9E +ED9F +EDA0 +EDA1 +EDA2 +EDA3 +EDA4 +EDA5 +EDA6 +EDA7 +EDA8 +EDA9 +EDAA +EDAB +EDAC +EDAD +EDAE +EDAF +EDB0 +EDB1 +EDB2 +EDB3 +EDB4 +EDB5 +EDB6 +EDB7 +EDB8 +EDB9 +EDBA +EDBB +EDBC +EDBD +EDBE +EDBF +EDC0 +EDC1 +EDC2 +EDC3 +EDC4 +EDC5 +EDC6 +EDC7 +EDC8 +EDC9 +EDCA +EDCB +EDCC +EDCD +EDCE +EDCF +EDD0 +EDD1 +EDD2 +EDD3 +EDD4 +EDD5 +EDD6 +EDD7 +EDD8 +EDD9 +EDDA +EDDB +EDDC +EDDD +EDDE +EDDF +EDE0 +EDE1 +EDE2 +EDE3 +EDE4 +EDE5 +EDE6 +EDE7 +EDE8 +EDE9 +EDEA +EDEB +EDEC +EDED +EDEE +EDEF +EDF0 +EDF1 +EDF2 +EDF3 +EDF4 +EDF5 +EDF6 +EDF7 +EDF8 +EDF9 +EDFA +EDFB +EDFC +EE40 +EE41 +EE42 +EE43 +EE44 +EE45 +EE46 +EE47 +EE48 +EE49 +EE4A +EE4B +EE4C +EE4D +EE4E +EE4F +EE50 +EE51 +EE52 +EE53 +EE54 +EE55 +EE56 +EE57 +EE58 +EE59 +EE5A +EE5B +EE5C +EE5D +EE5E +EE5F +EE60 +EE61 +EE62 +EE63 +EE64 +EE65 +EE66 +EE67 +EE68 +EE69 +EE6A +EE6B +EE6C +EE6D +EE6E +EE6F +EE70 +EE71 +EE72 +EE73 +EE74 +EE75 +EE76 +EE77 +EE78 +EE79 +EE7A +EE7B +EE7C +EE7D +EE7E +EE80 +EE81 +EE82 +EE83 +EE84 +EE85 +EE86 +EE87 +EE88 +EE89 +EE8A +EE8B +EE8C +EE8D +EE8E +EE8F +EE90 +EE91 +EE92 +EE93 +EE94 +EE95 +EE96 +EE97 +EE98 +EE99 +EE9A +EE9B +EE9C +EE9D +EE9E +EE9F +EEA0 +EEA1 +EEA2 +EEA3 +EEA4 +EEA5 +EEA6 +EEA7 +EEA8 +EEA9 +EEAA +EEAB +EEAC +EEAD +EEAE +EEAF +EEB0 +EEB1 +EEB2 +EEB3 +EEB4 +EEB5 +EEB6 +EEB7 +EEB8 +EEB9 +EEBA +EEBB +EEBC +EEBD +EEBE +EEBF +EEC0 +EEC1 +EEC2 +EEC3 +EEC4 +EEC5 +EEC6 +EEC7 +EEC8 +EEC9 +EECA +EECB +EECC +EECD +EECE +EECF +EED0 +EED1 +EED2 +EED3 +EED4 +EED5 +EED6 +EED7 +EED8 +EED9 +EEDA +EEDB +EEDC +EEDD +EEDE +EEDF +EEE0 +EEE1 +EEE2 +EEE3 +EEE4 +EEE5 +EEE6 +EEE7 +EEE8 +EEE9 +EEEA +EEEB +EEEC +EEEF +EEF0 +EEF1 +EEF2 +EEF3 +EEF4 +EEF5 +EEF6 +EEF7 +EEF8 +EEF9 +EEFA +EEFB +EEFC +FA40 +FA41 +FA42 +FA43 +FA44 +FA45 +FA46 +FA47 +FA48 +FA49 +FA4A +FA4B +FA4C +FA4D +FA4E +FA4F +FA50 +FA51 +FA52 +FA53 +FA54 +FA55 +FA56 +FA57 +FA58 +FA59 +FA5A +FA5B +FA5C +FA5D +FA5E +FA5F +FA60 +FA61 +FA62 +FA63 +FA64 +FA65 +FA66 +FA67 +FA68 +FA69 +FA6A +FA6B +FA6C +FA6D +FA6E +FA6F +FA70 +FA71 +FA72 +FA73 +FA74 +FA75 +FA76 +FA77 +FA78 +FA79 +FA7A +FA7B +FA7C +FA7D +FA7E +FA80 +FA81 +FA82 +FA83 +FA84 +FA85 +FA86 +FA87 +FA88 +FA89 +FA8A +FA8B +FA8C +FA8D +FA8E +FA8F +FA90 +FA91 +FA92 +FA93 +FA94 +FA95 +FA96 +FA97 +FA98 +FA99 +FA9A +FA9B +FA9C +FA9D +FA9E +FA9F +FAA0 +FAA1 +FAA2 +FAA3 +FAA4 +FAA5 +FAA6 +FAA7 +FAA8 +FAA9 +FAAA +FAAB +FAAC +FAAD +FAAE +FAAF +FAB0 +FAB1 +FAB2 +FAB3 +FAB4 +FAB5 +FAB6 +FAB7 +FAB8 +FAB9 +FABA +FABB +FABC +FABD +FABE +FABF +FAC0 +FAC1 +FAC2 +FAC3 +FAC4 +FAC5 +FAC6 +FAC7 +FAC8 +FAC9 +FACA +FACB +FACC +FACD +FACE +FACF +FAD0 +FAD1 +FAD2 +FAD3 +FAD4 +FAD5 +FAD6 +FAD7 +FAD8 +FAD9 +FADA +FADB +FADC +FADD +FADE +FADF +FAE0 +FAE1 +FAE2 +FAE3 +FAE4 +FAE5 +FAE6 +FAE7 +FAE8 +FAE9 +FAEA +FAEB +FAEC +FAED +FAEE +FAEF +FAF0 +FAF1 +FAF2 +FAF3 +FAF4 +FAF5 +FAF6 +FAF7 +FAF8 +FAF9 +FAFA +FAFB +FAFC +FB40 +FB41 +FB42 +FB43 +FB44 +FB45 +FB46 +FB47 +FB48 +FB49 +FB4A +FB4B +FB4C +FB4D +FB4E +FB4F +FB50 +FB51 +FB52 +FB53 +FB54 +FB55 +FB56 +FB57 +FB58 +FB59 +FB5A +FB5B +FB5C +FB5D +FB5E +FB5F +FB60 +FB61 +FB62 +FB63 +FB64 +FB65 +FB66 +FB67 +FB68 +FB69 +FB6A +FB6B +FB6C +FB6D +FB6E +FB6F +FB70 +FB71 +FB72 +FB73 +FB74 +FB75 +FB76 +FB77 +FB78 +FB79 +FB7A +FB7B +FB7C +FB7D +FB7E +FB80 +FB81 +FB82 +FB83 +FB84 +FB85 +FB86 +FB87 +FB88 +FB89 +FB8A +FB8B +FB8C +FB8D +FB8E +FB8F +FB90 +FB91 +FB92 +FB93 +FB94 +FB95 +FB96 +FB97 +FB98 +FB99 +FB9A +FB9B +FB9C +FB9D +FB9E +FB9F +FBA0 +FBA1 +FBA2 +FBA3 +FBA4 +FBA5 +FBA6 +FBA7 +FBA8 +FBA9 +FBAA +FBAB +FBAC +FBAD +FBAE +FBAF +FBB0 +FBB1 +FBB2 +FBB3 +FBB4 +FBB5 +FBB6 +FBB7 +FBB8 +FBB9 +FBBA +FBBB +FBBC +FBBD +FBBE +FBBF +FBC0 +FBC1 +FBC2 +FBC3 +FBC4 +FBC5 +FBC6 +FBC7 +FBC8 +FBC9 +FBCA +FBCB +FBCC +FBCD +FBCE +FBCF +FBD0 +FBD1 +FBD2 +FBD3 +FBD4 +FBD5 +FBD6 +FBD7 +FBD8 +FBD9 +FBDA +FBDB +FBDC +FBDD +FBDE +FBDF +FBE0 +FBE1 +FBE2 +FBE3 +FBE4 +FBE5 +FBE6 +FBE7 +FBE8 +FBE9 +FBEA +FBEB +FBEC +FBED +FBEE +FBEF +FBF0 +FBF1 +FBF2 +FBF3 +FBF4 +FBF5 +FBF6 +FBF7 +FBF8 +FBF9 +FBFA +FBFB +FBFC +FC40 +FC41 +FC42 +FC43 +FC44 +FC45 +FC46 +FC47 +FC48 +FC49 +FC4A +FC4B +F040 +F041 +F042 +F043 +F044 +F045 +F046 +F047 +F048 +F049 +F04A +F04B +F04C +F04D +F04E +F04F +F050 +F051 +F052 +F053 +F054 +F055 +F056 +F057 +F058 +F059 +F05A +F05B +F05C +F05D +F05E +F05F +F060 +F061 +F062 +F063 +F064 +F065 +F066 +F067 +F068 +F069 +F06A +F06B +F06C +F06D +F06E +F06F +F070 +F071 +F072 +F073 +F074 +F075 +F076 +F077 +F078 +F079 +F07A +F07B +F07C +F07D +F07E +F080 +F081 +F082 +F083 +F084 +F085 +F086 +F087 +F088 +F089 +F08A +F08B +F08C +F08D +F08E +F08F +F090 +F091 +F092 +F093 +F094 +F095 +F096 +F097 +F098 +F099 +F09A +F09B +F09C +F09D +F09E +F09F +F0A0 +F0A1 +F0A2 +F0A3 +F0A4 +F0A5 +F0A6 +F0A7 +F0A8 +F0A9 +F0AA +F0AB +F0AC +F0AD +F0AE +F0AF +F0B0 +F0B1 +F0B2 +F0B3 +F0B4 +F0B5 +F0B6 +F0B7 +F0B8 +F0B9 +F0BA +F0BB +F0BC +F0BD +F0BE +F0BF +F0C0 +F0C1 +F0C2 +F0C3 +F0C4 +F0C5 +F0C6 +F0C7 +F0C8 +F0C9 +F0CA +F0CB +F0CC +F0CD +F0CE +F0CF +F0D0 +F0D1 +F0D2 +F0D3 +F0D4 +F0D5 +F0D6 +F0D7 +F0D8 +F0D9 +F0DA +F0DB +F0DC +F0DD +F0DE +F0DF +F0E0 +F0E1 +F0E2 +F0E3 +F0E4 +F0E5 +F0E6 +F0E7 +F0E8 +F0E9 +F0EA +F0EB +F0EC +F0ED +F0EE +F0EF +F0F0 +F0F1 +F0F2 +F0F3 +F0F4 +F0F5 +F0F6 +F0F7 +F0F8 +F0F9 +F0FA +F0FB +F0FC +F140 +F141 +F142 +F143 +F144 +F145 +F146 +F147 +F148 +F149 +F14A +F14B +F14C +F14D +F14E +F14F +F150 +F151 +F152 +F153 +F154 +F155 +F156 +F157 +F158 +F159 +F15A +F15B +F15C +F15D +F15E +F15F +F160 +F161 +F162 +F163 +F164 +F165 +F166 +F167 +F168 +F169 +F16A +F16B +F16C +F16D +F16E +F16F +F170 +F171 +F172 +F173 +F174 +F175 +F176 +F177 +F178 +F179 +F17A +F17B +F17C +F17D +F17E +F180 +F181 +F182 +F183 +F184 +F185 +F186 +F187 +F188 +F189 +F18A +F18B +F18C +F18D +F18E +F18F +F190 +F191 +F192 +F193 +F194 +F195 +F196 +F197 +F198 +F199 +F19A +F19B +F19C +F19D +F19E +F19F +F1A0 +F1A1 +F1A2 +F1A3 +F1A4 +F1A5 +F1A6 +F1A7 +F1A8 +F1A9 +F1AA +F1AB +F1AC +F1AD +F1AE +F1AF +F1B0 +F1B1 +F1B2 +F1B3 +F1B4 +F1B5 +F1B6 +F1B7 +F1B8 +F1B9 +F1BA +F1BB +F1BC +F1BD +F1BE +F1BF +F1C0 +F1C1 +F1C2 +F1C3 +F1C4 +F1C5 +F1C6 +F1C7 +F1C8 +F1C9 +F1CA +F1CB +F1CC +F1CD +F1CE +F1CF +F1D0 +F1D1 +F1D2 +F1D3 +F1D4 +F1D5 +F1D6 +F1D7 +F1D8 +F1D9 +F1DA +F1DB +F1DC +F1DD +F1DE +F1DF +F1E0 +F1E1 +F1E2 +F1E3 +F1E4 +F1E5 +F1E6 +F1E7 +F1E8 +F1E9 +F1EA +F1EB +F1EC +F1ED +F1EE +F1EF +F1F0 +F1F1 +F1F2 +F1F3 +F1F4 +F1F5 +F1F6 +F1F7 +F1F8 +F1F9 +F1FA +F1FB +F1FC +F240 +F241 +F242 +F243 +F244 +F245 +F246 +F247 +F248 +F249 +F24A +F24B +F24C +F24D +F24E +F24F +F250 +F251 +F252 +F253 +F254 +F255 +F256 +F257 +F258 +F259 +F25A +F25B +F25C +F25D +F25E +F25F +F260 +F261 +F262 +F263 +F264 +F265 +F266 +F267 +F268 +F269 +F26A +F26B +F26C +F26D +F26E +F26F +F270 +F271 +F272 +F273 +F274 +F275 +F276 +F277 +F278 +F279 +F27A +F27B +F27C +F27D +F27E +F280 +F281 +F282 +F283 +F284 +F285 +F286 +F287 +F288 +F289 +F28A +F28B +F28C +F28D +F28E +F28F +F290 +F291 +F292 +F293 +F294 +F295 +F296 +F297 +F298 +F299 +F29A +F29B +F29C +F29D +F29E +F29F +F2A0 +F2A1 +F2A2 +F2A3 +F2A4 +F2A5 +F2A6 +F2A7 +F2A8 +F2A9 +F2AA +F2AB +F2AC +F2AD +F2AE +F2AF +F2B0 +F2B1 +F2B2 +F2B3 +F2B4 +F2B5 +F2B6 +F2B7 +F2B8 +F2B9 +F2BA +F2BB +F2BC +F2BD +F2BE +F2BF +F2C0 +F2C1 +F2C2 +F2C3 +F2C4 +F2C5 +F2C6 +F2C7 +F2C8 +F2C9 +F2CA +F2CB +F2CC +F2CD +F2CE +F2CF +F2D0 +F2D1 +F2D2 +F2D3 +F2D4 +F2D5 +F2D6 +F2D7 +F2D8 +F2D9 +F2DA +F2DB +F2DC +F2DD +F2DE +F2DF +F2E0 +F2E1 +F2E2 +F2E3 +F2E4 +F2E5 +F2E6 +F2E7 +F2E8 +F2E9 +F2EA +F2EB +F2EC +F2ED +F2EE +F2EF +F2F0 +F2F1 +F2F2 +F2F3 +F2F4 +F2F5 +F2F6 +F2F7 +F2F8 +F2F9 +F2FA +F2FB +F2FC +F340 +F341 +F342 +F343 +F344 +F345 +F346 +F347 +F348 +F349 +F34A +F34B +F34C +F34D +F34E +F34F +F350 +F351 +F352 +F353 +F354 +F355 +F356 +F357 +F358 +F359 +F35A +F35B +F35C +F35D +F35E +F35F +F360 +F361 +F362 +F363 +F364 +F365 +F366 +F367 +F368 +F369 +F36A +F36B +F36C +F36D +F36E +F36F +F370 +F371 +F372 +F373 +F374 +F375 +F376 +F377 +F378 +F379 +F37A +F37B +F37C +F37D +F37E +F380 +F381 +F382 +F383 +F384 +F385 +F386 +F387 +F388 +F389 +F38A +F38B +F38C +F38D +F38E +F38F +F390 +F391 +F392 +F393 +F394 +F395 +F396 +F397 +F398 +F399 +F39A +F39B +F39C +F39D +F39E +F39F +F3A0 +F3A1 +F3A2 +F3A3 +F3A4 +F3A5 +F3A6 +F3A7 +F3A8 +F3A9 +F3AA +F3AB +F3AC +F3AD +F3AE +F3AF +F3B0 +F3B1 +F3B2 +F3B3 +F3B4 +F3B5 +F3B6 +F3B7 +F3B8 +F3B9 +F3BA +F3BB +F3BC +F3BD +F3BE +F3BF +F3C0 +F3C1 +F3C2 +F3C3 +F3C4 +F3C5 +F3C6 +F3C7 +F3C8 +F3C9 +F3CA +F3CB +F3CC +F3CD +F3CE +F3CF +F3D0 +F3D1 +F3D2 +F3D3 +F3D4 +F3D5 +F3D6 +F3D7 +F3D8 +F3D9 +F3DA +F3DB +F3DC +F3DD +F3DE +F3DF +F3E0 +F3E1 +F3E2 +F3E3 +F3E4 +F3E5 +F3E6 +F3E7 +F3E8 +F3E9 +F3EA +F3EB +F3EC +F3ED +F3EE +F3EF +F3F0 +F3F1 +F3F2 +F3F3 +F3F4 +F3F5 +F3F6 +F3F7 +F3F8 +F3F9 +F3FA +F3FB +F3FC +F440 +F441 +F442 +F443 +F444 +F445 +F446 +F447 +F448 +F449 +F44A +F44B +F44C +F44D +F44E +F44F +F450 +F451 +F452 +F453 +F454 +F455 +F456 +F457 +F458 +F459 +F45A +F45B +F45C +F45D +F45E +F45F +F460 +F461 +F462 +F463 +F464 +F465 +F466 +F467 +F468 +F469 +F46A +F46B +F46C +F46D +F46E +F46F +F470 +F471 +F472 +F473 +F474 +F475 +F476 +F477 +F478 +F479 +F47A +F47B +F47C +F47D +F47E +F480 +F481 +F482 +F483 +F484 +F485 +F486 +F487 +F488 +F489 +F48A +F48B +F48C +F48D +F48E +F48F +F490 +F491 +F492 +F493 +F494 +F495 +F496 +F497 +F498 +F499 +F49A +F49B +F49C +F49D +F49E +F49F +F4A0 +F4A1 +F4A2 +F4A3 +F4A4 +F4A5 +F4A6 +F4A7 +F4A8 +F4A9 +F4AA +F4AB +F4AC +F4AD +F4AE +F4AF +F4B0 +F4B1 +F4B2 +F4B3 +F4B4 +F4B5 +F4B6 +F4B7 +F4B8 +F4B9 +F4BA +F4BB +F4BC +F4BD +F4BE +F4BF +F4C0 +F4C1 +F4C2 +F4C3 +F4C4 +F4C5 +F4C6 +F4C7 +F4C8 +F4C9 +F4CA +F4CB +F4CC +F4CD +F4CE +F4CF +F4D0 +F4D1 +F4D2 +F4D3 +F4D4 +F4D5 +F4D6 +F4D7 +F4D8 +F4D9 +F4DA +F4DB +F4DC +F4DD +F4DE +F4DF +F4E0 +F4E1 +F4E2 +F4E3 +F4E4 +F4E5 +F4E6 +F4E7 +F4E8 +F4E9 +F4EA +F4EB +F4EC +F4ED +F4EE +F4EF +F4F0 +F4F1 +F4F2 +F4F3 +F4F4 +F4F5 +F4F6 +F4F7 +F4F8 +F4F9 +F4FA +F4FB +F4FC +F540 +F541 +F542 +F543 +F544 +F545 +F546 +F547 +F548 +F549 +F54A +F54B +F54C +F54D +F54E +F54F +F550 +F551 +F552 +F553 +F554 +F555 +F556 +F557 +F558 +F559 +F55A +F55B +F55C +F55D +F55E +F55F +F560 +F561 +F562 +F563 +F564 +F565 +F566 +F567 +F568 +F569 +F56A +F56B +F56C +F56D +F56E +F56F +F570 +F571 +F572 +F573 +F574 +F575 +F576 +F577 +F578 +F579 +F57A +F57B +F57C +F57D +F57E +F580 +F581 +F582 +F583 +F584 +F585 +F586 +F587 +F588 +F589 +F58A +F58B +F58C +F58D +F58E +F58F +F590 +F591 +F592 +F593 +F594 +F595 +F596 +F597 +F598 +F599 +F59A +F59B +F59C +F59D +F59E +F59F +F5A0 +F5A1 +F5A2 +F5A3 +F5A4 +F5A5 +F5A6 +F5A7 +F5A8 +F5A9 +F5AA +F5AB +F5AC +F5AD +F5AE +F5AF +F5B0 +F5B1 +F5B2 +F5B3 +F5B4 +F5B5 +F5B6 +F5B7 +F5B8 +F5B9 +F5BA +F5BB +F5BC +F5BD +F5BE +F5BF +F5C0 +F5C1 +F5C2 +F5C3 +F5C4 +F5C5 +F5C6 +F5C7 +F5C8 +F5C9 +F5CA +F5CB +F5CC +F5CD +F5CE +F5CF +F5D0 +F5D1 +F5D2 +F5D3 +F5D4 +F5D5 +F5D6 +F5D7 +F5D8 +F5D9 +F5DA +F5DB +F5DC +F5DD +F5DE +F5DF +F5E0 +F5E1 +F5E2 +F5E3 +F5E4 +F5E5 +F5E6 +F5E7 +F5E8 +F5E9 +F5EA +F5EB +F5EC +F5ED +F5EE +F5EF +F5F0 +F5F1 +F5F2 +F5F3 +F5F4 +F5F5 +F5F6 +F5F7 +F5F8 +F5F9 +F5FA +F5FB +F5FC +F640 +F641 +F642 +F643 +F644 +F645 +F646 +F647 +F648 +F649 +F64A +F64B +F64C +F64D +F64E +F64F +F650 +F651 +F652 +F653 +F654 +F655 +F656 +F657 +F658 +F659 +F65A +F65B +F65C +F65D +F65E +F65F +F660 +F661 +F662 +F663 +F664 +F665 +F666 +F667 +F668 +F669 +F66A +F66B +F66C +F66D +F66E +F66F +F670 +F671 +F672 +F673 +F674 +F675 +F676 +F677 +F678 +F679 +F67A +F67B +F67C +F67D +F67E +F680 +F681 +F682 +F683 +F684 +F685 +F686 +F687 +F688 +F689 +F68A +F68B +F68C +F68D +F68E +F68F +F690 +F691 +F692 +F693 +F694 +F695 +F696 +F697 +F698 +F699 +F69A +F69B +F69C +F69D +F69E +F69F +F6A0 +F6A1 +F6A2 +F6A3 +F6A4 +F6A5 +F6A6 +F6A7 +F6A8 +F6A9 +F6AA +F6AB +F6AC +F6AD +F6AE +F6AF +F6B0 +F6B1 +F6B2 +F6B3 +F6B4 +F6B5 +F6B6 +F6B7 +F6B8 +F6B9 +F6BA +F6BB +F6BC +F6BD +F6BE +F6BF +F6C0 +F6C1 +F6C2 +F6C3 +F6C4 +F6C5 +F6C6 +F6C7 +F6C8 +F6C9 +F6CA +F6CB +F6CC +F6CD +F6CE +F6CF +F6D0 +F6D1 +F6D2 +F6D3 +F6D4 +F6D5 +F6D6 +F6D7 +F6D8 +F6D9 +F6DA +F6DB +F6DC +F6DD +F6DE +F6DF +F6E0 +F6E1 +F6E2 +F6E3 +F6E4 +F6E5 +F6E6 +F6E7 +F6E8 +F6E9 +F6EA +F6EB +F6EC +F6ED +F6EE +F6EF +F6F0 +F6F1 +F6F2 +F6F3 +F6F4 +F6F5 +F6F6 +F6F7 +F6F8 +F6F9 +F6FA +F6FB +F6FC +F740 +F741 +F742 +F743 +F744 +F745 +F746 +F747 +F748 +F749 +F74A +F74B +F74C +F74D +F74E +F74F +F750 +F751 +F752 +F753 +F754 +F755 +F756 +F757 +F758 +F759 +F75A +F75B +F75C +F75D +F75E +F75F +F760 +F761 +F762 +F763 +F764 +F765 +F766 +F767 +F768 +F769 +F76A +F76B +F76C +F76D +F76E +F76F +F770 +F771 +F772 +F773 +F774 +F775 +F776 +F777 +F778 +F779 +F77A +F77B +F77C +F77D +F77E +F780 +F781 +F782 +F783 +F784 +F785 +F786 +F787 +F788 +F789 +F78A +F78B +F78C +F78D +F78E +F78F +F790 +F791 +F792 +F793 +F794 +F795 +F796 +F797 +F798 +F799 +F79A +F79B +F79C +F79D +F79E +F79F +F7A0 +F7A1 +F7A2 +F7A3 +F7A4 +F7A5 +F7A6 +F7A7 +F7A8 +F7A9 +F7AA +F7AB +F7AC +F7AD +F7AE +F7AF +F7B0 +F7B1 +F7B2 +F7B3 +F7B4 +F7B5 +F7B6 +F7B7 +F7B8 +F7B9 +F7BA +F7BB +F7BC +F7BD +F7BE +F7BF +F7C0 +F7C1 +F7C2 +F7C3 +F7C4 +F7C5 +F7C6 +F7C7 +F7C8 +F7C9 +F7CA +F7CB +F7CC +F7CD +F7CE +F7CF +F7D0 +F7D1 +F7D2 +F7D3 +F7D4 +F7D5 +F7D6 +F7D7 +F7D8 +F7D9 +F7DA +F7DB +F7DC +F7DD +F7DE +F7DF +F7E0 +F7E1 +F7E2 +F7E3 +F7E4 +F7E5 +F7E6 +F7E7 +F7E8 +F7E9 +F7EA +F7EB +F7EC +F7ED +F7EE +F7EF +F7F0 +F7F1 +F7F2 +F7F3 +F7F4 +F7F5 +F7F6 +F7F7 +F7F8 +F7F9 +F7FA +F7FB +F7FC +F840 +F841 +F842 +F843 +F844 +F845 +F846 +F847 +F848 +F849 +F84A +F84B +F84C +F84D +F84E +F84F +F850 +F851 +F852 +F853 +F854 +F855 +F856 +F857 +F858 +F859 +F85A +F85B +F85C +F85D +F85E +F85F +F860 +F861 +F862 +F863 +F864 +F865 +F866 +F867 +F868 +F869 +F86A +F86B +F86C +F86D +F86E +F86F +F870 +F871 +F872 +F873 +F874 +F875 +F876 +F877 +F878 +F879 +F87A +F87B +F87C +F87D +F87E +F880 +F881 +F882 +F883 +F884 +F885 +F886 +F887 +F888 +F889 +F88A +F88B +F88C +F88D +F88E +F88F +F890 +F891 +F892 +F893 +F894 +F895 +F896 +F897 +F898 +F899 +F89A +F89B +F89C +F89D +F89E +F89F +F8A0 +F8A1 +F8A2 +F8A3 +F8A4 +F8A5 +F8A6 +F8A7 +F8A8 +F8A9 +F8AA +F8AB +F8AC +F8AD +F8AE +F8AF +F8B0 +F8B1 +F8B2 +F8B3 +F8B4 +F8B5 +F8B6 +F8B7 +F8B8 +F8B9 +F8BA +F8BB +F8BC +F8BD +F8BE +F8BF +F8C0 +F8C1 +F8C2 +F8C3 +F8C4 +F8C5 +F8C6 +F8C7 +F8C8 +F8C9 +F8CA +F8CB +F8CC +F8CD +F8CE +F8CF +F8D0 +F8D1 +F8D2 +F8D3 +F8D4 +F8D5 +F8D6 +F8D7 +F8D8 +F8D9 +F8DA +F8DB +F8DC +F8DD +F8DE +F8DF +F8E0 +F8E1 +F8E2 +F8E3 +F8E4 +F8E5 +F8E6 +F8E7 +F8E8 +F8E9 +F8EA +F8EB +F8EC +F8ED +F8EE +F8EF +F8F0 +F8F1 +F8F2 +F8F3 +F8F4 +F8F5 +F8F6 +F8F7 +F8F8 +F8F9 +F8FA +F8FB +F8FC +F940 +F941 +F942 +F943 +F944 +F945 +F946 +F947 +F948 +F949 +F94A +F94B +F94C +F94D +F94E +F94F +F950 +F951 +F952 +F953 +F954 +F955 +F956 +F957 +F958 +F959 +F95A +F95B +F95C +F95D +F95E +F95F +F960 +F961 +F962 +F963 +F964 +F965 +F966 +F967 +F968 +F969 +F96A +F96B +F96C +F96D +F96E +F96F +F970 +F971 +F972 +F973 +F974 +F975 +F976 +F977 +F978 +F979 +F97A +F97B +F97C +F97D +F97E +F980 +F981 +F982 +F983 +F984 +F985 +F986 +F987 +F988 +F989 +F98A +F98B +F98C +F98D +F98E +F98F +F990 +F991 +F992 +F993 +F994 +F995 +F996 +F997 +F998 +F999 +F99A +F99B +F99C +F99D +F99E +F99F +F9A0 +F9A1 +F9A2 +F9A3 +F9A4 +F9A5 +F9A6 +F9A7 +F9A8 +F9A9 +F9AA +F9AB +F9AC +F9AD +F9AE +F9AF +F9B0 +F9B1 +F9B2 +F9B3 +F9B4 +F9B5 +F9B6 +F9B7 +F9B8 +F9B9 +F9BA +F9BB +F9BC +F9BD +F9BE +F9BF +F9C0 +F9C1 +F9C2 +F9C3 +F9C4 +F9C5 +F9C6 +F9C7 +F9C8 +F9C9 +F9CA +F9CB +F9CC +F9CD +F9CE +F9CF +F9D0 +F9D1 +F9D2 +F9D3 +F9D4 +F9D5 +F9D6 +F9D7 +F9D8 +F9D9 +F9DA +F9DB +F9DC +F9DD +F9DE +F9DF +F9E0 +F9E1 +F9E2 +F9E3 +F9E4 +F9E5 +F9E6 +F9E7 +F9E8 +F9E9 +F9EA +F9EB +F9EC +F9ED +F9EE +F9EF +F9F0 +F9F1 +F9F2 +F9F3 +F9F4 +F9F5 +F9F6 +F9F7 +F9F8 +F9F9 +F9FA +F9FB +F9FC +CREATE TABLE t2 SELECT CONVERT(c1 USING ucs2) AS c1 FROM t1; +SELECT HEX(c1) FROM t2; +HEX(c1) +0005 +007E +2015 +FF3C +FF5E +2225 +FF0D +FFE0 +FFE1 +FFE2 +2460 +2461 +2462 +2463 +2464 +2465 +2466 +2467 +2468 +2469 +246A +246B +246C +246D +246E +246F +2470 +2471 +2472 +2473 +2160 +2161 +2162 +2163 +2164 +2165 +2166 +2167 +2168 +2169 +3349 +3314 +3322 +334D +3318 +3327 +3303 +3336 +3351 +3357 +330D +3326 +3323 +332B +334A +333B +339C +339D +339E +338E +338F +33C4 +33A1 +337B +301D +301F +2116 +33CD +2121 +32A4 +32A5 +32A6 +32A7 +32A8 +3231 +3232 +3239 +337E +337D +337C +2252 +2261 +222B +222E +2211 +221A +22A5 +2220 +221F +22BF +2235 +2229 +222A +7E8A +891C +9348 +9288 +84DC +4FC9 +70BB +6631 +68C8 +92F9 +66FB +5F45 +4E28 +4EE1 +4EFC +4F00 +4F03 +4F39 +4F56 +4F92 +4F8A +4F9A +4F94 +4FCD +5040 +5022 +4FFF +501E +5046 +5070 +5042 +5094 +50F4 +50D8 +514A +5164 +519D +51BE +51EC +5215 +529C +52A6 +52C0 +52DB +5300 +5307 +5324 +5372 +5393 +53B2 +53DD +FA0E +549C +548A +54A9 +54FF +5586 +5759 +5765 +57AC +57C8 +57C7 +FA0F +FA10 +589E +58B2 +590B +5953 +595B +595D +5963 +59A4 +59BA +5B56 +5BC0 +752F +5BD8 +5BEC +5C1E +5CA6 +5CBA +5CF5 +5D27 +5D53 +FA11 +5D42 +5D6D +5DB8 +5DB9 +5DD0 +5F21 +5F34 +5F67 +5FB7 +5FDE +605D +6085 +608A +60DE +60D5 +6120 +60F2 +6111 +6137 +6130 +6198 +6213 +62A6 +63F5 +6460 +649D +64CE +654E +6600 +6615 +663B +6609 +662E +661E +6624 +6665 +6657 +6659 +FA12 +6673 +6699 +66A0 +66B2 +66BF +66FA +670E +F929 +6766 +67BB +6852 +67C0 +6801 +6844 +68CF +FA13 +6968 +FA14 +6998 +69E2 +6A30 +6A6B +6A46 +6A73 +6A7E +6AE2 +6AE4 +6BD6 +6C3F +6C5C +6C86 +6C6F +6CDA +6D04 +6D87 +6D6F +6D96 +6DAC +6DCF +6DF8 +6DF2 +6DFC +6E39 +6E5C +6E27 +6E3C +6EBF +6F88 +6FB5 +6FF5 +7005 +7007 +7028 +7085 +70AB +710F +7104 +715C +7146 +7147 +FA15 +71C1 +71FE +72B1 +72BE +7324 +FA16 +7377 +73BD +73C9 +73D6 +73E3 +73D2 +7407 +73F5 +7426 +742A +7429 +742E +7462 +7489 +749F +7501 +756F +7682 +769C +769E +769B +76A6 +FA17 +7746 +52AF +7821 +784E +7864 +787A +7930 +FA18 +FA19 +FA1A +7994 +FA1B +799B +7AD1 +7AE7 +FA1C +7AEB +7B9E +FA1D +7D48 +7D5C +7DB7 +7DA0 +7DD6 +7E52 +7F47 +7FA1 +FA1E +8301 +8362 +837F +83C7 +83F6 +8448 +84B4 +8553 +8559 +856B +FA1F +85B0 +FA20 +FA21 +8807 +88F5 +8A12 +8A37 +8A79 +8AA7 +8ABE +8ADF +FA22 +8AF6 +8B53 +8B7F +8CF0 +8CF4 +8D12 +8D76 +FA23 +8ECF +FA24 +FA25 +9067 +90DE +FA26 +9115 +9127 +91DA +91D7 +91DE +91ED +91EE +91E4 +91E5 +9206 +9210 +920A +923A +9240 +923C +924E +9259 +9251 +9239 +9267 +92A7 +9277 +9278 +92E7 +92D7 +92D9 +92D0 +FA27 +92D5 +92E0 +92D3 +9325 +9321 +92FB +FA28 +931E +92FF +931D +9302 +9370 +9357 +93A4 +93C6 +93DE +93F8 +9431 +9445 +9448 +9592 +F9DC +FA29 +969D +96AF +9733 +973B +9743 +974D +974F +9751 +9755 +9857 +9865 +FA2A +FA2B +9927 +FA2C +999E +9A4E +9AD9 +9ADC +9B75 +9B72 +9B8F +9BB1 +9BBB +9C00 +9D70 +9D6B +FA2D +9E19 +9ED1 +2170 +2171 +2172 +2173 +2174 +2175 +2176 +2177 +2178 +2179 +FFE2 +FFE4 +FF07 +FF02 +2170 +2171 +2172 +2173 +2174 +2175 +2176 +2177 +2178 +2179 +2160 +2161 +2162 +2163 +2164 +2165 +2166 +2167 +2168 +2169 +FFE2 +FFE4 +FF07 +FF02 +3231 +2116 +2121 +2235 +7E8A +891C +9348 +9288 +84DC +4FC9 +70BB +6631 +68C8 +92F9 +66FB +5F45 +4E28 +4EE1 +4EFC +4F00 +4F03 +4F39 +4F56 +4F92 +4F8A +4F9A +4F94 +4FCD +5040 +5022 +4FFF +501E +5046 +5070 +5042 +5094 +50F4 +50D8 +514A +5164 +519D +51BE +51EC +5215 +529C +52A6 +52C0 +52DB +5300 +5307 +5324 +5372 +5393 +53B2 +53DD +FA0E +549C +548A +54A9 +54FF +5586 +5759 +5765 +57AC +57C8 +57C7 +FA0F +FA10 +589E +58B2 +590B +5953 +595B +595D +5963 +59A4 +59BA +5B56 +5BC0 +752F +5BD8 +5BEC +5C1E +5CA6 +5CBA +5CF5 +5D27 +5D53 +FA11 +5D42 +5D6D +5DB8 +5DB9 +5DD0 +5F21 +5F34 +5F67 +5FB7 +5FDE +605D +6085 +608A +60DE +60D5 +6120 +60F2 +6111 +6137 +6130 +6198 +6213 +62A6 +63F5 +6460 +649D +64CE +654E +6600 +6615 +663B +6609 +662E +661E +6624 +6665 +6657 +6659 +FA12 +6673 +6699 +66A0 +66B2 +66BF +66FA +670E +F929 +6766 +67BB +6852 +67C0 +6801 +6844 +68CF +FA13 +6968 +FA14 +6998 +69E2 +6A30 +6A6B +6A46 +6A73 +6A7E +6AE2 +6AE4 +6BD6 +6C3F +6C5C +6C86 +6C6F +6CDA +6D04 +6D87 +6D6F +6D96 +6DAC +6DCF +6DF8 +6DF2 +6DFC +6E39 +6E5C +6E27 +6E3C +6EBF +6F88 +6FB5 +6FF5 +7005 +7007 +7028 +7085 +70AB +710F +7104 +715C +7146 +7147 +FA15 +71C1 +71FE +72B1 +72BE +7324 +FA16 +7377 +73BD +73C9 +73D6 +73E3 +73D2 +7407 +73F5 +7426 +742A +7429 +742E +7462 +7489 +749F +7501 +756F +7682 +769C +769E +769B +76A6 +FA17 +7746 +52AF +7821 +784E +7864 +787A +7930 +FA18 +FA19 +FA1A +7994 +FA1B +799B +7AD1 +7AE7 +FA1C +7AEB +7B9E +FA1D +7D48 +7D5C +7DB7 +7DA0 +7DD6 +7E52 +7F47 +7FA1 +FA1E +8301 +8362 +837F +83C7 +83F6 +8448 +84B4 +8553 +8559 +856B +FA1F +85B0 +FA20 +FA21 +8807 +88F5 +8A12 +8A37 +8A79 +8AA7 +8ABE +8ADF +FA22 +8AF6 +8B53 +8B7F +8CF0 +8CF4 +8D12 +8D76 +FA23 +8ECF +FA24 +FA25 +9067 +90DE +FA26 +9115 +9127 +91DA +91D7 +91DE +91ED +91EE +91E4 +91E5 +9206 +9210 +920A +923A +9240 +923C +924E +9259 +9251 +9239 +9267 +92A7 +9277 +9278 +92E7 +92D7 +92D9 +92D0 +FA27 +92D5 +92E0 +92D3 +9325 +9321 +92FB +FA28 +931E +92FF +931D +9302 +9370 +9357 +93A4 +93C6 +93DE +93F8 +9431 +9445 +9448 +9592 +F9DC +FA29 +969D +96AF +9733 +973B +9743 +974D +974F +9751 +9755 +9857 +9865 +FA2A +FA2B +9927 +FA2C +999E +9A4E +9AD9 +9ADC +9B75 +9B72 +9B8F +9BB1 +9BBB +9C00 +9D70 +9D6B +FA2D +9E19 +9ED1 +E000 +E001 +E002 +E003 +E004 +E005 +E006 +E007 +E008 +E009 +E00A +E00B +E00C +E00D +E00E +E00F +E010 +E011 +E012 +E013 +E014 +E015 +E016 +E017 +E018 +E019 +E01A +E01B +E01C +E01D +E01E +E01F +E020 +E021 +E022 +E023 +E024 +E025 +E026 +E027 +E028 +E029 +E02A +E02B +E02C +E02D +E02E +E02F +E030 +E031 +E032 +E033 +E034 +E035 +E036 +E037 +E038 +E039 +E03A +E03B +E03C +E03D +E03E +E03F +E040 +E041 +E042 +E043 +E044 +E045 +E046 +E047 +E048 +E049 +E04A +E04B +E04C +E04D +E04E +E04F +E050 +E051 +E052 +E053 +E054 +E055 +E056 +E057 +E058 +E059 +E05A +E05B +E05C +E05D +E05E +E05F +E060 +E061 +E062 +E063 +E064 +E065 +E066 +E067 +E068 +E069 +E06A +E06B +E06C +E06D +E06E +E06F +E070 +E071 +E072 +E073 +E074 +E075 +E076 +E077 +E078 +E079 +E07A +E07B +E07C +E07D +E07E +E07F +E080 +E081 +E082 +E083 +E084 +E085 +E086 +E087 +E088 +E089 +E08A +E08B +E08C +E08D +E08E +E08F +E090 +E091 +E092 +E093 +E094 +E095 +E096 +E097 +E098 +E099 +E09A +E09B +E09C +E09D +E09E +E09F +E0A0 +E0A1 +E0A2 +E0A3 +E0A4 +E0A5 +E0A6 +E0A7 +E0A8 +E0A9 +E0AA +E0AB +E0AC +E0AD +E0AE +E0AF +E0B0 +E0B1 +E0B2 +E0B3 +E0B4 +E0B5 +E0B6 +E0B7 +E0B8 +E0B9 +E0BA +E0BB +E0BC +E0BD +E0BE +E0BF +E0C0 +E0C1 +E0C2 +E0C3 +E0C4 +E0C5 +E0C6 +E0C7 +E0C8 +E0C9 +E0CA +E0CB +E0CC +E0CD +E0CE +E0CF +E0D0 +E0D1 +E0D2 +E0D3 +E0D4 +E0D5 +E0D6 +E0D7 +E0D8 +E0D9 +E0DA +E0DB +E0DC +E0DD +E0DE +E0DF +E0E0 +E0E1 +E0E2 +E0E3 +E0E4 +E0E5 +E0E6 +E0E7 +E0E8 +E0E9 +E0EA +E0EB +E0EC +E0ED +E0EE +E0EF +E0F0 +E0F1 +E0F2 +E0F3 +E0F4 +E0F5 +E0F6 +E0F7 +E0F8 +E0F9 +E0FA +E0FB +E0FC +E0FD +E0FE +E0FF +E100 +E101 +E102 +E103 +E104 +E105 +E106 +E107 +E108 +E109 +E10A +E10B +E10C +E10D +E10E +E10F +E110 +E111 +E112 +E113 +E114 +E115 +E116 +E117 +E118 +E119 +E11A +E11B +E11C +E11D +E11E +E11F +E120 +E121 +E122 +E123 +E124 +E125 +E126 +E127 +E128 +E129 +E12A +E12B +E12C +E12D +E12E +E12F +E130 +E131 +E132 +E133 +E134 +E135 +E136 +E137 +E138 +E139 +E13A +E13B +E13C +E13D +E13E +E13F +E140 +E141 +E142 +E143 +E144 +E145 +E146 +E147 +E148 +E149 +E14A +E14B +E14C +E14D +E14E +E14F +E150 +E151 +E152 +E153 +E154 +E155 +E156 +E157 +E158 +E159 +E15A +E15B +E15C +E15D +E15E +E15F +E160 +E161 +E162 +E163 +E164 +E165 +E166 +E167 +E168 +E169 +E16A +E16B +E16C +E16D +E16E +E16F +E170 +E171 +E172 +E173 +E174 +E175 +E176 +E177 +E178 +E179 +E17A +E17B +E17C +E17D +E17E +E17F +E180 +E181 +E182 +E183 +E184 +E185 +E186 +E187 +E188 +E189 +E18A +E18B +E18C +E18D +E18E +E18F +E190 +E191 +E192 +E193 +E194 +E195 +E196 +E197 +E198 +E199 +E19A +E19B +E19C +E19D +E19E +E19F +E1A0 +E1A1 +E1A2 +E1A3 +E1A4 +E1A5 +E1A6 +E1A7 +E1A8 +E1A9 +E1AA +E1AB +E1AC +E1AD +E1AE +E1AF +E1B0 +E1B1 +E1B2 +E1B3 +E1B4 +E1B5 +E1B6 +E1B7 +E1B8 +E1B9 +E1BA +E1BB +E1BC +E1BD +E1BE +E1BF +E1C0 +E1C1 +E1C2 +E1C3 +E1C4 +E1C5 +E1C6 +E1C7 +E1C8 +E1C9 +E1CA +E1CB +E1CC +E1CD +E1CE +E1CF +E1D0 +E1D1 +E1D2 +E1D3 +E1D4 +E1D5 +E1D6 +E1D7 +E1D8 +E1D9 +E1DA +E1DB +E1DC +E1DD +E1DE +E1DF +E1E0 +E1E1 +E1E2 +E1E3 +E1E4 +E1E5 +E1E6 +E1E7 +E1E8 +E1E9 +E1EA +E1EB +E1EC +E1ED +E1EE +E1EF +E1F0 +E1F1 +E1F2 +E1F3 +E1F4 +E1F5 +E1F6 +E1F7 +E1F8 +E1F9 +E1FA +E1FB +E1FC +E1FD +E1FE +E1FF +E200 +E201 +E202 +E203 +E204 +E205 +E206 +E207 +E208 +E209 +E20A +E20B +E20C +E20D +E20E +E20F +E210 +E211 +E212 +E213 +E214 +E215 +E216 +E217 +E218 +E219 +E21A +E21B +E21C +E21D +E21E +E21F +E220 +E221 +E222 +E223 +E224 +E225 +E226 +E227 +E228 +E229 +E22A +E22B +E22C +E22D +E22E +E22F +E230 +E231 +E232 +E233 +E234 +E235 +E236 +E237 +E238 +E239 +E23A +E23B +E23C +E23D +E23E +E23F +E240 +E241 +E242 +E243 +E244 +E245 +E246 +E247 +E248 +E249 +E24A +E24B +E24C +E24D +E24E +E24F +E250 +E251 +E252 +E253 +E254 +E255 +E256 +E257 +E258 +E259 +E25A +E25B +E25C +E25D +E25E +E25F +E260 +E261 +E262 +E263 +E264 +E265 +E266 +E267 +E268 +E269 +E26A +E26B +E26C +E26D +E26E +E26F +E270 +E271 +E272 +E273 +E274 +E275 +E276 +E277 +E278 +E279 +E27A +E27B +E27C +E27D +E27E +E27F +E280 +E281 +E282 +E283 +E284 +E285 +E286 +E287 +E288 +E289 +E28A +E28B +E28C +E28D +E28E +E28F +E290 +E291 +E292 +E293 +E294 +E295 +E296 +E297 +E298 +E299 +E29A +E29B +E29C +E29D +E29E +E29F +E2A0 +E2A1 +E2A2 +E2A3 +E2A4 +E2A5 +E2A6 +E2A7 +E2A8 +E2A9 +E2AA +E2AB +E2AC +E2AD +E2AE +E2AF +E2B0 +E2B1 +E2B2 +E2B3 +E2B4 +E2B5 +E2B6 +E2B7 +E2B8 +E2B9 +E2BA +E2BB +E2BC +E2BD +E2BE +E2BF +E2C0 +E2C1 +E2C2 +E2C3 +E2C4 +E2C5 +E2C6 +E2C7 +E2C8 +E2C9 +E2CA +E2CB +E2CC +E2CD +E2CE +E2CF +E2D0 +E2D1 +E2D2 +E2D3 +E2D4 +E2D5 +E2D6 +E2D7 +E2D8 +E2D9 +E2DA +E2DB +E2DC +E2DD +E2DE +E2DF +E2E0 +E2E1 +E2E2 +E2E3 +E2E4 +E2E5 +E2E6 +E2E7 +E2E8 +E2E9 +E2EA +E2EB +E2EC +E2ED +E2EE +E2EF +E2F0 +E2F1 +E2F2 +E2F3 +E2F4 +E2F5 +E2F6 +E2F7 +E2F8 +E2F9 +E2FA +E2FB +E2FC +E2FD +E2FE +E2FF +E300 +E301 +E302 +E303 +E304 +E305 +E306 +E307 +E308 +E309 +E30A +E30B +E30C +E30D +E30E +E30F +E310 +E311 +E312 +E313 +E314 +E315 +E316 +E317 +E318 +E319 +E31A +E31B +E31C +E31D +E31E +E31F +E320 +E321 +E322 +E323 +E324 +E325 +E326 +E327 +E328 +E329 +E32A +E32B +E32C +E32D +E32E +E32F +E330 +E331 +E332 +E333 +E334 +E335 +E336 +E337 +E338 +E339 +E33A +E33B +E33C +E33D +E33E +E33F +E340 +E341 +E342 +E343 +E344 +E345 +E346 +E347 +E348 +E349 +E34A +E34B +E34C +E34D +E34E +E34F +E350 +E351 +E352 +E353 +E354 +E355 +E356 +E357 +E358 +E359 +E35A +E35B +E35C +E35D +E35E +E35F +E360 +E361 +E362 +E363 +E364 +E365 +E366 +E367 +E368 +E369 +E36A +E36B +E36C +E36D +E36E +E36F +E370 +E371 +E372 +E373 +E374 +E375 +E376 +E377 +E378 +E379 +E37A +E37B +E37C +E37D +E37E +E37F +E380 +E381 +E382 +E383 +E384 +E385 +E386 +E387 +E388 +E389 +E38A +E38B +E38C +E38D +E38E +E38F +E390 +E391 +E392 +E393 +E394 +E395 +E396 +E397 +E398 +E399 +E39A +E39B +E39C +E39D +E39E +E39F +E3A0 +E3A1 +E3A2 +E3A3 +E3A4 +E3A5 +E3A6 +E3A7 +E3A8 +E3A9 +E3AA +E3AB +E3AC +E3AD +E3AE +E3AF +E3B0 +E3B1 +E3B2 +E3B3 +E3B4 +E3B5 +E3B6 +E3B7 +E3B8 +E3B9 +E3BA +E3BB +E3BC +E3BD +E3BE +E3BF +E3C0 +E3C1 +E3C2 +E3C3 +E3C4 +E3C5 +E3C6 +E3C7 +E3C8 +E3C9 +E3CA +E3CB +E3CC +E3CD +E3CE +E3CF +E3D0 +E3D1 +E3D2 +E3D3 +E3D4 +E3D5 +E3D6 +E3D7 +E3D8 +E3D9 +E3DA +E3DB +E3DC +E3DD +E3DE +E3DF +E3E0 +E3E1 +E3E2 +E3E3 +E3E4 +E3E5 +E3E6 +E3E7 +E3E8 +E3E9 +E3EA +E3EB +E3EC +E3ED +E3EE +E3EF +E3F0 +E3F1 +E3F2 +E3F3 +E3F4 +E3F5 +E3F6 +E3F7 +E3F8 +E3F9 +E3FA +E3FB +E3FC +E3FD +E3FE +E3FF +E400 +E401 +E402 +E403 +E404 +E405 +E406 +E407 +E408 +E409 +E40A +E40B +E40C +E40D +E40E +E40F +E410 +E411 +E412 +E413 +E414 +E415 +E416 +E417 +E418 +E419 +E41A +E41B +E41C +E41D +E41E +E41F +E420 +E421 +E422 +E423 +E424 +E425 +E426 +E427 +E428 +E429 +E42A +E42B +E42C +E42D +E42E +E42F +E430 +E431 +E432 +E433 +E434 +E435 +E436 +E437 +E438 +E439 +E43A +E43B +E43C +E43D +E43E +E43F +E440 +E441 +E442 +E443 +E444 +E445 +E446 +E447 +E448 +E449 +E44A +E44B +E44C +E44D +E44E +E44F +E450 +E451 +E452 +E453 +E454 +E455 +E456 +E457 +E458 +E459 +E45A +E45B +E45C +E45D +E45E +E45F +E460 +E461 +E462 +E463 +E464 +E465 +E466 +E467 +E468 +E469 +E46A +E46B +E46C +E46D +E46E +E46F +E470 +E471 +E472 +E473 +E474 +E475 +E476 +E477 +E478 +E479 +E47A +E47B +E47C +E47D +E47E +E47F +E480 +E481 +E482 +E483 +E484 +E485 +E486 +E487 +E488 +E489 +E48A +E48B +E48C +E48D +E48E +E48F +E490 +E491 +E492 +E493 +E494 +E495 +E496 +E497 +E498 +E499 +E49A +E49B +E49C +E49D +E49E +E49F +E4A0 +E4A1 +E4A2 +E4A3 +E4A4 +E4A5 +E4A6 +E4A7 +E4A8 +E4A9 +E4AA +E4AB +E4AC +E4AD +E4AE +E4AF +E4B0 +E4B1 +E4B2 +E4B3 +E4B4 +E4B5 +E4B6 +E4B7 +E4B8 +E4B9 +E4BA +E4BB +E4BC +E4BD +E4BE +E4BF +E4C0 +E4C1 +E4C2 +E4C3 +E4C4 +E4C5 +E4C6 +E4C7 +E4C8 +E4C9 +E4CA +E4CB +E4CC +E4CD +E4CE +E4CF +E4D0 +E4D1 +E4D2 +E4D3 +E4D4 +E4D5 +E4D6 +E4D7 +E4D8 +E4D9 +E4DA +E4DB +E4DC +E4DD +E4DE +E4DF +E4E0 +E4E1 +E4E2 +E4E3 +E4E4 +E4E5 +E4E6 +E4E7 +E4E8 +E4E9 +E4EA +E4EB +E4EC +E4ED +E4EE +E4EF +E4F0 +E4F1 +E4F2 +E4F3 +E4F4 +E4F5 +E4F6 +E4F7 +E4F8 +E4F9 +E4FA +E4FB +E4FC +E4FD +E4FE +E4FF +E500 +E501 +E502 +E503 +E504 +E505 +E506 +E507 +E508 +E509 +E50A +E50B +E50C +E50D +E50E +E50F +E510 +E511 +E512 +E513 +E514 +E515 +E516 +E517 +E518 +E519 +E51A +E51B +E51C +E51D +E51E +E51F +E520 +E521 +E522 +E523 +E524 +E525 +E526 +E527 +E528 +E529 +E52A +E52B +E52C +E52D +E52E +E52F +E530 +E531 +E532 +E533 +E534 +E535 +E536 +E537 +E538 +E539 +E53A +E53B +E53C +E53D +E53E +E53F +E540 +E541 +E542 +E543 +E544 +E545 +E546 +E547 +E548 +E549 +E54A +E54B +E54C +E54D +E54E +E54F +E550 +E551 +E552 +E553 +E554 +E555 +E556 +E557 +E558 +E559 +E55A +E55B +E55C +E55D +E55E +E55F +E560 +E561 +E562 +E563 +E564 +E565 +E566 +E567 +E568 +E569 +E56A +E56B +E56C +E56D +E56E +E56F +E570 +E571 +E572 +E573 +E574 +E575 +E576 +E577 +E578 +E579 +E57A +E57B +E57C +E57D +E57E +E57F +E580 +E581 +E582 +E583 +E584 +E585 +E586 +E587 +E588 +E589 +E58A +E58B +E58C +E58D +E58E +E58F +E590 +E591 +E592 +E593 +E594 +E595 +E596 +E597 +E598 +E599 +E59A +E59B +E59C +E59D +E59E +E59F +E5A0 +E5A1 +E5A2 +E5A3 +E5A4 +E5A5 +E5A6 +E5A7 +E5A8 +E5A9 +E5AA +E5AB +E5AC +E5AD +E5AE +E5AF +E5B0 +E5B1 +E5B2 +E5B3 +E5B4 +E5B5 +E5B6 +E5B7 +E5B8 +E5B9 +E5BA +E5BB +E5BC +E5BD +E5BE +E5BF +E5C0 +E5C1 +E5C2 +E5C3 +E5C4 +E5C5 +E5C6 +E5C7 +E5C8 +E5C9 +E5CA +E5CB +E5CC +E5CD +E5CE +E5CF +E5D0 +E5D1 +E5D2 +E5D3 +E5D4 +E5D5 +E5D6 +E5D7 +E5D8 +E5D9 +E5DA +E5DB +E5DC +E5DD +E5DE +E5DF +E5E0 +E5E1 +E5E2 +E5E3 +E5E4 +E5E5 +E5E6 +E5E7 +E5E8 +E5E9 +E5EA +E5EB +E5EC +E5ED +E5EE +E5EF +E5F0 +E5F1 +E5F2 +E5F3 +E5F4 +E5F5 +E5F6 +E5F7 +E5F8 +E5F9 +E5FA +E5FB +E5FC +E5FD +E5FE +E5FF +E600 +E601 +E602 +E603 +E604 +E605 +E606 +E607 +E608 +E609 +E60A +E60B +E60C +E60D +E60E +E60F +E610 +E611 +E612 +E613 +E614 +E615 +E616 +E617 +E618 +E619 +E61A +E61B +E61C +E61D +E61E +E61F +E620 +E621 +E622 +E623 +E624 +E625 +E626 +E627 +E628 +E629 +E62A +E62B +E62C +E62D +E62E +E62F +E630 +E631 +E632 +E633 +E634 +E635 +E636 +E637 +E638 +E639 +E63A +E63B +E63C +E63D +E63E +E63F +E640 +E641 +E642 +E643 +E644 +E645 +E646 +E647 +E648 +E649 +E64A +E64B +E64C +E64D +E64E +E64F +E650 +E651 +E652 +E653 +E654 +E655 +E656 +E657 +E658 +E659 +E65A +E65B +E65C +E65D +E65E +E65F +E660 +E661 +E662 +E663 +E664 +E665 +E666 +E667 +E668 +E669 +E66A +E66B +E66C +E66D +E66E +E66F +E670 +E671 +E672 +E673 +E674 +E675 +E676 +E677 +E678 +E679 +E67A +E67B +E67C +E67D +E67E +E67F +E680 +E681 +E682 +E683 +E684 +E685 +E686 +E687 +E688 +E689 +E68A +E68B +E68C +E68D +E68E +E68F +E690 +E691 +E692 +E693 +E694 +E695 +E696 +E697 +E698 +E699 +E69A +E69B +E69C +E69D +E69E +E69F +E6A0 +E6A1 +E6A2 +E6A3 +E6A4 +E6A5 +E6A6 +E6A7 +E6A8 +E6A9 +E6AA +E6AB +E6AC +E6AD +E6AE +E6AF +E6B0 +E6B1 +E6B2 +E6B3 +E6B4 +E6B5 +E6B6 +E6B7 +E6B8 +E6B9 +E6BA +E6BB +E6BC +E6BD +E6BE +E6BF +E6C0 +E6C1 +E6C2 +E6C3 +E6C4 +E6C5 +E6C6 +E6C7 +E6C8 +E6C9 +E6CA +E6CB +E6CC +E6CD +E6CE +E6CF +E6D0 +E6D1 +E6D2 +E6D3 +E6D4 +E6D5 +E6D6 +E6D7 +E6D8 +E6D9 +E6DA +E6DB +E6DC +E6DD +E6DE +E6DF +E6E0 +E6E1 +E6E2 +E6E3 +E6E4 +E6E5 +E6E6 +E6E7 +E6E8 +E6E9 +E6EA +E6EB +E6EC +E6ED +E6EE +E6EF +E6F0 +E6F1 +E6F2 +E6F3 +E6F4 +E6F5 +E6F6 +E6F7 +E6F8 +E6F9 +E6FA +E6FB +E6FC +E6FD +E6FE +E6FF +E700 +E701 +E702 +E703 +E704 +E705 +E706 +E707 +E708 +E709 +E70A +E70B +E70C +E70D +E70E +E70F +E710 +E711 +E712 +E713 +E714 +E715 +E716 +E717 +E718 +E719 +E71A +E71B +E71C +E71D +E71E +E71F +E720 +E721 +E722 +E723 +E724 +E725 +E726 +E727 +E728 +E729 +E72A +E72B +E72C +E72D +E72E +E72F +E730 +E731 +E732 +E733 +E734 +E735 +E736 +E737 +E738 +E739 +E73A +E73B +E73C +E73D +E73E +E73F +E740 +E741 +E742 +E743 +E744 +E745 +E746 +E747 +E748 +E749 +E74A +E74B +E74C +E74D +E74E +E74F +E750 +E751 +E752 +E753 +E754 +E755 +E756 +E757 +CREATE TABLE t3 SELECT CONVERT(c1 USING cp932) AS c1 FROM t2; +SELECT HEX(c1) FROM t3; +HEX(c1) +05 +7E +815C +815F +8160 +8161 +817C +8191 +8192 +81CA +8740 +8741 +8742 +8743 +8744 +8745 +8746 +8747 +8748 +8749 +874A +874B +874C +874D +874E +874F +8750 +8751 +8752 +8753 +8754 +8755 +8756 +8757 +8758 +8759 +875A +875B +875C +875D +875F +8760 +8761 +8762 +8763 +8764 +8765 +8766 +8767 +8768 +8769 +876A +876B +876C +876D +876E +876F +8770 +8771 +8772 +8773 +8774 +8775 +877E +8780 +8781 +8782 +8783 +8784 +8785 +8786 +8787 +8788 +8789 +878A +878B +878C +878D +878E +878F +81E0 +81DF +81E7 +8793 +8794 +81E3 +81DB +81DA +8798 +8799 +81E6 +81BF +81BE +FA5C +FA5D +FA5E +FA5F +FA60 +FA61 +FA62 +FA63 +FA64 +FA65 +FA66 +FA67 +FA68 +FA69 +FA6A +FA6B +FA6C +FA6D +FA6E +FA6F +FA70 +FA71 +FA72 +FA73 +FA74 +FA75 +FA76 +FA77 +FA78 +FA79 +FA7A +FA7B +FA7C +FA7D +FA7E +FA80 +FA81 +FA82 +FA83 +FA84 +FA85 +FA86 +FA87 +FA88 +FA89 +FA8A +FA8B +FA8C +FA8D +FA8E +FA8F +FA90 +FA91 +FA92 +FA93 +FA94 +FA95 +FA96 +FA97 +FA98 +FA99 +FA9A +FA9B +FA9C +FA9D +FA9E +FA9F +FAA0 +FAA1 +FAA2 +FAA3 +FAA4 +FAA5 +FAA6 +FAA7 +FAA8 +FAA9 +FAAA +FAAB +FAAC +FAAD +FAAE +FAAF +FAB0 +FAB1 +FAB2 +FAB3 +FAB4 +FAB5 +FAB6 +FAB7 +FAB8 +FAB9 +FABA +FABB +FABC +FABD +FABE +FABF +FAC0 +FAC1 +FAC2 +FAC3 +FAC4 +FAC5 +FAC6 +FAC7 +FAC8 +FAC9 +FACA +FACB +FACC +FACD +FACE +FACF +FAD0 +FAD1 +FAD2 +FAD3 +FAD4 +FAD5 +FAD6 +FAD7 +FAD8 +FAD9 +FADA +FADB +FADC +FADD +FADE +FADF +FAE0 +FAE1 +FAE2 +FAE3 +FAE4 +FAE5 +FAE6 +FAE7 +FAE8 +FAE9 +FAEA +FAEB +FAEC +FAED +FAEE +FAEF +FAF0 +FAF1 +FAF2 +FAF3 +FAF4 +FAF5 +FAF6 +FAF7 +FAF8 +FAF9 +FAFA +FAFB +FAFC +FB40 +FB41 +FB42 +FB43 +FB44 +FB45 +FB46 +FB47 +FB48 +FB49 +FB4A +FB4B +FB4C +FB4D +FB4E +FB4F +FB50 +FB51 +FB52 +FB53 +FB54 +FB55 +FB56 +FB57 +FB58 +FB59 +FB5A +FB5B +FB5C +FB5D +FB5E +FB5F +FB60 +FB61 +FB62 +FB63 +FB64 +FB65 +FB66 +FB67 +FB68 +FB69 +FB6A +FB6B +FB6C +FB6D +FB6E +FB6F +FB70 +FB71 +FB72 +FB73 +FB74 +FB75 +FB76 +FB77 +FB78 +FB79 +FB7A +FB7B +FB7C +FB7D +FB7E +FB80 +FB81 +FB82 +FB83 +FB84 +FB85 +FB86 +FB87 +FB88 +FB89 +FB8A +FB8B +FB8C +FB8D +FB8E +FB8F +FB90 +FB91 +FB92 +FB93 +FB94 +FB95 +FB96 +FB97 +FB98 +FB99 +FB9A +FB9B +FB9C +FB9D +FB9E +FB9F +FBA0 +FBA1 +FBA2 +FBA3 +FBA4 +FBA5 +FBA6 +FBA7 +FBA8 +FBA9 +FBAA +FBAB +FBAC +FBAD +FBAE +FBAF +FBB0 +FBB1 +FBB2 +FBB3 +FBB4 +FBB5 +FBB6 +FBB7 +FBB8 +FBB9 +FBBA +FBBB +FBBC +FBBD +FBBE +FBBF +FBC0 +FBC1 +FBC2 +FBC3 +FBC4 +FBC5 +FBC6 +FBC7 +FBC8 +FBC9 +FBCA +FBCB +FBCC +FBCD +FBCE +FBCF +FBD0 +FBD1 +FBD2 +FBD3 +FBD4 +FBD5 +FBD6 +FBD7 +FBD8 +FBD9 +FBDA +FBDB +FBDC +FBDD +FBDE +FBDF +FBE0 +FBE1 +FBE2 +FBE3 +FBE4 +FBE5 +FBE6 +FBE7 +FBE8 +FBE9 +FBEA +FBEB +FBEC +FBED +FBEE +FBEF +FBF0 +FBF1 +FBF2 +FBF3 +FBF4 +FBF5 +FBF6 +FBF7 +FBF8 +FBF9 +FBFA +FBFB +FBFC +FC40 +FC41 +FC42 +FC43 +FC44 +FC45 +FC46 +FC47 +FC48 +FC49 +FC4A +FC4B +FA40 +FA41 +FA42 +FA43 +FA44 +FA45 +FA46 +FA47 +FA48 +FA49 +81CA +FA55 +FA56 +FA57 +FA40 +FA41 +FA42 +FA43 +FA44 +FA45 +FA46 +FA47 +FA48 +FA49 +8754 +8755 +8756 +8757 +8758 +8759 +875A +875B +875C +875D +81CA +FA55 +FA56 +FA57 +878A +8782 +8784 +81E6 +FA5C +FA5D +FA5E +FA5F +FA60 +FA61 +FA62 +FA63 +FA64 +FA65 +FA66 +FA67 +FA68 +FA69 +FA6A +FA6B +FA6C +FA6D +FA6E +FA6F +FA70 +FA71 +FA72 +FA73 +FA74 +FA75 +FA76 +FA77 +FA78 +FA79 +FA7A +FA7B +FA7C +FA7D +FA7E +FA80 +FA81 +FA82 +FA83 +FA84 +FA85 +FA86 +FA87 +FA88 +FA89 +FA8A +FA8B +FA8C +FA8D +FA8E +FA8F +FA90 +FA91 +FA92 +FA93 +FA94 +FA95 +FA96 +FA97 +FA98 +FA99 +FA9A +FA9B +FA9C +FA9D +FA9E +FA9F +FAA0 +FAA1 +FAA2 +FAA3 +FAA4 +FAA5 +FAA6 +FAA7 +FAA8 +FAA9 +FAAA +FAAB +FAAC +FAAD +FAAE +FAAF +FAB0 +FAB1 +FAB2 +FAB3 +FAB4 +FAB5 +FAB6 +FAB7 +FAB8 +FAB9 +FABA +FABB +FABC +FABD +FABE +FABF +FAC0 +FAC1 +FAC2 +FAC3 +FAC4 +FAC5 +FAC6 +FAC7 +FAC8 +FAC9 +FACA +FACB +FACC +FACD +FACE +FACF +FAD0 +FAD1 +FAD2 +FAD3 +FAD4 +FAD5 +FAD6 +FAD7 +FAD8 +FAD9 +FADA +FADB +FADC +FADD +FADE +FADF +FAE0 +FAE1 +FAE2 +FAE3 +FAE4 +FAE5 +FAE6 +FAE7 +FAE8 +FAE9 +FAEA +FAEB +FAEC +FAED +FAEE +FAEF +FAF0 +FAF1 +FAF2 +FAF3 +FAF4 +FAF5 +FAF6 +FAF7 +FAF8 +FAF9 +FAFA +FAFB +FAFC +FB40 +FB41 +FB42 +FB43 +FB44 +FB45 +FB46 +FB47 +FB48 +FB49 +FB4A +FB4B +FB4C +FB4D +FB4E +FB4F +FB50 +FB51 +FB52 +FB53 +FB54 +FB55 +FB56 +FB57 +FB58 +FB59 +FB5A +FB5B +FB5C +FB5D +FB5E +FB5F +FB60 +FB61 +FB62 +FB63 +FB64 +FB65 +FB66 +FB67 +FB68 +FB69 +FB6A +FB6B +FB6C +FB6D +FB6E +FB6F +FB70 +FB71 +FB72 +FB73 +FB74 +FB75 +FB76 +FB77 +FB78 +FB79 +FB7A +FB7B +FB7C +FB7D +FB7E +FB80 +FB81 +FB82 +FB83 +FB84 +FB85 +FB86 +FB87 +FB88 +FB89 +FB8A +FB8B +FB8C +FB8D +FB8E +FB8F +FB90 +FB91 +FB92 +FB93 +FB94 +FB95 +FB96 +FB97 +FB98 +FB99 +FB9A +FB9B +FB9C +FB9D +FB9E +FB9F +FBA0 +FBA1 +FBA2 +FBA3 +FBA4 +FBA5 +FBA6 +FBA7 +FBA8 +FBA9 +FBAA +FBAB +FBAC +FBAD +FBAE +FBAF +FBB0 +FBB1 +FBB2 +FBB3 +FBB4 +FBB5 +FBB6 +FBB7 +FBB8 +FBB9 +FBBA +FBBB +FBBC +FBBD +FBBE +FBBF +FBC0 +FBC1 +FBC2 +FBC3 +FBC4 +FBC5 +FBC6 +FBC7 +FBC8 +FBC9 +FBCA +FBCB +FBCC +FBCD +FBCE +FBCF +FBD0 +FBD1 +FBD2 +FBD3 +FBD4 +FBD5 +FBD6 +FBD7 +FBD8 +FBD9 +FBDA +FBDB +FBDC +FBDD +FBDE +FBDF +FBE0 +FBE1 +FBE2 +FBE3 +FBE4 +FBE5 +FBE6 +FBE7 +FBE8 +FBE9 +FBEA +FBEB +FBEC +FBED +FBEE +FBEF +FBF0 +FBF1 +FBF2 +FBF3 +FBF4 +FBF5 +FBF6 +FBF7 +FBF8 +FBF9 +FBFA +FBFB +FBFC +FC40 +FC41 +FC42 +FC43 +FC44 +FC45 +FC46 +FC47 +FC48 +FC49 +FC4A +FC4B +F040 +F041 +F042 +F043 +F044 +F045 +F046 +F047 +F048 +F049 +F04A +F04B +F04C +F04D +F04E +F04F +F050 +F051 +F052 +F053 +F054 +F055 +F056 +F057 +F058 +F059 +F05A +F05B +F05C +F05D +F05E +F05F +F060 +F061 +F062 +F063 +F064 +F065 +F066 +F067 +F068 +F069 +F06A +F06B +F06C +F06D +F06E +F06F +F070 +F071 +F072 +F073 +F074 +F075 +F076 +F077 +F078 +F079 +F07A +F07B +F07C +F07D +F07E +F080 +F081 +F082 +F083 +F084 +F085 +F086 +F087 +F088 +F089 +F08A +F08B +F08C +F08D +F08E +F08F +F090 +F091 +F092 +F093 +F094 +F095 +F096 +F097 +F098 +F099 +F09A +F09B +F09C +F09D +F09E +F09F +F0A0 +F0A1 +F0A2 +F0A3 +F0A4 +F0A5 +F0A6 +F0A7 +F0A8 +F0A9 +F0AA +F0AB +F0AC +F0AD +F0AE +F0AF +F0B0 +F0B1 +F0B2 +F0B3 +F0B4 +F0B5 +F0B6 +F0B7 +F0B8 +F0B9 +F0BA +F0BB +F0BC +F0BD +F0BE +F0BF +F0C0 +F0C1 +F0C2 +F0C3 +F0C4 +F0C5 +F0C6 +F0C7 +F0C8 +F0C9 +F0CA +F0CB +F0CC +F0CD +F0CE +F0CF +F0D0 +F0D1 +F0D2 +F0D3 +F0D4 +F0D5 +F0D6 +F0D7 +F0D8 +F0D9 +F0DA +F0DB +F0DC +F0DD +F0DE +F0DF +F0E0 +F0E1 +F0E2 +F0E3 +F0E4 +F0E5 +F0E6 +F0E7 +F0E8 +F0E9 +F0EA +F0EB +F0EC +F0ED +F0EE +F0EF +F0F0 +F0F1 +F0F2 +F0F3 +F0F4 +F0F5 +F0F6 +F0F7 +F0F8 +F0F9 +F0FA +F0FB +F0FC +F140 +F141 +F142 +F143 +F144 +F145 +F146 +F147 +F148 +F149 +F14A +F14B +F14C +F14D +F14E +F14F +F150 +F151 +F152 +F153 +F154 +F155 +F156 +F157 +F158 +F159 +F15A +F15B +F15C +F15D +F15E +F15F +F160 +F161 +F162 +F163 +F164 +F165 +F166 +F167 +F168 +F169 +F16A +F16B +F16C +F16D +F16E +F16F +F170 +F171 +F172 +F173 +F174 +F175 +F176 +F177 +F178 +F179 +F17A +F17B +F17C +F17D +F17E +F180 +F181 +F182 +F183 +F184 +F185 +F186 +F187 +F188 +F189 +F18A +F18B +F18C +F18D +F18E +F18F +F190 +F191 +F192 +F193 +F194 +F195 +F196 +F197 +F198 +F199 +F19A +F19B +F19C +F19D +F19E +F19F +F1A0 +F1A1 +F1A2 +F1A3 +F1A4 +F1A5 +F1A6 +F1A7 +F1A8 +F1A9 +F1AA +F1AB +F1AC +F1AD +F1AE +F1AF +F1B0 +F1B1 +F1B2 +F1B3 +F1B4 +F1B5 +F1B6 +F1B7 +F1B8 +F1B9 +F1BA +F1BB +F1BC +F1BD +F1BE +F1BF +F1C0 +F1C1 +F1C2 +F1C3 +F1C4 +F1C5 +F1C6 +F1C7 +F1C8 +F1C9 +F1CA +F1CB +F1CC +F1CD +F1CE +F1CF +F1D0 +F1D1 +F1D2 +F1D3 +F1D4 +F1D5 +F1D6 +F1D7 +F1D8 +F1D9 +F1DA +F1DB +F1DC +F1DD +F1DE +F1DF +F1E0 +F1E1 +F1E2 +F1E3 +F1E4 +F1E5 +F1E6 +F1E7 +F1E8 +F1E9 +F1EA +F1EB +F1EC +F1ED +F1EE +F1EF +F1F0 +F1F1 +F1F2 +F1F3 +F1F4 +F1F5 +F1F6 +F1F7 +F1F8 +F1F9 +F1FA +F1FB +F1FC +F240 +F241 +F242 +F243 +F244 +F245 +F246 +F247 +F248 +F249 +F24A +F24B +F24C +F24D +F24E +F24F +F250 +F251 +F252 +F253 +F254 +F255 +F256 +F257 +F258 +F259 +F25A +F25B +F25C +F25D +F25E +F25F +F260 +F261 +F262 +F263 +F264 +F265 +F266 +F267 +F268 +F269 +F26A +F26B +F26C +F26D +F26E +F26F +F270 +F271 +F272 +F273 +F274 +F275 +F276 +F277 +F278 +F279 +F27A +F27B +F27C +F27D +F27E +F280 +F281 +F282 +F283 +F284 +F285 +F286 +F287 +F288 +F289 +F28A +F28B +F28C +F28D +F28E +F28F +F290 +F291 +F292 +F293 +F294 +F295 +F296 +F297 +F298 +F299 +F29A +F29B +F29C +F29D +F29E +F29F +F2A0 +F2A1 +F2A2 +F2A3 +F2A4 +F2A5 +F2A6 +F2A7 +F2A8 +F2A9 +F2AA +F2AB +F2AC +F2AD +F2AE +F2AF +F2B0 +F2B1 +F2B2 +F2B3 +F2B4 +F2B5 +F2B6 +F2B7 +F2B8 +F2B9 +F2BA +F2BB +F2BC +F2BD +F2BE +F2BF +F2C0 +F2C1 +F2C2 +F2C3 +F2C4 +F2C5 +F2C6 +F2C7 +F2C8 +F2C9 +F2CA +F2CB +F2CC +F2CD +F2CE +F2CF +F2D0 +F2D1 +F2D2 +F2D3 +F2D4 +F2D5 +F2D6 +F2D7 +F2D8 +F2D9 +F2DA +F2DB +F2DC +F2DD +F2DE +F2DF +F2E0 +F2E1 +F2E2 +F2E3 +F2E4 +F2E5 +F2E6 +F2E7 +F2E8 +F2E9 +F2EA +F2EB +F2EC +F2ED +F2EE +F2EF +F2F0 +F2F1 +F2F2 +F2F3 +F2F4 +F2F5 +F2F6 +F2F7 +F2F8 +F2F9 +F2FA +F2FB +F2FC +F340 +F341 +F342 +F343 +F344 +F345 +F346 +F347 +F348 +F349 +F34A +F34B +F34C +F34D +F34E +F34F +F350 +F351 +F352 +F353 +F354 +F355 +F356 +F357 +F358 +F359 +F35A +F35B +F35C +F35D +F35E +F35F +F360 +F361 +F362 +F363 +F364 +F365 +F366 +F367 +F368 +F369 +F36A +F36B +F36C +F36D +F36E +F36F +F370 +F371 +F372 +F373 +F374 +F375 +F376 +F377 +F378 +F379 +F37A +F37B +F37C +F37D +F37E +F380 +F381 +F382 +F383 +F384 +F385 +F386 +F387 +F388 +F389 +F38A +F38B +F38C +F38D +F38E +F38F +F390 +F391 +F392 +F393 +F394 +F395 +F396 +F397 +F398 +F399 +F39A +F39B +F39C +F39D +F39E +F39F +F3A0 +F3A1 +F3A2 +F3A3 +F3A4 +F3A5 +F3A6 +F3A7 +F3A8 +F3A9 +F3AA +F3AB +F3AC +F3AD +F3AE +F3AF +F3B0 +F3B1 +F3B2 +F3B3 +F3B4 +F3B5 +F3B6 +F3B7 +F3B8 +F3B9 +F3BA +F3BB +F3BC +F3BD +F3BE +F3BF +F3C0 +F3C1 +F3C2 +F3C3 +F3C4 +F3C5 +F3C6 +F3C7 +F3C8 +F3C9 +F3CA +F3CB +F3CC +F3CD +F3CE +F3CF +F3D0 +F3D1 +F3D2 +F3D3 +F3D4 +F3D5 +F3D6 +F3D7 +F3D8 +F3D9 +F3DA +F3DB +F3DC +F3DD +F3DE +F3DF +F3E0 +F3E1 +F3E2 +F3E3 +F3E4 +F3E5 +F3E6 +F3E7 +F3E8 +F3E9 +F3EA +F3EB +F3EC +F3ED +F3EE +F3EF +F3F0 +F3F1 +F3F2 +F3F3 +F3F4 +F3F5 +F3F6 +F3F7 +F3F8 +F3F9 +F3FA +F3FB +F3FC +F440 +F441 +F442 +F443 +F444 +F445 +F446 +F447 +F448 +F449 +F44A +F44B +F44C +F44D +F44E +F44F +F450 +F451 +F452 +F453 +F454 +F455 +F456 +F457 +F458 +F459 +F45A +F45B +F45C +F45D +F45E +F45F +F460 +F461 +F462 +F463 +F464 +F465 +F466 +F467 +F468 +F469 +F46A +F46B +F46C +F46D +F46E +F46F +F470 +F471 +F472 +F473 +F474 +F475 +F476 +F477 +F478 +F479 +F47A +F47B +F47C +F47D +F47E +F480 +F481 +F482 +F483 +F484 +F485 +F486 +F487 +F488 +F489 +F48A +F48B +F48C +F48D +F48E +F48F +F490 +F491 +F492 +F493 +F494 +F495 +F496 +F497 +F498 +F499 +F49A +F49B +F49C +F49D +F49E +F49F +F4A0 +F4A1 +F4A2 +F4A3 +F4A4 +F4A5 +F4A6 +F4A7 +F4A8 +F4A9 +F4AA +F4AB +F4AC +F4AD +F4AE +F4AF +F4B0 +F4B1 +F4B2 +F4B3 +F4B4 +F4B5 +F4B6 +F4B7 +F4B8 +F4B9 +F4BA +F4BB +F4BC +F4BD +F4BE +F4BF +F4C0 +F4C1 +F4C2 +F4C3 +F4C4 +F4C5 +F4C6 +F4C7 +F4C8 +F4C9 +F4CA +F4CB +F4CC +F4CD +F4CE +F4CF +F4D0 +F4D1 +F4D2 +F4D3 +F4D4 +F4D5 +F4D6 +F4D7 +F4D8 +F4D9 +F4DA +F4DB +F4DC +F4DD +F4DE +F4DF +F4E0 +F4E1 +F4E2 +F4E3 +F4E4 +F4E5 +F4E6 +F4E7 +F4E8 +F4E9 +F4EA +F4EB +F4EC +F4ED +F4EE +F4EF +F4F0 +F4F1 +F4F2 +F4F3 +F4F4 +F4F5 +F4F6 +F4F7 +F4F8 +F4F9 +F4FA +F4FB +F4FC +F540 +F541 +F542 +F543 +F544 +F545 +F546 +F547 +F548 +F549 +F54A +F54B +F54C +F54D +F54E +F54F +F550 +F551 +F552 +F553 +F554 +F555 +F556 +F557 +F558 +F559 +F55A +F55B +F55C +F55D +F55E +F55F +F560 +F561 +F562 +F563 +F564 +F565 +F566 +F567 +F568 +F569 +F56A +F56B +F56C +F56D +F56E +F56F +F570 +F571 +F572 +F573 +F574 +F575 +F576 +F577 +F578 +F579 +F57A +F57B +F57C +F57D +F57E +F580 +F581 +F582 +F583 +F584 +F585 +F586 +F587 +F588 +F589 +F58A +F58B +F58C +F58D +F58E +F58F +F590 +F591 +F592 +F593 +F594 +F595 +F596 +F597 +F598 +F599 +F59A +F59B +F59C +F59D +F59E +F59F +F5A0 +F5A1 +F5A2 +F5A3 +F5A4 +F5A5 +F5A6 +F5A7 +F5A8 +F5A9 +F5AA +F5AB +F5AC +F5AD +F5AE +F5AF +F5B0 +F5B1 +F5B2 +F5B3 +F5B4 +F5B5 +F5B6 +F5B7 +F5B8 +F5B9 +F5BA +F5BB +F5BC +F5BD +F5BE +F5BF +F5C0 +F5C1 +F5C2 +F5C3 +F5C4 +F5C5 +F5C6 +F5C7 +F5C8 +F5C9 +F5CA +F5CB +F5CC +F5CD +F5CE +F5CF +F5D0 +F5D1 +F5D2 +F5D3 +F5D4 +F5D5 +F5D6 +F5D7 +F5D8 +F5D9 +F5DA +F5DB +F5DC +F5DD +F5DE +F5DF +F5E0 +F5E1 +F5E2 +F5E3 +F5E4 +F5E5 +F5E6 +F5E7 +F5E8 +F5E9 +F5EA +F5EB +F5EC +F5ED +F5EE +F5EF +F5F0 +F5F1 +F5F2 +F5F3 +F5F4 +F5F5 +F5F6 +F5F7 +F5F8 +F5F9 +F5FA +F5FB +F5FC +F640 +F641 +F642 +F643 +F644 +F645 +F646 +F647 +F648 +F649 +F64A +F64B +F64C +F64D +F64E +F64F +F650 +F651 +F652 +F653 +F654 +F655 +F656 +F657 +F658 +F659 +F65A +F65B +F65C +F65D +F65E +F65F +F660 +F661 +F662 +F663 +F664 +F665 +F666 +F667 +F668 +F669 +F66A +F66B +F66C +F66D +F66E +F66F +F670 +F671 +F672 +F673 +F674 +F675 +F676 +F677 +F678 +F679 +F67A +F67B +F67C +F67D +F67E +F680 +F681 +F682 +F683 +F684 +F685 +F686 +F687 +F688 +F689 +F68A +F68B +F68C +F68D +F68E +F68F +F690 +F691 +F692 +F693 +F694 +F695 +F696 +F697 +F698 +F699 +F69A +F69B +F69C +F69D +F69E +F69F +F6A0 +F6A1 +F6A2 +F6A3 +F6A4 +F6A5 +F6A6 +F6A7 +F6A8 +F6A9 +F6AA +F6AB +F6AC +F6AD +F6AE +F6AF +F6B0 +F6B1 +F6B2 +F6B3 +F6B4 +F6B5 +F6B6 +F6B7 +F6B8 +F6B9 +F6BA +F6BB +F6BC +F6BD +F6BE +F6BF +F6C0 +F6C1 +F6C2 +F6C3 +F6C4 +F6C5 +F6C6 +F6C7 +F6C8 +F6C9 +F6CA +F6CB +F6CC +F6CD +F6CE +F6CF +F6D0 +F6D1 +F6D2 +F6D3 +F6D4 +F6D5 +F6D6 +F6D7 +F6D8 +F6D9 +F6DA +F6DB +F6DC +F6DD +F6DE +F6DF +F6E0 +F6E1 +F6E2 +F6E3 +F6E4 +F6E5 +F6E6 +F6E7 +F6E8 +F6E9 +F6EA +F6EB +F6EC +F6ED +F6EE +F6EF +F6F0 +F6F1 +F6F2 +F6F3 +F6F4 +F6F5 +F6F6 +F6F7 +F6F8 +F6F9 +F6FA +F6FB +F6FC +F740 +F741 +F742 +F743 +F744 +F745 +F746 +F747 +F748 +F749 +F74A +F74B +F74C +F74D +F74E +F74F +F750 +F751 +F752 +F753 +F754 +F755 +F756 +F757 +F758 +F759 +F75A +F75B +F75C +F75D +F75E +F75F +F760 +F761 +F762 +F763 +F764 +F765 +F766 +F767 +F768 +F769 +F76A +F76B +F76C +F76D +F76E +F76F +F770 +F771 +F772 +F773 +F774 +F775 +F776 +F777 +F778 +F779 +F77A +F77B +F77C +F77D +F77E +F780 +F781 +F782 +F783 +F784 +F785 +F786 +F787 +F788 +F789 +F78A +F78B +F78C +F78D +F78E +F78F +F790 +F791 +F792 +F793 +F794 +F795 +F796 +F797 +F798 +F799 +F79A +F79B +F79C +F79D +F79E +F79F +F7A0 +F7A1 +F7A2 +F7A3 +F7A4 +F7A5 +F7A6 +F7A7 +F7A8 +F7A9 +F7AA +F7AB +F7AC +F7AD +F7AE +F7AF +F7B0 +F7B1 +F7B2 +F7B3 +F7B4 +F7B5 +F7B6 +F7B7 +F7B8 +F7B9 +F7BA +F7BB +F7BC +F7BD +F7BE +F7BF +F7C0 +F7C1 +F7C2 +F7C3 +F7C4 +F7C5 +F7C6 +F7C7 +F7C8 +F7C9 +F7CA +F7CB +F7CC +F7CD +F7CE +F7CF +F7D0 +F7D1 +F7D2 +F7D3 +F7D4 +F7D5 +F7D6 +F7D7 +F7D8 +F7D9 +F7DA +F7DB +F7DC +F7DD +F7DE +F7DF +F7E0 +F7E1 +F7E2 +F7E3 +F7E4 +F7E5 +F7E6 +F7E7 +F7E8 +F7E9 +F7EA +F7EB +F7EC +F7ED +F7EE +F7EF +F7F0 +F7F1 +F7F2 +F7F3 +F7F4 +F7F5 +F7F6 +F7F7 +F7F8 +F7F9 +F7FA +F7FB +F7FC +F840 +F841 +F842 +F843 +F844 +F845 +F846 +F847 +F848 +F849 +F84A +F84B +F84C +F84D +F84E +F84F +F850 +F851 +F852 +F853 +F854 +F855 +F856 +F857 +F858 +F859 +F85A +F85B +F85C +F85D +F85E +F85F +F860 +F861 +F862 +F863 +F864 +F865 +F866 +F867 +F868 +F869 +F86A +F86B +F86C +F86D +F86E +F86F +F870 +F871 +F872 +F873 +F874 +F875 +F876 +F877 +F878 +F879 +F87A +F87B +F87C +F87D +F87E +F880 +F881 +F882 +F883 +F884 +F885 +F886 +F887 +F888 +F889 +F88A +F88B +F88C +F88D +F88E +F88F +F890 +F891 +F892 +F893 +F894 +F895 +F896 +F897 +F898 +F899 +F89A +F89B +F89C +F89D +F89E +F89F +F8A0 +F8A1 +F8A2 +F8A3 +F8A4 +F8A5 +F8A6 +F8A7 +F8A8 +F8A9 +F8AA +F8AB +F8AC +F8AD +F8AE +F8AF +F8B0 +F8B1 +F8B2 +F8B3 +F8B4 +F8B5 +F8B6 +F8B7 +F8B8 +F8B9 +F8BA +F8BB +F8BC +F8BD +F8BE +F8BF +F8C0 +F8C1 +F8C2 +F8C3 +F8C4 +F8C5 +F8C6 +F8C7 +F8C8 +F8C9 +F8CA +F8CB +F8CC +F8CD +F8CE +F8CF +F8D0 +F8D1 +F8D2 +F8D3 +F8D4 +F8D5 +F8D6 +F8D7 +F8D8 +F8D9 +F8DA +F8DB +F8DC +F8DD +F8DE +F8DF +F8E0 +F8E1 +F8E2 +F8E3 +F8E4 +F8E5 +F8E6 +F8E7 +F8E8 +F8E9 +F8EA +F8EB +F8EC +F8ED +F8EE +F8EF +F8F0 +F8F1 +F8F2 +F8F3 +F8F4 +F8F5 +F8F6 +F8F7 +F8F8 +F8F9 +F8FA +F8FB +F8FC +F940 +F941 +F942 +F943 +F944 +F945 +F946 +F947 +F948 +F949 +F94A +F94B +F94C +F94D +F94E +F94F +F950 +F951 +F952 +F953 +F954 +F955 +F956 +F957 +F958 +F959 +F95A +F95B +F95C +F95D +F95E +F95F +F960 +F961 +F962 +F963 +F964 +F965 +F966 +F967 +F968 +F969 +F96A +F96B +F96C +F96D +F96E +F96F +F970 +F971 +F972 +F973 +F974 +F975 +F976 +F977 +F978 +F979 +F97A +F97B +F97C +F97D +F97E +F980 +F981 +F982 +F983 +F984 +F985 +F986 +F987 +F988 +F989 +F98A +F98B +F98C +F98D +F98E +F98F +F990 +F991 +F992 +F993 +F994 +F995 +F996 +F997 +F998 +F999 +F99A +F99B +F99C +F99D +F99E +F99F +F9A0 +F9A1 +F9A2 +F9A3 +F9A4 +F9A5 +F9A6 +F9A7 +F9A8 +F9A9 +F9AA +F9AB +F9AC +F9AD +F9AE +F9AF +F9B0 +F9B1 +F9B2 +F9B3 +F9B4 +F9B5 +F9B6 +F9B7 +F9B8 +F9B9 +F9BA +F9BB +F9BC +F9BD +F9BE +F9BF +F9C0 +F9C1 +F9C2 +F9C3 +F9C4 +F9C5 +F9C6 +F9C7 +F9C8 +F9C9 +F9CA +F9CB +F9CC +F9CD +F9CE +F9CF +F9D0 +F9D1 +F9D2 +F9D3 +F9D4 +F9D5 +F9D6 +F9D7 +F9D8 +F9D9 +F9DA +F9DB +F9DC +F9DD +F9DE +F9DF +F9E0 +F9E1 +F9E2 +F9E3 +F9E4 +F9E5 +F9E6 +F9E7 +F9E8 +F9E9 +F9EA +F9EB +F9EC +F9ED +F9EE +F9EF +F9F0 +F9F1 +F9F2 +F9F3 +F9F4 +F9F5 +F9F6 +F9F7 +F9F8 +F9F9 +F9FA +F9FB +F9FC +CREATE TABLE t4 SELECT CONVERT(c1 USING eucjpms) AS c1 FROM t1; +SELECT HEX(c1) FROM t4; +HEX(c1) +05 +7E +A1BD +A1C0 +A1C1 +A1C2 +A1DD +A1F1 +A1F2 +A2CC +ADA1 +ADA2 +ADA3 +ADA4 +ADA5 +ADA6 +ADA7 +ADA8 +ADA9 +ADAA +ADAB +ADAC +ADAD +ADAE +ADAF +ADB0 +ADB1 +ADB2 +ADB3 +ADB4 +ADB5 +ADB6 +ADB7 +ADB8 +ADB9 +ADBA +ADBB +ADBC +ADBD +ADBE +ADC0 +ADC1 +ADC2 +ADC3 +ADC4 +ADC5 +ADC6 +ADC7 +ADC8 +ADC9 +ADCA +ADCB +ADCC +ADCD +ADCE +ADCF +ADD0 +ADD1 +ADD2 +ADD3 +ADD4 +ADD5 +ADD6 +ADDF +ADE0 +ADE1 +ADE2 +ADE3 +ADE4 +ADE5 +ADE6 +ADE7 +ADE8 +ADE9 +ADEA +ADEB +ADEC +ADED +ADEE +ADEF +A2E2 +A2E1 +A2E9 +ADF3 +ADF4 +A2E5 +A2DD +A2DC +ADF8 +ADF9 +A2E8 +A2C1 +A2C0 +8FD4E3 +8FDCDF +8FE4E9 +8FE3F8 +8FD9A1 +8FB1BB +8FF4AE +8FC2AD +8FC3FC +8FE4D0 +8FC2BF +8FBCF4 +8FB0A9 +8FB0C8 +8FF4AF +8FB0D2 +8FB0D4 +8FB0E3 +8FB0EE +8FB1A7 +8FB1A3 +8FB1AC +8FB1A9 +8FB1BE +8FB1DF +8FB1D8 +8FB1C8 +8FB1D7 +8FB1E3 +8FB1F4 +8FB1E1 +8FB2A3 +8FF4B0 +8FB2BB +8FB2E6 +8FB2ED +8FB2F5 +8FB2FC +8FF4B1 +8FB3B5 +8FB3D8 +8FB3DB +8FB3E5 +8FB3EE +8FB3FB +8FF4B2 +8FF4B3 +8FB4C0 +8FB4C7 +8FB4D0 +8FB4DE +8FF4B4 +8FB5AA +8FF4B5 +8FB5AF +8FB5C4 +8FB5E8 +8FF4B6 +8FB7C2 +8FB7E4 +8FB7E8 +8FB7E7 +8FF4B7 +8FF4B8 +8FF4B9 +8FB8CE +8FB8E1 +8FB8F5 +8FB8F7 +8FB8F8 +8FB8FC +8FB9AF +8FB9B7 +8FBABE +8FBADB +8FCDAA +8FBAE1 +8FF4BA +8FBAEB +8FBBB3 +8FBBB8 +8FF4BB +8FBBCA +8FF4BC +8FF4BD +8FBBD0 +8FBBDE +8FBBF4 +8FBBF5 +8FBBF9 +8FBCE4 +8FBCED +8FBCFE +8FF4BE +8FBDC2 +8FBDE7 +8FF4BF +8FBDF0 +8FBEB0 +8FBEAC +8FF4C0 +8FBEB3 +8FBEBD +8FBECD +8FBEC9 +8FBEE4 +8FBFA8 +8FBFC9 +8FC0C4 +8FC0E4 +8FC0F4 +8FC1A6 +8FF4C1 +8FC1F5 +8FC1FC +8FF4C2 +8FC1F8 +8FC2AB +8FC2A1 +8FC2A5 +8FF4C3 +8FC2B8 +8FC2BA +8FF4C4 +8FC2C4 +8FC2D2 +8FC2D7 +8FC2DB +8FC2DE +8FC2ED +8FC2F0 +8FF4C5 +8FC3A1 +8FC3B5 +8FC3C9 +8FC3B9 +8FF4C6 +8FC3D8 +8FC3FE +8FF4C7 +8FC4CC +8FF4C8 +8FC4D9 +8FC4EA +8FC4FD +8FF4C9 +8FC5A7 +8FC5B5 +8FC5B6 +8FF4CA +8FC5D5 +8FC6B8 +8FC6D7 +8FC6E0 +8FC6EA +8FC6E3 +8FC7A1 +8FC7AB +8FC7C7 +8FC7C3 +8FC7CB +8FC7CF +8FC7D9 +8FF4CB +8FF4CC +8FC7E6 +8FC7EE +8FC7FC +8FC7EB +8FC7F0 +8FC8B1 +8FC8E5 +8FC8F8 +8FC9A6 +8FC9AB +8FC9AD +8FF4CD +8FC9CA +8FC9D3 +8FC9E9 +8FC9E3 +8FC9FC +8FC9F4 +8FC9F5 +8FF4CE +8FCAB3 +8FCABD +8FCAEF +8FCAF1 +8FCBAE +8FF4CF +8FCBCA +8FCBE6 +8FCBEA +8FCBF0 +8FCBF4 +8FCBEE +8FCCA5 +8FCBF9 +8FCCAB +8FCCAE +8FCCAD +8FCCB2 +8FCCC2 +8FCCD0 +8FCCD9 +8FF4D0 +8FCDBB +8FF4D1 +8FCEBB +8FF4D2 +8FCEBA +8FCEC3 +8FF4D3 +8FCEF2 +8FB3DD +8FCFD5 +8FCFE2 +8FCFE9 +8FCFED +8FF4D4 +8FF4D5 +8FF4D6 +8FF4D7 +8FD0E5 +8FF4D8 +8FD0E9 +8FD1E8 +8FF4D9 +8FF4DA +8FD1EC +8FD2BB +8FF4DB +8FD3E1 +8FD3E8 +8FD4A7 +8FF4DC +8FF4DD +8FD4D4 +8FD4F2 +8FD5AE +8FF4DE +8FD7DE +8FF4DF +8FD8A2 +8FD8B7 +8FD8C1 +8FD8D1 +8FD8F4 +8FD9C6 +8FD9C8 +8FD9D1 +8FF4E0 +8FF4E1 +8FF4E2 +8FF4E3 +8FF4E4 +8FDCD3 +8FDDC8 +8FDDD4 +8FDDEA +8FDDFA +8FDEA4 +8FDEB0 +8FF4E5 +8FDEB5 +8FDECB +8FF4E6 +8FDFB9 +8FF4E7 +8FDFC3 +8FF4E8 +8FF4E9 +8FE0D9 +8FF4EA +8FF4EB +8FE1E2 +8FF4EC +8FF4ED +8FF4EE +8FE2C7 +8FE3A8 +8FE3A6 +8FE3A9 +8FE3AF +8FE3B0 +8FE3AA +8FE3AB +8FE3BC +8FE3C1 +8FE3BF +8FE3D5 +8FE3D8 +8FE3D6 +8FE3DF +8FE3E3 +8FE3E1 +8FE3D4 +8FE3E9 +8FE4A6 +8FE3F1 +8FE3F2 +8FE4CB +8FE4C1 +8FE4C3 +8FE4BE +8FF4EF +8FE4C0 +8FE4C7 +8FE4BF +8FE4E0 +8FE4DE +8FE4D1 +8FF4F0 +8FE4DC +8FE4D2 +8FE4DB +8FE4D4 +8FE4FA +8FE4EF +8FE5B3 +8FE5BF +8FE5C9 +8FE5D0 +8FE5E2 +8FE5EA +8FE5EB +8FF4F1 +8FF4F2 +8FF4F3 +8FE6E8 +8FE6EF +8FE7AC +8FF4F4 +8FE7AE +8FF4F5 +8FE7B1 +8FF4F6 +8FE7B2 +8FE8B1 +8FE8B6 +8FF4F7 +8FF4F8 +8FE8DD +8FF4F9 +8FF4FA +8FE9D1 +8FF4FB +8FE9ED +8FEACD +8FF4FC +8FEADB +8FEAE6 +8FEAEA +8FEBA5 +8FEBFB +8FEBFA +8FF4FD +8FECD6 +8FF4FE +8FF3F3 +8FF3F4 +8FF3F5 +8FF3F6 +8FF3F7 +8FF3F8 +8FF3F9 +8FF3FA +8FF3FB +8FF3FC +A2CC +8FA2C3 +8FF4A9 +8FF4AA +8FF3F3 +8FF3F4 +8FF3F5 +8FF3F6 +8FF3F7 +8FF3F8 +8FF3F9 +8FF3FA +8FF3FB +8FF3FC +ADB5 +ADB6 +ADB7 +ADB8 +ADB9 +ADBA +ADBB +ADBC +ADBD +ADBE +A2CC +8FA2C3 +8FF4A9 +8FF4AA +ADEA +ADE2 +ADE4 +A2E8 +8FD4E3 +8FDCDF +8FE4E9 +8FE3F8 +8FD9A1 +8FB1BB +8FF4AE +8FC2AD +8FC3FC +8FE4D0 +8FC2BF +8FBCF4 +8FB0A9 +8FB0C8 +8FF4AF +8FB0D2 +8FB0D4 +8FB0E3 +8FB0EE +8FB1A7 +8FB1A3 +8FB1AC +8FB1A9 +8FB1BE +8FB1DF +8FB1D8 +8FB1C8 +8FB1D7 +8FB1E3 +8FB1F4 +8FB1E1 +8FB2A3 +8FF4B0 +8FB2BB +8FB2E6 +8FB2ED +8FB2F5 +8FB2FC +8FF4B1 +8FB3B5 +8FB3D8 +8FB3DB +8FB3E5 +8FB3EE +8FB3FB +8FF4B2 +8FF4B3 +8FB4C0 +8FB4C7 +8FB4D0 +8FB4DE +8FF4B4 +8FB5AA +8FF4B5 +8FB5AF +8FB5C4 +8FB5E8 +8FF4B6 +8FB7C2 +8FB7E4 +8FB7E8 +8FB7E7 +8FF4B7 +8FF4B8 +8FF4B9 +8FB8CE +8FB8E1 +8FB8F5 +8FB8F7 +8FB8F8 +8FB8FC +8FB9AF +8FB9B7 +8FBABE +8FBADB +8FCDAA +8FBAE1 +8FF4BA +8FBAEB +8FBBB3 +8FBBB8 +8FF4BB +8FBBCA +8FF4BC +8FF4BD +8FBBD0 +8FBBDE +8FBBF4 +8FBBF5 +8FBBF9 +8FBCE4 +8FBCED +8FBCFE +8FF4BE +8FBDC2 +8FBDE7 +8FF4BF +8FBDF0 +8FBEB0 +8FBEAC +8FF4C0 +8FBEB3 +8FBEBD +8FBECD +8FBEC9 +8FBEE4 +8FBFA8 +8FBFC9 +8FC0C4 +8FC0E4 +8FC0F4 +8FC1A6 +8FF4C1 +8FC1F5 +8FC1FC +8FF4C2 +8FC1F8 +8FC2AB +8FC2A1 +8FC2A5 +8FF4C3 +8FC2B8 +8FC2BA +8FF4C4 +8FC2C4 +8FC2D2 +8FC2D7 +8FC2DB +8FC2DE +8FC2ED +8FC2F0 +8FF4C5 +8FC3A1 +8FC3B5 +8FC3C9 +8FC3B9 +8FF4C6 +8FC3D8 +8FC3FE +8FF4C7 +8FC4CC +8FF4C8 +8FC4D9 +8FC4EA +8FC4FD +8FF4C9 +8FC5A7 +8FC5B5 +8FC5B6 +8FF4CA +8FC5D5 +8FC6B8 +8FC6D7 +8FC6E0 +8FC6EA +8FC6E3 +8FC7A1 +8FC7AB +8FC7C7 +8FC7C3 +8FC7CB +8FC7CF +8FC7D9 +8FF4CB +8FF4CC +8FC7E6 +8FC7EE +8FC7FC +8FC7EB +8FC7F0 +8FC8B1 +8FC8E5 +8FC8F8 +8FC9A6 +8FC9AB +8FC9AD +8FF4CD +8FC9CA +8FC9D3 +8FC9E9 +8FC9E3 +8FC9FC +8FC9F4 +8FC9F5 +8FF4CE +8FCAB3 +8FCABD +8FCAEF +8FCAF1 +8FCBAE +8FF4CF +8FCBCA +8FCBE6 +8FCBEA +8FCBF0 +8FCBF4 +8FCBEE +8FCCA5 +8FCBF9 +8FCCAB +8FCCAE +8FCCAD +8FCCB2 +8FCCC2 +8FCCD0 +8FCCD9 +8FF4D0 +8FCDBB +8FF4D1 +8FCEBB +8FF4D2 +8FCEBA +8FCEC3 +8FF4D3 +8FCEF2 +8FB3DD +8FCFD5 +8FCFE2 +8FCFE9 +8FCFED +8FF4D4 +8FF4D5 +8FF4D6 +8FF4D7 +8FD0E5 +8FF4D8 +8FD0E9 +8FD1E8 +8FF4D9 +8FF4DA +8FD1EC +8FD2BB +8FF4DB +8FD3E1 +8FD3E8 +8FD4A7 +8FF4DC +8FF4DD +8FD4D4 +8FD4F2 +8FD5AE +8FF4DE +8FD7DE +8FF4DF +8FD8A2 +8FD8B7 +8FD8C1 +8FD8D1 +8FD8F4 +8FD9C6 +8FD9C8 +8FD9D1 +8FF4E0 +8FF4E1 +8FF4E2 +8FF4E3 +8FF4E4 +8FDCD3 +8FDDC8 +8FDDD4 +8FDDEA +8FDDFA +8FDEA4 +8FDEB0 +8FF4E5 +8FDEB5 +8FDECB +8FF4E6 +8FDFB9 +8FF4E7 +8FDFC3 +8FF4E8 +8FF4E9 +8FE0D9 +8FF4EA +8FF4EB +8FE1E2 +8FF4EC +8FF4ED +8FF4EE +8FE2C7 +8FE3A8 +8FE3A6 +8FE3A9 +8FE3AF +8FE3B0 +8FE3AA +8FE3AB +8FE3BC +8FE3C1 +8FE3BF +8FE3D5 +8FE3D8 +8FE3D6 +8FE3DF +8FE3E3 +8FE3E1 +8FE3D4 +8FE3E9 +8FE4A6 +8FE3F1 +8FE3F2 +8FE4CB +8FE4C1 +8FE4C3 +8FE4BE +8FF4EF +8FE4C0 +8FE4C7 +8FE4BF +8FE4E0 +8FE4DE +8FE4D1 +8FF4F0 +8FE4DC +8FE4D2 +8FE4DB +8FE4D4 +8FE4FA +8FE4EF +8FE5B3 +8FE5BF +8FE5C9 +8FE5D0 +8FE5E2 +8FE5EA +8FE5EB +8FF4F1 +8FF4F2 +8FF4F3 +8FE6E8 +8FE6EF +8FE7AC +8FF4F4 +8FE7AE +8FF4F5 +8FE7B1 +8FF4F6 +8FE7B2 +8FE8B1 +8FE8B6 +8FF4F7 +8FF4F8 +8FE8DD +8FF4F9 +8FF4FA +8FE9D1 +8FF4FB +8FE9ED +8FEACD +8FF4FC +8FEADB +8FEAE6 +8FEAEA +8FEBA5 +8FEBFB +8FEBFA +8FF4FD +8FECD6 +8FF4FE +F5A1 +F5A2 +F5A3 +F5A4 +F5A5 +F5A6 +F5A7 +F5A8 +F5A9 +F5AA +F5AB +F5AC +F5AD +F5AE +F5AF +F5B0 +F5B1 +F5B2 +F5B3 +F5B4 +F5B5 +F5B6 +F5B7 +F5B8 +F5B9 +F5BA +F5BB +F5BC +F5BD +F5BE +F5BF +F5C0 +F5C1 +F5C2 +F5C3 +F5C4 +F5C5 +F5C6 +F5C7 +F5C8 +F5C9 +F5CA +F5CB +F5CC +F5CD +F5CE +F5CF +F5D0 +F5D1 +F5D2 +F5D3 +F5D4 +F5D5 +F5D6 +F5D7 +F5D8 +F5D9 +F5DA +F5DB +F5DC +F5DD +F5DE +F5DF +F5E0 +F5E1 +F5E2 +F5E3 +F5E4 +F5E5 +F5E6 +F5E7 +F5E8 +F5E9 +F5EA +F5EB +F5EC +F5ED +F5EE +F5EF +F5F0 +F5F1 +F5F2 +F5F3 +F5F4 +F5F5 +F5F6 +F5F7 +F5F8 +F5F9 +F5FA +F5FB +F5FC +F5FD +F5FE +F6A1 +F6A2 +F6A3 +F6A4 +F6A5 +F6A6 +F6A7 +F6A8 +F6A9 +F6AA +F6AB +F6AC +F6AD +F6AE +F6AF +F6B0 +F6B1 +F6B2 +F6B3 +F6B4 +F6B5 +F6B6 +F6B7 +F6B8 +F6B9 +F6BA +F6BB +F6BC +F6BD +F6BE +F6BF +F6C0 +F6C1 +F6C2 +F6C3 +F6C4 +F6C5 +F6C6 +F6C7 +F6C8 +F6C9 +F6CA +F6CB +F6CC +F6CD +F6CE +F6CF +F6D0 +F6D1 +F6D2 +F6D3 +F6D4 +F6D5 +F6D6 +F6D7 +F6D8 +F6D9 +F6DA +F6DB +F6DC +F6DD +F6DE +F6DF +F6E0 +F6E1 +F6E2 +F6E3 +F6E4 +F6E5 +F6E6 +F6E7 +F6E8 +F6E9 +F6EA +F6EB +F6EC +F6ED +F6EE +F6EF +F6F0 +F6F1 +F6F2 +F6F3 +F6F4 +F6F5 +F6F6 +F6F7 +F6F8 +F6F9 +F6FA +F6FB +F6FC +F6FD +F6FE +F7A1 +F7A2 +F7A3 +F7A4 +F7A5 +F7A6 +F7A7 +F7A8 +F7A9 +F7AA +F7AB +F7AC +F7AD +F7AE +F7AF +F7B0 +F7B1 +F7B2 +F7B3 +F7B4 +F7B5 +F7B6 +F7B7 +F7B8 +F7B9 +F7BA +F7BB +F7BC +F7BD +F7BE +F7BF +F7C0 +F7C1 +F7C2 +F7C3 +F7C4 +F7C5 +F7C6 +F7C7 +F7C8 +F7C9 +F7CA +F7CB +F7CC +F7CD +F7CE +F7CF +F7D0 +F7D1 +F7D2 +F7D3 +F7D4 +F7D5 +F7D6 +F7D7 +F7D8 +F7D9 +F7DA +F7DB +F7DC +F7DD +F7DE +F7DF +F7E0 +F7E1 +F7E2 +F7E3 +F7E4 +F7E5 +F7E6 +F7E7 +F7E8 +F7E9 +F7EA +F7EB +F7EC +F7ED +F7EE +F7EF +F7F0 +F7F1 +F7F2 +F7F3 +F7F4 +F7F5 +F7F6 +F7F7 +F7F8 +F7F9 +F7FA +F7FB +F7FC +F7FD +F7FE +F8A1 +F8A2 +F8A3 +F8A4 +F8A5 +F8A6 +F8A7 +F8A8 +F8A9 +F8AA +F8AB +F8AC +F8AD +F8AE +F8AF +F8B0 +F8B1 +F8B2 +F8B3 +F8B4 +F8B5 +F8B6 +F8B7 +F8B8 +F8B9 +F8BA +F8BB +F8BC +F8BD +F8BE +F8BF +F8C0 +F8C1 +F8C2 +F8C3 +F8C4 +F8C5 +F8C6 +F8C7 +F8C8 +F8C9 +F8CA +F8CB +F8CC +F8CD +F8CE +F8CF +F8D0 +F8D1 +F8D2 +F8D3 +F8D4 +F8D5 +F8D6 +F8D7 +F8D8 +F8D9 +F8DA +F8DB +F8DC +F8DD +F8DE +F8DF +F8E0 +F8E1 +F8E2 +F8E3 +F8E4 +F8E5 +F8E6 +F8E7 +F8E8 +F8E9 +F8EA +F8EB +F8EC +F8ED +F8EE +F8EF +F8F0 +F8F1 +F8F2 +F8F3 +F8F4 +F8F5 +F8F6 +F8F7 +F8F8 +F8F9 +F8FA +F8FB +F8FC +F8FD +F8FE +F9A1 +F9A2 +F9A3 +F9A4 +F9A5 +F9A6 +F9A7 +F9A8 +F9A9 +F9AA +F9AB +F9AC +F9AD +F9AE +F9AF +F9B0 +F9B1 +F9B2 +F9B3 +F9B4 +F9B5 +F9B6 +F9B7 +F9B8 +F9B9 +F9BA +F9BB +F9BC +F9BD +F9BE +F9BF +F9C0 +F9C1 +F9C2 +F9C3 +F9C4 +F9C5 +F9C6 +F9C7 +F9C8 +F9C9 +F9CA +F9CB +F9CC +F9CD +F9CE +F9CF +F9D0 +F9D1 +F9D2 +F9D3 +F9D4 +F9D5 +F9D6 +F9D7 +F9D8 +F9D9 +F9DA +F9DB +F9DC +F9DD +F9DE +F9DF +F9E0 +F9E1 +F9E2 +F9E3 +F9E4 +F9E5 +F9E6 +F9E7 +F9E8 +F9E9 +F9EA +F9EB +F9EC +F9ED +F9EE +F9EF +F9F0 +F9F1 +F9F2 +F9F3 +F9F4 +F9F5 +F9F6 +F9F7 +F9F8 +F9F9 +F9FA +F9FB +F9FC +F9FD +F9FE +FAA1 +FAA2 +FAA3 +FAA4 +FAA5 +FAA6 +FAA7 +FAA8 +FAA9 +FAAA +FAAB +FAAC +FAAD +FAAE +FAAF +FAB0 +FAB1 +FAB2 +FAB3 +FAB4 +FAB5 +FAB6 +FAB7 +FAB8 +FAB9 +FABA +FABB +FABC +FABD +FABE +FABF +FAC0 +FAC1 +FAC2 +FAC3 +FAC4 +FAC5 +FAC6 +FAC7 +FAC8 +FAC9 +FACA +FACB +FACC +FACD +FACE +FACF +FAD0 +FAD1 +FAD2 +FAD3 +FAD4 +FAD5 +FAD6 +FAD7 +FAD8 +FAD9 +FADA +FADB +FADC +FADD +FADE +FADF +FAE0 +FAE1 +FAE2 +FAE3 +FAE4 +FAE5 +FAE6 +FAE7 +FAE8 +FAE9 +FAEA +FAEB +FAEC +FAED +FAEE +FAEF +FAF0 +FAF1 +FAF2 +FAF3 +FAF4 +FAF5 +FAF6 +FAF7 +FAF8 +FAF9 +FAFA +FAFB +FAFC +FAFD +FAFE +FBA1 +FBA2 +FBA3 +FBA4 +FBA5 +FBA6 +FBA7 +FBA8 +FBA9 +FBAA +FBAB +FBAC +FBAD +FBAE +FBAF +FBB0 +FBB1 +FBB2 +FBB3 +FBB4 +FBB5 +FBB6 +FBB7 +FBB8 +FBB9 +FBBA +FBBB +FBBC +FBBD +FBBE +FBBF +FBC0 +FBC1 +FBC2 +FBC3 +FBC4 +FBC5 +FBC6 +FBC7 +FBC8 +FBC9 +FBCA +FBCB +FBCC +FBCD +FBCE +FBCF +FBD0 +FBD1 +FBD2 +FBD3 +FBD4 +FBD5 +FBD6 +FBD7 +FBD8 +FBD9 +FBDA +FBDB +FBDC +FBDD +FBDE +FBDF +FBE0 +FBE1 +FBE2 +FBE3 +FBE4 +FBE5 +FBE6 +FBE7 +FBE8 +FBE9 +FBEA +FBEB +FBEC +FBED +FBEE +FBEF +FBF0 +FBF1 +FBF2 +FBF3 +FBF4 +FBF5 +FBF6 +FBF7 +FBF8 +FBF9 +FBFA +FBFB +FBFC +FBFD +FBFE +FCA1 +FCA2 +FCA3 +FCA4 +FCA5 +FCA6 +FCA7 +FCA8 +FCA9 +FCAA +FCAB +FCAC +FCAD +FCAE +FCAF +FCB0 +FCB1 +FCB2 +FCB3 +FCB4 +FCB5 +FCB6 +FCB7 +FCB8 +FCB9 +FCBA +FCBB +FCBC +FCBD +FCBE +FCBF +FCC0 +FCC1 +FCC2 +FCC3 +FCC4 +FCC5 +FCC6 +FCC7 +FCC8 +FCC9 +FCCA +FCCB +FCCC +FCCD +FCCE +FCCF +FCD0 +FCD1 +FCD2 +FCD3 +FCD4 +FCD5 +FCD6 +FCD7 +FCD8 +FCD9 +FCDA +FCDB +FCDC +FCDD +FCDE +FCDF +FCE0 +FCE1 +FCE2 +FCE3 +FCE4 +FCE5 +FCE6 +FCE7 +FCE8 +FCE9 +FCEA +FCEB +FCEC +FCED +FCEE +FCEF +FCF0 +FCF1 +FCF2 +FCF3 +FCF4 +FCF5 +FCF6 +FCF7 +FCF8 +FCF9 +FCFA +FCFB +FCFC +FCFD +FCFE +FDA1 +FDA2 +FDA3 +FDA4 +FDA5 +FDA6 +FDA7 +FDA8 +FDA9 +FDAA +FDAB +FDAC +FDAD +FDAE +FDAF +FDB0 +FDB1 +FDB2 +FDB3 +FDB4 +FDB5 +FDB6 +FDB7 +FDB8 +FDB9 +FDBA +FDBB +FDBC +FDBD +FDBE +FDBF +FDC0 +FDC1 +FDC2 +FDC3 +FDC4 +FDC5 +FDC6 +FDC7 +FDC8 +FDC9 +FDCA +FDCB +FDCC +FDCD +FDCE +FDCF +FDD0 +FDD1 +FDD2 +FDD3 +FDD4 +FDD5 +FDD6 +FDD7 +FDD8 +FDD9 +FDDA +FDDB +FDDC +FDDD +FDDE +FDDF +FDE0 +FDE1 +FDE2 +FDE3 +FDE4 +FDE5 +FDE6 +FDE7 +FDE8 +FDE9 +FDEA +FDEB +FDEC +FDED +FDEE +FDEF +FDF0 +FDF1 +FDF2 +FDF3 +FDF4 +FDF5 +FDF6 +FDF7 +FDF8 +FDF9 +FDFA +FDFB +FDFC +FDFD +FDFE +FEA1 +FEA2 +FEA3 +FEA4 +FEA5 +FEA6 +FEA7 +FEA8 +FEA9 +FEAA +FEAB +FEAC +FEAD +FEAE +FEAF +FEB0 +FEB1 +FEB2 +FEB3 +FEB4 +FEB5 +FEB6 +FEB7 +FEB8 +FEB9 +FEBA +FEBB +FEBC +FEBD +FEBE +FEBF +FEC0 +FEC1 +FEC2 +FEC3 +FEC4 +FEC5 +FEC6 +FEC7 +FEC8 +FEC9 +FECA +FECB +FECC +FECD +FECE +FECF +FED0 +FED1 +FED2 +FED3 +FED4 +FED5 +FED6 +FED7 +FED8 +FED9 +FEDA +FEDB +FEDC +FEDD +FEDE +FEDF +FEE0 +FEE1 +FEE2 +FEE3 +FEE4 +FEE5 +FEE6 +FEE7 +FEE8 +FEE9 +FEEA +FEEB +FEEC +FEED +FEEE +FEEF +FEF0 +FEF1 +FEF2 +FEF3 +FEF4 +FEF5 +FEF6 +FEF7 +FEF8 +FEF9 +FEFA +FEFB +FEFC +FEFD +FEFE +8FF5A1 +8FF5A2 +8FF5A3 +8FF5A4 +8FF5A5 +8FF5A6 +8FF5A7 +8FF5A8 +8FF5A9 +8FF5AA +8FF5AB +8FF5AC +8FF5AD +8FF5AE +8FF5AF +8FF5B0 +8FF5B1 +8FF5B2 +8FF5B3 +8FF5B4 +8FF5B5 +8FF5B6 +8FF5B7 +8FF5B8 +8FF5B9 +8FF5BA +8FF5BB +8FF5BC +8FF5BD +8FF5BE +8FF5BF +8FF5C0 +8FF5C1 +8FF5C2 +8FF5C3 +8FF5C4 +8FF5C5 +8FF5C6 +8FF5C7 +8FF5C8 +8FF5C9 +8FF5CA +8FF5CB +8FF5CC +8FF5CD +8FF5CE +8FF5CF +8FF5D0 +8FF5D1 +8FF5D2 +8FF5D3 +8FF5D4 +8FF5D5 +8FF5D6 +8FF5D7 +8FF5D8 +8FF5D9 +8FF5DA +8FF5DB +8FF5DC +8FF5DD +8FF5DE +8FF5DF +8FF5E0 +8FF5E1 +8FF5E2 +8FF5E3 +8FF5E4 +8FF5E5 +8FF5E6 +8FF5E7 +8FF5E8 +8FF5E9 +8FF5EA +8FF5EB +8FF5EC +8FF5ED +8FF5EE +8FF5EF +8FF5F0 +8FF5F1 +8FF5F2 +8FF5F3 +8FF5F4 +8FF5F5 +8FF5F6 +8FF5F7 +8FF5F8 +8FF5F9 +8FF5FA +8FF5FB +8FF5FC +8FF5FD +8FF5FE +8FF6A1 +8FF6A2 +8FF6A3 +8FF6A4 +8FF6A5 +8FF6A6 +8FF6A7 +8FF6A8 +8FF6A9 +8FF6AA +8FF6AB +8FF6AC +8FF6AD +8FF6AE +8FF6AF +8FF6B0 +8FF6B1 +8FF6B2 +8FF6B3 +8FF6B4 +8FF6B5 +8FF6B6 +8FF6B7 +8FF6B8 +8FF6B9 +8FF6BA +8FF6BB +8FF6BC +8FF6BD +8FF6BE +8FF6BF +8FF6C0 +8FF6C1 +8FF6C2 +8FF6C3 +8FF6C4 +8FF6C5 +8FF6C6 +8FF6C7 +8FF6C8 +8FF6C9 +8FF6CA +8FF6CB +8FF6CC +8FF6CD +8FF6CE +8FF6CF +8FF6D0 +8FF6D1 +8FF6D2 +8FF6D3 +8FF6D4 +8FF6D5 +8FF6D6 +8FF6D7 +8FF6D8 +8FF6D9 +8FF6DA +8FF6DB +8FF6DC +8FF6DD +8FF6DE +8FF6DF +8FF6E0 +8FF6E1 +8FF6E2 +8FF6E3 +8FF6E4 +8FF6E5 +8FF6E6 +8FF6E7 +8FF6E8 +8FF6E9 +8FF6EA +8FF6EB +8FF6EC +8FF6ED +8FF6EE +8FF6EF +8FF6F0 +8FF6F1 +8FF6F2 +8FF6F3 +8FF6F4 +8FF6F5 +8FF6F6 +8FF6F7 +8FF6F8 +8FF6F9 +8FF6FA +8FF6FB +8FF6FC +8FF6FD +8FF6FE +8FF7A1 +8FF7A2 +8FF7A3 +8FF7A4 +8FF7A5 +8FF7A6 +8FF7A7 +8FF7A8 +8FF7A9 +8FF7AA +8FF7AB +8FF7AC +8FF7AD +8FF7AE +8FF7AF +8FF7B0 +8FF7B1 +8FF7B2 +8FF7B3 +8FF7B4 +8FF7B5 +8FF7B6 +8FF7B7 +8FF7B8 +8FF7B9 +8FF7BA +8FF7BB +8FF7BC +8FF7BD +8FF7BE +8FF7BF +8FF7C0 +8FF7C1 +8FF7C2 +8FF7C3 +8FF7C4 +8FF7C5 +8FF7C6 +8FF7C7 +8FF7C8 +8FF7C9 +8FF7CA +8FF7CB +8FF7CC +8FF7CD +8FF7CE +8FF7CF +8FF7D0 +8FF7D1 +8FF7D2 +8FF7D3 +8FF7D4 +8FF7D5 +8FF7D6 +8FF7D7 +8FF7D8 +8FF7D9 +8FF7DA +8FF7DB +8FF7DC +8FF7DD +8FF7DE +8FF7DF +8FF7E0 +8FF7E1 +8FF7E2 +8FF7E3 +8FF7E4 +8FF7E5 +8FF7E6 +8FF7E7 +8FF7E8 +8FF7E9 +8FF7EA +8FF7EB +8FF7EC +8FF7ED +8FF7EE +8FF7EF +8FF7F0 +8FF7F1 +8FF7F2 +8FF7F3 +8FF7F4 +8FF7F5 +8FF7F6 +8FF7F7 +8FF7F8 +8FF7F9 +8FF7FA +8FF7FB +8FF7FC +8FF7FD +8FF7FE +8FF8A1 +8FF8A2 +8FF8A3 +8FF8A4 +8FF8A5 +8FF8A6 +8FF8A7 +8FF8A8 +8FF8A9 +8FF8AA +8FF8AB +8FF8AC +8FF8AD +8FF8AE +8FF8AF +8FF8B0 +8FF8B1 +8FF8B2 +8FF8B3 +8FF8B4 +8FF8B5 +8FF8B6 +8FF8B7 +8FF8B8 +8FF8B9 +8FF8BA +8FF8BB +8FF8BC +8FF8BD +8FF8BE +8FF8BF +8FF8C0 +8FF8C1 +8FF8C2 +8FF8C3 +8FF8C4 +8FF8C5 +8FF8C6 +8FF8C7 +8FF8C8 +8FF8C9 +8FF8CA +8FF8CB +8FF8CC +8FF8CD +8FF8CE +8FF8CF +8FF8D0 +8FF8D1 +8FF8D2 +8FF8D3 +8FF8D4 +8FF8D5 +8FF8D6 +8FF8D7 +8FF8D8 +8FF8D9 +8FF8DA +8FF8DB +8FF8DC +8FF8DD +8FF8DE +8FF8DF +8FF8E0 +8FF8E1 +8FF8E2 +8FF8E3 +8FF8E4 +8FF8E5 +8FF8E6 +8FF8E7 +8FF8E8 +8FF8E9 +8FF8EA +8FF8EB +8FF8EC +8FF8ED +8FF8EE +8FF8EF +8FF8F0 +8FF8F1 +8FF8F2 +8FF8F3 +8FF8F4 +8FF8F5 +8FF8F6 +8FF8F7 +8FF8F8 +8FF8F9 +8FF8FA +8FF8FB +8FF8FC +8FF8FD +8FF8FE +8FF9A1 +8FF9A2 +8FF9A3 +8FF9A4 +8FF9A5 +8FF9A6 +8FF9A7 +8FF9A8 +8FF9A9 +8FF9AA +8FF9AB +8FF9AC +8FF9AD +8FF9AE +8FF9AF +8FF9B0 +8FF9B1 +8FF9B2 +8FF9B3 +8FF9B4 +8FF9B5 +8FF9B6 +8FF9B7 +8FF9B8 +8FF9B9 +8FF9BA +8FF9BB +8FF9BC +8FF9BD +8FF9BE +8FF9BF +8FF9C0 +8FF9C1 +8FF9C2 +8FF9C3 +8FF9C4 +8FF9C5 +8FF9C6 +8FF9C7 +8FF9C8 +8FF9C9 +8FF9CA +8FF9CB +8FF9CC +8FF9CD +8FF9CE +8FF9CF +8FF9D0 +8FF9D1 +8FF9D2 +8FF9D3 +8FF9D4 +8FF9D5 +8FF9D6 +8FF9D7 +8FF9D8 +8FF9D9 +8FF9DA +8FF9DB +8FF9DC +8FF9DD +8FF9DE +8FF9DF +8FF9E0 +8FF9E1 +8FF9E2 +8FF9E3 +8FF9E4 +8FF9E5 +8FF9E6 +8FF9E7 +8FF9E8 +8FF9E9 +8FF9EA +8FF9EB +8FF9EC +8FF9ED +8FF9EE +8FF9EF +8FF9F0 +8FF9F1 +8FF9F2 +8FF9F3 +8FF9F4 +8FF9F5 +8FF9F6 +8FF9F7 +8FF9F8 +8FF9F9 +8FF9FA +8FF9FB +8FF9FC +8FF9FD +8FF9FE +8FFAA1 +8FFAA2 +8FFAA3 +8FFAA4 +8FFAA5 +8FFAA6 +8FFAA7 +8FFAA8 +8FFAA9 +8FFAAA +8FFAAB +8FFAAC +8FFAAD +8FFAAE +8FFAAF +8FFAB0 +8FFAB1 +8FFAB2 +8FFAB3 +8FFAB4 +8FFAB5 +8FFAB6 +8FFAB7 +8FFAB8 +8FFAB9 +8FFABA +8FFABB +8FFABC +8FFABD +8FFABE +8FFABF +8FFAC0 +8FFAC1 +8FFAC2 +8FFAC3 +8FFAC4 +8FFAC5 +8FFAC6 +8FFAC7 +8FFAC8 +8FFAC9 +8FFACA +8FFACB +8FFACC +8FFACD +8FFACE +8FFACF +8FFAD0 +8FFAD1 +8FFAD2 +8FFAD3 +8FFAD4 +8FFAD5 +8FFAD6 +8FFAD7 +8FFAD8 +8FFAD9 +8FFADA +8FFADB +8FFADC +8FFADD +8FFADE +8FFADF +8FFAE0 +8FFAE1 +8FFAE2 +8FFAE3 +8FFAE4 +8FFAE5 +8FFAE6 +8FFAE7 +8FFAE8 +8FFAE9 +8FFAEA +8FFAEB +8FFAEC +8FFAED +8FFAEE +8FFAEF +8FFAF0 +8FFAF1 +8FFAF2 +8FFAF3 +8FFAF4 +8FFAF5 +8FFAF6 +8FFAF7 +8FFAF8 +8FFAF9 +8FFAFA +8FFAFB +8FFAFC +8FFAFD +8FFAFE +8FFBA1 +8FFBA2 +8FFBA3 +8FFBA4 +8FFBA5 +8FFBA6 +8FFBA7 +8FFBA8 +8FFBA9 +8FFBAA +8FFBAB +8FFBAC +8FFBAD +8FFBAE +8FFBAF +8FFBB0 +8FFBB1 +8FFBB2 +8FFBB3 +8FFBB4 +8FFBB5 +8FFBB6 +8FFBB7 +8FFBB8 +8FFBB9 +8FFBBA +8FFBBB +8FFBBC +8FFBBD +8FFBBE +8FFBBF +8FFBC0 +8FFBC1 +8FFBC2 +8FFBC3 +8FFBC4 +8FFBC5 +8FFBC6 +8FFBC7 +8FFBC8 +8FFBC9 +8FFBCA +8FFBCB +8FFBCC +8FFBCD +8FFBCE +8FFBCF +8FFBD0 +8FFBD1 +8FFBD2 +8FFBD3 +8FFBD4 +8FFBD5 +8FFBD6 +8FFBD7 +8FFBD8 +8FFBD9 +8FFBDA +8FFBDB +8FFBDC +8FFBDD +8FFBDE +8FFBDF +8FFBE0 +8FFBE1 +8FFBE2 +8FFBE3 +8FFBE4 +8FFBE5 +8FFBE6 +8FFBE7 +8FFBE8 +8FFBE9 +8FFBEA +8FFBEB +8FFBEC +8FFBED +8FFBEE +8FFBEF +8FFBF0 +8FFBF1 +8FFBF2 +8FFBF3 +8FFBF4 +8FFBF5 +8FFBF6 +8FFBF7 +8FFBF8 +8FFBF9 +8FFBFA +8FFBFB +8FFBFC +8FFBFD +8FFBFE +8FFCA1 +8FFCA2 +8FFCA3 +8FFCA4 +8FFCA5 +8FFCA6 +8FFCA7 +8FFCA8 +8FFCA9 +8FFCAA +8FFCAB +8FFCAC +8FFCAD +8FFCAE +8FFCAF +8FFCB0 +8FFCB1 +8FFCB2 +8FFCB3 +8FFCB4 +8FFCB5 +8FFCB6 +8FFCB7 +8FFCB8 +8FFCB9 +8FFCBA +8FFCBB +8FFCBC +8FFCBD +8FFCBE +8FFCBF +8FFCC0 +8FFCC1 +8FFCC2 +8FFCC3 +8FFCC4 +8FFCC5 +8FFCC6 +8FFCC7 +8FFCC8 +8FFCC9 +8FFCCA +8FFCCB +8FFCCC +8FFCCD +8FFCCE +8FFCCF +8FFCD0 +8FFCD1 +8FFCD2 +8FFCD3 +8FFCD4 +8FFCD5 +8FFCD6 +8FFCD7 +8FFCD8 +8FFCD9 +8FFCDA +8FFCDB +8FFCDC +8FFCDD +8FFCDE +8FFCDF +8FFCE0 +8FFCE1 +8FFCE2 +8FFCE3 +8FFCE4 +8FFCE5 +8FFCE6 +8FFCE7 +8FFCE8 +8FFCE9 +8FFCEA +8FFCEB +8FFCEC +8FFCED +8FFCEE +8FFCEF +8FFCF0 +8FFCF1 +8FFCF2 +8FFCF3 +8FFCF4 +8FFCF5 +8FFCF6 +8FFCF7 +8FFCF8 +8FFCF9 +8FFCFA +8FFCFB +8FFCFC +8FFCFD +8FFCFE +8FFDA1 +8FFDA2 +8FFDA3 +8FFDA4 +8FFDA5 +8FFDA6 +8FFDA7 +8FFDA8 +8FFDA9 +8FFDAA +8FFDAB +8FFDAC +8FFDAD +8FFDAE +8FFDAF +8FFDB0 +8FFDB1 +8FFDB2 +8FFDB3 +8FFDB4 +8FFDB5 +8FFDB6 +8FFDB7 +8FFDB8 +8FFDB9 +8FFDBA +8FFDBB +8FFDBC +8FFDBD +8FFDBE +8FFDBF +8FFDC0 +8FFDC1 +8FFDC2 +8FFDC3 +8FFDC4 +8FFDC5 +8FFDC6 +8FFDC7 +8FFDC8 +8FFDC9 +8FFDCA +8FFDCB +8FFDCC +8FFDCD +8FFDCE +8FFDCF +8FFDD0 +8FFDD1 +8FFDD2 +8FFDD3 +8FFDD4 +8FFDD5 +8FFDD6 +8FFDD7 +8FFDD8 +8FFDD9 +8FFDDA +8FFDDB +8FFDDC +8FFDDD +8FFDDE +8FFDDF +8FFDE0 +8FFDE1 +8FFDE2 +8FFDE3 +8FFDE4 +8FFDE5 +8FFDE6 +8FFDE7 +8FFDE8 +8FFDE9 +8FFDEA +8FFDEB +8FFDEC +8FFDED +8FFDEE +8FFDEF +8FFDF0 +8FFDF1 +8FFDF2 +8FFDF3 +8FFDF4 +8FFDF5 +8FFDF6 +8FFDF7 +8FFDF8 +8FFDF9 +8FFDFA +8FFDFB +8FFDFC +8FFDFD +8FFDFE +8FFEA1 +8FFEA2 +8FFEA3 +8FFEA4 +8FFEA5 +8FFEA6 +8FFEA7 +8FFEA8 +8FFEA9 +8FFEAA +8FFEAB +8FFEAC +8FFEAD +8FFEAE +8FFEAF +8FFEB0 +8FFEB1 +8FFEB2 +8FFEB3 +8FFEB4 +8FFEB5 +8FFEB6 +8FFEB7 +8FFEB8 +8FFEB9 +8FFEBA +8FFEBB +8FFEBC +8FFEBD +8FFEBE +8FFEBF +8FFEC0 +8FFEC1 +8FFEC2 +8FFEC3 +8FFEC4 +8FFEC5 +8FFEC6 +8FFEC7 +8FFEC8 +8FFEC9 +8FFECA +8FFECB +8FFECC +8FFECD +8FFECE +8FFECF +8FFED0 +8FFED1 +8FFED2 +8FFED3 +8FFED4 +8FFED5 +8FFED6 +8FFED7 +8FFED8 +8FFED9 +8FFEDA +8FFEDB +8FFEDC +8FFEDD +8FFEDE +8FFEDF +8FFEE0 +8FFEE1 +8FFEE2 +8FFEE3 +8FFEE4 +8FFEE5 +8FFEE6 +8FFEE7 +8FFEE8 +8FFEE9 +8FFEEA +8FFEEB +8FFEEC +8FFEED +8FFEEE +8FFEEF +8FFEF0 +8FFEF1 +8FFEF2 +8FFEF3 +8FFEF4 +8FFEF5 +8FFEF6 +8FFEF7 +8FFEF8 +8FFEF9 +8FFEFA +8FFEFB +8FFEFC +8FFEFD +8FFEFE +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; +SET collation_connection='cp932_japanese_ci'; +create table t1 select repeat('a',4000) a; +delete from t1; +insert into t1 values ('a'), ('a '), ('a\t'); +select collation(a),hex(a) from t1 order by a; +collation(a) hex(a) +cp932_japanese_ci 6109 +cp932_japanese_ci 61 +cp932_japanese_ci 6120 +drop table t1; +# +# MDEV-5453 Assertion `src' fails in my_strnxfrm_unicode on GROUP BY MID(..) WITH ROLLUP +# +SELECT @@collation_connection; +@@collation_connection +cp932_japanese_ci +CREATE TABLE t1 (i INT) ENGINE=MyISAM; +INSERT INTO t1 VALUES (1),(2); +SELECT * FROM t1 GROUP BY MID(CURRENT_USER,0) WITH ROLLUP; +i +1 +1 +SELECT * FROM t1 GROUP BY MID('test',0) WITH ROLLUP; +i +1 +1 +DROP TABLE t1; +# +# MDEV-6170 Incorrect ordering with utf8_bin and utf8mb4_bin collations +# +SELECT @@collation_connection; +@@collation_connection +cp932_japanese_ci +CREATE TABLE t1 ENGINE=MEMORY AS SELECT REPEAT('a',5) AS a LIMIT 0; +INSERT INTO t1 (a) VALUES ("a"); +INSERT INTO t1 (a) VALUES ("b"); +INSERT INTO t1 (a) VALUES ("c"); +INSERT INTO t1 (a) VALUES ("d"); +INSERT INTO t1 (a) VALUES ("e"); +INSERT INTO t1 (a) VALUES ("f"); +INSERT INTO t1 (a) VALUES ("g"); +INSERT INTO t1 (a) VALUES ("h"); +INSERT INTO t1 (a) VALUES ("i"); +INSERT INTO t1 (a) VALUES ("j"); +INSERT INTO t1 (a) VALUES ("k"); +INSERT INTO t1 (a) VALUES ("l"); +INSERT INTO t1 (a) VALUES ("m"); +SELECT * FROM t1 ORDER BY LOWER(a); +a +a +b +c +d +e +f +g +h +i +j +k +l +m +SELECT * FROM t1 ORDER BY LOWER(a) DESC; +a +m +l +k +j +i +h +g +f +e +d +c +b +a +DROP TABLE t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +DROP TABLE t1; +SET collation_connection='cp932_bin'; +create table t1 select repeat('a',4000) a; +delete from t1; +insert into t1 values ('a'), ('a '), ('a\t'); +select collation(a),hex(a) from t1 order by a; +collation(a) hex(a) +cp932_bin 6109 +cp932_bin 61 +cp932_bin 6120 +drop table t1; +# +# MDEV-5453 Assertion `src' fails in my_strnxfrm_unicode on GROUP BY MID(..) WITH ROLLUP +# +SELECT @@collation_connection; +@@collation_connection +cp932_bin +CREATE TABLE t1 (i INT) ENGINE=MyISAM; +INSERT INTO t1 VALUES (1),(2); +SELECT * FROM t1 GROUP BY MID(CURRENT_USER,0) WITH ROLLUP; +i +1 +1 +SELECT * FROM t1 GROUP BY MID('test',0) WITH ROLLUP; +i +1 +1 +DROP TABLE t1; +# +# MDEV-6170 Incorrect ordering with utf8_bin and utf8mb4_bin collations +# +SELECT @@collation_connection; +@@collation_connection +cp932_bin +CREATE TABLE t1 ENGINE=MEMORY AS SELECT REPEAT('a',5) AS a LIMIT 0; +INSERT INTO t1 (a) VALUES ("a"); +INSERT INTO t1 (a) VALUES ("b"); +INSERT INTO t1 (a) VALUES ("c"); +INSERT INTO t1 (a) VALUES ("d"); +INSERT INTO t1 (a) VALUES ("e"); +INSERT INTO t1 (a) VALUES ("f"); +INSERT INTO t1 (a) VALUES ("g"); +INSERT INTO t1 (a) VALUES ("h"); +INSERT INTO t1 (a) VALUES ("i"); +INSERT INTO t1 (a) VALUES ("j"); +INSERT INTO t1 (a) VALUES ("k"); +INSERT INTO t1 (a) VALUES ("l"); +INSERT INTO t1 (a) VALUES ("m"); +SELECT * FROM t1 ORDER BY LOWER(a); +a +a +b +c +d +e +f +g +h +i +j +k +l +m +SELECT * FROM t1 ORDER BY LOWER(a) DESC; +a +m +l +k +j +i +h +g +f +e +d +c +b +a +DROP TABLE t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 NULL +DROP TABLE t1; +create table t2 (a char(1)); +insert into t2 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'); +insert into t2 values ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F'); +create table t1 ( +a varchar(2) character set cp932 +) engine=myisam; +insert into t1 +select unhex(concat(t24.a, t23.a, t22.a, t21.a)) +from t2 t21, t2 t22, t2 t23, t2 t24; +delete from t1 where a=''; +alter table t1 add key(a); +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +drop table t1; +drop table t2; +create table t1 (col1 varchar(1)) character set cp932; +insert into t1 values ('a'); +insert ignore into t1 values ('ab'); +Warnings: +Warning 1265 Data truncated for column 'col1' at row 1 +select * from t1; +col1 +a +a +insert ignore into t1 values ('abc'); +Warnings: +Warning 1265 Data truncated for column 'col1' at row 1 +select * from t1; +col1 +a +a +a +drop table t1; +set names utf8; +create table t1 (a text) default character set cp932; +insert into t1 values (_utf8 0xE38182); +show warnings; +Level Code Message +select * from t1; +a +ã‚ +select hex(a) from t1; +hex(a) +82A0 +drop table t1; +ƒ\ +ƒ\ +c_cp932 +ƒ\ +ƒ\ +ƒ\ +ソ +ソ +ƒ\ +ƒ\ diff --git a/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result b/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result new file mode 100644 index 00000000..f7bc552c --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result @@ -0,0 +1,214 @@ +SET TIMESTAMP=10000; +create table t2 (c char(30)) charset=ucs2; +set @v=convert('abc' using ucs2); +reset master; +insert into t2 values (@v); +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # User var # # @`v`=_ucs2 X'006100620063' COLLATE ucs2_general_ci +master-bin.000001 # Query # # use `test`; insert into t2 values (@v) +master-bin.000001 # Query # # COMMIT +flush logs; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +ROLLBACK/*!*/; +START TRANSACTION +/*!*/; +SET @`v`:=_ucs2 X'006100620063' COLLATE `ucs2_general_ci`/*!*/; +use `test`/*!*/; +SET TIMESTAMP=10000/*!*/; +SET @@session.pseudo_thread_id=999999999/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=1411383296/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +insert into t2 values (@v) +/*!*/; +SET TIMESTAMP=10000/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +drop table t2; +# +# Start of 10.2 tests +# +# +# MDEV-10866 Extend PREPARE and EXECUTE IMMEDIATE to understand expressions +# +SET TIMESTAMP=UNIX_TIMESTAMP('1970-01-01 06:46:40'); +FLUSH LOGS; +SET NAMES utf8; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8); +EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (''ä(i1)'')'; +EXECUTE IMMEDIATE CONVERT('INSERT INTO t1 VALUES (''ä(i2)'')' USING ucs2); +SET @stmt=CONVERT('INSERT INTO t1 VALUES (''ä(i3)'')' USING ucs2); +EXECUTE IMMEDIATE @stmt; +PREPARE stmt FROM 'INSERT INTO t1 VALUES (''ä(p1)'')'; +EXECUTE stmt; +PREPARE stmt FROM CONVERT('INSERT INTO t1 VALUES (''ä(p2)'')' USING ucs2); +EXECUTE stmt; +SET @stmt=CONVERT('INSERT INTO t1 VALUES (''ä(p3)'')' USING ucs2); +PREPARE stmt FROM @stmt; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; +SELECT * FROM t1; +a +ä(i1) +ä(i2) +ä(i3) +ä(p1) +ä(p2) +ä(p3) +DROP TABLE t1; +FLUSH LOGS; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created YYMMDD HH:MM:SS +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Gtid list [#-#-#] +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000002 +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000003 +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=#*//*!*/; +/*!100001 SET @@session.server_id=#*//*!*/; +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=XXX/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=1411383296/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C utf8 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8) +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +START TRANSACTION +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +INSERT INTO t1 VALUES ('ä(i1)') +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +COMMIT +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +START TRANSACTION +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +INSERT INTO t1 VALUES ('ä(i2)') +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +COMMIT +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +START TRANSACTION +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +INSERT INTO t1 VALUES ('ä(i3)') +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +COMMIT +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +START TRANSACTION +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +INSERT INTO t1 VALUES ('ä(p1)') +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +COMMIT +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +START TRANSACTION +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +INSERT INTO t1 VALUES ('ä(p2)') +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +COMMIT +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +START TRANSACTION +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +INSERT INTO t1 VALUES ('ä(p3)') +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +COMMIT +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX GTID #-#-# ddl +/*!100001 SET @@session.gtid_seq_no=#*//*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=XXX/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # +#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Rotate to master-bin.000004 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +SET TIMESTAMP=DEFAULT; +# +# End of 10.2 tests +# diff --git a/mysql-test/suite/binlog/r/binlog_stm_datetime_ranges_mdev15289.result b/mysql-test/suite/binlog/r/binlog_stm_datetime_ranges_mdev15289.result new file mode 100644 index 00000000..0c3e7213 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_datetime_ranges_mdev15289.result @@ -0,0 +1,19 @@ +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE IF NOT EXISTS client_test_db +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `client_test_db`; create or replace table t1 (t time, d date, dt datetime,ts timestamp) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `client_test_db`; INSERT INTO t1 VALUES (TIMESTAMP'0000-00-00 00:00:00', TIMESTAMP'0000-00-00 00:00:00', TIMESTAMP'0000-00-00 00:00:00', TIMESTAMP'0000-00-00 00:00:00') +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `client_test_db`; INSERT INTO t1 VALUES (DATE'0000-00-00', DATE'0000-00-00', DATE'0000-00-00', DATE'0000-00-00') +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `client_test_db`; INSERT INTO t1 VALUES (TIME'00:00:00', TIME'00:00:00', TIME'00:00:00', TIME'00:00:00') +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `client_test_db`; DROP TABLE `t1` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP DATABASE IF EXISTS client_test_db diff --git a/mysql-test/suite/binlog/r/binlog_stm_do_db.result b/mysql-test/suite/binlog/r/binlog_stm_do_db.result new file mode 100644 index 00000000..3d235941 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_do_db.result @@ -0,0 +1,45 @@ +SET @old_isolation_level= @@session.tx_isolation; +SET @@session.tx_isolation= 'READ-COMMITTED'; +CREATE DATABASE b42829; +use b42829; +CREATE TABLE t1 (x int, y int) engine=InnoDB; +CREATE TABLE t2 (x int, y int) engine=InnoDB; +CREATE DATABASE b42829_filtered; +use b42829_filtered; +CREATE TABLE t1 (x int, y int) engine=InnoDB; +CREATE TABLE t2 (x int, y int) engine=InnoDB; +SET @@session.sql_log_bin= 0; +INSERT INTO b42829_filtered.t1 VALUES (100,100); +INSERT INTO b42829.t1 VALUES (100,100); +SET @@session.sql_log_bin= 1; +### assertion: the inserts will not raise log error because +### binlog-do-db is filtering used database +INSERT INTO t2 VALUES (1,2), (1,3), (1,4); +INSERT INTO t1 SELECT * FROM t2; +### assertion: assert that despite updating a not filtered +### database this wont trigger an error as the +### used database is the filtered one. +UPDATE b42829_filtered.t1 ft1, b42829.t1 nft1 SET ft1.x=1, nft1.x=2; +use b42829; +### assertion: the statements *will* raise log error because +### binlog-do-db is not filtering used database +BEGIN; +INSERT INTO t2 VALUES (1,2), (1,3), (1,4); +ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED. +UPDATE b42829_filtered.t1 ft1, b42829.t1 nft1 SET ft1.x=1, nft1.x=2; +ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED. +INSERT INTO t1 SELECT * FROM t2; +ERROR HY000: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED. +COMMIT; +### assertion: filtered events did not make into the binlog +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE b42829 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `b42829`; CREATE TABLE t1 (x int, y int) engine=InnoDB +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `b42829`; CREATE TABLE t2 (x int, y int) engine=InnoDB +DROP DATABASE b42829; +DROP DATABASE b42829_filtered; +SET @@session.tx_isolation= @old_isolation_level; diff --git a/mysql-test/suite/binlog/r/binlog_stm_drop_tbl.result b/mysql-test/suite/binlog/r/binlog_stm_drop_tbl.result new file mode 100644 index 00000000..d958bb26 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_drop_tbl.result @@ -0,0 +1,26 @@ +DROP TABLE IF EXISTS t1; +connect con1,localhost,root,,; +connect con2,localhost,root,,; +connection con1; +RESET MASTER; +CREATE TABLE t1 (a INT); +SET AUTOCOMMIT=OFF; +BEGIN; +INSERT INTO t1 VALUES(1); +connection con2; +DROP TABLE t1;; +connection con1; +COMMIT; +connection con2; +connection default; +disconnect con1; +disconnect con2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES(1) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ diff --git a/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result b/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result new file mode 100644 index 00000000..99305abf --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result @@ -0,0 +1,132 @@ +DROP DATABASE IF EXISTS `drop-temp+table-test`; +connect con1,localhost,root,,; +connect con2,localhost,root,,; +connection con1; +RESET MASTER; +CREATE DATABASE `drop-temp+table-test`; +USE `drop-temp+table-test`; +CREATE TEMPORARY TABLE shortn1 (a INT); +CREATE TEMPORARY TABLE `table:name` (a INT); +CREATE TEMPORARY TABLE shortn2 (a INT); +CREATE TEMPORARY TABLE tmp(c1 int); +CREATE TEMPORARY TABLE tmp1(c1 int); +CREATE TEMPORARY TABLE tmp2(c1 int); +CREATE TEMPORARY TABLE tmp3(c1 int); +CREATE TABLE t(c1 int); +DROP TEMPORARY TABLE IF EXISTS tmp; +DROP TEMPORARY TABLE IF EXISTS tmp; +DROP TEMPORARY TABLE IF EXISTS tmp, tmp1; +DROP TEMPORARY TABLE tmp3; +DROP TABLE IF EXISTS tmp2, t; +DROP TABLE IF EXISTS tmp2, t; +SELECT GET_LOCK("a",10); +GET_LOCK("a",10) +1 +USE test; +disconnect con1; +connection con2; +SELECT GET_LOCK("a",10); +GET_LOCK("a",10) +1 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # CREATE DATABASE `drop-temp+table-test` +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; CREATE TEMPORARY TABLE shortn1 (a INT) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; CREATE TEMPORARY TABLE `table:name` (a INT) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; CREATE TEMPORARY TABLE shortn2 (a INT) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; CREATE TEMPORARY TABLE tmp(c1 int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; CREATE TEMPORARY TABLE tmp1(c1 int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; CREATE TEMPORARY TABLE tmp2(c1 int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; CREATE TEMPORARY TABLE tmp3(c1 int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; CREATE TABLE t(c1 int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `drop-temp+table-test`.`tmp` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `drop-temp+table-test`.`tmp1` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; DROP TEMPORARY TABLE `tmp3` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `drop-temp+table-test`.`tmp2` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; DROP TABLE IF EXISTS `t` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; DROP TABLE IF EXISTS `tmp2`,`t` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `drop-temp+table-test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `shortn2`,`table:name`,`shortn1` +DROP DATABASE `drop-temp+table-test`; +RESET MASTER; +CREATE TABLE t1 ( i text ); +connect con1,localhost,root,,; +CREATE TEMPORARY TABLE ttmp1 ( i text ); +SET @@session.binlog_format=ROW; +INSERT INTO t1 VALUES ('1'); +SELECT @@session.binlog_format; +@@session.binlog_format +ROW +disconnect con1; +connection default; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 ( i text ) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE ttmp1 ( i text ) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES ('1') +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `ttmp1` +RESET MASTER; +DROP TABLE t1; +# +# BUG#28642318: POINT IN TIME RECOVERY USING MYSQLBINLOG BROKEN +# WITH TEMPORARY TABLE -> ERRORS +# Test case for DELETE query. +RESET MASTER; +connect con1,localhost,root,,; +# Set up. +connection default; +SET @save_binlog_format= @@session.binlog_format; +SET @@session.binlog_format=STATEMENT; +CREATE TABLE t1 (a INT) ENGINE=INNODB; +connection con1; +SET @@session.binlog_format=STATEMENT; +CREATE TEMPORARY TABLE t1 (b BLOB) ENGINE=INNODB; +connection default; +DELETE d1, d2 FROM t1 AS d1, t1 AS d2 WHERE d1.a<>d2.a; +connection default; +DROP TABLE t1; +# DELETE query fails with table re-open error without patch. +# Clean up. +connection con1; +DROP TABLE IF EXISTS t1; +connection default; +DROP TABLE IF EXISTS t1; +RESET MASTER; +# Test case for DROP query. +connection default; +CREATE TABLE t2 (a INT) ENGINE=INNODB; +connection con1; +CREATE TEMPORARY TABLE t2 (b BLOB) ENGINE=INNODB; +connection default; +DROP TABLE t2; +connection con1; +DROP TABLE t2; +connection default; +# DROP table query fails with unknown table error without patch. +# Clean up +connection default; +SET @@session.binlog_format= @save_binlog_format; +RESET MASTER; +disconnect con1; diff --git a/mysql-test/suite/binlog/r/binlog_stm_insert_select.result b/mysql-test/suite/binlog/r/binlog_stm_insert_select.result new file mode 100644 index 00000000..5208e1db --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_insert_select.result @@ -0,0 +1,25 @@ +drop table if exists t1,t2; +create table t1(a int, unique(a)); +insert into t1 values(2); +create table t2(a int); +insert into t2 values(1),(2); +reset master; +insert into t1 select * from t2; +ERROR 23000: Duplicate entry '2' for key 'a' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 select * from t2 +master-bin.000001 # Query # # COMMIT +select * from t1; +a +1 +2 +drop table t1, t2; +create table t1(a int); +insert into t1 values(1),(1); +reset master; +create table t2(unique(a)) select a from t1; +ERROR 23000: Duplicate entry '1' for key 'a' +include/show_binlog_events.inc +drop table t1; diff --git a/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result b/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result new file mode 100644 index 00000000..30dd08e3 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result @@ -0,0 +1,993 @@ +CALL mtr.add_suppression("Statement may not be safe to log in statement format."); +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); +drop table if exists t1, t2; +connect con1,localhost,root,,; +connect con2,localhost,root,,; +connection con1; +create table t1 (a int) engine=innodb; +create table t2 (a int) engine=myisam; +reset master; +begin; +insert into t1 values(1); +insert into t2 select * from t1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement accesses nontransactional table as well as transactional or temporary table, and writes to any of them +commit; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(1) +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Xid # # COMMIT /* XID */ +delete from t1; +delete from t2; +reset master; +begin; +insert into t1 values(2); +insert into t2 select * from t1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement accesses nontransactional table as well as transactional or temporary table, and writes to any of them +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(2) +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Query # # ROLLBACK +delete from t1; +delete from t2; +reset master; +begin; +insert into t1 values(3); +savepoint my_savepoint; +insert into t1 values(4); +insert into t2 select * from t1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement accesses nontransactional table as well as transactional or temporary table, and writes to any of them +rollback to savepoint my_savepoint; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +commit; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(3) +master-bin.000001 # Query # # SAVEPOINT `my_savepoint` +master-bin.000001 # Query # # use `test`; insert into t1 values(4) +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Query # # ROLLBACK TO `my_savepoint` +master-bin.000001 # Xid # # COMMIT /* XID */ +delete from t1; +delete from t2; +reset master; +begin; +insert into t1 values(5); +savepoint my_savepoint; +insert into t1 values(6); +insert into t2 select * from t1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement accesses nontransactional table as well as transactional or temporary table, and writes to any of them +rollback to savepoint my_savepoint; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +insert into t1 values(7); +commit; +select a from t1 order by a; +a +5 +7 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(5) +master-bin.000001 # Query # # SAVEPOINT `my_savepoint` +master-bin.000001 # Query # # use `test`; insert into t1 values(6) +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Query # # ROLLBACK TO `my_savepoint` +master-bin.000001 # Query # # use `test`; insert into t1 values(7) +master-bin.000001 # Xid # # COMMIT /* XID */ +delete from t1; +delete from t2; +reset master; +select get_lock("a",10); +get_lock("a",10) +1 +begin; +insert into t1 values(8); +insert into t2 select * from t1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement accesses nontransactional table as well as transactional or temporary table, and writes to any of them +disconnect con1; +connection con2; +select get_lock("a",10); +get_lock("a",10) +1 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(8) +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Query # # ROLLBACK +delete from t1; +delete from t2; +reset master; +insert into t1 values(9); +insert into t2 select * from t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(9) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Query # # COMMIT +delete from t1; +delete from t2; +reset master; +insert into t1 values(10); +begin; +insert into t2 select * from t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(10) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Query # # COMMIT +insert into t1 values(11); +commit; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(10) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(11) +master-bin.000001 # Xid # # COMMIT /* XID */ +alter table t2 engine=INNODB; +delete from t1; +delete from t2; +reset master; +begin; +insert into t1 values(12); +insert into t2 select * from t1; +commit; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(12) +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Xid # # COMMIT /* XID */ +delete from t1; +delete from t2; +reset master; +begin; +insert into t1 values(13); +insert into t2 select * from t1; +rollback; +include/show_binlog_events.inc +delete from t1; +delete from t2; +reset master; +begin; +insert into t1 values(14); +savepoint my_savepoint; +insert into t1 values(15); +insert into t2 select * from t1; +rollback to savepoint my_savepoint; +commit; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(14) +master-bin.000001 # Query # # SAVEPOINT `my_savepoint` +master-bin.000001 # Xid # # COMMIT /* XID */ +delete from t1; +delete from t2; +reset master; +begin; +insert into t1 values(16); +savepoint my_savepoint; +insert into t1 values(17); +insert into t2 select * from t1; +rollback to savepoint my_savepoint; +insert into t1 values(18); +commit; +select a from t1 order by a; +a +16 +18 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(16) +master-bin.000001 # Query # # SAVEPOINT `my_savepoint` +master-bin.000001 # Query # # use `test`; insert into t1 values(18) +master-bin.000001 # Xid # # COMMIT /* XID */ +connect con3,localhost,root,,; +connection con3; +delete from t1; +delete from t2; +alter table t2 engine=MyISAM; +insert into t1 values (1); +begin; +select * from t1 for update; +a +1 +connection con2; +select (@before:=unix_timestamp())*0; +(@before:=unix_timestamp())*0 +0 +begin; +select * from t1 for update; +connection con3; +insert into t2 values (20); +connection con2; +ERROR HY000: Lock wait timeout exceeded; try restarting transaction +select (@after:=unix_timestamp())*0; +(@after:=unix_timestamp())*0 +0 +select (@after-@before) >= 2; +(@after-@before) >= 2 +1 +connection con3; +commit; +connection con2; +drop table t1,t2; +commit; +connection con2; +begin; +create temporary table ti (a int) engine=innodb; +rollback; +insert into ti values(1); +set autocommit=0; +create temporary table t1 (a int) engine=myisam; +commit; +insert t1 values (1); +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +create table t0 (n int); +insert t0 select * from t1; +set autocommit=1; +insert into t0 select GET_LOCK("lock1",0); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +set autocommit=0; +create table t2 (n int) engine=innodb; +insert into t2 values (3); +disconnect con2; +connection con3; +select get_lock("lock1",60); +get_lock("lock1",60) +1 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values(16) +master-bin.000001 # Query # # SAVEPOINT `my_savepoint` +master-bin.000001 # Query # # use `test`; insert into t1 values(18) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; delete from t1 +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; delete from t2 +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; alter table t2 engine=MyISAM +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values (1) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t2 values (20) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1`,`t2` /* generated by server */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; create temporary table ti (a int) engine=innodb +master-bin.000001 # Query # # ROLLBACK +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into ti values(1) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; create temporary table t1 (a int) engine=myisam +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert t1 values (1) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t0 (n int) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert t0 select * from t1 +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t0 select GET_LOCK("lock1",0) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t2 (n int) engine=innodb +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `t1`,`ti` +do release_lock("lock1"); +drop table t0,t2; +set autocommit=0; +CREATE TABLE t1 (a int, b int) engine=myisam; +reset master; +INSERT INTO t1 values (1,1),(1,2); +CREATE TABLE t2 (primary key (a)) engine=innodb select * from t1; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +DROP TABLE if exists t2; +Warnings: +Note 1051 Unknown table 'test.t2' +INSERT INTO t1 values (3,3); +CREATE TEMPORARY TABLE t2 (primary key (a)) engine=innodb select * from t1; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +ROLLBACK; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +DROP TABLE IF EXISTS t2; +Warnings: +Note 1051 Unknown table 'test.t2' +CREATE TABLE t2 (a int, b int, primary key (a)) engine=innodb; +INSERT INTO t1 VALUES (4,4); +CREATE TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +Warnings: +Note 1050 Table 't2' already exists +SELECT * from t2; +a b +TRUNCATE table t2; +INSERT INTO t1 VALUES (5,5); +INSERT INTO t2 select * from t1; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +SELECT * FROM t2; +a b +DROP TABLE t2; +INSERT INTO t1 values (6,6); +CREATE TEMPORARY TABLE t2 (a int, b int, primary key (a)) engine=innodb ; +INSERT INTO t1 values (7,7); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it accesses a non-transactional table after accessing a transactional table within the same transaction +ROLLBACK; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +INSERT INTO t1 values (8,8); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +Warnings: +Note 1050 Table 't2' already exists +COMMIT; +INSERT INTO t1 values (9,9); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +Warnings: +Note 1050 Table 't2' already exists +ROLLBACK; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +SELECT * from t2; +a b +TRUNCATE table t2; +INSERT INTO t1 values (10,10); +INSERT INTO t2 select * from t1; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +SELECT * from t1; +a b +1 1 +1 2 +3 3 +4 4 +5 5 +6 6 +7 7 +8 8 +9 9 +10 10 +INSERT INTO t2 values (100,100); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +Warnings: +Note 1050 Table 't2' already exists +COMMIT; +INSERT INTO t2 values (101,101); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1; +Warnings: +Note 1050 Table 't2' already exists +ROLLBACK; +SELECT * from t2; +a b +100 100 +DROP TABLE t1,t2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (1,1),(1,2) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t2` /* generated by server */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (3,3) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t2` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (a int, b int, primary key (a)) engine=innodb +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4,4) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE table t2 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (5,5) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t2` /* generated by server */ +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (6,6) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE t2 (a int, b int, primary key (a)) engine=innodb +master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (7,7) +master-bin.000001 # Query # # ROLLBACK +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (8,8) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (9,9) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE table t2 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (10,10) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t2 values (100,100) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TEMPORARY TABLE `t2` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +connect con4,localhost,root,,; +connection con3; +reset master; +create table t1 (a int) engine=innodb; +create table t2 (a int) engine=myisam; +select get_lock("a",10); +get_lock("a",10) +1 +begin; +insert into t1 values(8); +insert into t2 select * from t1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement accesses nontransactional table as well as transactional or temporary table, and writes to any of them +disconnect con3; +connection con4; +select get_lock("a",10); +get_lock("a",10) +1 +flush logs; +select +(@a:=load_file("MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output")) +is not null; +(@a:=load_file("MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output")) +is not null +1 +select +@a like "%#%error_code=0%ROLLBACK\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" OR +@a like "%#%error_code=0%ROLLBACK\r\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%", +@a not like "%#%error_code=%error_code=%"; +@a like "%#%error_code=0%ROLLBACK\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" OR +@a like "%#%error_code=0%ROLLBACK\r\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" @a not like "%#%error_code=%error_code=%" +1 1 +drop table t1, t2; +create temporary table tt (a int unique); +create table ti (a int) engine=innodb; +reset master; +begin; +insert into ti values (1); +insert into ti values (2) ; +insert into tt select * from ti; +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +select count(*) from tt /* 2 */; +count(*) +2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into ti values (1) +master-bin.000001 # Query # # use `test`; insert into ti values (2) +master-bin.000001 # Query # # use `test`; insert into tt select * from ti +master-bin.000001 # Query # # ROLLBACK +select count(*) from ti /* zero */; +count(*) +0 +insert into ti select * from tt; +select * from ti /* that is what slave would miss - a bug */; +a +1 +2 +delete from ti; +delete from tt where a=1; +reset master; +begin; +insert into ti values (1); +insert into ti values (2) /* to make the dup error in the following */; +insert into tt select * from ti /* one affected and error */; +ERROR 23000: Duplicate entry '2' for key 'a' +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into ti values (1) +master-bin.000001 # Query # # use `test`; insert into ti values (2) /* to make the dup error in the following */ +master-bin.000001 # Query # # use `test`; insert into tt select * from ti /* one affected and error */ +master-bin.000001 # Query # # ROLLBACK +select count(*) from ti /* zero */; +count(*) +0 +insert into ti select * from tt; +select * from tt /* that is what otherwise slave missed - the bug */; +a +1 +2 +drop table ti, tt; +drop function if exists bug27417; +drop table if exists t1,t2; +CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM; +CREATE TABLE t2 (a int NOT NULL auto_increment, PRIMARY KEY (a)); +create function bug27417(n int) +RETURNS int(11) +begin +insert into t1 values (null); +return n; +end| +reset master; +insert into t2 values (bug27417(1)); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +insert into t2 select bug27417(2); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +reset master; +insert into t2 values (bug27417(2)); +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=3 +master-bin.000001 # Query # # use `test`; insert into t2 values (bug27417(2)) +master-bin.000001 # Query # # COMMIT +/* only (!) with fixes for #23333 will show there is the query */; +select count(*) from t1 /* must be 3 */; +count(*) +3 +reset master; +select count(*) from t2; +count(*) +2 +delete from t2 where a=bug27417(3); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +select count(*) from t2 /* nothing got deleted */; +count(*) +2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=4 +master-bin.000001 # Query # # use `test`; delete from t2 where a=bug27417(3) +master-bin.000001 # Query # # COMMIT +/* the query must be in regardless of #23333 */; +select count(*) from t1 /* must be 5 */; +count(*) +5 +delete t2 from t2 where t2.a=bug27417(100) /* must not affect t2 */; +affected rows: 0 +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +select count(*) from t1 /* must be 7 */; +count(*) +7 +drop table t1,t2; +CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM; +CREATE TABLE t2 (a int, PRIMARY KEY (a)) ENGINE=InnoDB; +CREATE TABLE t3 (a int, PRIMARY KEY (a), b int unique) ENGINE=MyISAM; +CREATE TABLE t4 (a int, PRIMARY KEY (a), b int unique) ENGINE=Innodb; +CREATE TABLE t5 (a int, PRIMARY KEY (a)) ENGINE=InnoDB; +insert into t2 values (1); +reset master; +insert into t2 values (bug27417(1)); +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=1 +master-bin.000001 # Query # # use `test`; insert into t2 values (bug27417(1)) +master-bin.000001 # Query # # ROLLBACK +/* the output must denote there is the query */; +select count(*) from t1 /* must be 1 */; +count(*) +1 +delete from t1; +delete from t2; +insert into t2 values (2); +reset master; +insert into t2 select bug27417(1) union select bug27417(2); +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=2 +master-bin.000001 # Query # # use `test`; insert into t2 select bug27417(1) union select bug27417(2) +master-bin.000001 # Query # # ROLLBACK +/* the output must denote there is the query */; +select count(*) from t1 /* must be 2 */; +count(*) +2 +delete from t1; +insert into t3 values (1,1),(2,3),(3,4); +reset master; +update t3 set b=b+bug27417(1); +ERROR 23000: Duplicate entry '4' for key 'b' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=4 +master-bin.000001 # Query # # use `test`; update t3 set b=b+bug27417(1) +master-bin.000001 # Query # # COMMIT +/* the output must denote there is the query */; +select count(*) from t1 /* must be 2 */; +count(*) +2 +delete from t3; +delete from t4; +insert into t3 values (1,1); +insert into t4 values (1,1),(2,2); +reset master; +UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */; +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=6 +master-bin.000001 # Query # # use `test`; UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */ +master-bin.000001 # Query # # ROLLBACK +/* the output must denote there is the query */; +select count(*) from t1 /* must be 4 */; +count(*) +4 +delete from t1; +delete from t3; +delete from t4; +insert into t3 values (1,1),(2,2); +insert into t4 values (1,1),(2,2); +reset master; +UPDATE t3,t4 SET t3.a=t4.a + bug27417(1); +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +select count(*) from t1 /* must be 1 */; +count(*) +1 +drop table t4; +delete from t1; +delete from t2; +delete from t3; +insert into t2 values (1); +insert into t3 values (1,1); +create trigger trg_del before delete on t2 for each row +insert into t3 values (bug27417(1), 2); +reset master; +delete from t2; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=9 +master-bin.000001 # Query # # use `test`; delete from t2 +master-bin.000001 # Query # # ROLLBACK +/* the output must denote there is the query */; +select count(*) from t1 /* must be 1 */; +count(*) +1 +drop trigger trg_del; +delete from t1; +delete from t2; +delete from t5; +create trigger trg_del_t2 after delete on t2 for each row +insert into t1 values (1); +insert into t2 values (2),(3); +insert into t5 values (1),(2); +reset master; +delete t2.* from t2,t5 where t2.a=t5.a + 1; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; delete t2.* from t2,t5 where t2.a=t5.a + 1 +master-bin.000001 # Query # # ROLLBACK +/* the output must denote there is the query */; +select count(*) from t1 /* must be 1 */; +count(*) +1 +delete from t1; +create table t4 (a int default 0, b int primary key) engine=innodb; +insert into t4 values (0, 17); +reset master; +load data infile '../../std_data/rpl_loaddata.dat' into table t4 (a, @b) set b= @b + bug27417(2); +ERROR 23000: Duplicate entry '17' for key 'PRIMARY' +select * from t4; +a b +0 17 +select count(*) from t1 /* must be 2 */; +count(*) +2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=10 +master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=# +master-bin.000001 # Intvar # # INSERT_ID=10 +master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE `t4` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`a`, @`b`) SET `b`= @b + bug27417(2) ;file_id=# +master-bin.000001 # Query # # ROLLBACK +/* the output must denote there is the query */; +drop trigger trg_del_t2; +drop table t1,t2,t3,t4,t5; +drop function bug27417; +end of tests +set @@session.binlog_format=statement; +create temporary table tt (a int unique); +create table ti (a int) engine=innodb; +reset master; +begin; +insert into ti values (1); +insert into ti values (2) ; +insert into tt select * from ti; +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +select count(*) from tt /* 2 */; +count(*) +2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into ti values (1) +master-bin.000001 # Query # # use `test`; insert into ti values (2) +master-bin.000001 # Query # # use `test`; insert into tt select * from ti +master-bin.000001 # Query # # ROLLBACK +select count(*) from ti /* zero */; +count(*) +0 +insert into ti select * from tt; +select * from ti /* that is what slave would miss - bug#28960 */; +a +1 +2 +delete from ti; +delete from tt where a=1; +reset master; +begin; +insert into ti values (1); +insert into ti values (2) /* to make the dup error in the following */; +insert into tt select * from ti /* one affected and error */; +ERROR 23000: Duplicate entry '2' for key 'a' +rollback; +Warnings: +Warning 1196 Some non-transactional changed tables couldn't be rolled back +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into ti values (1) +master-bin.000001 # Query # # use `test`; insert into ti values (2) /* to make the dup error in the following */ +master-bin.000001 # Query # # use `test`; insert into tt select * from ti /* one affected and error */ +master-bin.000001 # Query # # ROLLBACK +select count(*) from ti /* zero */; +count(*) +0 +insert into ti select * from tt; +select * from tt /* that is what otherwise slave missed - the bug */; +a +1 +2 +drop table ti; +drop function if exists bug27417; +drop table if exists t1,t2; +CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM; +CREATE TABLE t2 (a int NOT NULL auto_increment, PRIMARY KEY (a)); +create function bug27417(n int) +RETURNS int(11) +begin +insert into t1 values (null); +return n; +end| +reset master; +insert into t2 values (bug27417(1)); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +insert into t2 select bug27417(2); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +reset master; +insert into t2 values (bug27417(2)); +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=3 +master-bin.000001 # Query # # use `test`; insert into t2 values (bug27417(2)) +master-bin.000001 # Query # # COMMIT +select count(*) from t1 /* must be 3 */; +count(*) +3 +reset master; +select count(*) from t2; +count(*) +2 +delete from t2 where a=bug27417(3); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +select count(*) from t2 /* nothing got deleted */; +count(*) +2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=4 +master-bin.000001 # Query # # use `test`; delete from t2 where a=bug27417(3) +master-bin.000001 # Query # # COMMIT +select count(*) from t1 /* must be 5 */; +count(*) +5 +delete t2 from t2 where t2.a=bug27417(100) /* must not affect t2 */; +affected rows: 0 +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +select count(*) from t1 /* must be 7 */; +count(*) +7 +drop table t1,t2; +CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM; +CREATE TABLE t2 (a int, PRIMARY KEY (a)) ENGINE=InnoDB; +CREATE TABLE t3 (a int, PRIMARY KEY (a), b int unique) ENGINE=MyISAM; +CREATE TABLE t4 (a int, PRIMARY KEY (a), b int unique) ENGINE=Innodb; +CREATE TABLE t5 (a int, PRIMARY KEY (a)) ENGINE=InnoDB; +insert into t2 values (1); +reset master; +insert into t2 values (bug27417(1)); +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=1 +master-bin.000001 # Query # # use `test`; insert into t2 values (bug27417(1)) +master-bin.000001 # Query # # ROLLBACK +select count(*) from t1 /* must be 1 */; +count(*) +1 +delete from t1; +delete from t2; +insert into t2 values (2); +reset master; +insert into t2 select bug27417(1) union select bug27417(2); +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=2 +master-bin.000001 # Query # # use `test`; insert into t2 select bug27417(1) union select bug27417(2) +master-bin.000001 # Query # # ROLLBACK +select count(*) from t1 /* must be 2 */; +count(*) +2 +delete from t1; +insert into t3 values (1,1),(2,3),(3,4); +reset master; +update t3 set b=b+bug27417(1); +ERROR 23000: Duplicate entry '4' for key 'b' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=4 +master-bin.000001 # Query # # use `test`; update t3 set b=b+bug27417(1) +master-bin.000001 # Query # # COMMIT +select count(*) from t1 /* must be 2 */; +count(*) +2 +delete from t3; +delete from t4; +insert into t3 values (1,1); +insert into t4 values (1,1),(2,2); +reset master; +UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */; +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=6 +master-bin.000001 # Query # # use `test`; UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */ +master-bin.000001 # Query # # ROLLBACK +select count(*) from t1 /* must be 4 */; +count(*) +4 +delete from t1; +delete from t3; +delete from t4; +insert into t3 values (1,1),(2,2); +insert into t4 values (1,1),(2,2); +reset master; +UPDATE t3,t4 SET t3.a = t4.a + bug27417(1) where t3.a = 1; +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +select count(*) from t1 /* must be 1 */; +count(*) +1 +drop table t4; +delete from t1; +delete from t2; +delete from t3; +insert into t2 values (1); +insert into t3 values (1,1); +create trigger trg_del before delete on t2 for each row +insert into t3 values (bug27417(1), 2); +reset master; +delete from t2; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=9 +master-bin.000001 # Query # # use `test`; delete from t2 +master-bin.000001 # Query # # ROLLBACK +select count(*) from t1 /* must be 1 */; +count(*) +1 +drop trigger trg_del; +delete from t1; +delete from t2; +delete from t5; +create trigger trg_del_t2 after delete on t2 for each row +insert into t1 values (1); +insert into t2 values (2),(3); +insert into t5 values (1),(2); +reset master; +delete t2.* from t2,t5 where t2.a=t5.a + 1; +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; delete t2.* from t2,t5 where t2.a=t5.a + 1 +master-bin.000001 # Query # # ROLLBACK +select count(*) from t1 /* must be 1 */; +count(*) +1 +delete from t1; +create table t4 (a int default 0, b int primary key) engine=innodb; +insert into t4 values (0, 17); +reset master; +load data infile '../../std_data/rpl_loaddata.dat' into table t4 (a, @b) set b= @b + bug27417(2); +ERROR 23000: Duplicate entry '17' for key 'PRIMARY' +select * from t4; +a b +0 17 +select count(*) from t1 /* must be 2 */; +count(*) +2 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=10 +master-bin.000001 # User var # # @`b`=_latin1 X'3135' COLLATE latin1_swedish_ci +master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=# +master-bin.000001 # Intvar # # INSERT_ID=10 +master-bin.000001 # User var # # @`b`=_latin1 X'3135' COLLATE latin1_swedish_ci +master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE `t4` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`a`, @`b`) SET `b`= @b + bug27417(2) ;file_id=# +master-bin.000001 # Query # # ROLLBACK +drop trigger trg_del_t2; +drop table t1,t2,t3,t4,t5; +drop function bug27417; +set @@session.binlog_format=@@global.binlog_format; +end of tests diff --git a/mysql-test/suite/binlog/r/binlog_stm_ps.result b/mysql-test/suite/binlog/r/binlog_stm_ps.result new file mode 100644 index 00000000..75f64500 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_ps.result @@ -0,0 +1,230 @@ +drop table if exists t1; +reset master; +create table t1 (a int); +prepare s from "insert into t1 values (@a),(?)"; +set @a=98; +execute s using @a; +prepare s from "insert into t1 values (?)"; +set @a=99; +execute s using @a; +prepare s from "insert into t1 select 100 limit ?"; +set @a=100; +execute s using @a; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (a int) +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # User var # # @`a`=98 +master-bin.000001 # Query # # use `test`; insert into t1 values (@a),(98) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 values (99) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; insert into t1 select 100 limit 100 +master-bin.000001 # Query # # COMMIT +drop table t1; +# +# MDEV-10709 Expressions as parameters to Dynamic SQL +# +FLUSH LOGS; +SET TIMESTAMP=UNIX_TIMESTAMP('2001-01-02 10:20:30.123456'); +CREATE TABLE t1 (a DECIMAL(30,8)); +PREPARE stmt FROM 'INSERT INTO t1 VALUES (?)'; +EXECUTE stmt USING 10; +EXECUTE stmt USING 11e0; +EXECUTE stmt USING 12.1; +EXECUTE stmt USING '13'; +EXECUTE stmt USING CURRENT_DATE; +EXECUTE stmt USING MAKETIME(10,20,30); +EXECUTE stmt USING CURRENT_TIME; +EXECUTE stmt USING CURRENT_TIME(3); +EXECUTE stmt USING CURRENT_TIME(6); +EXECUTE stmt USING CURRENT_TIMESTAMP; +EXECUTE stmt USING CURRENT_TIMESTAMP(3); +EXECUTE stmt USING CURRENT_TIMESTAMP(6); +SELECT * FROM t1; +a +10.00000000 +11.00000000 +12.10000000 +13.00000000 +20010102.00000000 +102030.00000000 +102030.00000000 +102030.12300000 +102030.12345600 +20010102102030.00000000 +20010102102030.12300000 +20010102102030.12345600 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000002 # Binlog_checkpoint # # master-bin.000002 +master-bin.000002 # Gtid # # GTID #-#-# +master-bin.000002 # Query # # use `test`; CREATE TABLE t1 (a DECIMAL(30,8)) +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (10) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (11) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (12.1) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES ('13') +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (DATE'2001-01-02') +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (TIME'10:20:30') +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (TIME'10:20:30') +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (TIME'10:20:30.123') +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (TIME'10:20:30.123456') +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (TIMESTAMP'2001-01-02 10:20:30') +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (TIMESTAMP'2001-01-02 10:20:30.123') +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (TIMESTAMP'2001-01-02 10:20:30.123456') +master-bin.000002 # Query # # COMMIT +DROP TABLE t1; +SET TIMESTAMP=DEFAULT; +# +# MDEV-10585 EXECUTE IMMEDIATE statement +# +FLUSH LOGS; +CREATE TABLE t1 (a INT); +EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (101)'; +SET @a=102; +EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (?)' USING @a; +SET @a=103; +SET @stmt='INSERT INTO t1 VALUES (?)'; +EXECUTE IMMEDIATE @stmt USING @a; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000003 # Binlog_checkpoint # # master-bin.000003 +master-bin.000003 # Gtid # # GTID #-#-# +master-bin.000003 # Query # # use `test`; CREATE TABLE t1 (a INT) +master-bin.000003 # Gtid # # BEGIN GTID #-#-# +master-bin.000003 # Query # # use `test`; INSERT INTO t1 VALUES (101) +master-bin.000003 # Query # # COMMIT +master-bin.000003 # Gtid # # BEGIN GTID #-#-# +master-bin.000003 # Query # # use `test`; INSERT INTO t1 VALUES (102) +master-bin.000003 # Query # # COMMIT +master-bin.000003 # Gtid # # BEGIN GTID #-#-# +master-bin.000003 # Query # # use `test`; INSERT INTO t1 VALUES (103) +master-bin.000003 # Query # # COMMIT +DROP TABLE t1; +# +# MDEV-11360 Dynamic SQL: DEFAULT as a bind parameter +# +FLUSH LOGS; +CREATE TABLE t1 (a INT DEFAULT 10); +EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (Default)'; +# The output of this query in 'Note' is a syntactically incorrect query. +# But as it's never logged, it's ok. It should be human readable only. +EXECUTE IMMEDIATE 'EXPLAIN EXTENDED SELECT ?' USING Default; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used +Warnings: +Note 1003 select default AS `?` +EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (?)' USING Default; +CREATE PROCEDURE p1 () +BEGIN +INSERT INTO t1 VALUES (Default); +# EXPLAIN should not be logged +EXECUTE IMMEDIATE 'EXPLAIN EXTENDED SELECT ?' USING Default; +EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (?)' USING Default; +END; +$$ +CALL p1; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used +DROP PROCEDURE p1; +DROP TABLE t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000004 # Binlog_checkpoint # # master-bin.000004 +master-bin.000004 # Gtid # # GTID #-#-# +master-bin.000004 # Query # # use `test`; CREATE TABLE t1 (a INT DEFAULT 10) +master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Query # # use `test`; INSERT INTO t1 VALUES (Default) +master-bin.000004 # Query # # COMMIT +master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Query # # use `test`; INSERT INTO t1 VALUES (DEFAULT) +master-bin.000004 # Query # # COMMIT +master-bin.000004 # Gtid # # GTID #-#-# +master-bin.000004 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() +BEGIN +INSERT INTO t1 VALUES (Default); +# EXPLAIN should not be logged +EXECUTE IMMEDIATE 'EXPLAIN EXTENDED SELECT ?' USING Default; +EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (?)' USING Default; +END +master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Query # # use `test`; INSERT INTO t1 VALUES (Default) +master-bin.000004 # Query # # COMMIT +master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Query # # use `test`; INSERT INTO t1 VALUES (DEFAULT) +master-bin.000004 # Query # # COMMIT +master-bin.000004 # Gtid # # GTID #-#-# +master-bin.000004 # Query # # use `test`; DROP PROCEDURE p1 +master-bin.000004 # Gtid # # GTID #-#-# +master-bin.000004 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +# +#MDEV-14467 Item_param: replace {INT|DECIMAL|REAL|STRING|TIME}_VALUE with Type_handler +# +FLUSH LOGS; +CREATE TABLE t1 (a INT); +EXECUTE IMMEDIATE 'INSERT INTO t1 SELECT 1 LIMIT ?' USING 10; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +EXECUTE IMMEDIATE 'INSERT INTO t1 SELECT 1 LIMIT ?' USING 10.1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +EXECUTE IMMEDIATE 'INSERT INTO t1 SELECT 1 LIMIT ?' USING 10.1e0; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +EXECUTE IMMEDIATE 'INSERT INTO t1 SELECT 1 LIMIT ?' USING '10'; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +EXECUTE IMMEDIATE 'INSERT INTO t1 SELECT 1 LIMIT ?' USING TIME'10:10:10'; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +DROP TABLE t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000005 # Binlog_checkpoint # # master-bin.000005 +master-bin.000005 # Gtid # # GTID #-#-# +master-bin.000005 # Query # # use `test`; CREATE TABLE t1 (a INT) +master-bin.000005 # Gtid # # BEGIN GTID #-#-# +master-bin.000005 # Query # # use `test`; INSERT INTO t1 SELECT 1 LIMIT 10 +master-bin.000005 # Query # # COMMIT +master-bin.000005 # Gtid # # BEGIN GTID #-#-# +master-bin.000005 # Query # # use `test`; INSERT INTO t1 SELECT 1 LIMIT 10 +master-bin.000005 # Query # # COMMIT +master-bin.000005 # Gtid # # BEGIN GTID #-#-# +master-bin.000005 # Query # # use `test`; INSERT INTO t1 SELECT 1 LIMIT 10 +master-bin.000005 # Query # # COMMIT +master-bin.000005 # Gtid # # BEGIN GTID #-#-# +master-bin.000005 # Query # # use `test`; INSERT INTO t1 SELECT 1 LIMIT 10 +master-bin.000005 # Query # # COMMIT +master-bin.000005 # Gtid # # BEGIN GTID #-#-# +master-bin.000005 # Query # # use `test`; INSERT INTO t1 SELECT 1 LIMIT 101010 +master-bin.000005 # Query # # COMMIT +master-bin.000005 # Gtid # # GTID #-#-# +master-bin.000005 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ diff --git a/mysql-test/suite/binlog/r/binlog_stm_row.result b/mysql-test/suite/binlog/r/binlog_stm_row.result new file mode 100644 index 00000000..2b244627 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_row.result @@ -0,0 +1,97 @@ +CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); +DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t2; +set @saved_global_binlog_format = @@global.binlog_format; +set @saved_local_binlog_format = @@session.binlog_format; +SET GLOBAL BINLOG_FORMAT = STATEMENT; +SET SESSION BINLOG_FORMAT = STATEMENT; +CREATE TABLE t1 (a INT); +CREATE TABLE t2 LIKE t1; +select @@SESSION.BINLOG_FORMAT; +@@SESSION.BINLOG_FORMAT +STATEMENT +INSERT INTO t1 VALUES(1); +INSERT INTO t2 VALUES(2); +connect con1,localhost,root,,; +connect con2,localhost,root,,; +# +# Ensure that INSERT INTO .. SELECT FROM under SBR takes a read +# lock that will prevent the source table from being modified. +# +connection con1; +SELECT GET_LOCK('Bug#34306', 120); +GET_LOCK('Bug#34306', 120) +1 +connection con2; +PREPARE stmt FROM "INSERT INTO t1 SELECT * FROM t2 WHERE GET_LOCK('Bug#34306', 120)"; +EXECUTE stmt;; +connection default; +INSERT INTO t2 VALUES (3);; +connection con1; +SELECT RELEASE_LOCK('Bug#34306'); +RELEASE_LOCK('Bug#34306') +1 +connection con2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +SELECT RELEASE_LOCK('Bug#34306'); +RELEASE_LOCK('Bug#34306') +1 +connection default; +# +# Ensure that INSERT INTO .. SELECT FROM prepared under SBR does +# not prevent the source table from being modified if under RBR. +# +connection con2; +SET SESSION BINLOG_FORMAT = ROW; +connection con1; +SELECT GET_LOCK('Bug#34306', 120); +GET_LOCK('Bug#34306', 120) +1 +connection con2; +EXECUTE stmt;; +connection default; +connection con1; +INSERT INTO t2 VALUES (4); +SELECT RELEASE_LOCK('Bug#34306'); +RELEASE_LOCK('Bug#34306') +1 +connection con2; +disconnect con1; +disconnect con2; +connection default; +# Show binlog events +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t1` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t2` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t2 LIKE t1 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES(1) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t2 VALUES(2) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 SELECT * FROM t2 WHERE GET_LOCK('Bug#34306', 120) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t2 VALUES (3) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t2 VALUES (4) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 SELECT * FROM t2 WHERE GET_LOCK('Bug#34306', 120) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +DROP TABLE t1; +DROP TABLE t2; +SET GLOBAL BINLOG_FORMAT = @saved_global_binlog_format; +SET SESSION BINLOG_FORMAT = @saved_local_binlog_format; diff --git a/mysql-test/suite/binlog/r/binlog_stm_sp.result b/mysql-test/suite/binlog/r/binlog_stm_sp.result new file mode 100644 index 00000000..2fbb1cbc --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_sp.result @@ -0,0 +1,174 @@ +# +# MDEV-11815 SP variables of temporal data types do not replicate correctly +# +CREATE TABLE t1(a INT); +CREATE PROCEDURE p1() +BEGIN +DECLARE i INT DEFAULT 123; +DECLARE b8 BIT(8) DEFAULT 0x61; +DECLARE t0 TIME DEFAULT '01:01:01'; +DECLARE t6 TIME(6) DEFAULT '01:01:01.123456'; +DECLARE d DATE DEFAULT '2001-01-01'; +DECLARE dt0 DATETIME DEFAULT '2001-01-01 01:01:01'; +DECLARE dt6 DATETIME(6) DEFAULT '2001-01-01 01:01:01.123456'; +DECLARE ts0 TIMESTAMP DEFAULT '2001-01-01 01:01:01'; +DECLARE ts6 TIMESTAMP(6) DEFAULT '2001-01-01 01:01:01.123456'; +INSERT INTO t1 VALUES (i=0x61); +INSERT INTO t1 VALUES (b8=0x61); +INSERT INTO t1 VALUES (t0=10101); +INSERT INTO t1 VALUES (t6=10101); +INSERT INTO t1 VALUES (d=20010101); +INSERT INTO t1 VALUES (dt0=20010101010101); +INSERT INTO t1 VALUES (dt6=20010101010101); +INSERT INTO t1 VALUES (ts0=20010101010101); +INSERT INTO t1 VALUES (ts6=20010101010101); +END; +$$ +CALL p1; +DROP TABLE t1; +DROP PROCEDURE p1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1(a INT) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() +BEGIN +DECLARE i INT DEFAULT 123; +DECLARE b8 BIT(8) DEFAULT 0x61; +DECLARE t0 TIME DEFAULT '01:01:01'; +DECLARE t6 TIME(6) DEFAULT '01:01:01.123456'; +DECLARE d DATE DEFAULT '2001-01-01'; +DECLARE dt0 DATETIME DEFAULT '2001-01-01 01:01:01'; +DECLARE dt6 DATETIME(6) DEFAULT '2001-01-01 01:01:01.123456'; +DECLARE ts0 TIMESTAMP DEFAULT '2001-01-01 01:01:01'; +DECLARE ts6 TIMESTAMP(6) DEFAULT '2001-01-01 01:01:01.123456'; +INSERT INTO t1 VALUES (i=0x61); +INSERT INTO t1 VALUES (b8=0x61); +INSERT INTO t1 VALUES (t0=10101); +INSERT INTO t1 VALUES (t6=10101); +INSERT INTO t1 VALUES (d=20010101); +INSERT INTO t1 VALUES (dt0=20010101010101); +INSERT INTO t1 VALUES (dt6=20010101010101); +INSERT INTO t1 VALUES (ts0=20010101010101); +INSERT INTO t1 VALUES (ts6=20010101010101); +END +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES ( NAME_CONST('i',123)=0x61) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES ( NAME_CONST('b8',_binary'a' COLLATE 'binary')=0x61) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES ( NAME_CONST('t0',TIME'01:01:01')=10101) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES ( NAME_CONST('t6',TIME'01:01:01.123456')=10101) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES ( NAME_CONST('d',DATE'2001-01-01')=20010101) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES ( NAME_CONST('dt0',TIMESTAMP'2001-01-01 01:01:01')=20010101010101) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES ( NAME_CONST('dt6',TIMESTAMP'2001-01-01 01:01:01.123456')=20010101010101) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES ( NAME_CONST('ts0',TIMESTAMP'2001-01-01 01:01:01')=20010101010101) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES ( NAME_CONST('ts6',TIMESTAMP'2001-01-01 01:01:01.123456')=20010101010101) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP PROCEDURE p1 +# +# MDEV-16020 SP variables inside GROUP BY..WITH ROLLUP break replication +# +FLUSH LOGS; +CREATE TABLE t1 (d DATE); +INSERT INTO t1 VALUES ('1985-05-13'),('1989-12-24'); +CREATE TABLE t2 (d DATE, c BIGINT); +BEGIN NOT ATOMIC +BEGIN +DECLARE var INT DEFAULT 10; +INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, var; +INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, var WITH ROLLUP; +END; +BEGIN +DECLARE atomic INT DEFAULT 20; +INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, atomic; +INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, atomic WITH ROLLUP; +INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, `atomic`; +INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, `atomic` WITH ROLLUP; +END; +BEGIN +DECLARE atomic ROW (atomic INT, xxx INT) DEFAULT (31,32); +INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, atomic.atomic; +INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, atomic.atomic WITH ROLLUP; +INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, `atomic`.`atomic`; +INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, `atomic`.`atomic` WITH ROLLUP; +INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, atomic.xxx; +INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, atomic.xxx WITH ROLLUP; +INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, `atomic`.`xxx`; +INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, `atomic`.`xxx` WITH ROLLUP; +END; +END; +$$ +DROP TABLE t1,t2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000002 # Binlog_checkpoint # # master-bin.000002 +master-bin.000002 # Gtid # # GTID #-#-# +master-bin.000002 # Query # # use `test`; CREATE TABLE t1 (d DATE) +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES ('1985-05-13'),('1989-12-24') +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # GTID #-#-# +master-bin.000002 # Query # # use `test`; CREATE TABLE t2 (d DATE, c BIGINT) +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, NAME_CONST('var',10) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, NAME_CONST('var',10) WITH ROLLUP +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, NAME_CONST('atomic',20) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, NAME_CONST('atomic',20) WITH ROLLUP +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, NAME_CONST('atomic',20) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, NAME_CONST('atomic',20) WITH ROLLUP +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, NAME_CONST('atomic.atomic',31) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, NAME_CONST('atomic.atomic',31) WITH ROLLUP +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, NAME_CONST('atomic.atomic',31) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, NAME_CONST('atomic.atomic',31) WITH ROLLUP +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, NAME_CONST('atomic.xxx',32) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, NAME_CONST('atomic.xxx',32) WITH ROLLUP +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, NAME_CONST('atomic.xxx',32) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, NAME_CONST('atomic.xxx',32) WITH ROLLUP +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # GTID #-#-# +master-bin.000002 # Query # # use `test`; DROP TABLE `t1`,`t2` /* generated by server */ diff --git a/mysql-test/suite/binlog/r/binlog_stm_sp_type_row.result b/mysql-test/suite/binlog/r/binlog_stm_sp_type_row.result new file mode 100644 index 00000000..cc21904f --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_sp_type_row.result @@ -0,0 +1,227 @@ +SET sql_mode=ORACLE; +# +# MDEV-10914 ROW data type for stored routine variables +# +CREATE TABLE t1 (a INT, b INT); +CREATE PROCEDURE p1 +AS +rec ROW(a INT,b INT); +BEGIN +rec.a:=100; +rec.b:=200; +INSERT INTO t1 VALUES (rec.a,rec.b); +INSERT INTO t1 VALUES (10, rec=ROW(100,200)); +INSERT INTO t1 VALUES (10, ROW(100,200)=rec); +INSERT INTO t1 SELECT 10, 20 FROM DUAL WHERE rec=ROW(100,200); +INSERT INTO t1 SELECT 10, 21 FROM DUAL WHERE ROW(100,200)=rec; +rec.a:=NULL; +INSERT INTO t1 VALUES (11, rec=ROW(100,200)); +INSERT INTO t1 VALUES (11, rec=ROW(100,201)); +INSERT INTO t1 VALUES (11, ROW(100,200)=rec); +INSERT INTO t1 VALUES (11, ROW(100,201)=rec); +INSERT INTO t1 SELECT 11, 20 FROM DUAL WHERE rec=ROW(100,200); +INSERT INTO t1 SELECT 11, 21 FROM DUAL WHERE ROW(100,200)=rec; +rec.b:=NULL; +INSERT INTO t1 VALUES (12, rec=ROW(100,200)); +INSERT INTO t1 VALUES (12, ROW(100,200)=rec); +INSERT INTO t1 SELECT 12, 20 FROM DUAL WHERE rec=ROW(100,200); +INSERT INTO t1 SELECT 12, 21 FROM DUAL WHERE ROW(100,200)=rec; +END; +$$ +CALL p1(); +SELECT * FROM t1; +a b +100 200 +10 1 +10 1 +10 20 +10 21 +11 NULL +11 0 +11 NULL +11 0 +12 NULL +12 NULL +DROP TABLE t1; +DROP PROCEDURE p1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT, b INT) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER="root"@"localhost" PROCEDURE "p1"() +AS +rec ROW(a INT,b INT); +BEGIN +rec.a:=100; +rec.b:=200; +INSERT INTO t1 VALUES (rec.a,rec.b); +INSERT INTO t1 VALUES (10, rec=ROW(100,200)); +INSERT INTO t1 VALUES (10, ROW(100,200)=rec); +INSERT INTO t1 SELECT 10, 20 FROM DUAL WHERE rec=ROW(100,200); +INSERT INTO t1 SELECT 10, 21 FROM DUAL WHERE ROW(100,200)=rec; +rec.a:=NULL; +INSERT INTO t1 VALUES (11, rec=ROW(100,200)); +INSERT INTO t1 VALUES (11, rec=ROW(100,201)); +INSERT INTO t1 VALUES (11, ROW(100,200)=rec); +INSERT INTO t1 VALUES (11, ROW(100,201)=rec); +INSERT INTO t1 SELECT 11, 20 FROM DUAL WHERE rec=ROW(100,200); +INSERT INTO t1 SELECT 11, 21 FROM DUAL WHERE ROW(100,200)=rec; +rec.b:=NULL; +INSERT INTO t1 VALUES (12, rec=ROW(100,200)); +INSERT INTO t1 VALUES (12, ROW(100,200)=rec); +INSERT INTO t1 SELECT 12, 20 FROM DUAL WHERE rec=ROW(100,200); +INSERT INTO t1 SELECT 12, 21 FROM DUAL WHERE ROW(100,200)=rec; +END +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES ( NAME_CONST('rec.a',100), NAME_CONST('rec.b',200)) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (10, ROW(100,200)=ROW(100,200)) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (10, ROW(100,200)=ROW(100,200)) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 SELECT 10, 20 FROM DUAL WHERE ROW(100,200)=ROW(100,200) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 SELECT 10, 21 FROM DUAL WHERE ROW(100,200)=ROW(100,200) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (11, ROW(NULL,200)=ROW(100,200)) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (11, ROW(NULL,200)=ROW(100,201)) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (11, ROW(100,200)=ROW(NULL,200)) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (11, ROW(100,201)=ROW(NULL,200)) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 SELECT 11, 20 FROM DUAL WHERE ROW(NULL,200)=ROW(100,200) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 SELECT 11, 21 FROM DUAL WHERE ROW(100,200)=ROW(NULL,200) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (12, ROW(NULL,NULL)=ROW(100,200)) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (12, ROW(100,200)=ROW(NULL,NULL)) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 SELECT 12, 20 FROM DUAL WHERE ROW(NULL,NULL)=ROW(100,200) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t1 SELECT 12, 21 FROM DUAL WHERE ROW(100,200)=ROW(NULL,NULL) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE "t1" /* generated by server */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP PROCEDURE p1 +# +# Testing ROW fields in LIMIT +# +FLUSH LOGS; +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (10),(10); +CREATE TABLE t2 (a INT); +CREATE PROCEDURE p1() +AS +a INT:= 1; +rec ROW(a INT); +BEGIN +rec.a:= 1; +INSERT INTO t2 SELECT 1 FROM t1 LIMIT a; +INSERT INTO t2 SELECT 2 FROM t1 LIMIT rec.a; +END; +$$ +CALL p1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +DROP TABLE t1,t2; +DROP PROCEDURE p1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000002 # Binlog_checkpoint # # master-bin.000002 +master-bin.000002 # Gtid # # GTID #-#-# +master-bin.000002 # Query # # use `test`; CREATE TABLE t1 (a INT) +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t1 VALUES (10),(10) +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # GTID #-#-# +master-bin.000002 # Query # # use `test`; CREATE TABLE t2 (a INT) +master-bin.000002 # Gtid # # GTID #-#-# +master-bin.000002 # Query # # use `test`; CREATE DEFINER="root"@"localhost" PROCEDURE "p1"() +AS +a INT:= 1; +rec ROW(a INT); +BEGIN +rec.a:= 1; +INSERT INTO t2 SELECT 1 FROM t1 LIMIT a; +INSERT INTO t2 SELECT 2 FROM t1 LIMIT rec.a; +END +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT 1 FROM t1 LIMIT 1 +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # BEGIN GTID #-#-# +master-bin.000002 # Query # # use `test`; INSERT INTO t2 SELECT 2 FROM t1 LIMIT 1 +master-bin.000002 # Query # # COMMIT +master-bin.000002 # Gtid # # GTID #-#-# +master-bin.000002 # Query # # use `test`; DROP TABLE "t1","t2" /* generated by server */ +master-bin.000002 # Gtid # # GTID #-#-# +master-bin.000002 # Query # # use `test`; DROP PROCEDURE p1 +# +# End of MDEV-10914 ROW data type for stored routine variables +# +# +# MDEV-12291 Allow ROW variables as SELECT INTO targets +# +FLUSH LOGS; +SET sql_mode=DEFAULT; +CREATE TABLE t1 (a INT, b VARCHAR(32)); +INSERT INTO t1 VALUES (10, 'b10'); +CREATE TABLE t2 LIKE t1; +CREATE PROCEDURE p1() +BEGIN +DECLARE rec1 ROW(a INT, b VARCHAR(32)); +SELECT * INTO rec1 FROM t1; +INSERT INTO t2 VALUES (rec1.a, rec1.b); +END; +$$ +CALL p1(); +SELECT * FROM t1; +a b +10 b10 +DROP TABLE t1; +DROP TABLE t2; +DROP PROCEDURE p1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000003 # Binlog_checkpoint # # master-bin.000003 +master-bin.000003 # Gtid # # GTID #-#-# +master-bin.000003 # Query # # use `test`; CREATE TABLE t1 (a INT, b VARCHAR(32)) +master-bin.000003 # Gtid # # BEGIN GTID #-#-# +master-bin.000003 # Query # # use `test`; INSERT INTO t1 VALUES (10, 'b10') +master-bin.000003 # Query # # COMMIT +master-bin.000003 # Gtid # # GTID #-#-# +master-bin.000003 # Query # # use `test`; CREATE TABLE t2 LIKE t1 +master-bin.000003 # Gtid # # GTID #-#-# +master-bin.000003 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() +BEGIN +DECLARE rec1 ROW(a INT, b VARCHAR(32)); +SELECT * INTO rec1 FROM t1; +INSERT INTO t2 VALUES (rec1.a, rec1.b); +END +master-bin.000003 # Gtid # # BEGIN GTID #-#-# +master-bin.000003 # Query # # use `test`; INSERT INTO t2 VALUES ( NAME_CONST('rec1.a',10), NAME_CONST('rec1.b',_latin1'b10' COLLATE 'latin1_swedish_ci')) +master-bin.000003 # Query # # COMMIT +master-bin.000003 # Gtid # # GTID #-#-# +master-bin.000003 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +master-bin.000003 # Gtid # # GTID #-#-# +master-bin.000003 # Query # # use `test`; DROP TABLE `t2` /* generated by server */ +master-bin.000003 # Gtid # # GTID #-#-# +master-bin.000003 # Query # # use `test`; DROP PROCEDURE p1 diff --git a/mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result b/mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result new file mode 100644 index 00000000..135271d3 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result @@ -0,0 +1,109 @@ +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT."); +### NOT filtered database => assertion: warnings ARE shown +DROP TABLE IF EXISTS t1; +CREATE TABLE t1 (a int, b int, primary key (a)); +INSERT INTO t1 VALUES (1,2), (2,3); +UPDATE t1 SET b='4' WHERE a=1 LIMIT 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +UPDATE t1 SET b='5' WHERE a=2 ORDER BY a LIMIT 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +DROP TABLE t1; +### NOT filtered database => assertion: binlog disabled and warnings ARE NOT shown +SET SQL_LOG_BIN= 0; +DROP TABLE IF EXISTS t1; +CREATE TABLE t1 (a int, b int, primary key (a)); +INSERT INTO t1 VALUES (1,2), (2,3); +UPDATE t1 SET b='4' WHERE a=1 LIMIT 1; +UPDATE t1 SET b='5' WHERE a=2 ORDER BY a LIMIT 1; +DROP TABLE t1; +SET SQL_LOG_BIN= 1; +### FILTERED database => assertion: warnings ARE NOT shown +CREATE DATABASE b42851; +USE b42851; +DROP TABLE IF EXISTS t1; +CREATE TABLE t1 (a int, b int, primary key (a)); +INSERT INTO t1 VALUES (1,2), (2,3); +UPDATE t1 SET b='4' WHERE a=1 LIMIT 1; +UPDATE t1 SET b='5' WHERE a=2 ORDER BY a LIMIT 1; +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(1000)); +INSERT INTO t1 VALUES (CURRENT_USER()); +INSERT INTO t1 VALUES (FOUND_ROWS()); +INSERT INTO t1 VALUES (GET_LOCK('tmp', 1)); +INSERT INTO t1 VALUES (IS_FREE_LOCK('tmp')); +INSERT INTO t1 VALUES (IS_USED_LOCK('tmp')); +INSERT INTO t1 VALUES (LOAD_FILE('../../std_data/words2.dat')); +INSERT INTO t1 VALUES (MASTER_POS_WAIT('dummy arg', 4711, 1)); +INSERT INTO t1 VALUES (RELEASE_LOCK('tmp')); +INSERT INTO t1 VALUES (ROW_COUNT()); +INSERT INTO t1 VALUES (SESSION_USER()); +INSERT INTO t1 VALUES (SLEEP(1)); +INSERT INTO t1 VALUES (SYSDATE()); +INSERT INTO t1 VALUES (SYSTEM_USER()); +INSERT INTO t1 VALUES (USER()); +INSERT INTO t1 VALUES (UUID()); +INSERT INTO t1 VALUES (UUID_SHORT()); +INSERT INTO t1 VALUES (VERSION()); +INSERT INTO t1 VALUES (RAND()); +DROP DATABASE b42851; +USE test; +# +# Bug#46265: Can not disable warning about unsafe statements for binary logging +# +SET @old_log_warnings = @@log_warnings; +DROP TABLE IF EXISTS t1; +CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(15)); +SET GLOBAL LOG_WARNINGS = 0; +INSERT INTO t1 VALUES(UUID(), 'timestamp'); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +SET GLOBAL LOG_WARNINGS = 1; +INSERT INTO t1 VALUES(UUID(), 'timestamp'); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +DROP TABLE t1; +SET GLOBAL log_warnings = @old_log_warnings; +# Count the number of times the "Unsafe" message was printed +# to the error log. +Occurrences: 1 +create table t1 (n1 int, n2 int, n3 int, +key (n1, n2, n3), +key (n2, n3, n1), +key (n3, n1, n2)); +insert into t1 values (1,1,1); +insert into t1 values (RAND()*1000+10, RAND()*1000+10, RAND()*1000+10); +update t1 set n1=rand() where n1=1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +delete from t1 where n2=1 + rand()*0; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +drop table t1; +DROP TABLE IF EXISTS t1, t2; +CREATE TABLE t1 (a int); +CREATE TABLE t2 (a int auto_increment primary key, b int); +CREATE TRIGGER tr_bug50192 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t2 (b) VALUES (1); +CREATE FUNCTION sf_bug50192() RETURNS INTEGER +BEGIN +INSERT INTO t2(b) VALUES(2); +RETURN 1; +END | +INSERT INTO t1 VALUES (0); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +SHOW WARNINGS; +Level Code Message +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +SELECT sf_bug50192(); +sf_bug50192() +1 +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +SHOW WARNINGS; +Level Code Message +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +DROP FUNCTION sf_bug50192; +DROP TRIGGER tr_bug50192; +DROP TABLE t1, t2; diff --git a/mysql-test/suite/binlog/r/binlog_stm_user_variables.result b/mysql-test/suite/binlog/r/binlog_stm_user_variables.result new file mode 100644 index 00000000..9923eb89 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_stm_user_variables.result @@ -0,0 +1,162 @@ +RESET MASTER; +SET @positive= 18446744073709551615; +SET @negative= -9223372036854775808; +CREATE TABLE t1 (`tinyint` TINYINT, +`smallint` SMALLINT, +`mediumint` MEDIUMINT, +`integer` INTEGER, +`bigint` BIGINT, +`utinyint` TINYINT UNSIGNED, +`usmallint` SMALLINT UNSIGNED, +`umediumint` MEDIUMINT UNSIGNED, +`uinteger` INTEGER UNSIGNED, +`ubigint` BIGINT UNSIGNED, +`double` DOUBLE, +`float` FLOAT, +`real` REAL(30,2), +`decimal` DECIMAL(30,2)) ENGINE = MyISAM; +### insert max unsigned +### a) declarative +INSERT IGNORE INTO t1 VALUES (18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615,18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615);; +TRUNCATE t1; +### b) user var +INSERT IGNORE INTO t1 VALUES (@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive); +## assertion: checks that User_var_log_event::pack_info +## correctly displays the binlog content by taking into +## account the unsigned_flag +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (`tinyint` TINYINT, +`smallint` SMALLINT, +`mediumint` MEDIUMINT, +`integer` INTEGER, +`bigint` BIGINT, +`utinyint` TINYINT UNSIGNED, +`usmallint` SMALLINT UNSIGNED, +`umediumint` MEDIUMINT UNSIGNED, +`uinteger` INTEGER UNSIGNED, +`ubigint` BIGINT UNSIGNED, +`double` DOUBLE, +`float` FLOAT, +`real` REAL(30,2), +`decimal` DECIMAL(30,2)) ENGINE = MyISAM +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT IGNORE INTO t1 VALUES (18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615,18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE t1 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # User var # # @`positive`=18446744073709551615 +master-bin.000001 # Query # # use `test`; INSERT IGNORE INTO t1 VALUES (@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive) +master-bin.000001 # Query # # COMMIT +### insert min signed +### a) declarative +INSERT IGNORE INTO t1 VALUES (-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808,-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808);; +TRUNCATE t1; +### b) user var +INSERT IGNORE INTO t1 VALUES (@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative); +## assertion: checks that User_var_log_event::pack_info +## correctly displays the binlog content by taking into +## account the unsigned_flag +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (`tinyint` TINYINT, +`smallint` SMALLINT, +`mediumint` MEDIUMINT, +`integer` INTEGER, +`bigint` BIGINT, +`utinyint` TINYINT UNSIGNED, +`usmallint` SMALLINT UNSIGNED, +`umediumint` MEDIUMINT UNSIGNED, +`uinteger` INTEGER UNSIGNED, +`ubigint` BIGINT UNSIGNED, +`double` DOUBLE, +`float` FLOAT, +`real` REAL(30,2), +`decimal` DECIMAL(30,2)) ENGINE = MyISAM +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT IGNORE INTO t1 VALUES (18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615,18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE t1 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # User var # # @`positive`=18446744073709551615 +master-bin.000001 # Query # # use `test`; INSERT IGNORE INTO t1 VALUES (@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive, +@positive) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT IGNORE INTO t1 VALUES (-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808,-9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808, -9223372036854775808) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE t1 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # User var # # @`negative`=-9223372036854775808 +master-bin.000001 # Query # # use `test`; INSERT IGNORE INTO t1 VALUES (@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative, +@negative) +master-bin.000001 # Query # # COMMIT +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/binlog_switch_inside_trans.result b/mysql-test/suite/binlog/r/binlog_switch_inside_trans.result new file mode 100644 index 00000000..0819d4e7 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_switch_inside_trans.result @@ -0,0 +1,210 @@ +set @save_binlog_format= @@global.binlog_format; +set @save_binlog_dirct= @@global.binlog_direct_non_transactional_updates; +create table t1 (a int) engine= myisam; +create table t2 (a int) engine= innodb; +SELECT @@session.binlog_format; +@@session.binlog_format +ROW +SELECT @@session.binlog_direct_non_transactional_updates; +@@session.binlog_direct_non_transactional_updates +1 +SELECT @@session.sql_log_bin; +@@session.sql_log_bin +1 +SET AUTOCOMMIT=1; +# Test that the session variable 'binlog_format', +# 'binlog_direct_non_transactional_updates' and 'sql_log_bin' +# are writable outside a transaction. +# Current session values are ROW, FALSE, TRUE, respectively. +set @@session.binlog_format= statement; +set @@session.binlog_direct_non_transactional_updates= TRUE; +set @@session.sql_log_bin= FALSE; +SELECT @@session.binlog_format; +@@session.binlog_format +STATEMENT +SELECT @@session.binlog_direct_non_transactional_updates; +@@session.binlog_direct_non_transactional_updates +1 +SELECT @@session.sql_log_bin; +@@session.sql_log_bin +0 +begin; +# Test that the session variable 'binlog_format', +# 'binlog_direct_non_transactional_updates' and 'sql_log_bin' are +# read-only inside a transaction with no preceding updates. +# Current session values are STATEMENT, TRUE, FALSE, respectively. +set @@session.binlog_format= mixed; +ERROR HY000: Cannot modify @@session.binlog_format inside a transaction +set @@session.binlog_direct_non_transactional_updates= FALSE; +ERROR HY000: Cannot modify @@session.binlog_direct_non_transactional_updates inside a transaction +set @@session.sql_log_bin= FALSE; +ERROR HY000: Cannot modify @@session.sql_log_bin inside a transaction +insert into t2 values (1); +# Test that the session variable 'binlog_format', +# 'binlog_direct_non_transactional_updates' and 'sql_log_bin' are +# read-only inside a transaction with preceding transactional updates. +# Current session values are STATEMENT, TRUE and FALSE, respectively. +set @@session.binlog_format= row; +ERROR HY000: Cannot modify @@session.binlog_format inside a transaction +set @@session.binlog_direct_non_transactional_updates= FALSE; +ERROR HY000: Cannot modify @@session.binlog_direct_non_transactional_updates inside a transaction +set @@session.sql_log_bin= FALSE; +ERROR HY000: Cannot modify @@session.sql_log_bin inside a transaction +commit; +begin; +insert into t1 values (2); +# Test that the session variable 'binlog_format' +# 'binlog_direct_non_transactional_updates' and 'sql_log_bin' are +# read-only inside a transaction with preceding non-transactional updates. +# Current session values are STATEMENT, TRUE, FALSE, respectively. +set @@session.binlog_format= mixed; +ERROR HY000: Cannot modify @@session.binlog_format inside a transaction +set @@session.binlog_direct_non_transactional_updates= FALSE; +ERROR HY000: Cannot modify @@session.binlog_direct_non_transactional_updates inside a transaction +set @@session.sql_log_bin= FALSE; +ERROR HY000: Cannot modify @@session.sql_log_bin inside a transaction +commit; +# Test that the session variable 'binlog_format', +# 'binlog_direct_non_transactional_updates' and 'sql_log_bin' are +# writable when AUTOCOMMIT=0, before a transaction has started. +# Current session values are STATEMENT, TRUE, FALSE, respectively. +set AUTOCOMMIT=0; +set @@session.binlog_format= row; +set @@session.binlog_direct_non_transactional_updates= FALSE; +set @@session.sql_log_bin= TRUE; +SELECT @@session.binlog_format; +@@session.binlog_format +ROW +SELECT @@session.binlog_direct_non_transactional_updates; +@@session.binlog_direct_non_transactional_updates +0 +SELECT @@session.sql_log_bin; +@@session.sql_log_bin +1 +insert into t1 values (3); +# Test that the session variable 'binlog_format', +# 'binlog_direct_non_transactional_updates' and 'sql_log_bin' are +# read-only inside an AUTOCOMMIT=0 transaction +# with preceding non-transactional updates. +# Current session values are ROW, FALSE, TRUE, respectively. +set @@session.binlog_format= statement; +ERROR HY000: Cannot modify @@session.binlog_format inside a transaction +set @@session.binlog_direct_non_transactional_updates= TRUE; +ERROR HY000: Cannot modify @@session.binlog_direct_non_transactional_updates inside a transaction +set @@session.sql_log_bin= FALSE; +ERROR HY000: Cannot modify @@session.sql_log_bin inside a transaction +SELECT @@session.binlog_format; +@@session.binlog_format +ROW +SELECT @@session.binlog_direct_non_transactional_updates; +@@session.binlog_direct_non_transactional_updates +0 +SELECT @@session.sql_log_bin; +@@session.sql_log_bin +1 +commit; +insert into t2 values (4); +# Test that the session variable 'binlog_format', +# 'binlog_direct_non_transactional_updates' and 'sql_log_bin' are +# read-only inside an AUTOCOMMIT=0 transaction with +# preceding transactional updates. +# Current session values are ROW, FALSE, TRUE, respectively. +set @@session.binlog_format= statement; +ERROR HY000: Cannot modify @@session.binlog_format inside a transaction +set @@session.binlog_direct_non_transactional_updates= TRUE; +ERROR HY000: Cannot modify @@session.binlog_direct_non_transactional_updates inside a transaction +set @@session.sql_log_bin= FALSE; +ERROR HY000: Cannot modify @@session.sql_log_bin inside a transaction +SELECT @@session.binlog_format; +@@session.binlog_format +ROW +SELECT @@session.binlog_direct_non_transactional_updates; +@@session.binlog_direct_non_transactional_updates +0 +SELECT @@session.sql_log_bin; +@@session.sql_log_bin +1 +commit; +begin; +insert into t2 values (5); +# Test that the global variable 'binlog_format' and +# 'binlog_direct_non_transactional_updates' are +# writable inside a transaction. +# Current session values are ROW, FALSE, TRUE respectively. +SELECT @@global.binlog_format; +@@global.binlog_format +ROW +set @@global.binlog_format= statement; +set @@global.binlog_direct_non_transactional_updates= TRUE; +SELECT @@global.binlog_format; +@@global.binlog_format +STATEMENT +SELECT @@global.binlog_direct_non_transactional_updates; +@@global.binlog_direct_non_transactional_updates +1 +commit; +set @@global.binlog_format= @save_binlog_format; +set @@global.binlog_direct_non_transactional_updates= @save_binlog_dirct; +create table t3(a int, b int) engine= innodb; +create table t4(a int) engine= innodb; +create table t5(a int) engine= innodb; +create trigger tr1 after insert on t3 for each row begin +insert into t4(a) values(1); +set @@session.binlog_format= statement; +insert into t4(a) values(2); +insert into t5(a) values(3); +end | +# Test that the session variable 'binlog_format' is read-only +# in sub-statements. +# Current session value is ROW. +insert into t3(a,b) values(1,1); +ERROR HY000: Cannot change the binary logging format inside a stored function or trigger +SELECT @@session.binlog_format; +@@session.binlog_format +ROW +create table t6(a int, b int) engine= innodb; +create table t7(a int) engine= innodb; +create table t8(a int) engine= innodb; +create trigger tr2 after insert on t6 for each row begin +insert into t7(a) values(1); +set @@session.binlog_direct_non_transactional_updates= TRUE; +insert into t7(a) values(2); +insert into t8(a) values(3); +end | +# Test that the session variable +# 'binlog_direct_non_transactional_updates' is +# read-only in sub-statements. +# Current session value is FALSE. +insert into t6(a,b) values(1,1); +ERROR HY000: Cannot change the binlog direct flag inside a stored function or trigger +SELECT @@session.binlog_direct_non_transactional_updates; +@@session.binlog_direct_non_transactional_updates +0 +create table t9(a int, b int) engine= innodb; +create table t10(a int) engine= innodb; +create table t11(a int) engine= innodb; +create trigger tr3 after insert on t9 for each row begin +insert into t10(a) values(1); +set @@session.sql_log_bin= TRUE; +insert into t10(a) values(2); +insert into t11(a) values(3); +end | +# Test that the session variable 'sql_log_bin' is +# read-only in sub-statements. +# Current session value is FALSE. +insert into t9(a,b) values(1,1); +ERROR HY000: Cannot change the sql_log_bin inside a stored function or trigger +SELECT @@session.sql_log_bin; +@@session.sql_log_bin +1 +drop table t1; +drop table t2; +drop table t3; +drop table t4; +drop table t5; +drop table t6; +drop table t7; +drop table t8; +drop table t9; +drop table t10; +drop table t11; diff --git a/mysql-test/suite/binlog/r/binlog_table_map_optional_metadata.result b/mysql-test/suite/binlog/r/binlog_table_map_optional_metadata.result new file mode 100644 index 00000000..cb34f48f --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_table_map_optional_metadata.result @@ -0,0 +1,312 @@ +RESET MASTER; +SET GLOBAL binlog_row_metadata = MINIMAL; +# +# Temporal types can be printed correctly +# +CREATE TABLE t1(c_year YEAR, c_date DATE, c_time TIME, c_time_f TIME(3), +c_datetime DATETIME, c_datetime_f DATETIME(3), +c_timestamp TIMESTAMP, c_timestamp_f TIMESTAMP(3) DEFAULT "2017-1-1 10:10:10"); +INSERT INTO t1(c_year) VALUES(2017); +# Columns(YEAR, +# DATE, +# TIME, +# TIME(3), +# DATETIME, +# DATETIME(3), +# TIMESTAMP NOT NULL, +# TIMESTAMP(3) NOT NULL) +DROP TABLE t1; +RESET MASTER; +# +# Geometry types can be printed correctly +# +CREATE TABLE t1 (c_geo GEOMETRY, c_point POINT, c_linestring LINESTRING, +c_polygon POLYGON, c_multi_point MULTIPOINT, +c_multi_linestring MULTILINESTRING, c_multi_polygon MULTIPOLYGON, +c_geometrycollection GEOMETRYCOLLECTION, c_char CHAR(100)); +INSERT INTO t1(c_point) VALUES(ST_PointFromText('POINT(10 10)')); +# Columns(GEOMETRY, +# POINT, +# LINESTRING, +# POLYGON, +# MULTIPOINT, +# MULTILINESTRING, +# MULTIPOLYGON, +# GEOMETRYCOLLECTION, +# CHAR(100) CHARSET latin1 COLLATE latin1_swedish_ci) +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1(c_point) VALUES(ST_PointFromText('POINT(10 10)')); +# Columns(`c_geo` GEOMETRY, +# `c_point` POINT, +# `c_linestring` LINESTRING, +# `c_polygon` POLYGON, +# `c_multi_point` MULTIPOINT, +# `c_multi_linestring` MULTILINESTRING, +# `c_multi_polygon` MULTIPOLYGON, +# `c_geometrycollection` GEOMETRYCOLLECTION, +# `c_char` CHAR(100) CHARSET latin1 COLLATE latin1_swedish_ci) +DROP TABLE t1; +RESET MASTER; +# +# Numeric types can be printed correctly +# +CREATE TABLE t1(c_bit BIT(10), c_bool BOOL, c_smallint SMALLINT, +c_mediumint MEDIUMINT, c_int INT UNSIGNED, c_bigint BIGINT, +c_float FLOAT UNSIGNED, c_double DOUBLE, c_decimal DECIMAL(10, 2)); +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1(c_bool) VALUES(1); +# UNSIGNED flag should be printed +# Columns(BIT(10), +# TINYINT, +# SMALLINT, +# MEDIUMINT, +# INT UNSIGNED, +# BIGINT, +# FLOAT UNSIGNED, +# DOUBLE, +# DECIMAL(10,2)) +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1(c_bool) VALUES(1); +# Columns(`c_bit` BIT(10), +# `c_bool` TINYINT, +# `c_smallint` SMALLINT, +# `c_mediumint` MEDIUMINT, +# `c_int` INT UNSIGNED, +# `c_bigint` BIGINT, +# `c_float` FLOAT UNSIGNED, +# `c_double` DOUBLE, +# `c_decimal` DECIMAL(10,2)) +DROP TABLE t1; +RESET MASTER; +# +# Character types can be printed correctly +# +CREATE TABLE t1(c_char CHAR(10), c_varchar VARCHAR(500), +c_tinytext TINYTEXT, c_text TEXT, +c_mediumtext MEDIUMTEXT, c_longtext LONGTEXT CHARSET utf8); +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1(c_char) VALUES("1"); +# Columns(CHAR(10) CHARSET latin1 COLLATE latin1_swedish_ci, +# VARCHAR(500) CHARSET latin1 COLLATE latin1_swedish_ci, +# TINYTEXT CHARSET latin1 COLLATE latin1_swedish_ci, +# TEXT CHARSET latin1 COLLATE latin1_swedish_ci, +# MEDIUMTEXT CHARSET latin1 COLLATE latin1_swedish_ci, +# LONGTEXT CHARSET utf8 COLLATE utf8_general_ci) +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1(c_char) VALUES("1"); +# Columns(`c_char` CHAR(10) CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_varchar` VARCHAR(500) CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_tinytext` TINYTEXT CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_text` TEXT CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_mediumtext` MEDIUMTEXT CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_longtext` LONGTEXT CHARSET utf8 COLLATE utf8_general_ci) +DROP TABLE t1; +RESET MASTER; +# +# Column names with non-ascii characters and escape characters can be printed correctly +# +set names utf8; +CREATE TABLE t1(`åäö表\a'``"` INT); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `åäö表\a'``"` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +INSERT INTO t1 VALUES(1); +# Columns(`åäö表\\a\'`"` INT) +DROP TABLE t1; +RESET MASTER; +# +# Charsets can be printed correctly +# +CREATE TABLE t1(c_char_utf8 CHAR(10) CHARSET utf8, +c_varchar_utf8 VARCHAR(10) CHARSET utf8, +c_text_utf8 TEXT CHARSET utf8); +INSERT INTO t1 VALUES("1", "2", "3"); +# Columns(`c_char_utf8` CHAR(10) CHARSET utf8 COLLATE utf8_general_ci, +# `c_varchar_utf8` VARCHAR(10) CHARSET utf8 COLLATE utf8_general_ci, +# `c_text_utf8` TEXT CHARSET utf8 COLLATE utf8_general_ci) +DROP TABLE t1; +RESET MASTER; +CREATE TABLE t1(c_utf8mb4_520 CHAR(10) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci, +c_utf8mb4_0900 VARCHAR(10) CHARSET utf8mb4 COLLATE utf8mb4_polish_ci, +c_utf8mb4_def TEXT CHARSET utf8mb4); +INSERT INTO t1 VALUES("1", "2", "3"); +# Columns(`c_utf8mb4_520` CHAR(10) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci, +# `c_utf8mb4_0900` VARCHAR(10) CHARSET utf8mb4 COLLATE utf8mb4_polish_ci, +# `c_utf8mb4_def` TEXT CHARSET utf8mb4 COLLATE utf8mb4_general_ci) +DROP TABLE t1; +RESET MASTER; +# +# Blob and binary columns can be printed correctly +# +CREATE TABLE t1(c_binary BINARY(10), c_varbinary VARBINARY(10), +c_tinyblob TINYBLOB, c_blob BLOB, +c_mediumblob MEDIUMBLOB, c_longblob LONGBLOB); +INSERT INTO t1 VALUES("1", "2", "3", "4", "5", "6"); +# Columns(`c_binary` BINARY(10), +# `c_varbinary` VARBINARY(10), +# `c_tinyblob` TINYBLOB, +# `c_blob` BLOB, +# `c_mediumblob` MEDIUMBLOB, +# `c_longblob` LONGBLOB) +DROP TABLE t1; +RESET MASTER; +# +# Verify that SET string values and character sets can be printed correctly +# +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 latin1, +c_set_4 SET("set3_v1_Ã¥", "set3_v2_ä", "set3_v3_ö") CHARACTER SET swe7 COLLATE swe7_bin); +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1 VALUES("set1_v1_Ã¥", "set2_v3_ö", "set3_v1_Ã¥"); +# Columns(SET, +# SET, +# SET) +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1 VALUES("set1_v1_Ã¥", "set2_v3_ö", "set3_v1_Ã¥"); +# Columns(`c_set_1` SET('set1_v1_å','set1_v2_ä','set1_v3_ö') CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_set_2` SET('set2_v1_å','set2_v2_ä','set2_v3_ö') CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_set_4` SET('set3_v1_}','set3_v2_{','set3_v3_|') CHARSET swe7 COLLATE swe7_bin) +DROP TABLE t1; +RESET MASTER; +# +# Verify that ENUM string values and character sets can be printed correctly +# +CREATE TABLE t1( +c_enum_1 ENUM("enum1_v1_Ã¥", "enum1_v2_ä", "enum1_v3_ö"), +c_enum_3 ENUM("enum2_v1_Ã¥", "enum2_v2_ä", "enum2_v3_ö") CHARACTER SET latin1, +c_enum_4 ENUM("enum3_v1_Ã¥", "enum3_v2_ä", "enum3_v3_ö") CHARACTER SET swe7 COLLATE swe7_bin); +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1 VALUES("enum1_v1_Ã¥", "enum2_v3_ö", "enum3_v1_Ã¥"); +# Columns(ENUM, +# ENUM, +# ENUM) +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1 VALUES("enum1_v1_Ã¥", "enum2_v3_ö", "enum3_v1_Ã¥"); +# Columns(`c_enum_1` ENUM('enum1_v1_å','enum1_v2_ä','enum1_v3_ö') CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_enum_3` ENUM('enum2_v1_å','enum2_v2_ä','enum2_v3_ö') CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_enum_4` ENUM('enum3_v1_}','enum3_v2_{','enum3_v3_|') CHARSET swe7 COLLATE swe7_bin) +DROP TABLE t1; +RESET MASTER; +# +# Verify that explicit NOT NULL can be printed correctly +# +CREATE TABLE t1(c_not_null1 INT NOT NULL, c_null1 INT, c_not_null2 INT NOT NULL, +c_null2 INT); +INSERT INTO t1 VALUES(1, 2, 3, 4); +# Columns(`c_not_null1` INT NOT NULL, +# `c_null1` INT, +# `c_not_null2` INT NOT NULL, +# `c_null2` INT) +DROP TABLE t1; +RESET MASTER; +# +# Verify that primary key can be printed correctly +# +CREATE TABLE t1(c_key1 INT, c_key3 INT, c_not_key INT, c_key2 INT, +PRIMARY KEY(c_key1, c_key2, c_key3)); +INSERT INTO t1 VALUES(1, 2, 3, 4); +# Columns(`c_key1` INT NOT NULL, +# `c_key3` INT NOT NULL, +# `c_not_key` INT, +# `c_key2` INT NOT NULL) +# Primary Key +DROP TABLE t1; +RESET MASTER; +CREATE TABLE t1(c_key1 CHAR(100), c_key3 CHAR(100), c_not_key INT, c_key2 CHAR(10), +PRIMARY KEY(c_key1(5), c_key2, c_key3(10))); +INSERT INTO t1 VALUES("1", "2", 3, "4"); +# Columns(`c_key1` CHAR(100) NOT NULL CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_key3` CHAR(100) NOT NULL CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_not_key` INT, +# `c_key2` CHAR(10) NOT NULL CHARSET latin1 COLLATE latin1_swedish_ci) +# Primary Key +RESET MASTER; +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1 VALUES("2", "2", 3, "4"); +# Columns(CHAR(100) NOT NULL CHARSET latin1 COLLATE latin1_swedish_ci, +# CHAR(100) NOT NULL CHARSET latin1 COLLATE latin1_swedish_ci, +# INT, +# CHAR(10) NOT NULL CHARSET latin1 COLLATE latin1_swedish_ci) +RESET MASTER; +# +# Coverage test: Print column index instead of column name if column name +# is not binlogged. +# +SET GLOBAL binlog_row_metadata = FULL; +SET SESSION debug_dbug = 'd, dont_log_column_name'; +INSERT INTO t1 VALUES("3", "2", 3, "4"); +# Columns(`c_key1` CHAR(100) NOT NULL CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_key3` CHAR(100) NOT NULL CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_not_key` INT, +# `c_key2` CHAR(10) NOT NULL CHARSET latin1 COLLATE latin1_swedish_ci) +# Primary Key +DROP TABLE t1; +RESET MASTER; +# +# Coverage test: Inject an invalid column type +# +CREATE TABLE t1(c1 int, c2 BLOB); +SET SESSION debug_dbug = 'd,inject_invalid_column_type'; +INSERT INTO t1 VALUES(1, "a"); +# Columns(`c1` INT, +# `c2` INVALID_TYPE(230)) +RESET MASTER; +# +# Coverage test: Inject an invalid BLOB metadata +# +SET SESSION debug_dbug = 'd,inject_invalid_blob_size'; +INSERT INTO t1 VALUES(2, "b"); +# Columns(`c1` INT, +# `c2` INVALID_BLOB(5)) +# +# Coverage test: Inject an invalid Geometry type +# +DROP TABLE t1; +CREATE TABLE t1(c_geometry GEOMETRY, c_point POINT, c_multilinestring MULTILINESTRING); +RESET MASTER; +SET SESSION debug_dbug = 'd,inject_invalid_geometry_type'; +INSERT INTO t1(c_point) VALUES(ST_PointFromText('POINT(10 10)')); +# Columns(`c_geometry` INVALID_GEOMETRY_TYPE(100), +# `c_point` INVALID_GEOMETRY_TYPE(100), +# `c_multilinestring` INVALID_GEOMETRY_TYPE(100)) +DROP TABLE t1; +RESET MASTER; +# +# Comptibility Test: Verify mysqlbinlog can print OLD table_map_log_event +# without any optional metadata +# +CREATE TABLE t1(c_int INT, c_tiny_int_unsigned TINYINT UNSIGNED, +c_binary BINARY(10), c_text TEXT, c_point POINT); +SET session debug_dbug='d,simulate_no_optional_metadata'; +INSERT INTO t1(c_int) VALUES(1); +# Columns(INT, +# TINYINT, +# BINARY(10), +# BLOB, +# GEOMETRY) +DROP TABLE t1; +RESET MASTER; +# +# Simulate error on initializing charset and primary key metadata +# +CREATE TABLE t1(c1 char(10) PRIMARY KEY); +SET session debug_dbug='d,simulate_init_charset_field_error'; +INSERT INTO t1 VALUES("a"); +SET GLOBAL binlog_row_metadata = FULL; +SET session debug_dbug='d,simulate_init_primary_key_field_error'; +INSERT INTO t1 VALUES("b"); +# Columns(BINARY(10) NOT NULL) +# Columns(BINARY(10) NOT NULL) +SET SESSION debug_dbug = ''; +SET GLOBAL binlog_row_metadata = NO_LOG; +DROP TABLE t1; +RESET MASTER; diff --git a/mysql-test/suite/binlog/r/binlog_table_map_optional_metadata_binary.result b/mysql-test/suite/binlog/r/binlog_table_map_optional_metadata_binary.result new file mode 100644 index 00000000..789bc6cd --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_table_map_optional_metadata_binary.result @@ -0,0 +1,64 @@ +# +# Verify that SET string values and character sets can be printed correctly +# +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 binary); +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1 VALUES("set1_v1_Ã¥", "set2_v2_ä"); +# Columns(SET, +# SET) +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1 VALUES("set1_v1_Ã¥", "set2_v2_ä"); +# Columns(`c_set_1` SET('set1_v1_å','set1_v2_ä','set1_v3_ö') CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_set_2` SET('set2_v1_Ã¥','set2_v2_ä','set2_v3_ö') CHARSET binary COLLATE binary) +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; +c_set_1 HEX(c_set_1) +set1_v1_Ã¥ 736574315F76315FE5 +set1_v1_Ã¥ 736574315F76315FE5 +set1_v3_ö 736574315F76335FF6 +set1_v1_Ã¥ 736574315F76315FE5 +SELECT c_set_2, HEX(c_set_2) FROM t1; +c_set_2 HEX(c_set_2) +set2_v2_ä 736574325F76325FC3A4 +set2_v2_ä 736574325F76325FC3A4 +set2_v3_ö 736574325F76335FC3B6 +set2_v1_Ã¥ 736574325F76315FC3A5 +DROP TABLE t1; +RESET MASTER; +# +# Verify that ENUM string values and character sets can be printed correctly +# +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 binary); +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1 VALUES("enum1_v1_Ã¥", "enum2_v2_ä"); +# Columns(ENUM, +# ENUM) +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1 VALUES("enum1_v1_Ã¥", "enum2_v2_ä"); +# Columns(`c_enum_1` ENUM('enum1_v1_å','enum1_v2_ä','enum1_v3_ö') CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_enum_2` ENUM('enum2_v1_Ã¥','enum2_v2_ä','enum2_v3_ö') CHARSET binary COLLATE binary) +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; +c_enum_1 HEX(c_enum_1) +enum1_v1_Ã¥ 656E756D315F76315FE5 +enum1_v1_Ã¥ 656E756D315F76315FE5 +enum1_v3_ö 656E756D315F76335FF6 +enum1_v1_Ã¥ 656E756D315F76315FE5 +SELECT c_enum_2, HEX(c_enum_2) FROM t1; +c_enum_2 HEX(c_enum_2) +enum2_v2_ä 656E756D325F76325FC3A4 +enum2_v2_ä 656E756D325F76325FC3A4 +enum2_v3_ö 656E756D325F76335FC3B6 +enum2_v1_Ã¥ 656E756D325F76315FC3A5 +DROP TABLE t1; +RESET MASTER; +SET GLOBAL binlog_row_metadata = NO_LOG; diff --git a/mysql-test/suite/binlog/r/binlog_table_map_optional_metadata_ucs2.result b/mysql-test/suite/binlog/r/binlog_table_map_optional_metadata_ucs2.result new file mode 100644 index 00000000..1b1d2a79 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_table_map_optional_metadata_ucs2.result @@ -0,0 +1,64 @@ +# +# Verify that SET string values and character sets can be printed correctly +# +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_ä"); +# Columns(SET, +# SET) +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1 VALUES("set1_v1_Ã¥", "set2_v2_ä"); +# Columns(`c_set_1` SET('set1_v1_å','set1_v2_ä','set1_v3_ö') CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_set_2` SET('\0s\0e\0t\02\0_\0v\01\0_\0å','\0s\0e\0t\02\0_\0v\02\0_\0ä','\0s\0e\0t\02\0_\0v\03\0_\0ö') CHARSET ucs2 COLLATE ucs2_general_ci) +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; +c_set_1 HEX(c_set_1) +set1_v1_Ã¥ 736574315F76315FE5 +set1_v1_Ã¥ 736574315F76315FE5 +set1_v3_ö 736574315F76335FF6 +set1_v1_Ã¥ 736574315F76315FE5 +SELECT c_set_2, HEX(c_set_2) FROM t1; +c_set_2 HEX(c_set_2) +set2_v2_ä 0073006500740032005F00760032005F00E4 +set2_v2_ä 0073006500740032005F00760032005F00E4 +set2_v3_ö 0073006500740032005F00760033005F00F6 +set2_v1_Ã¥ 0073006500740032005F00760031005F00E5 +DROP TABLE t1; +RESET MASTER; +# +# Verify that ENUM string values and character sets can be printed correctly +# +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_ä"); +# Columns(ENUM, +# ENUM) +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1 VALUES("enum1_v1_Ã¥", "enum2_v2_ä"); +# Columns(`c_enum_1` ENUM('enum1_v1_å','enum1_v2_ä','enum1_v3_ö') CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_enum_2` ENUM('\0e\0n\0u\0m\02\0_\0v\01\0_\0å','\0e\0n\0u\0m\02\0_\0v\02\0_\0ä','\0e\0n\0u\0m\02\0_\0v\03\0_\0ö') CHARSET ucs2 COLLATE ucs2_general_ci) +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; +c_enum_1 HEX(c_enum_1) +enum1_v1_Ã¥ 656E756D315F76315FE5 +enum1_v1_Ã¥ 656E756D315F76315FE5 +enum1_v3_ö 656E756D315F76335FF6 +enum1_v1_Ã¥ 656E756D315F76315FE5 +SELECT c_enum_2, HEX(c_enum_2) FROM t1; +c_enum_2 HEX(c_enum_2) +enum2_v2_ä 0065006E0075006D0032005F00760032005F00E4 +enum2_v2_ä 0065006E0075006D0032005F00760032005F00E4 +enum2_v3_ö 0065006E0075006D0032005F00760033005F00F6 +enum2_v1_Ã¥ 0065006E0075006D0032005F00760031005F00E5 +DROP TABLE t1; +RESET MASTER; +SET GLOBAL binlog_row_metadata = NO_LOG; diff --git a/mysql-test/suite/binlog/r/binlog_table_map_optional_metadata_utf32.result b/mysql-test/suite/binlog/r/binlog_table_map_optional_metadata_utf32.result new file mode 100644 index 00000000..6fdda842 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_table_map_optional_metadata_utf32.result @@ -0,0 +1,64 @@ +# +# Verify that SET string values and character sets can be printed correctly +# +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 utf32); +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1 VALUES("set1_v1_Ã¥", "set2_v2_ä"); +# Columns(SET, +# SET) +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1 VALUES("set1_v1_Ã¥", "set2_v2_ä"); +# Columns(`c_set_1` SET('set1_v1_å','set1_v2_ä','set1_v3_ö') CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_set_2` SET('\0\0\0s\0\0\0e\0\0\0t\0\0\02\0\0\0_\0\0\0v\0\0\01\0\0\0_\0\0\0å','\0\0\0s\0\0\0e\0\0\0t\0\0\02\0\0\0_\0\0\0v\0\0\02\0\0\0_\0\0\0ä','\0\0\0s\0\0\0e\0\0\0t\0\0\02\0\0\0_\0\0\0v\0\0\03\0\0\0_\0\0\0ö') CHARSET utf32 COLLATE utf32_general_ci) +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; +c_set_1 HEX(c_set_1) +set1_v1_Ã¥ 736574315F76315FE5 +set1_v1_Ã¥ 736574315F76315FE5 +set1_v3_ö 736574315F76335FF6 +set1_v1_Ã¥ 736574315F76315FE5 +SELECT c_set_2, HEX(c_set_2) FROM t1; +c_set_2 HEX(c_set_2) +set2_v2_ä 000000730000006500000074000000320000005F00000076000000320000005F000000E4 +set2_v2_ä 000000730000006500000074000000320000005F00000076000000320000005F000000E4 +set2_v3_ö 000000730000006500000074000000320000005F00000076000000330000005F000000F6 +set2_v1_Ã¥ 000000730000006500000074000000320000005F00000076000000310000005F000000E5 +DROP TABLE t1; +RESET MASTER; +# +# Verify that ENUM string values and character sets can be printed correctly +# +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 utf32); +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1 VALUES("enum1_v1_Ã¥", "enum2_v2_ä"); +# Columns(ENUM, +# ENUM) +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1 VALUES("enum1_v1_Ã¥", "enum2_v2_ä"); +# Columns(`c_enum_1` ENUM('enum1_v1_å','enum1_v2_ä','enum1_v3_ö') CHARSET latin1 COLLATE latin1_swedish_ci, +# `c_enum_2` ENUM('\0\0\0e\0\0\0n\0\0\0u\0\0\0m\0\0\02\0\0\0_\0\0\0v\0\0\01\0\0\0_\0\0\0å','\0\0\0e\0\0\0n\0\0\0u\0\0\0m\0\0\02\0\0\0_\0\0\0v\0\0\02\0\0\0_\0\0\0ä','\0\0\0e\0\0\0n\0\0\0u\0\0\0m\0\0\02\0\0\0_\0\0\0v\0\0\03\0\0\0_\0\0\0ö') CHARSET utf32 COLLATE utf32_general_ci) +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; +c_enum_1 HEX(c_enum_1) +enum1_v1_Ã¥ 656E756D315F76315FE5 +enum1_v1_Ã¥ 656E756D315F76315FE5 +enum1_v3_ö 656E756D315F76335FF6 +enum1_v1_Ã¥ 656E756D315F76315FE5 +SELECT c_enum_2, HEX(c_enum_2) FROM t1; +c_enum_2 HEX(c_enum_2) +enum2_v2_ä 000000650000006E000000750000006D000000320000005F00000076000000320000005F000000E4 +enum2_v2_ä 000000650000006E000000750000006D000000320000005F00000076000000320000005F000000E4 +enum2_v3_ö 000000650000006E000000750000006D000000320000005F00000076000000330000005F000000F6 +enum2_v1_Ã¥ 000000650000006E000000750000006D000000320000005F00000076000000310000005F000000E5 +DROP TABLE t1; +RESET MASTER; +SET GLOBAL binlog_row_metadata = NO_LOG; diff --git a/mysql-test/suite/binlog/r/binlog_tmp_table.result b/mysql-test/suite/binlog/r/binlog_tmp_table.result new file mode 100644 index 00000000..bfc26aaf --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_tmp_table.result @@ -0,0 +1,67 @@ +RESET MASTER; +connect master,127.0.0.1,root,,test,$MASTER_MYPORT,; +connect master1,127.0.0.1,root,,test,$MASTER_MYPORT,; +create table foo (a int); +flush logs; +connection master; +create temporary table tmp1_foo like foo; +connection master1; +create temporary table tmp2_foo (a int); +connection master; +insert into tmp1_foo values (1), (2), (3), (4); +connection master1; +replace into tmp2_foo values (1), (2), (3), (4); +connection master; +update tmp1_foo set a=2*a-1; +connection master1; +update tmp2_foo set a=2*a; +connection master; +delete from tmp1_foo where a < 5; +connection master1; +delete from tmp2_foo where a < 5; +connection master; +insert into foo select * from tmp1_foo; +connection master1; +insert into foo select * from tmp2_foo; +connection master; +truncate table tmp1_foo; +connection master1; +truncate table tmp2_foo; +flush logs; +connection default; +select * from foo; +a +5 +7 +6 +8 +drop table foo; +create table foo (a int); +select * from foo; +a +5 +7 +6 +8 +drop table foo; +RESET MASTER; +connect con1,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK; +connect con2,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK; +connection con1; +create database b51226; +use b51226; +create temporary table t1(i int); +connection con2; +use b51226; +create temporary table t1(i int); +connection con1; +create temporary table t1(i int); +ERROR 42S01: Table 't1' already exists +disconnect con1; +connection default; +connection con2; +insert into t1 values(1); +disconnect con2; +connection default; +DROP DATABASE b51226; +FLUSH LOGS; diff --git a/mysql-test/suite/binlog/r/binlog_tmp_table_row.result b/mysql-test/suite/binlog/r/binlog_tmp_table_row.result new file mode 100644 index 00000000..71bd75d8 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_tmp_table_row.result @@ -0,0 +1,7 @@ +RESET MASTER; +#Create table test +create temporary table t1(a int, b int); +#Add index test +create index index_a on t1(a); +#drop index test +drop index index_a on t1; diff --git a/mysql-test/suite/binlog/r/binlog_trigger.result b/mysql-test/suite/binlog/r/binlog_trigger.result new file mode 100644 index 00000000..48ec1dd6 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_trigger.result @@ -0,0 +1,24 @@ +# +# WL#3253: multiple triggers per table +# +# Testing that the FOLLOWS and PRECEDES clauses get logged +CREATE TABLE t1 (a INT, b INT); +CREATE TRIGGER tr1_bi BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 (a) VALUES (NEW.a + 100); +CREATE TRIGGER tr4_bi BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 (a) VALUES (NEW.a + 300); +CREATE TRIGGER tr2_bi BEFORE INSERT ON t1 FOR EACH ROW FOLLOWS tr1_bi INSERT INTO t2 (a) VALUES (NEW.a + 200); +CREATE TRIGGER tr3_bi BEFORE INSERT ON t1 FOR EACH ROW precedes tr4_bi INSERT INTO t2 (a) VALUES (NEW.a + 400); +DROP TABLE t1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT, b INT) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` TRIGGER tr1_bi BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 (a) VALUES (NEW.a + 100) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` TRIGGER tr4_bi BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 (a) VALUES (NEW.a + 300) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` TRIGGER tr2_bi BEFORE INSERT ON t1 FOR EACH ROW FOLLOWS tr1_bi INSERT INTO t2 (a) VALUES (NEW.a + 200) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE DEFINER=`root`@`localhost` TRIGGER tr3_bi BEFORE INSERT ON t1 FOR EACH ROW precedes tr4_bi INSERT INTO t2 (a) VALUES (NEW.a + 400) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ diff --git a/mysql-test/suite/binlog/r/binlog_truncate_innodb.result b/mysql-test/suite/binlog/r/binlog_truncate_innodb.result new file mode 100644 index 00000000..87ce8e30 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_truncate_innodb.result @@ -0,0 +1,438 @@ +SET @old_binlog_format=@@binlog_format; +SET BINLOG_FORMAT=ROW; +RESET MASTER; +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t2 VALUES (1),(2),(3); +**** Truncate of empty table shall be logged +TRUNCATE TABLE t1; +TRUNCATE TABLE t2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 +DROP TABLE t1,t2; +# +# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE +# +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1),(2); +BEGIN; +INSERT INTO t2 SELECT * FROM t1; +connect truncate,localhost,root,,; +TRUNCATE TABLE t1; +connection default; +INSERT INTO t2 SELECT * FROM t1; +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +COMMIT; +connection truncate; +# Reaping TRUNCATE TABLE +SELECT COUNT(*) FROM t1; +COUNT(*) +0 +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +connection default; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +disconnect truncate; +DROP TABLE t1,t2; +# Even though the isolation level might be permissive, truncate +# table follows a stricter isolation as its locking is based on +# (exclusive) metadata locks. +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t2 VALUES (1),(2),(3); +SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +**** Truncate of empty table shall be logged +TRUNCATE TABLE t1; +SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +TRUNCATE TABLE t2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 +DROP TABLE t1,t2; +# +# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE +# +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1),(2); +SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +BEGIN; +INSERT INTO t2 SELECT * FROM t1; +connect truncate,localhost,root,,; +TRUNCATE TABLE t1; +connection default; +INSERT INTO t2 SELECT * FROM t1; +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +COMMIT; +connection truncate; +# Reaping TRUNCATE TABLE +SELECT COUNT(*) FROM t1; +COUNT(*) +0 +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +connection default; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +disconnect truncate; +DROP TABLE t1,t2; +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t2 VALUES (1),(2),(3); +SET TRANSACTION ISOLATION LEVEL READ COMMITTED; +**** Truncate of empty table shall be logged +TRUNCATE TABLE t1; +SET TRANSACTION ISOLATION LEVEL READ COMMITTED; +TRUNCATE TABLE t2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 +DROP TABLE t1,t2; +# +# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE +# +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1),(2); +SET TRANSACTION ISOLATION LEVEL READ COMMITTED; +BEGIN; +INSERT INTO t2 SELECT * FROM t1; +connect truncate,localhost,root,,; +TRUNCATE TABLE t1; +connection default; +INSERT INTO t2 SELECT * FROM t1; +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +COMMIT; +connection truncate; +# Reaping TRUNCATE TABLE +SELECT COUNT(*) FROM t1; +COUNT(*) +0 +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +connection default; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +disconnect truncate; +DROP TABLE t1,t2; +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t2 VALUES (1),(2),(3); +SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +**** Truncate of empty table shall be logged +TRUNCATE TABLE t1; +SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +TRUNCATE TABLE t2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 +DROP TABLE t1,t2; +# +# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE +# +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1),(2); +SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +BEGIN; +INSERT INTO t2 SELECT * FROM t1; +connect truncate,localhost,root,,; +TRUNCATE TABLE t1; +connection default; +INSERT INTO t2 SELECT * FROM t1; +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +COMMIT; +connection truncate; +# Reaping TRUNCATE TABLE +SELECT COUNT(*) FROM t1; +COUNT(*) +0 +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +connection default; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +disconnect truncate; +DROP TABLE t1,t2; +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t2 VALUES (1),(2),(3); +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +**** Truncate of empty table shall be logged +TRUNCATE TABLE t1; +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +TRUNCATE TABLE t2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 +DROP TABLE t1,t2; +# +# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE +# +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1),(2); +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +BEGIN; +INSERT INTO t2 SELECT * FROM t1; +connect truncate,localhost,root,,; +TRUNCATE TABLE t1; +connection default; +INSERT INTO t2 SELECT * FROM t1; +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +COMMIT; +connection truncate; +# Reaping TRUNCATE TABLE +SELECT COUNT(*) FROM t1; +COUNT(*) +0 +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +connection default; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +disconnect truncate; +DROP TABLE t1,t2; +SET BINLOG_FORMAT=STATEMENT; +RESET MASTER; +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t2 VALUES (1),(2),(3); +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +**** Truncate of empty table shall be logged +TRUNCATE TABLE t1; +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +TRUNCATE TABLE t2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 +DROP TABLE t1,t2; +# +# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE +# +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1),(2); +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +BEGIN; +INSERT INTO t2 SELECT * FROM t1; +connect truncate,localhost,root,,; +TRUNCATE TABLE t1; +connection default; +INSERT INTO t2 SELECT * FROM t1; +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +COMMIT; +connection truncate; +# Reaping TRUNCATE TABLE +SELECT COUNT(*) FROM t1; +COUNT(*) +0 +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +connection default; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +disconnect truncate; +DROP TABLE t1,t2; +# Truncate is not supported for SBR if the isolation level is +# READ UNCOMMITTED or READ COMMITTED. These specific isolation +# levels are tested elsewhere. +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t2 VALUES (1),(2),(3); +SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +**** Truncate of empty table shall be logged +TRUNCATE TABLE t1; +SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +TRUNCATE TABLE t2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 +DROP TABLE t1,t2; +# +# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE +# +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1),(2); +SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +BEGIN; +INSERT INTO t2 SELECT * FROM t1; +connect truncate,localhost,root,,; +TRUNCATE TABLE t1; +connection default; +INSERT INTO t2 SELECT * FROM t1; +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +COMMIT; +connection truncate; +# Reaping TRUNCATE TABLE +SELECT COUNT(*) FROM t1; +COUNT(*) +0 +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +connection default; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +disconnect truncate; +DROP TABLE t1,t2; +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t2 VALUES (1),(2),(3); +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +**** Truncate of empty table shall be logged +TRUNCATE TABLE t1; +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +TRUNCATE TABLE t2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 +DROP TABLE t1,t2; +# +# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE +# +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1),(2); +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +BEGIN; +INSERT INTO t2 SELECT * FROM t1; +connect truncate,localhost,root,,; +TRUNCATE TABLE t1; +connection default; +INSERT INTO t2 SELECT * FROM t1; +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +COMMIT; +connection truncate; +# Reaping TRUNCATE TABLE +SELECT COUNT(*) FROM t1; +COUNT(*) +0 +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +connection default; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +disconnect truncate; +DROP TABLE t1,t2; +SET @@global.binlog_format = @old_binlog_format; +SET @@session.binlog_format = @old_binlog_format; diff --git a/mysql-test/suite/binlog/r/binlog_truncate_kill.result b/mysql-test/suite/binlog/r/binlog_truncate_kill.result new file mode 100644 index 00000000..780b84ec --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_truncate_kill.result @@ -0,0 +1,34 @@ +RESET MASTER; +connection default; +CREATE TABLE t1(id INT AUTO_INCREMENT PRIMARY KEY, a INT, b INT) ENGINE=INNODB; +INSERT INTO t1(a, b) VALUES(1,2),(2,4),(3,6),(4,8),(5,10); +SET DEBUG_SYNC = "open_and_process_table signal truncate_before_lock wait_for forever"; +TRUNCATE t1; +connect con1,localhost,root,,; +SET DEBUG_SYNC = "now wait_for truncate_before_lock"; +SELECT ((@id := id) - id) FROM information_schema.processlist WHERE processlist.info LIKE '%TRUNCATE t1%' AND state LIKE '%open_and_process_table%'; +((@id := id) - id) +0 +KILL QUERY @id; +connection default; +ERROR 70100: Query execution was interrupted +connection con1; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1(id INT AUTO_INCREMENT PRIMARY KEY, a INT, b INT) ENGINE=INNODB +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Intvar # # INSERT_ID=1 +master-bin.000001 # Query # # use `test`; INSERT INTO t1(a, b) VALUES(1,2),(2,4),(3,6),(4,8),(5,10) +master-bin.000001 # Xid # # COMMIT /* XID */ +disconnect con1; +connection default; +SELECT * FROM t1; +id a b +1 1 2 +2 2 4 +3 3 6 +4 4 8 +5 5 10 +DROP TABLE t1; +SET DEBUG_SYNC= 'RESET'; diff --git a/mysql-test/suite/binlog/r/binlog_truncate_myisam.result b/mysql-test/suite/binlog/r/binlog_truncate_myisam.result new file mode 100644 index 00000000..cdaab298 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_truncate_myisam.result @@ -0,0 +1,110 @@ +SET @old_binlog_format=@@binlog_format; +SET BINLOG_FORMAT=ROW; +RESET MASTER; +CREATE TABLE t1 (a INT) ENGINE=MyISAM; +CREATE TABLE t2 (a INT) ENGINE=MyISAM; +INSERT INTO t2 VALUES (1),(2),(3); +**** Truncate of empty table shall be logged +TRUNCATE TABLE t1; +TRUNCATE TABLE t2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 +DROP TABLE t1,t2; +# +# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE +# +CREATE TABLE t1 (a INT) ENGINE=MyISAM; +CREATE TABLE t2 (a INT) ENGINE=MyISAM; +INSERT INTO t1 VALUES (1),(2); +BEGIN; +INSERT INTO t2 SELECT * FROM t1; +connect truncate,localhost,root,,; +TRUNCATE TABLE t1; +connection default; +INSERT INTO t2 SELECT * FROM t1; +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +COMMIT; +connection truncate; +# Reaping TRUNCATE TABLE +SELECT COUNT(*) FROM t1; +COUNT(*) +0 +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +connection default; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +disconnect truncate; +DROP TABLE t1,t2; +SET BINLOG_FORMAT=STATEMENT; +RESET MASTER; +CREATE TABLE t1 (a INT) ENGINE=MyISAM; +CREATE TABLE t2 (a INT) ENGINE=MyISAM; +INSERT INTO t2 VALUES (1),(2),(3); +**** Truncate of empty table shall be logged +TRUNCATE TABLE t1; +TRUNCATE TABLE t2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t2 +DROP TABLE t1,t2; +# +# Bug#42643: InnoDB does not support replication of TRUNCATE TABLE +# +CREATE TABLE t1 (a INT) ENGINE=MyISAM; +CREATE TABLE t2 (a INT) ENGINE=MyISAM; +INSERT INTO t1 VALUES (1),(2); +BEGIN; +INSERT INTO t2 SELECT * FROM t1; +connect truncate,localhost,root,,; +TRUNCATE TABLE t1; +connection default; +INSERT INTO t2 SELECT * FROM t1; +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +COMMIT; +connection truncate; +# Reaping TRUNCATE TABLE +SELECT COUNT(*) FROM t1; +COUNT(*) +0 +SELECT COUNT(*) FROM t2; +COUNT(*) +4 +connection default; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; TRUNCATE TABLE t1 +disconnect truncate; +DROP TABLE t1,t2; +SET BINLOG_FORMAT=@old_binlog_format; diff --git a/mysql-test/suite/binlog/r/binlog_unsafe.result b/mysql-test/suite/binlog/r/binlog_unsafe.result new file mode 100644 index 00000000..a8143ef0 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_unsafe.result @@ -0,0 +1,2687 @@ +#### Setup tables #### +CREATE TABLE t0 (a CHAR(200)); +CREATE TABLE t1 (a CHAR(200)); +CREATE TABLE t2 (a CHAR(200)); +CREATE TABLE t3 (a CHAR(200)); +CREATE TABLE ta0 (a CHAR(200)); +CREATE TABLE ta1 (a CHAR(200)); +CREATE TABLE ta2 (a CHAR(200)); +CREATE TABLE ta3 (a CHAR(200)); +CREATE TABLE autoinc_table (a INT PRIMARY KEY AUTO_INCREMENT); +CREATE TABLE data_table (a CHAR(200)); +INSERT INTO data_table VALUES ('foo'); +CREATE TABLE trigger_table_1 (a INT); +CREATE TABLE trigger_table_2 (a INT); +CREATE TABLE trigger_table_3 (a INT); +CREATE TABLE double_autoinc_table (a INT PRIMARY KEY AUTO_INCREMENT); +CREATE TRIGGER double_autoinc_trig +BEFORE INSERT ON double_autoinc_table FOR EACH ROW +BEGIN +INSERT INTO autoinc_table VALUES (NULL); +END| +CREATE FUNCTION multi_unsafe_func() RETURNS INT +BEGIN +INSERT INTO t0 VALUES(CONCAT(@@hostname, @@hostname)); +INSERT INTO t0 VALUES(0); +INSERT INTO t0 VALUES(CONCAT(UUID(), @@hostname)); +RETURN 1; +END| +CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB"; + +==== Testing UUID() unsafeness ==== + +Invoking function func_retval_1 returning value from unsafe UUID() function. +CREATE FUNCTION func_retval_1() RETURNS VARCHAR(100) BEGIN INSERT INTO ta1 VALUES (47); RETURN UUID(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t1 VALUES (func_retval_1()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT func_retval_1(); + +Invoking function func_retval_2 returning value from function func_retval_1 returning value from unsafe UUID() function. +CREATE FUNCTION func_retval_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); RETURN func_retval_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 VALUES (func_retval_2()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT func_retval_2(); +DROP FUNCTION func_retval_2; + +Invoking function func_sidef_2 invoking function func_retval_1 returning value from unsafe UUID() function. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 VALUES (func_retval_1()); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking function func_retval_1 returning value from unsafe UUID() function. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 VALUES (func_retval_1()); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking function func_retval_1 returning value from unsafe UUID() function. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 VALUES (func_retval_1()); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_retval_2 returning value from function func_retval_1 returning value from unsafe UUID() function. +CREATE VIEW view_retval_2 AS SELECT func_retval_1(); +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT * FROM view_retval_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT * FROM view_retval_2; +DROP VIEW view_retval_2; + +Invoking prepared statement prep_2 invoking function func_retval_1 returning value from unsafe UUID() function. +PREPARE prep_2 FROM "INSERT INTO t1 VALUES (func_retval_1())"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP FUNCTION func_retval_1; + +Invoking function func_sidef_1 invoking unsafe UUID() function. +CREATE FUNCTION func_sidef_1() RETURNS VARCHAR(100) BEGIN INSERT INTO ta1 VALUES (47); INSERT INTO t0 VALUES (UUID()); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t1 SELECT func_sidef_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking function func_sidef_1 invoking unsafe UUID() function. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking function func_sidef_1 invoking unsafe UUID() function. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT func_sidef_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking function func_sidef_1 invoking unsafe UUID() function. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_sidef_2 invoking function func_sidef_1 invoking unsafe UUID() function. +CREATE VIEW view_sidef_2 AS SELECT func_sidef_1(); +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT * FROM view_sidef_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP VIEW view_sidef_2; + +Invoking prepared statement prep_2 invoking function func_sidef_1 invoking unsafe UUID() function. +PREPARE prep_2 FROM "INSERT INTO t1 SELECT func_sidef_1()"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP FUNCTION func_sidef_1; + +Invoking procedure proc_1 invoking unsafe UUID() function. +CREATE PROCEDURE proc_1() BEGIN INSERT INTO t0 VALUES (UUID()); INSERT INTO ta1 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking procedure proc_1 invoking unsafe UUID() function. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking procedure proc_1 invoking unsafe UUID() function. +CREATE PROCEDURE proc_2() BEGIN CALL proc_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking procedure proc_1 invoking unsafe UUID() function. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking procedure proc_1 invoking unsafe UUID() function. +PREPARE prep_2 FROM "CALL proc_1()"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP PROCEDURE proc_1; + +Invoking trigger trig_1 invoking unsafe UUID() function. +CREATE TRIGGER trig_1 BEFORE INSERT ON trigger_table_1 FOR EACH ROW BEGIN INSERT INTO ta1 VALUES (47); INSERT INTO t0 VALUES (UUID()); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_1 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking trigger trig_1 invoking unsafe UUID() function. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking trigger trig_1 invoking unsafe UUID() function. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO trigger_table_1 VALUES (1); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking trigger trig_1 invoking unsafe UUID() function. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking trigger trig_1 invoking unsafe UUID() function. +PREPARE prep_2 FROM "INSERT INTO trigger_table_1 VALUES (1)"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP TRIGGER trig_1; + +Invoking view view_retval_1 returning value from unsafe UUID() function. +CREATE VIEW view_retval_1 AS SELECT UUID(); +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t1 SELECT * FROM view_retval_1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT * FROM view_retval_1; + +Invoking function func_sidef_2 invoking view view_retval_1 returning value from unsafe UUID() function. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT * FROM view_retval_1; RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking view view_retval_1 returning value from unsafe UUID() function. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT * FROM view_retval_1; INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking view view_retval_1 returning value from unsafe UUID() function. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT * FROM view_retval_1; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_retval_2 returning value from view view_retval_1 returning value from unsafe UUID() function. +CREATE VIEW view_retval_2 AS SELECT * FROM view_retval_1; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT * FROM view_retval_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT * FROM view_retval_2; +DROP VIEW view_retval_2; + +Invoking prepared statement prep_2 invoking view view_retval_1 returning value from unsafe UUID() function. +PREPARE prep_2 FROM "INSERT INTO t1 SELECT * FROM view_retval_1"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP VIEW view_retval_1; + +Invoking prepared statement prep_1 invoking unsafe UUID() function. +PREPARE prep_1 FROM "INSERT INTO t0 VALUES (UUID())"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_1; + +Invoking unsafe UUID() function. +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t0 VALUES (UUID()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT UUID(); + +==== Testing @@hostname unsafeness ==== + +Invoking function func_retval_1 returning value from unsafe @@hostname variable. +CREATE FUNCTION func_retval_1() RETURNS VARCHAR(100) BEGIN INSERT INTO ta1 VALUES (47); RETURN @@hostname; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t1 VALUES (func_retval_1()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT func_retval_1(); + +Invoking function func_retval_2 returning value from function func_retval_1 returning value from unsafe @@hostname variable. +CREATE FUNCTION func_retval_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); RETURN func_retval_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 VALUES (func_retval_2()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT func_retval_2(); +DROP FUNCTION func_retval_2; + +Invoking function func_sidef_2 invoking function func_retval_1 returning value from unsafe @@hostname variable. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 VALUES (func_retval_1()); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking function func_retval_1 returning value from unsafe @@hostname variable. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 VALUES (func_retval_1()); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking function func_retval_1 returning value from unsafe @@hostname variable. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 VALUES (func_retval_1()); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_retval_2 returning value from function func_retval_1 returning value from unsafe @@hostname variable. +CREATE VIEW view_retval_2 AS SELECT func_retval_1(); +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT * FROM view_retval_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT * FROM view_retval_2; +DROP VIEW view_retval_2; + +Invoking prepared statement prep_2 invoking function func_retval_1 returning value from unsafe @@hostname variable. +PREPARE prep_2 FROM "INSERT INTO t1 VALUES (func_retval_1())"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP FUNCTION func_retval_1; + +Invoking function func_sidef_1 invoking unsafe @@hostname variable. +CREATE FUNCTION func_sidef_1() RETURNS VARCHAR(100) BEGIN INSERT INTO ta1 VALUES (47); INSERT INTO t0 VALUES (@@hostname); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t1 SELECT func_sidef_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking function func_sidef_1 invoking unsafe @@hostname variable. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking function func_sidef_1 invoking unsafe @@hostname variable. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT func_sidef_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking function func_sidef_1 invoking unsafe @@hostname variable. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_sidef_2 invoking function func_sidef_1 invoking unsafe @@hostname variable. +CREATE VIEW view_sidef_2 AS SELECT func_sidef_1(); +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT * FROM view_sidef_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP VIEW view_sidef_2; + +Invoking prepared statement prep_2 invoking function func_sidef_1 invoking unsafe @@hostname variable. +PREPARE prep_2 FROM "INSERT INTO t1 SELECT func_sidef_1()"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP FUNCTION func_sidef_1; + +Invoking procedure proc_1 invoking unsafe @@hostname variable. +CREATE PROCEDURE proc_1() BEGIN INSERT INTO t0 VALUES (@@hostname); INSERT INTO ta1 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking procedure proc_1 invoking unsafe @@hostname variable. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking procedure proc_1 invoking unsafe @@hostname variable. +CREATE PROCEDURE proc_2() BEGIN CALL proc_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking procedure proc_1 invoking unsafe @@hostname variable. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking procedure proc_1 invoking unsafe @@hostname variable. +PREPARE prep_2 FROM "CALL proc_1()"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP PROCEDURE proc_1; + +Invoking trigger trig_1 invoking unsafe @@hostname variable. +CREATE TRIGGER trig_1 BEFORE INSERT ON trigger_table_1 FOR EACH ROW BEGIN INSERT INTO ta1 VALUES (47); INSERT INTO t0 VALUES (@@hostname); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_1 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking trigger trig_1 invoking unsafe @@hostname variable. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking trigger trig_1 invoking unsafe @@hostname variable. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO trigger_table_1 VALUES (1); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking trigger trig_1 invoking unsafe @@hostname variable. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking trigger trig_1 invoking unsafe @@hostname variable. +PREPARE prep_2 FROM "INSERT INTO trigger_table_1 VALUES (1)"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP TRIGGER trig_1; + +Invoking prepared statement prep_1 invoking unsafe @@hostname variable. +PREPARE prep_1 FROM "INSERT INTO t0 VALUES (@@hostname)"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_1; + +Invoking unsafe @@hostname variable. +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t0 VALUES (@@hostname); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +==== Testing SELECT...LIMIT unsafeness ==== + +Invoking function func_sidef_1 invoking unsafe SELECT...LIMIT statement. +CREATE FUNCTION func_sidef_1() RETURNS VARCHAR(100) BEGIN INSERT INTO ta1 VALUES (47); INSERT INTO t0 SELECT * FROM data_table LIMIT 1; RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t1 SELECT func_sidef_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking function func_sidef_1 invoking unsafe SELECT...LIMIT statement. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking function func_sidef_1 invoking unsafe SELECT...LIMIT statement. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT func_sidef_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking function func_sidef_1 invoking unsafe SELECT...LIMIT statement. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_sidef_2 invoking function func_sidef_1 invoking unsafe SELECT...LIMIT statement. +CREATE VIEW view_sidef_2 AS SELECT func_sidef_1(); +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT * FROM view_sidef_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP VIEW view_sidef_2; + +Invoking prepared statement prep_2 invoking function func_sidef_1 invoking unsafe SELECT...LIMIT statement. +PREPARE prep_2 FROM "INSERT INTO t1 SELECT func_sidef_1()"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP FUNCTION func_sidef_1; + +Invoking procedure proc_1 invoking unsafe SELECT...LIMIT statement. +CREATE PROCEDURE proc_1() BEGIN INSERT INTO t0 SELECT * FROM data_table LIMIT 1; INSERT INTO ta1 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking procedure proc_1 invoking unsafe SELECT...LIMIT statement. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking procedure proc_1 invoking unsafe SELECT...LIMIT statement. +CREATE PROCEDURE proc_2() BEGIN CALL proc_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking procedure proc_1 invoking unsafe SELECT...LIMIT statement. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking procedure proc_1 invoking unsafe SELECT...LIMIT statement. +PREPARE prep_2 FROM "CALL proc_1()"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP PROCEDURE proc_1; + +Invoking trigger trig_1 invoking unsafe SELECT...LIMIT statement. +CREATE TRIGGER trig_1 BEFORE INSERT ON trigger_table_1 FOR EACH ROW BEGIN INSERT INTO ta1 VALUES (47); INSERT INTO t0 SELECT * FROM data_table LIMIT 1; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_1 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking trigger trig_1 invoking unsafe SELECT...LIMIT statement. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking trigger trig_1 invoking unsafe SELECT...LIMIT statement. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO trigger_table_1 VALUES (1); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking trigger trig_1 invoking unsafe SELECT...LIMIT statement. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking trigger trig_1 invoking unsafe SELECT...LIMIT statement. +PREPARE prep_2 FROM "INSERT INTO trigger_table_1 VALUES (1)"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP TRIGGER trig_1; + +Invoking view view_retval_1 returning value from unsafe SELECT...LIMIT statement. +CREATE VIEW view_retval_1 AS SELECT * FROM data_table LIMIT 1; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t1 SELECT * FROM view_retval_1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT * FROM view_retval_1; + +Invoking function func_sidef_2 invoking view view_retval_1 returning value from unsafe SELECT...LIMIT statement. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT * FROM view_retval_1; RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking view view_retval_1 returning value from unsafe SELECT...LIMIT statement. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT * FROM view_retval_1; INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking view view_retval_1 returning value from unsafe SELECT...LIMIT statement. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT * FROM view_retval_1; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_retval_2 returning value from view view_retval_1 returning value from unsafe SELECT...LIMIT statement. +CREATE VIEW view_retval_2 AS SELECT * FROM view_retval_1; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT * FROM view_retval_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT * FROM view_retval_2; +DROP VIEW view_retval_2; + +Invoking prepared statement prep_2 invoking view view_retval_1 returning value from unsafe SELECT...LIMIT statement. +PREPARE prep_2 FROM "INSERT INTO t1 SELECT * FROM view_retval_1"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP VIEW view_retval_1; + +Invoking prepared statement prep_1 invoking unsafe SELECT...LIMIT statement. +PREPARE prep_1 FROM "INSERT INTO t0 SELECT * FROM data_table LIMIT 1"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_1; + +Invoking unsafe SELECT...LIMIT statement. +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t0 SELECT * FROM data_table LIMIT 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT * FROM data_table LIMIT 1; + +==== Testing INSERT DELAYED safeness after BUG#54579 is fixed ==== + +Invoking function func_sidef_1 invoking unsafe INSERT DELAYED statement. +CREATE FUNCTION func_sidef_1() RETURNS VARCHAR(100) BEGIN INSERT INTO ta1 VALUES (47); INSERT DELAYED INTO t0 VALUES (1), (2); RETURN 0; END; +* binlog_format = STATEMENT: expect 0 warnings. +INSERT INTO t1 SELECT func_sidef_1(); +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking function func_sidef_1 invoking unsafe INSERT DELAYED statement. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 0 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking function func_sidef_1 invoking unsafe INSERT DELAYED statement. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT func_sidef_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 0 warnings. +CALL proc_2(); +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking function func_sidef_1 invoking unsafe INSERT DELAYED statement. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); END; +* binlog_format = STATEMENT: expect 0 warnings. +INSERT INTO trigger_table_2 VALUES (1); +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_sidef_2 invoking function func_sidef_1 invoking unsafe INSERT DELAYED statement. +CREATE VIEW view_sidef_2 AS SELECT func_sidef_1(); +* binlog_format = STATEMENT: expect 0 warnings. +INSERT INTO t2 SELECT * FROM view_sidef_2; +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP VIEW view_sidef_2; + +Invoking prepared statement prep_2 invoking function func_sidef_1 invoking unsafe INSERT DELAYED statement. +PREPARE prep_2 FROM "INSERT INTO t1 SELECT func_sidef_1()"; +* binlog_format = STATEMENT: expect 0 warnings. +EXECUTE prep_2; +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP FUNCTION func_sidef_1; + +Invoking procedure proc_1 invoking unsafe INSERT DELAYED statement. +CREATE PROCEDURE proc_1() BEGIN INSERT DELAYED INTO t0 VALUES (1), (2); INSERT INTO ta1 VALUES (47); END; +* binlog_format = STATEMENT: expect 0 warnings. +CALL proc_1(); +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking procedure proc_1 invoking unsafe INSERT DELAYED statement. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 0 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking procedure proc_1 invoking unsafe INSERT DELAYED statement. +CREATE PROCEDURE proc_2() BEGIN CALL proc_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 0 warnings. +CALL proc_2(); +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking procedure proc_1 invoking unsafe INSERT DELAYED statement. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); END; +* binlog_format = STATEMENT: expect 0 warnings. +INSERT INTO trigger_table_2 VALUES (1); +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking procedure proc_1 invoking unsafe INSERT DELAYED statement. +PREPARE prep_2 FROM "CALL proc_1()"; +* binlog_format = STATEMENT: expect 0 warnings. +EXECUTE prep_2; +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP PROCEDURE proc_1; + +Invoking trigger trig_1 invoking unsafe INSERT DELAYED statement. +CREATE TRIGGER trig_1 BEFORE INSERT ON trigger_table_1 FOR EACH ROW BEGIN INSERT INTO ta1 VALUES (47); INSERT DELAYED INTO t0 VALUES (1), (2); END; +* binlog_format = STATEMENT: expect 0 warnings. +INSERT INTO trigger_table_1 VALUES (1); +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking trigger trig_1 invoking unsafe INSERT DELAYED statement. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); RETURN 0; END; +* binlog_format = STATEMENT: expect 0 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking trigger trig_1 invoking unsafe INSERT DELAYED statement. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO trigger_table_1 VALUES (1); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 0 warnings. +CALL proc_2(); +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking trigger trig_1 invoking unsafe INSERT DELAYED statement. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); END; +* binlog_format = STATEMENT: expect 0 warnings. +INSERT INTO trigger_table_2 VALUES (1); +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking trigger trig_1 invoking unsafe INSERT DELAYED statement. +PREPARE prep_2 FROM "INSERT INTO trigger_table_1 VALUES (1)"; +* binlog_format = STATEMENT: expect 0 warnings. +EXECUTE prep_2; +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP TRIGGER trig_1; + +Invoking prepared statement prep_1 invoking unsafe INSERT DELAYED statement. +PREPARE prep_1 FROM "INSERT DELAYED INTO t0 VALUES (1), (2)"; +* binlog_format = STATEMENT: expect 0 warnings. +EXECUTE prep_1; +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_1; + +Invoking unsafe INSERT DELAYED statement. +* binlog_format = STATEMENT: expect 0 warnings. +INSERT DELAYED INTO t0 VALUES (1), (2); +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +==== Testing unsafeness of insert of two autoinc values ==== + +Invoking function func_sidef_1 invoking unsafe update of two autoinc columns. +CREATE FUNCTION func_sidef_1() RETURNS VARCHAR(100) BEGIN INSERT INTO ta1 VALUES (47); INSERT INTO double_autoinc_table VALUES (NULL); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t1 SELECT func_sidef_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking function func_sidef_1 invoking unsafe update of two autoinc columns. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking function func_sidef_1 invoking unsafe update of two autoinc columns. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT func_sidef_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking function func_sidef_1 invoking unsafe update of two autoinc columns. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_sidef_2 invoking function func_sidef_1 invoking unsafe update of two autoinc columns. +CREATE VIEW view_sidef_2 AS SELECT func_sidef_1(); +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT * FROM view_sidef_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP VIEW view_sidef_2; + +Invoking prepared statement prep_2 invoking function func_sidef_1 invoking unsafe update of two autoinc columns. +PREPARE prep_2 FROM "INSERT INTO t1 SELECT func_sidef_1()"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP FUNCTION func_sidef_1; + +Invoking procedure proc_1 invoking unsafe update of two autoinc columns. +CREATE PROCEDURE proc_1() BEGIN INSERT INTO double_autoinc_table VALUES (NULL); INSERT INTO ta1 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking procedure proc_1 invoking unsafe update of two autoinc columns. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking procedure proc_1 invoking unsafe update of two autoinc columns. +CREATE PROCEDURE proc_2() BEGIN CALL proc_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking procedure proc_1 invoking unsafe update of two autoinc columns. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking procedure proc_1 invoking unsafe update of two autoinc columns. +PREPARE prep_2 FROM "CALL proc_1()"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP PROCEDURE proc_1; + +Invoking trigger trig_1 invoking unsafe update of two autoinc columns. +CREATE TRIGGER trig_1 BEFORE INSERT ON trigger_table_1 FOR EACH ROW BEGIN INSERT INTO ta1 VALUES (47); INSERT INTO double_autoinc_table VALUES (NULL); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_1 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking trigger trig_1 invoking unsafe update of two autoinc columns. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking trigger trig_1 invoking unsafe update of two autoinc columns. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO trigger_table_1 VALUES (1); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking trigger trig_1 invoking unsafe update of two autoinc columns. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking trigger trig_1 invoking unsafe update of two autoinc columns. +PREPARE prep_2 FROM "INSERT INTO trigger_table_1 VALUES (1)"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP TRIGGER trig_1; + +Invoking prepared statement prep_1 invoking unsafe update of two autoinc columns. +PREPARE prep_1 FROM "INSERT INTO double_autoinc_table VALUES (NULL)"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_1; + +Invoking unsafe update of two autoinc columns. +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO double_autoinc_table VALUES (NULL); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +==== Testing unsafeness of UDF's ==== + +Invoking function func_retval_1 returning value from unsafe UDF. +CREATE FUNCTION func_retval_1() RETURNS VARCHAR(100) BEGIN INSERT INTO ta1 VALUES (47); RETURN myfunc_int(10); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t1 VALUES (func_retval_1()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT func_retval_1(); + +Invoking function func_retval_2 returning value from function func_retval_1 returning value from unsafe UDF. +CREATE FUNCTION func_retval_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); RETURN func_retval_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 VALUES (func_retval_2()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT func_retval_2(); +DROP FUNCTION func_retval_2; + +Invoking function func_sidef_2 invoking function func_retval_1 returning value from unsafe UDF. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 VALUES (func_retval_1()); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking function func_retval_1 returning value from unsafe UDF. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 VALUES (func_retval_1()); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking function func_retval_1 returning value from unsafe UDF. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 VALUES (func_retval_1()); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_retval_2 returning value from function func_retval_1 returning value from unsafe UDF. +CREATE VIEW view_retval_2 AS SELECT func_retval_1(); +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT * FROM view_retval_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT * FROM view_retval_2; +DROP VIEW view_retval_2; + +Invoking prepared statement prep_2 invoking function func_retval_1 returning value from unsafe UDF. +PREPARE prep_2 FROM "INSERT INTO t1 VALUES (func_retval_1())"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP FUNCTION func_retval_1; + +Invoking function func_sidef_1 invoking unsafe UDF. +CREATE FUNCTION func_sidef_1() RETURNS VARCHAR(100) BEGIN INSERT INTO ta1 VALUES (47); INSERT INTO t0 VALUES (myfunc_int(10)); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t1 SELECT func_sidef_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking function func_sidef_1 invoking unsafe UDF. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking function func_sidef_1 invoking unsafe UDF. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT func_sidef_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking function func_sidef_1 invoking unsafe UDF. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_sidef_2 invoking function func_sidef_1 invoking unsafe UDF. +CREATE VIEW view_sidef_2 AS SELECT func_sidef_1(); +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT * FROM view_sidef_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP VIEW view_sidef_2; + +Invoking prepared statement prep_2 invoking function func_sidef_1 invoking unsafe UDF. +PREPARE prep_2 FROM "INSERT INTO t1 SELECT func_sidef_1()"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP FUNCTION func_sidef_1; + +Invoking procedure proc_1 invoking unsafe UDF. +CREATE PROCEDURE proc_1() BEGIN INSERT INTO t0 VALUES (myfunc_int(10)); INSERT INTO ta1 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking procedure proc_1 invoking unsafe UDF. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking procedure proc_1 invoking unsafe UDF. +CREATE PROCEDURE proc_2() BEGIN CALL proc_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking procedure proc_1 invoking unsafe UDF. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking procedure proc_1 invoking unsafe UDF. +PREPARE prep_2 FROM "CALL proc_1()"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP PROCEDURE proc_1; + +Invoking trigger trig_1 invoking unsafe UDF. +CREATE TRIGGER trig_1 BEFORE INSERT ON trigger_table_1 FOR EACH ROW BEGIN INSERT INTO ta1 VALUES (47); INSERT INTO t0 VALUES (myfunc_int(10)); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_1 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking trigger trig_1 invoking unsafe UDF. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking trigger trig_1 invoking unsafe UDF. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO trigger_table_1 VALUES (1); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking trigger trig_1 invoking unsafe UDF. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking trigger trig_1 invoking unsafe UDF. +PREPARE prep_2 FROM "INSERT INTO trigger_table_1 VALUES (1)"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP TRIGGER trig_1; + +Invoking view view_sidef_1 invoking unsafe UDF. +CREATE VIEW view_sidef_1 AS SELECT myfunc_int(10); +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t1 SELECT * FROM view_sidef_1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking view view_sidef_1 invoking unsafe UDF. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT * FROM view_sidef_1; RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking view view_sidef_1 invoking unsafe UDF. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT * FROM view_sidef_1; INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking view view_sidef_1 invoking unsafe UDF. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT * FROM view_sidef_1; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_sidef_2 invoking view view_sidef_1 invoking unsafe UDF. +CREATE VIEW view_sidef_2 AS SELECT * FROM view_sidef_1; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT * FROM view_sidef_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP VIEW view_sidef_2; + +Invoking prepared statement prep_2 invoking view view_sidef_1 invoking unsafe UDF. +PREPARE prep_2 FROM "INSERT INTO t1 SELECT * FROM view_sidef_1"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP VIEW view_sidef_1; + +Invoking prepared statement prep_1 invoking unsafe UDF. +PREPARE prep_1 FROM "INSERT INTO t0 VALUES (myfunc_int(10))"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_1; + +Invoking unsafe UDF. +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t0 VALUES (myfunc_int(10)); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +==== Testing unsafeness of access to mysql.general_log ==== + +Invoking function func_sidef_1 invoking unsafe use of mysql.general_log. +CREATE FUNCTION func_sidef_1() RETURNS VARCHAR(100) BEGIN INSERT INTO ta1 VALUES (47); INSERT INTO t0 SELECT COUNT(*) FROM mysql.general_log; RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t1 SELECT func_sidef_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking function func_sidef_1 invoking unsafe use of mysql.general_log. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking function func_sidef_1 invoking unsafe use of mysql.general_log. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT func_sidef_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking function func_sidef_1 invoking unsafe use of mysql.general_log. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_sidef_2 invoking function func_sidef_1 invoking unsafe use of mysql.general_log. +CREATE VIEW view_sidef_2 AS SELECT func_sidef_1(); +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT * FROM view_sidef_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP VIEW view_sidef_2; + +Invoking prepared statement prep_2 invoking function func_sidef_1 invoking unsafe use of mysql.general_log. +PREPARE prep_2 FROM "INSERT INTO t1 SELECT func_sidef_1()"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP FUNCTION func_sidef_1; + +Invoking procedure proc_1 invoking unsafe use of mysql.general_log. +CREATE PROCEDURE proc_1() BEGIN INSERT INTO t0 SELECT COUNT(*) FROM mysql.general_log; INSERT INTO ta1 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking procedure proc_1 invoking unsafe use of mysql.general_log. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking procedure proc_1 invoking unsafe use of mysql.general_log. +CREATE PROCEDURE proc_2() BEGIN CALL proc_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking procedure proc_1 invoking unsafe use of mysql.general_log. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking procedure proc_1 invoking unsafe use of mysql.general_log. +PREPARE prep_2 FROM "CALL proc_1()"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP PROCEDURE proc_1; + +Invoking trigger trig_1 invoking unsafe use of mysql.general_log. +CREATE TRIGGER trig_1 BEFORE INSERT ON trigger_table_1 FOR EACH ROW BEGIN INSERT INTO ta1 VALUES (47); INSERT INTO t0 SELECT COUNT(*) FROM mysql.general_log; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_1 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking trigger trig_1 invoking unsafe use of mysql.general_log. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking trigger trig_1 invoking unsafe use of mysql.general_log. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO trigger_table_1 VALUES (1); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking trigger trig_1 invoking unsafe use of mysql.general_log. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking trigger trig_1 invoking unsafe use of mysql.general_log. +PREPARE prep_2 FROM "INSERT INTO trigger_table_1 VALUES (1)"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP TRIGGER trig_1; + +Invoking view view_retval_1 returning value from unsafe use of mysql.general_log. +CREATE VIEW view_retval_1 AS SELECT COUNT(*) FROM mysql.general_log; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t1 SELECT * FROM view_retval_1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT * FROM view_retval_1; + +Invoking function func_sidef_2 invoking view view_retval_1 returning value from unsafe use of mysql.general_log. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT * FROM view_retval_1; RETURN 0; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking view view_retval_1 returning value from unsafe use of mysql.general_log. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT * FROM view_retval_1; INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 1 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking view view_retval_1 returning value from unsafe use of mysql.general_log. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT * FROM view_retval_1; END; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_retval_2 returning value from view view_retval_1 returning value from unsafe use of mysql.general_log. +CREATE VIEW view_retval_2 AS SELECT * FROM view_retval_1; +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t2 SELECT * FROM view_retval_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT * FROM view_retval_2; +DROP VIEW view_retval_2; + +Invoking prepared statement prep_2 invoking view view_retval_1 returning value from unsafe use of mysql.general_log. +PREPARE prep_2 FROM "INSERT INTO t1 SELECT * FROM view_retval_1"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP VIEW view_retval_1; + +Invoking prepared statement prep_1 invoking unsafe use of mysql.general_log. +PREPARE prep_1 FROM "INSERT INTO t0 SELECT COUNT(*) FROM mysql.general_log"; +* binlog_format = STATEMENT: expect 1 warnings. +EXECUTE prep_1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_1; + +Invoking unsafe use of mysql.general_log. +* binlog_format = STATEMENT: expect 1 warnings. +INSERT INTO t0 SELECT COUNT(*) FROM mysql.general_log; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +* Invoke statement so that return value is dicarded: expect no warning. +SELECT COUNT(*) FROM mysql.general_log; + +==== Testing a statement that is unsafe in many ways ==== + +Invoking function func_sidef_1 invoking statement that is unsafe in many ways. +CREATE FUNCTION func_sidef_1() RETURNS VARCHAR(100) BEGIN INSERT INTO ta1 VALUES (47); INSERT DELAYED INTO double_autoinc_table SELECT CONCAT(UUID(), @@hostname, myfunc_int(), NULL) FROM mysql.general_log LIMIT 1; RETURN 0; END; +* binlog_format = STATEMENT: expect 7 warnings. +INSERT INTO t1 SELECT func_sidef_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking function func_sidef_1 invoking statement that is unsafe in many ways. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 7 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking function func_sidef_1 invoking statement that is unsafe in many ways. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT func_sidef_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 7 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking function func_sidef_1 invoking statement that is unsafe in many ways. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); END; +* binlog_format = STATEMENT: expect 7 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_sidef_2 invoking function func_sidef_1 invoking statement that is unsafe in many ways. +CREATE VIEW view_sidef_2 AS SELECT func_sidef_1(); +* binlog_format = STATEMENT: expect 7 warnings. +INSERT INTO t2 SELECT * FROM view_sidef_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP VIEW view_sidef_2; + +Invoking prepared statement prep_2 invoking function func_sidef_1 invoking statement that is unsafe in many ways. +PREPARE prep_2 FROM "INSERT INTO t1 SELECT func_sidef_1()"; +* binlog_format = STATEMENT: expect 7 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP FUNCTION func_sidef_1; + +Invoking procedure proc_1 invoking statement that is unsafe in many ways. +CREATE PROCEDURE proc_1() BEGIN INSERT DELAYED INTO double_autoinc_table SELECT CONCAT(UUID(), @@hostname, myfunc_int(), NULL) FROM mysql.general_log LIMIT 1; INSERT INTO ta1 VALUES (47); END; +* binlog_format = STATEMENT: expect 7 warnings. +CALL proc_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking procedure proc_1 invoking statement that is unsafe in many ways. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 7 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking procedure proc_1 invoking statement that is unsafe in many ways. +CREATE PROCEDURE proc_2() BEGIN CALL proc_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 7 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking procedure proc_1 invoking statement that is unsafe in many ways. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); END; +* binlog_format = STATEMENT: expect 7 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking procedure proc_1 invoking statement that is unsafe in many ways. +PREPARE prep_2 FROM "CALL proc_1()"; +* binlog_format = STATEMENT: expect 7 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP PROCEDURE proc_1; + +Invoking trigger trig_1 invoking statement that is unsafe in many ways. +CREATE TRIGGER trig_1 BEFORE INSERT ON trigger_table_1 FOR EACH ROW BEGIN INSERT INTO ta1 VALUES (47); INSERT DELAYED INTO double_autoinc_table SELECT CONCAT(UUID(), @@hostname, myfunc_int(), NULL) FROM mysql.general_log LIMIT 1; END; +* binlog_format = STATEMENT: expect 7 warnings. +INSERT INTO trigger_table_1 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking trigger trig_1 invoking statement that is unsafe in many ways. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); RETURN 0; END; +* binlog_format = STATEMENT: expect 7 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking trigger trig_1 invoking statement that is unsafe in many ways. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO trigger_table_1 VALUES (1); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 7 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking trigger trig_1 invoking statement that is unsafe in many ways. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); END; +* binlog_format = STATEMENT: expect 7 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking trigger trig_1 invoking statement that is unsafe in many ways. +PREPARE prep_2 FROM "INSERT INTO trigger_table_1 VALUES (1)"; +* binlog_format = STATEMENT: expect 7 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP TRIGGER trig_1; + +Invoking prepared statement prep_1 invoking statement that is unsafe in many ways. +PREPARE prep_1 FROM "INSERT DELAYED INTO double_autoinc_table SELECT CONCAT(UUID(), @@hostname, myfunc_int(), NULL) FROM mysql.general_log LIMIT 1"; +* binlog_format = STATEMENT: expect 7 warnings. +EXECUTE prep_1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_1; + +Invoking statement that is unsafe in many ways. +* binlog_format = STATEMENT: expect 7 warnings. +INSERT DELAYED INTO double_autoinc_table SELECT CONCAT(UUID(), @@hostname, myfunc_int(), NULL) FROM mysql.general_log LIMIT 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +==== Testing a statement that is unsafe several times ==== + +Invoking function func_sidef_1 invoking statement that is unsafe several times. +CREATE FUNCTION func_sidef_1() RETURNS VARCHAR(100) BEGIN INSERT INTO ta1 VALUES (47); INSERT INTO ta0 VALUES (multi_unsafe_func()); RETURN 0; END; +* binlog_format = STATEMENT: expect 2 warnings. +INSERT INTO t1 SELECT func_sidef_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking function func_sidef_1 invoking statement that is unsafe several times. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 2 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking function func_sidef_1 invoking statement that is unsafe several times. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT func_sidef_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 2 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking function func_sidef_1 invoking statement that is unsafe several times. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); END; +* binlog_format = STATEMENT: expect 2 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_sidef_2 invoking function func_sidef_1 invoking statement that is unsafe several times. +CREATE VIEW view_sidef_2 AS SELECT func_sidef_1(); +* binlog_format = STATEMENT: expect 2 warnings. +INSERT INTO t2 SELECT * FROM view_sidef_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP VIEW view_sidef_2; + +Invoking prepared statement prep_2 invoking function func_sidef_1 invoking statement that is unsafe several times. +PREPARE prep_2 FROM "INSERT INTO t1 SELECT func_sidef_1()"; +* binlog_format = STATEMENT: expect 2 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP FUNCTION func_sidef_1; + +Invoking procedure proc_1 invoking statement that is unsafe several times. +CREATE PROCEDURE proc_1() BEGIN INSERT INTO ta0 VALUES (multi_unsafe_func()); INSERT INTO ta1 VALUES (47); END; +* binlog_format = STATEMENT: expect 2 warnings. +CALL proc_1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking procedure proc_1 invoking statement that is unsafe several times. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); RETURN 0; END; +* binlog_format = STATEMENT: expect 2 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking procedure proc_1 invoking statement that is unsafe several times. +CREATE PROCEDURE proc_2() BEGIN CALL proc_1(); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 2 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking procedure proc_1 invoking statement that is unsafe several times. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); END; +* binlog_format = STATEMENT: expect 2 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking procedure proc_1 invoking statement that is unsafe several times. +PREPARE prep_2 FROM "CALL proc_1()"; +* binlog_format = STATEMENT: expect 2 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP PROCEDURE proc_1; + +Invoking trigger trig_1 invoking statement that is unsafe several times. +CREATE TRIGGER trig_1 BEFORE INSERT ON trigger_table_1 FOR EACH ROW BEGIN INSERT INTO ta1 VALUES (47); INSERT INTO ta0 VALUES (multi_unsafe_func()); END; +* binlog_format = STATEMENT: expect 2 warnings. +INSERT INTO trigger_table_1 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking trigger trig_1 invoking statement that is unsafe several times. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); RETURN 0; END; +* binlog_format = STATEMENT: expect 2 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking trigger trig_1 invoking statement that is unsafe several times. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO trigger_table_1 VALUES (1); INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 2 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking trigger trig_1 invoking statement that is unsafe several times. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); END; +* binlog_format = STATEMENT: expect 2 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking prepared statement prep_2 invoking trigger trig_1 invoking statement that is unsafe several times. +PREPARE prep_2 FROM "INSERT INTO trigger_table_1 VALUES (1)"; +* binlog_format = STATEMENT: expect 2 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP TRIGGER trig_1; + +Invoking view view_sidef_1 invoking statement that is unsafe several times. +CREATE VIEW view_sidef_1 AS SELECT multi_unsafe_func(); +* binlog_format = STATEMENT: expect 2 warnings. +INSERT INTO t1 SELECT * FROM view_sidef_1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. + +Invoking function func_sidef_2 invoking view view_sidef_1 invoking statement that is unsafe several times. +CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT * FROM view_sidef_1; RETURN 0; END; +* binlog_format = STATEMENT: expect 2 warnings. +INSERT INTO t2 SELECT func_sidef_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP FUNCTION func_sidef_2; + +Invoking procedure proc_2 invoking view view_sidef_1 invoking statement that is unsafe several times. +CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT * FROM view_sidef_1; INSERT INTO ta2 VALUES (47); END; +* binlog_format = STATEMENT: expect 2 warnings. +CALL proc_2(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PROCEDURE proc_2; + +Invoking trigger trig_2 invoking view view_sidef_1 invoking statement that is unsafe several times. +CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT * FROM view_sidef_1; END; +* binlog_format = STATEMENT: expect 2 warnings. +INSERT INTO trigger_table_2 VALUES (1); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER trig_2; + +Invoking view view_sidef_2 invoking view view_sidef_1 invoking statement that is unsafe several times. +CREATE VIEW view_sidef_2 AS SELECT * FROM view_sidef_1; +* binlog_format = STATEMENT: expect 2 warnings. +INSERT INTO t2 SELECT * FROM view_sidef_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP VIEW view_sidef_2; + +Invoking prepared statement prep_2 invoking view view_sidef_1 invoking statement that is unsafe several times. +PREPARE prep_2 FROM "INSERT INTO t1 SELECT * FROM view_sidef_1"; +* binlog_format = STATEMENT: expect 2 warnings. +EXECUTE prep_2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_2; +DROP VIEW view_sidef_1; + +Invoking prepared statement prep_1 invoking statement that is unsafe several times. +PREPARE prep_1 FROM "INSERT INTO ta0 VALUES (multi_unsafe_func())"; +* binlog_format = STATEMENT: expect 2 warnings. +EXECUTE prep_1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP PREPARE prep_1; + +Invoking statement that is unsafe several times. +* binlog_format = STATEMENT: expect 2 warnings. +INSERT INTO ta0 VALUES (multi_unsafe_func()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +* SQL_LOG_BIN = 0: expect nothing logged and no warning. +* binlog_format = MIXED: expect row events in binlog and no warning. +DROP TRIGGER double_autoinc_trig; +DROP TABLE t0, t1, t2, t3, ta0, ta1, ta2, ta3, +autoinc_table, double_autoinc_table, +data_table, +trigger_table_1, trigger_table_2, trigger_table_3; +DROP FUNCTION myfunc_int; +DROP FUNCTION multi_unsafe_func; +==== Special system variables that should *not* be unsafe ==== +CREATE TABLE t1 (a VARCHAR(1000)); +CREATE TABLE autoinc_table (a INT PRIMARY KEY AUTO_INCREMENT); +INSERT INTO t1 VALUES (@@session.auto_increment_increment); +INSERT INTO t1 VALUES (@@session.auto_increment_offset); +INSERT INTO t1 VALUES (@@session.character_set_client); +INSERT INTO t1 VALUES (@@session.character_set_connection); +INSERT INTO t1 VALUES (@@session.character_set_database); +INSERT INTO t1 VALUES (@@session.character_set_server); +INSERT INTO t1 VALUES (@@session.collation_connection); +INSERT INTO t1 VALUES (@@session.collation_database); +INSERT INTO t1 VALUES (@@session.collation_server); +INSERT INTO t1 VALUES (@@session.foreign_key_checks); +INSERT INTO t1 VALUES (@@session.identity); +INSERT INTO t1 VALUES (@@session.last_insert_id); +INSERT INTO t1 VALUES (@@session.lc_time_names); +INSERT INTO t1 VALUES (@@session.pseudo_thread_id); +INSERT INTO t1 VALUES (@@session.sql_auto_is_null); +INSERT INTO t1 VALUES (@@session.timestamp); +INSERT INTO t1 VALUES (@@session.time_zone); +INSERT INTO t1 VALUES (@@session.unique_checks); +SET @my_var= 4711; +INSERT INTO t1 VALUES (@my_var); +SET insert_id= 12; +INSERT INTO autoinc_table VALUES (NULL); +The following variables *should* give a warning, despite they are replicated. +INSERT INTO t1 VALUES (@@session.sql_mode); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +INSERT INTO t1 VALUES (@@session.insert_id); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +DROP TABLE t1, autoinc_table; +CREATE TABLE t1(a INT, b INT, KEY(a), PRIMARY KEY(b)); +INSERT INTO t1 SELECT * FROM t1 LIMIT 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +REPLACE INTO t1 SELECT * FROM t1 LIMIT 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. REPLACE... SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave +UPDATE t1 SET a=1 LIMIT 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +DELETE FROM t1 LIMIT 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +CREATE PROCEDURE p1() +BEGIN +INSERT INTO t1 SELECT * FROM t1 LIMIT 1; +REPLACE INTO t1 SELECT * FROM t1 LIMIT 1; +UPDATE t1 SET a=1 LIMIT 1; +DELETE FROM t1 LIMIT 1; +END| +CALL p1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. REPLACE... SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave +DROP PROCEDURE p1; +DROP TABLE t1; +DROP TABLE IF EXISTS t1; +CREATE TABLE t1 (a VARCHAR(200), b VARCHAR(200)); +INSERT INTO t1 VALUES ('a','b'); +UPDATE t1 SET b = '%s%s%s%s%s%s%s%s%s%s%s%s%s%s' WHERE a = 'a' LIMIT 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +DROP TABLE t1; +DROP TABLE IF EXISTS t1, t2; +CREATE TABLE t1(i INT PRIMARY KEY); +CREATE TABLE t2(i INT PRIMARY KEY); +CREATE TABLE t3(i INT, ch CHAR(50)); +"Should issue message Statement may not be safe to log in statement format." +INSERT INTO t1 SELECT * FROM t2 LIMIT 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +CREATE FUNCTION func6() +RETURNS INT +BEGIN +INSERT INTO t1 VALUES (10); +INSERT INTO t1 VALUES (11); +INSERT INTO t1 VALUES (12); +RETURN 0; +END| +"Should issue message Statement may not be safe to log in statement format only once" +INSERT INTO t3 VALUES(func6(), UUID()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +"Check whether SET @@SQL_LOG_BIN = 0/1 doesn't work in substatements" +CREATE FUNCTION fun_check_log_bin() RETURNS INT +BEGIN +SET @@SQL_LOG_BIN = 0; +INSERT INTO t1 VALUES(@@global.sync_binlog); +RETURN 200; +END| +"One unsafe warning should be issued in the following statement" +SELECT fun_check_log_bin(); +ERROR HY000: Cannot change the sql_log_bin inside a stored function or trigger +"SQL_LOG_BIN should be ON still" +SHOW VARIABLES LIKE "SQL_LOG_BIN"; +Variable_name Value +sql_log_bin ON +set @save_log_bin = @@SESSION.SQL_LOG_BIN; +set @@SESSION.SQL_LOG_BIN = 0; +"Should NOT have any warning message issued in the following statements" +INSERT INTO t1 SELECT * FROM t2 LIMIT 1; +DROP TABLE t1,t2; +"Should NOT have any warning message issued in the following func7() and trig" +CREATE TABLE t1 (a INT); +CREATE TABLE t2 (a TEXT); +CREATE TABLE trigger_table (a CHAR(7)); +CREATE FUNCTION func7() +RETURNS INT +BEGIN +INSERT INTO t1 VALUES (@@global.sync_binlog); +INSERT INTO t1 VALUES (@@session.insert_id); +INSERT INTO t2 SELECT UUID(); +INSERT INTO t2 VALUES (@@session.sql_mode); +INSERT INTO t2 VALUES (@@global.init_slave); +RETURN 0; +END| +SHOW VARIABLES LIKE "SQL_LOG_BIN"; +Variable_name Value +sql_log_bin OFF +SELECT func7(); +func7() +0 +---- Insert from trigger ---- +CREATE TRIGGER trig +BEFORE INSERT ON trigger_table +FOR EACH ROW +BEGIN +INSERT INTO t1 VALUES (@@global.sync_binlog); +INSERT INTO t1 VALUES (@@session.insert_id); +INSERT INTO t1 VALUES (@@global.auto_increment_increment); +INSERT INTO t2 SELECT UUID(); +INSERT INTO t2 VALUES (@@session.sql_mode); +INSERT INTO t2 VALUES (@@global.init_slave); +INSERT INTO t2 VALUES (@@hostname); +END| +INSERT INTO trigger_table VALUES ('bye.'); +DROP FUNCTION fun_check_log_bin; +DROP FUNCTION func6; +DROP FUNCTION func7; +DROP TRIGGER trig; +DROP TABLE t1, t2, t3, trigger_table; +set @@SESSION.SQL_LOG_BIN = @save_log_bin; +SET @save_sql_mode = @@SESSION.SQL_MODE; +SET @@SESSION.SQL_MODE = STRICT_ALL_TABLES; +CREATE TABLE t1(i INT PRIMARY KEY); +CREATE TABLE t2(i INT PRIMARY KEY); +INSERT INTO t1 SELECT * FROM t2 LIMIT 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +INSERT INTO t1 VALUES(@@global.sync_binlog); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave +UPDATE t1 SET i = 999 LIMIT 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +DELETE FROM t1 LIMIT 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted +DROP TABLE t1, t2; +SET @@SESSION.SQL_MODE = @save_sql_mode; +SET @old_binlog_format = @@session.binlog_format; +SET binlog_format = MIXED; +CREATE TABLE t1 (a INT); +CREATE TABLE t2 (a INT); +INSERT INTO t2 VALUES (1), (2); +CREATE PROCEDURE proc_insert_delayed () +BEGIN +INSERT DELAYED INTO t1 VALUES (1), (2); +END| +CREATE FUNCTION func_limit () +RETURNS INT +BEGIN +INSERT INTO t1 SELECT * FROM t2 LIMIT 1; +RETURN 1; +END| +RESET MASTER; +CALL proc_insert_delayed(); +SELECT func_limit(); +func_limit() +1 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT DELAYED INTO t1 VALUES (1), (2) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 SELECT * FROM t2 LIMIT 1 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +SET @@session.binlog_format = @old_binlog_format; +DROP TABLE t1, t2; +DROP PROCEDURE proc_insert_delayed; +DROP FUNCTION func_limit; +CREATE TABLE t1 (a INT, b INT PRIMARY KEY AUTO_INCREMENT); +CREATE TABLE t2 (a INT, b INT PRIMARY KEY AUTO_INCREMENT); +CREATE FUNCTION func_modify_t1 () +RETURNS INT +BEGIN +INSERT INTO t1 SET a = 1; +RETURN 0; +END| +# The following statement causes auto-incrementation +# of both t1 and t2. It is logged in statement format, +# so it should produce unsafe warning. +INSERT INTO t2 SET a = func_modify_t1(); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +SET SESSION binlog_format = MIXED; +# Check if the statement is logged in row format. +INSERT INTO t2 SET a = func_modify_t1(); +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 SET a = 1 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +DROP TABLE t1,t2; +DROP FUNCTION func_modify_t1; +SET SESSION binlog_format = STATEMENT; +CREATE TABLE t1 (a INT); +CREATE TABLE t2 (a INT, b INT PRIMARY KEY AUTO_INCREMENT); +CREATE TABLE t3 (a INT, b INT PRIMARY KEY AUTO_INCREMENT); +create trigger tri_modify_two_tables before insert on t1 for each row begin +insert into t2(a) values(new.a); +insert into t3(a) values(new.a); +end | +# The following statement causes auto-incrementation +# of both t2 and t3. It is logged in statement format, +# so it should produce unsafe warning +INSERT INTO t1 SET a = 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly +SET SESSION binlog_format = MIXED; +# Check if the statement is logged in row format. +INSERT INTO t1 SET a = 2; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t2(a) values(new.a) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Table_map # # table_id: # (test.t3) +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Annotate_rows # # insert into t3(a) values(new.a) +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Table_map # # table_id: # (test.t3) +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +DROP TABLE t1,t2,t3; +SET SESSION binlog_format = STATEMENT; +CREATE TABLE t1 (a VARCHAR(1000)); +INSERT INTO t1 VALUES (CURRENT_USER()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (FOUND_ROWS()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (GET_LOCK('tmp', 1)); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (IS_FREE_LOCK('tmp')); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (IS_USED_LOCK('tmp')); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (LOAD_FILE('../../std_data/words2.dat')); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (MASTER_POS_WAIT('dummy arg', 4711, 1)); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (RELEASE_LOCK('tmp')); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (ROW_COUNT()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (SESSION_USER()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (SLEEP(1)); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (SYSDATE()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (SYSTEM_USER()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (USER()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (UUID()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (UUID_SHORT()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (VERSION()); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave +INSERT INTO t1 VALUES (RAND()); +DELETE FROM t1; +SET TIME_ZONE= '+03:00'; +SET TIMESTAMP=1000000; +INSERT INTO t1 VALUES +(CURDATE()), +(CURRENT_DATE()), +(CURRENT_TIME()), +(CURRENT_TIMESTAMP()), +(CURTIME()), +(LOCALTIME()), +(LOCALTIMESTAMP()), +(NOW()), +(UNIX_TIMESTAMP()), +(UTC_DATE()), +(UTC_TIME()), +(UTC_TIMESTAMP()); +SELECT * FROM t1; +a +1970-01-12 +1970-01-12 +16:46:40 +1970-01-12 16:46:40 +16:46:40 +1970-01-12 16:46:40 +1970-01-12 16:46:40 +1970-01-12 16:46:40 +1000000 +1970-01-12 +13:46:40 +1970-01-12 13:46:40 +DROP TABLE t1; +CREATE TABLE filler_table (a INT, b INT); +INSERT INTO filler_table values (1,1),(1,2); +CREATE TABLE insert_table (a INT, b INT, PRIMARY KEY(a)); +CREATE TABLE replace_table (a INT, b INT, PRIMARY KEY(a)); +INSERT INTO replace_table values (1,1),(2,2); +CREATE TABLE update_table (a INT, b INT, PRIMARY KEY(a)); +INSERT INTO update_table values (1,1),(2,2); +CREATE TABLE insert_2_keys (a INT UNIQUE KEY, b INT UNIQUE KEY); +INSERT INTO insert_2_keys values (1, 1); +INSERT IGNORE INTO insert_table SELECT * FROM filler_table; +Warnings: +Warning 1062 Duplicate entry '1' for key 'PRIMARY' +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT IGNORE... SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave +TRUNCATE TABLE insert_table; +INSERT INTO insert_table SELECT * FROM filler_table ON DUPLICATE KEY UPDATE a = 1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... SELECT... ON DUPLICATE KEY UPDATE is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are updated. This order cannot be predicted and may differ on master and the slave +TRUNCATE TABLE insert_table; +REPLACE INTO replace_table SELECT * FROM filler_table; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. REPLACE... SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave +UPDATE IGNORE update_table SET a=2; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. UPDATE IGNORE is unsafe because the order in which rows are updated determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave +CREATE TABLE create_ignore_test (a INT, b INT, PRIMARY KEY(b)) IGNORE SELECT * FROM filler_table; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. CREATE... IGNORE SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave +CREATE TABLE create_replace_test (a INT, b INT, PRIMARY KEY(b)) REPLACE SELECT * FROM filler_table; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. CREATE... REPLACE SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave +CREATE TEMPORARY TABLE temp1 (a INT, b INT, PRIMARY KEY(b)) REPLACE SELECT * FROM filler_table; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. CREATE... REPLACE SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave +INSERT INTO insert_2_keys VALUES (1, 2) +ON DUPLICATE KEY UPDATE a=VALUES(a)+10, b=VALUES(b)+10; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe +DROP TABLE filler_table; +DROP TABLE insert_table; +DROP TABLE update_table; +DROP TABLE replace_table; +DROP TABLE create_ignore_test; +DROP TABLE create_replace_test; +DROP TABLE insert_2_keys; +"End of tests" diff --git a/mysql-test/suite/binlog/r/binlog_variables_log_bin.result b/mysql-test/suite/binlog/r/binlog_variables_log_bin.result new file mode 100644 index 00000000..d05a2884 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_variables_log_bin.result @@ -0,0 +1,13 @@ +SHOW VARIABLES LIKE 'log_bin%'; +Variable_name log_bin +Value ON +Variable_name log_bin_basename +Value MYSQLTEST_VARDIR/mysqld.1/data/other +Variable_name log_bin_compress +Value OFF +Variable_name log_bin_compress_min_len +Value 256 +Variable_name log_bin_index +Value MYSQLTEST_VARDIR/mysqld.1/data/mysqld-bin.index +Variable_name log_bin_trust_function_creators +Value ON diff --git a/mysql-test/suite/binlog/r/binlog_variables_log_bin_index.result b/mysql-test/suite/binlog/r/binlog_variables_log_bin_index.result new file mode 100644 index 00000000..09f2feae --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_variables_log_bin_index.result @@ -0,0 +1,13 @@ +SHOW VARIABLES LIKE 'log_bin%'; +Variable_name log_bin +Value ON +Variable_name log_bin_basename +Value MYSQLTEST_VARDIR/mysqld.1/data/other +Variable_name log_bin_compress +Value OFF +Variable_name log_bin_compress_min_len +Value 256 +Variable_name log_bin_index +Value MYSQLTEST_VARDIR/tmp/something.index +Variable_name log_bin_trust_function_creators +Value ON diff --git a/mysql-test/suite/binlog/r/binlog_variables_relay_log.result b/mysql-test/suite/binlog/r/binlog_variables_relay_log.result new file mode 100644 index 00000000..59135837 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_variables_relay_log.result @@ -0,0 +1,15 @@ +SHOW VARIABLES LIKE 'relay_log%'; +Variable_name relay_log +Value other-relay +Variable_name relay_log_basename +Value MYSQLTEST_VARDIR/mysqld.1/data/other-relay +Variable_name relay_log_index +Value MYSQLTEST_VARDIR/mysqld.1/data/mysqld-relay-bin.index +Variable_name relay_log_info_file +Value relay-log.info +Variable_name relay_log_purge +Value ON +Variable_name relay_log_recovery +Value OFF +Variable_name relay_log_space_limit +Value 0 diff --git a/mysql-test/suite/binlog/r/binlog_variables_relay_log_index.result b/mysql-test/suite/binlog/r/binlog_variables_relay_log_index.result new file mode 100644 index 00000000..1b18b89d --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_variables_relay_log_index.result @@ -0,0 +1,15 @@ +SHOW VARIABLES LIKE 'relay_log%'; +Variable_name relay_log +Value other-relay +Variable_name relay_log_basename +Value MYSQLTEST_VARDIR/mysqld.1/data/other-relay +Variable_name relay_log_index +Value MYSQLTEST_VARDIR/tmp/something-relay.index +Variable_name relay_log_info_file +Value relay-log.info +Variable_name relay_log_purge +Value ON +Variable_name relay_log_recovery +Value OFF +Variable_name relay_log_space_limit +Value 0 diff --git a/mysql-test/suite/binlog/r/binlog_write_error.result b/mysql-test/suite/binlog/r/binlog_write_error.result new file mode 100644 index 00000000..2ee68465 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_write_error.result @@ -0,0 +1,112 @@ +# +# Test injecting binlog write error when executing queries +# +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +CREATE TABLE t1 (a INT); +CREATE TABLE t1 (a INT); +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +INSERT INTO t1 VALUES (1),(2),(3); +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +INSERT INTO t1 VALUES (4),(5),(6); +INSERT INTO t1 VALUES (4),(5),(6); +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +UPDATE t1 set a=a+1; +UPDATE t1 set a=a+1; +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +DELETE FROM t1; +DELETE FROM t1; +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100); +CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100); +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +DROP TRIGGER tr1; +DROP TRIGGER tr1; +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +ALTER TABLE t1 ADD (b INT); +ALTER TABLE t1 ADD (b INT); +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +CREATE VIEW v1 AS SELECT a FROM t1; +CREATE VIEW v1 AS SELECT a FROM t1; +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +DROP VIEW v1; +DROP VIEW v1; +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +CREATE PROCEDURE p1(OUT rows_cnt INT) SELECT count(*) INTO rows_cnt FROM t1; +CREATE PROCEDURE p1(OUT rows_cnt INT) SELECT count(*) INTO rows_cnt FROM t1; +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +DROP PROCEDURE p1; +DROP PROCEDURE p1; +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +DROP TABLE t1; +DROP TABLE t1; +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +CREATE FUNCTION f1() RETURNS INT return 1; +CREATE FUNCTION f1() RETURNS INT return 1; +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +DROP FUNCTION f1; +DROP FUNCTION f1; +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +CREATE USER user1; +CREATE USER user1; +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1; +REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1; +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +SET PASSWORD FOR user1=PASSWORD('foobar'); +SET PASSWORD FOR user1=PASSWORD('foobar'); +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +DROP USER user1; +DROP USER user1; +ERROR HY000: Error writing file 'master-bin' ((errno: #) +set @@global.debug_dbug = @saved_dbug; diff --git a/mysql-test/suite/binlog/r/binlog_xa_checkpoint.result b/mysql-test/suite/binlog/r/binlog_xa_checkpoint.result new file mode 100644 index 00000000..d8a58186 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_xa_checkpoint.result @@ -0,0 +1,33 @@ +RESET MASTER; +CREATE TABLE t1 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Innodb; +connect con1,localhost,root,,; +SET DEBUG_SYNC= "at_unlog_xa_prepare SIGNAL con1_ready WAIT_FOR con1_go"; +XA START '1'; +INSERT INTO t1 SET a=1; +XA END '1'; +XA PREPARE '1';; +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con1_ready"; +FLUSH LOGS; +FLUSH LOGS; +FLUSH LOGS; +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +master-bin.000003 # +master-bin.000004 # +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000004 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000004 # Gtid_list # # [#-#-#] +master-bin.000004 # Binlog_checkpoint # # master-bin.000001 +SET DEBUG_SYNC= "now SIGNAL con1_go"; +connection con1; +*** master-bin.000004 checkpoint must show up now *** +connection con1; +XA ROLLBACK '1'; +SET debug_sync = 'reset'; +connection default; +DROP TABLE t1; +SET debug_sync = 'reset'; diff --git a/mysql-test/suite/binlog/r/binlog_xa_prepared.result b/mysql-test/suite/binlog/r/binlog_xa_prepared.result new file mode 100644 index 00000000..9fda8ab3 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_xa_prepared.result @@ -0,0 +1,1176 @@ +connection default; +RESET MASTER; +CREATE VIEW v_processlist as SELECT * FROM performance_schema.threads where type = 'FOREGROUND'; +call mtr.add_suppression("Found 10 prepared XA transactions"); +CREATE TABLE t (a INT) ENGINE=innodb; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@sql_log_bin = OFF; +CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb; +XA START 'trx1tmp'; +INSERT INTO tmp1 SET a=1; +XA END 'trx1tmp'; +XA PREPARE 'trx1tmp'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@sql_log_bin = OFF; +CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb; +XA START 'trx2tmp'; +INSERT INTO tmp1 SET a=1; +XA END 'trx2tmp'; +XA PREPARE 'trx2tmp'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@sql_log_bin = OFF; +CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb; +XA START 'trx3tmp'; +INSERT INTO tmp1 SET a=1; +XA END 'trx3tmp'; +XA PREPARE 'trx3tmp'; +connection default; +XA COMMIT 'trx1tmp'; +ERROR XAE04: XAER_NOTA: Unknown XID +XA ROLLBACK 'trx1tmp'; +ERROR XAE04: XAER_NOTA: Unknown XID +XA START 'trx1tmp'; +ERROR XAE08: XAER_DUPID: The XID already exists +connection default; +*** 3 prepared transactions must be in the list *** +XA RECOVER; +formatID gtrid_length bqual_length data +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +connection conn1tmp; +disconnect conn1tmp; +connection default; +XA COMMIT 'trx1tmp'; +KILL connection CONN_ID; +XA COMMIT 'trx3tmp'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx1ro'; +SELECT * from t ORDER BY a; +a +XA END 'trx1ro'; +XA PREPARE 'trx1ro'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx2ro'; +SELECT * from t ORDER BY a; +a +XA END 'trx2ro'; +XA PREPARE 'trx2ro'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx3ro'; +SELECT * from t ORDER BY a; +a +XA END 'trx3ro'; +XA PREPARE 'trx3ro'; +connection default; +*** 4 prepared transactions must be in the list *** +XA RECOVER; +formatID gtrid_length bqual_length data +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +connection conn1ro; +disconnect conn1ro; +connection default; +XA ROLLBACK 'trx1ro'; +KILL connection CONN_ID; +XA ROLLBACK 'trx3ro'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx1empty'; +XA END 'trx1empty'; +XA PREPARE 'trx1empty'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx2empty'; +XA END 'trx2empty'; +XA PREPARE 'trx2empty'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx3empty'; +XA END 'trx3empty'; +XA PREPARE 'trx3empty'; +connection default; +*** 5 prepared transactions must be in the list *** +XA RECOVER; +formatID gtrid_length bqual_length data +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +connection conn1empty; +disconnect conn1empty; +connection default; +XA COMMIT 'trx1empty'; +KILL connection CONN_ID; +XA COMMIT 'trx3empty'; +connect conn1$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx1unprepared'; +INSERT INTO t set a=0; +XA END 'trx1unprepared'; +INSERT INTO t set a=0; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state +XA START 'trx1unprepared'; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state +XA START 'trx1unprepared'; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state +disconnect conn1unprepared; +connection default; +XA COMMIT 'trx1unprepared'; +ERROR XAE04: XAER_NOTA: Unknown XID +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_0'; +INSERT INTO t SET a=0; +XA END 'trx_0'; +XA PREPARE 'trx_0'; +disconnect conn0; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_1'; +INSERT INTO t SET a=1; +XA END 'trx_1'; +XA PREPARE 'trx_1'; +disconnect conn1; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_2'; +INSERT INTO t SET a=2; +XA END 'trx_2'; +XA PREPARE 'trx_2'; +disconnect conn2; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_3'; +INSERT INTO t SET a=3; +XA END 'trx_3'; +XA PREPARE 'trx_3'; +disconnect conn3; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_4'; +INSERT INTO t SET a=4; +XA END 'trx_4'; +XA PREPARE 'trx_4'; +disconnect conn4; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_5'; +INSERT INTO t SET a=5; +XA END 'trx_5'; +XA PREPARE 'trx_5'; +disconnect conn5; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_6'; +INSERT INTO t SET a=6; +XA END 'trx_6'; +XA PREPARE 'trx_6'; +disconnect conn6; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_7'; +INSERT INTO t SET a=7; +XA END 'trx_7'; +XA PREPARE 'trx_7'; +disconnect conn7; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_8'; +INSERT INTO t SET a=8; +XA END 'trx_8'; +XA PREPARE 'trx_8'; +disconnect conn8; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_9'; +INSERT INTO t SET a=9; +XA END 'trx_9'; +XA PREPARE 'trx_9'; +disconnect conn9; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_10'; +INSERT INTO t SET a=10; +XA END 'trx_10'; +XA PREPARE 'trx_10'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_11'; +INSERT INTO t SET a=11; +XA END 'trx_11'; +XA PREPARE 'trx_11'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_12'; +INSERT INTO t SET a=12; +XA END 'trx_12'; +XA PREPARE 'trx_12'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_13'; +INSERT INTO t SET a=13; +XA END 'trx_13'; +XA PREPARE 'trx_13'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_14'; +INSERT INTO t SET a=14; +XA END 'trx_14'; +XA PREPARE 'trx_14'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_15'; +INSERT INTO t SET a=15; +XA END 'trx_15'; +XA PREPARE 'trx_15'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_16'; +INSERT INTO t SET a=16; +XA END 'trx_16'; +XA PREPARE 'trx_16'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_17'; +INSERT INTO t SET a=17; +XA END 'trx_17'; +XA PREPARE 'trx_17'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_18'; +INSERT INTO t SET a=18; +XA END 'trx_18'; +XA PREPARE 'trx_18'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_19'; +INSERT INTO t SET a=19; +XA END 'trx_19'; +XA PREPARE 'trx_19'; +connection default; +KILL CONNECTION CONN_ID; +connection default; +XA ROLLBACK 'trx_0'; +XA ROLLBACK 'trx_1'; +XA ROLLBACK 'trx_2'; +XA ROLLBACK 'trx_3'; +XA ROLLBACK 'trx_4'; +XA COMMIT 'trx_5'; +XA COMMIT 'trx_6'; +XA COMMIT 'trx_7'; +XA COMMIT 'trx_8'; +XA COMMIT 'trx_9'; +# restart +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_0'; +INSERT INTO t SET a=0; +XA END 'new_trx_0'; +XA PREPARE 'new_trx_0'; +disconnect conn_restart_0; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_1'; +INSERT INTO t SET a=1; +XA END 'new_trx_1'; +XA PREPARE 'new_trx_1'; +disconnect conn_restart_1; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_2'; +INSERT INTO t SET a=2; +XA END 'new_trx_2'; +XA PREPARE 'new_trx_2'; +disconnect conn_restart_2; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_3'; +INSERT INTO t SET a=3; +XA END 'new_trx_3'; +XA PREPARE 'new_trx_3'; +disconnect conn_restart_3; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_4'; +INSERT INTO t SET a=4; +XA END 'new_trx_4'; +XA PREPARE 'new_trx_4'; +disconnect conn_restart_4; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_5'; +INSERT INTO t SET a=5; +XA END 'new_trx_5'; +XA PREPARE 'new_trx_5'; +disconnect conn_restart_5; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_6'; +INSERT INTO t SET a=6; +XA END 'new_trx_6'; +XA PREPARE 'new_trx_6'; +disconnect conn_restart_6; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_7'; +INSERT INTO t SET a=7; +XA END 'new_trx_7'; +XA PREPARE 'new_trx_7'; +disconnect conn_restart_7; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_8'; +INSERT INTO t SET a=8; +XA END 'new_trx_8'; +XA PREPARE 'new_trx_8'; +disconnect conn_restart_8; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_9'; +INSERT INTO t SET a=9; +XA END 'new_trx_9'; +XA PREPARE 'new_trx_9'; +disconnect conn_restart_9; +connection default; +connection default; +XA COMMIT 'new_trx_0'; +XA COMMIT 'new_trx_1'; +XA COMMIT 'new_trx_2'; +XA COMMIT 'new_trx_3'; +XA COMMIT 'new_trx_4'; +XA COMMIT 'new_trx_5'; +XA COMMIT 'new_trx_6'; +XA COMMIT 'new_trx_7'; +XA COMMIT 'new_trx_8'; +XA COMMIT 'new_trx_9'; +XA START 'trx_10'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_10'; +XA START 'trx_11'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_11'; +XA START 'trx_12'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_12'; +XA START 'trx_13'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_13'; +XA START 'trx_14'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_14'; +XA START 'trx_15'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_15'; +XA START 'trx_16'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_16'; +XA START 'trx_17'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_17'; +XA START 'trx_18'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_18'; +XA START 'trx_19'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_19'; +SELECT * FROM t; +a +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +disconnect conn2tmp; +disconnect conn3tmp; +disconnect conn2ro; +disconnect conn3ro; +disconnect conn2empty; +disconnect conn3empty; +connection default; +XA ROLLBACK 'trx_20'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn19; +connection default; +XA ROLLBACK 'trx_19'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn18; +connection default; +XA ROLLBACK 'trx_18'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn17; +connection default; +XA ROLLBACK 'trx_17'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn16; +connection default; +XA ROLLBACK 'trx_16'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn15; +connection default; +XA ROLLBACK 'trx_15'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn14; +connection default; +XA ROLLBACK 'trx_14'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn13; +connection default; +XA ROLLBACK 'trx_13'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn12; +connection default; +XA ROLLBACK 'trx_12'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn11; +connection default; +XA ROLLBACK 'trx_11'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn10; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@sql_log_bin = OFF; +CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb; +XA START 'trx1tmp'; +INSERT INTO tmp1 SET a=1; +XA END 'trx1tmp'; +XA PREPARE 'trx1tmp'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@sql_log_bin = OFF; +CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb; +XA START 'trx2tmp'; +INSERT INTO tmp1 SET a=1; +XA END 'trx2tmp'; +XA PREPARE 'trx2tmp'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@sql_log_bin = OFF; +CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb; +XA START 'trx3tmp'; +INSERT INTO tmp1 SET a=1; +XA END 'trx3tmp'; +XA PREPARE 'trx3tmp'; +connection default; +XA COMMIT 'trx1tmp'; +ERROR XAE04: XAER_NOTA: Unknown XID +XA ROLLBACK 'trx1tmp'; +ERROR XAE04: XAER_NOTA: Unknown XID +XA START 'trx1tmp'; +ERROR XAE08: XAER_DUPID: The XID already exists +connection default; +*** 3 prepared transactions must be in the list *** +XA RECOVER; +formatID gtrid_length bqual_length data +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +connection conn1tmp; +disconnect conn1tmp; +connection default; +XA COMMIT 'trx1tmp'; +KILL connection CONN_ID; +XA COMMIT 'trx3tmp'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx1ro'; +SELECT * from t ORDER BY a; +a +0 +1 +2 +3 +4 +5 +5 +6 +6 +7 +7 +8 +8 +9 +9 +10 +11 +12 +13 +14 +XA END 'trx1ro'; +XA PREPARE 'trx1ro'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx2ro'; +SELECT * from t ORDER BY a; +a +0 +1 +2 +3 +4 +5 +5 +6 +6 +7 +7 +8 +8 +9 +9 +10 +11 +12 +13 +14 +XA END 'trx2ro'; +XA PREPARE 'trx2ro'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx3ro'; +SELECT * from t ORDER BY a; +a +0 +1 +2 +3 +4 +5 +5 +6 +6 +7 +7 +8 +8 +9 +9 +10 +11 +12 +13 +14 +XA END 'trx3ro'; +XA PREPARE 'trx3ro'; +connection default; +*** 4 prepared transactions must be in the list *** +XA RECOVER; +formatID gtrid_length bqual_length data +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +connection conn1ro; +disconnect conn1ro; +connection default; +XA ROLLBACK 'trx1ro'; +KILL connection CONN_ID; +XA ROLLBACK 'trx3ro'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx1empty'; +XA END 'trx1empty'; +XA PREPARE 'trx1empty'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx2empty'; +XA END 'trx2empty'; +XA PREPARE 'trx2empty'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx3empty'; +XA END 'trx3empty'; +XA PREPARE 'trx3empty'; +connection default; +*** 5 prepared transactions must be in the list *** +XA RECOVER; +formatID gtrid_length bqual_length data +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +connection conn1empty; +disconnect conn1empty; +connection default; +XA COMMIT 'trx1empty'; +KILL connection CONN_ID; +XA COMMIT 'trx3empty'; +connect conn1$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx1unprepared'; +INSERT INTO t set a=0; +XA END 'trx1unprepared'; +INSERT INTO t set a=0; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state +XA START 'trx1unprepared'; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state +XA START 'trx1unprepared'; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state +disconnect conn1unprepared; +connection default; +XA COMMIT 'trx1unprepared'; +ERROR XAE04: XAER_NOTA: Unknown XID +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_0'; +INSERT INTO t SET a=0; +XA END 'trx_0'; +XA PREPARE 'trx_0'; +disconnect conn0; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_1'; +INSERT INTO t SET a=1; +XA END 'trx_1'; +XA PREPARE 'trx_1'; +disconnect conn1; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_2'; +INSERT INTO t SET a=2; +XA END 'trx_2'; +XA PREPARE 'trx_2'; +disconnect conn2; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_3'; +INSERT INTO t SET a=3; +XA END 'trx_3'; +XA PREPARE 'trx_3'; +disconnect conn3; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_4'; +INSERT INTO t SET a=4; +XA END 'trx_4'; +XA PREPARE 'trx_4'; +disconnect conn4; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_5'; +INSERT INTO t SET a=5; +XA END 'trx_5'; +XA PREPARE 'trx_5'; +disconnect conn5; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_6'; +INSERT INTO t SET a=6; +XA END 'trx_6'; +XA PREPARE 'trx_6'; +disconnect conn6; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_7'; +INSERT INTO t SET a=7; +XA END 'trx_7'; +XA PREPARE 'trx_7'; +disconnect conn7; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_8'; +INSERT INTO t SET a=8; +XA END 'trx_8'; +XA PREPARE 'trx_8'; +disconnect conn8; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_9'; +INSERT INTO t SET a=9; +XA END 'trx_9'; +XA PREPARE 'trx_9'; +disconnect conn9; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_10'; +INSERT INTO t SET a=10; +XA END 'trx_10'; +XA PREPARE 'trx_10'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_11'; +INSERT INTO t SET a=11; +XA END 'trx_11'; +XA PREPARE 'trx_11'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_12'; +INSERT INTO t SET a=12; +XA END 'trx_12'; +XA PREPARE 'trx_12'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_13'; +INSERT INTO t SET a=13; +XA END 'trx_13'; +XA PREPARE 'trx_13'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_14'; +INSERT INTO t SET a=14; +XA END 'trx_14'; +XA PREPARE 'trx_14'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_15'; +INSERT INTO t SET a=15; +XA END 'trx_15'; +XA PREPARE 'trx_15'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_16'; +INSERT INTO t SET a=16; +XA END 'trx_16'; +XA PREPARE 'trx_16'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_17'; +INSERT INTO t SET a=17; +XA END 'trx_17'; +XA PREPARE 'trx_17'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_18'; +INSERT INTO t SET a=18; +XA END 'trx_18'; +XA PREPARE 'trx_18'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_19'; +INSERT INTO t SET a=19; +XA END 'trx_19'; +XA PREPARE 'trx_19'; +connection default; +KILL CONNECTION CONN_ID; +connection default; +XA ROLLBACK 'trx_0'; +XA ROLLBACK 'trx_1'; +XA ROLLBACK 'trx_2'; +XA ROLLBACK 'trx_3'; +XA ROLLBACK 'trx_4'; +XA COMMIT 'trx_5'; +XA COMMIT 'trx_6'; +XA COMMIT 'trx_7'; +XA COMMIT 'trx_8'; +XA COMMIT 'trx_9'; +# Kill and restart +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_0'; +INSERT INTO t SET a=0; +XA END 'new_trx_0'; +XA PREPARE 'new_trx_0'; +disconnect conn_restart_0; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_1'; +INSERT INTO t SET a=1; +XA END 'new_trx_1'; +XA PREPARE 'new_trx_1'; +disconnect conn_restart_1; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_2'; +INSERT INTO t SET a=2; +XA END 'new_trx_2'; +XA PREPARE 'new_trx_2'; +disconnect conn_restart_2; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_3'; +INSERT INTO t SET a=3; +XA END 'new_trx_3'; +XA PREPARE 'new_trx_3'; +disconnect conn_restart_3; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_4'; +INSERT INTO t SET a=4; +XA END 'new_trx_4'; +XA PREPARE 'new_trx_4'; +disconnect conn_restart_4; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_5'; +INSERT INTO t SET a=5; +XA END 'new_trx_5'; +XA PREPARE 'new_trx_5'; +disconnect conn_restart_5; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_6'; +INSERT INTO t SET a=6; +XA END 'new_trx_6'; +XA PREPARE 'new_trx_6'; +disconnect conn_restart_6; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_7'; +INSERT INTO t SET a=7; +XA END 'new_trx_7'; +XA PREPARE 'new_trx_7'; +disconnect conn_restart_7; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_8'; +INSERT INTO t SET a=8; +XA END 'new_trx_8'; +XA PREPARE 'new_trx_8'; +disconnect conn_restart_8; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_9'; +INSERT INTO t SET a=9; +XA END 'new_trx_9'; +XA PREPARE 'new_trx_9'; +disconnect conn_restart_9; +connection default; +connection default; +XA COMMIT 'new_trx_0'; +XA COMMIT 'new_trx_1'; +XA COMMIT 'new_trx_2'; +XA COMMIT 'new_trx_3'; +XA COMMIT 'new_trx_4'; +XA COMMIT 'new_trx_5'; +XA COMMIT 'new_trx_6'; +XA COMMIT 'new_trx_7'; +XA COMMIT 'new_trx_8'; +XA COMMIT 'new_trx_9'; +XA START 'trx_10'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_10'; +XA START 'trx_11'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_11'; +XA START 'trx_12'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_12'; +XA START 'trx_13'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_13'; +XA START 'trx_14'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_14'; +XA START 'trx_15'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_15'; +XA START 'trx_16'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_16'; +XA START 'trx_17'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_17'; +XA START 'trx_18'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_18'; +XA START 'trx_19'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_19'; +SELECT * FROM t; +a +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +disconnect conn2tmp; +disconnect conn3tmp; +disconnect conn2ro; +disconnect conn3ro; +disconnect conn2empty; +disconnect conn3empty; +connection default; +XA ROLLBACK 'trx_20'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn19; +connection default; +XA ROLLBACK 'trx_19'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn18; +connection default; +XA ROLLBACK 'trx_18'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn17; +connection default; +XA ROLLBACK 'trx_17'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn16; +connection default; +XA ROLLBACK 'trx_16'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn15; +connection default; +XA ROLLBACK 'trx_15'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn14; +connection default; +XA ROLLBACK 'trx_14'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn13; +connection default; +XA ROLLBACK 'trx_13'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn12; +connection default; +XA ROLLBACK 'trx_12'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn11; +connection default; +XA ROLLBACK 'trx_11'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn10; +connection default; +XA START 'one_phase_trx_0'; +INSERT INTO t SET a=0; +XA END 'one_phase_trx_0'; +XA COMMIT 'one_phase_trx_0' ONE PHASE; +XA START 'one_phase_trx_1'; +INSERT INTO t SET a=1; +XA END 'one_phase_trx_1'; +XA COMMIT 'one_phase_trx_1' ONE PHASE; +XA START 'one_phase_trx_2'; +INSERT INTO t SET a=2; +XA END 'one_phase_trx_2'; +XA COMMIT 'one_phase_trx_2' ONE PHASE; +XA START 'one_phase_trx_3'; +INSERT INTO t SET a=3; +XA END 'one_phase_trx_3'; +XA COMMIT 'one_phase_trx_3' ONE PHASE; +XA START 'one_phase_trx_4'; +INSERT INTO t SET a=4; +XA END 'one_phase_trx_4'; +XA COMMIT 'one_phase_trx_4' ONE PHASE; +SELECT SUM(a) FROM t; +SUM(a) +290 +DROP TABLE t; +DROP VIEW v_processlist; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_processlist` AS SELECT * FROM performance_schema.threads where type = 'FOREGROUND' +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `mtr`; INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'Found 10 prepared XA transactions' COLLATE 'latin1_swedish_ci')) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t (a INT) ENGINE=innodb +master-bin.000001 # Gtid # # XA START X'7472785f30',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=0 +master-bin.000001 # Query # # XA END X'7472785f30',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f30',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f31',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=1 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f31',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f31',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f32',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=2 +master-bin.000001 # Query # # XA END X'7472785f32',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f32',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f33',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=3 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f33',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f33',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f34',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=4 +master-bin.000001 # Query # # XA END X'7472785f34',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f34',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f35',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=5 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f35',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f35',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f36',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=6 +master-bin.000001 # Query # # XA END X'7472785f36',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f36',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f37',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=7 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f37',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f37',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f38',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=8 +master-bin.000001 # Query # # XA END X'7472785f38',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f38',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f39',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=9 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f39',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f39',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3130',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=10 +master-bin.000001 # Query # # XA END X'7472785f3130',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3130',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3131',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=11 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f3131',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3131',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3132',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=12 +master-bin.000001 # Query # # XA END X'7472785f3132',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3132',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3133',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=13 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f3133',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3133',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3134',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=14 +master-bin.000001 # Query # # XA END X'7472785f3134',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3134',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3135',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=15 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f3135',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3135',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3136',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=16 +master-bin.000001 # Query # # XA END X'7472785f3136',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3136',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3137',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=17 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f3137',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3137',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3138',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=18 +master-bin.000001 # Query # # XA END X'7472785f3138',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3138',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3139',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=19 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f3139',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3139',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA ROLLBACK X'7472785f30',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA ROLLBACK X'7472785f31',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA ROLLBACK X'7472785f32',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA ROLLBACK X'7472785f33',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA ROLLBACK X'7472785f34',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA COMMIT X'7472785f35',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA COMMIT X'7472785f36',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA COMMIT X'7472785f37',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA COMMIT X'7472785f38',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA COMMIT X'7472785f39',X'',1 +master-bin.000001 # Stop # # +All transactions must be completed, to empty-list the following: +XA RECOVER; +formatID gtrid_length bqual_length data +XA RECOVER; +formatID gtrid_length bqual_length data diff --git a/mysql-test/suite/binlog/r/binlog_xa_prepared_disconnect.result b/mysql-test/suite/binlog/r/binlog_xa_prepared_disconnect.result new file mode 100644 index 00000000..9fda8ab3 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_xa_prepared_disconnect.result @@ -0,0 +1,1176 @@ +connection default; +RESET MASTER; +CREATE VIEW v_processlist as SELECT * FROM performance_schema.threads where type = 'FOREGROUND'; +call mtr.add_suppression("Found 10 prepared XA transactions"); +CREATE TABLE t (a INT) ENGINE=innodb; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@sql_log_bin = OFF; +CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb; +XA START 'trx1tmp'; +INSERT INTO tmp1 SET a=1; +XA END 'trx1tmp'; +XA PREPARE 'trx1tmp'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@sql_log_bin = OFF; +CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb; +XA START 'trx2tmp'; +INSERT INTO tmp1 SET a=1; +XA END 'trx2tmp'; +XA PREPARE 'trx2tmp'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@sql_log_bin = OFF; +CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb; +XA START 'trx3tmp'; +INSERT INTO tmp1 SET a=1; +XA END 'trx3tmp'; +XA PREPARE 'trx3tmp'; +connection default; +XA COMMIT 'trx1tmp'; +ERROR XAE04: XAER_NOTA: Unknown XID +XA ROLLBACK 'trx1tmp'; +ERROR XAE04: XAER_NOTA: Unknown XID +XA START 'trx1tmp'; +ERROR XAE08: XAER_DUPID: The XID already exists +connection default; +*** 3 prepared transactions must be in the list *** +XA RECOVER; +formatID gtrid_length bqual_length data +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +connection conn1tmp; +disconnect conn1tmp; +connection default; +XA COMMIT 'trx1tmp'; +KILL connection CONN_ID; +XA COMMIT 'trx3tmp'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx1ro'; +SELECT * from t ORDER BY a; +a +XA END 'trx1ro'; +XA PREPARE 'trx1ro'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx2ro'; +SELECT * from t ORDER BY a; +a +XA END 'trx2ro'; +XA PREPARE 'trx2ro'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx3ro'; +SELECT * from t ORDER BY a; +a +XA END 'trx3ro'; +XA PREPARE 'trx3ro'; +connection default; +*** 4 prepared transactions must be in the list *** +XA RECOVER; +formatID gtrid_length bqual_length data +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +connection conn1ro; +disconnect conn1ro; +connection default; +XA ROLLBACK 'trx1ro'; +KILL connection CONN_ID; +XA ROLLBACK 'trx3ro'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx1empty'; +XA END 'trx1empty'; +XA PREPARE 'trx1empty'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx2empty'; +XA END 'trx2empty'; +XA PREPARE 'trx2empty'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx3empty'; +XA END 'trx3empty'; +XA PREPARE 'trx3empty'; +connection default; +*** 5 prepared transactions must be in the list *** +XA RECOVER; +formatID gtrid_length bqual_length data +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +connection conn1empty; +disconnect conn1empty; +connection default; +XA COMMIT 'trx1empty'; +KILL connection CONN_ID; +XA COMMIT 'trx3empty'; +connect conn1$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx1unprepared'; +INSERT INTO t set a=0; +XA END 'trx1unprepared'; +INSERT INTO t set a=0; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state +XA START 'trx1unprepared'; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state +XA START 'trx1unprepared'; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state +disconnect conn1unprepared; +connection default; +XA COMMIT 'trx1unprepared'; +ERROR XAE04: XAER_NOTA: Unknown XID +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_0'; +INSERT INTO t SET a=0; +XA END 'trx_0'; +XA PREPARE 'trx_0'; +disconnect conn0; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_1'; +INSERT INTO t SET a=1; +XA END 'trx_1'; +XA PREPARE 'trx_1'; +disconnect conn1; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_2'; +INSERT INTO t SET a=2; +XA END 'trx_2'; +XA PREPARE 'trx_2'; +disconnect conn2; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_3'; +INSERT INTO t SET a=3; +XA END 'trx_3'; +XA PREPARE 'trx_3'; +disconnect conn3; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_4'; +INSERT INTO t SET a=4; +XA END 'trx_4'; +XA PREPARE 'trx_4'; +disconnect conn4; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_5'; +INSERT INTO t SET a=5; +XA END 'trx_5'; +XA PREPARE 'trx_5'; +disconnect conn5; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_6'; +INSERT INTO t SET a=6; +XA END 'trx_6'; +XA PREPARE 'trx_6'; +disconnect conn6; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_7'; +INSERT INTO t SET a=7; +XA END 'trx_7'; +XA PREPARE 'trx_7'; +disconnect conn7; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_8'; +INSERT INTO t SET a=8; +XA END 'trx_8'; +XA PREPARE 'trx_8'; +disconnect conn8; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_9'; +INSERT INTO t SET a=9; +XA END 'trx_9'; +XA PREPARE 'trx_9'; +disconnect conn9; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_10'; +INSERT INTO t SET a=10; +XA END 'trx_10'; +XA PREPARE 'trx_10'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_11'; +INSERT INTO t SET a=11; +XA END 'trx_11'; +XA PREPARE 'trx_11'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_12'; +INSERT INTO t SET a=12; +XA END 'trx_12'; +XA PREPARE 'trx_12'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_13'; +INSERT INTO t SET a=13; +XA END 'trx_13'; +XA PREPARE 'trx_13'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_14'; +INSERT INTO t SET a=14; +XA END 'trx_14'; +XA PREPARE 'trx_14'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_15'; +INSERT INTO t SET a=15; +XA END 'trx_15'; +XA PREPARE 'trx_15'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_16'; +INSERT INTO t SET a=16; +XA END 'trx_16'; +XA PREPARE 'trx_16'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_17'; +INSERT INTO t SET a=17; +XA END 'trx_17'; +XA PREPARE 'trx_17'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_18'; +INSERT INTO t SET a=18; +XA END 'trx_18'; +XA PREPARE 'trx_18'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_19'; +INSERT INTO t SET a=19; +XA END 'trx_19'; +XA PREPARE 'trx_19'; +connection default; +KILL CONNECTION CONN_ID; +connection default; +XA ROLLBACK 'trx_0'; +XA ROLLBACK 'trx_1'; +XA ROLLBACK 'trx_2'; +XA ROLLBACK 'trx_3'; +XA ROLLBACK 'trx_4'; +XA COMMIT 'trx_5'; +XA COMMIT 'trx_6'; +XA COMMIT 'trx_7'; +XA COMMIT 'trx_8'; +XA COMMIT 'trx_9'; +# restart +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_0'; +INSERT INTO t SET a=0; +XA END 'new_trx_0'; +XA PREPARE 'new_trx_0'; +disconnect conn_restart_0; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_1'; +INSERT INTO t SET a=1; +XA END 'new_trx_1'; +XA PREPARE 'new_trx_1'; +disconnect conn_restart_1; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_2'; +INSERT INTO t SET a=2; +XA END 'new_trx_2'; +XA PREPARE 'new_trx_2'; +disconnect conn_restart_2; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_3'; +INSERT INTO t SET a=3; +XA END 'new_trx_3'; +XA PREPARE 'new_trx_3'; +disconnect conn_restart_3; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_4'; +INSERT INTO t SET a=4; +XA END 'new_trx_4'; +XA PREPARE 'new_trx_4'; +disconnect conn_restart_4; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_5'; +INSERT INTO t SET a=5; +XA END 'new_trx_5'; +XA PREPARE 'new_trx_5'; +disconnect conn_restart_5; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_6'; +INSERT INTO t SET a=6; +XA END 'new_trx_6'; +XA PREPARE 'new_trx_6'; +disconnect conn_restart_6; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_7'; +INSERT INTO t SET a=7; +XA END 'new_trx_7'; +XA PREPARE 'new_trx_7'; +disconnect conn_restart_7; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_8'; +INSERT INTO t SET a=8; +XA END 'new_trx_8'; +XA PREPARE 'new_trx_8'; +disconnect conn_restart_8; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_9'; +INSERT INTO t SET a=9; +XA END 'new_trx_9'; +XA PREPARE 'new_trx_9'; +disconnect conn_restart_9; +connection default; +connection default; +XA COMMIT 'new_trx_0'; +XA COMMIT 'new_trx_1'; +XA COMMIT 'new_trx_2'; +XA COMMIT 'new_trx_3'; +XA COMMIT 'new_trx_4'; +XA COMMIT 'new_trx_5'; +XA COMMIT 'new_trx_6'; +XA COMMIT 'new_trx_7'; +XA COMMIT 'new_trx_8'; +XA COMMIT 'new_trx_9'; +XA START 'trx_10'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_10'; +XA START 'trx_11'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_11'; +XA START 'trx_12'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_12'; +XA START 'trx_13'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_13'; +XA START 'trx_14'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_14'; +XA START 'trx_15'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_15'; +XA START 'trx_16'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_16'; +XA START 'trx_17'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_17'; +XA START 'trx_18'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_18'; +XA START 'trx_19'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_19'; +SELECT * FROM t; +a +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +disconnect conn2tmp; +disconnect conn3tmp; +disconnect conn2ro; +disconnect conn3ro; +disconnect conn2empty; +disconnect conn3empty; +connection default; +XA ROLLBACK 'trx_20'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn19; +connection default; +XA ROLLBACK 'trx_19'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn18; +connection default; +XA ROLLBACK 'trx_18'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn17; +connection default; +XA ROLLBACK 'trx_17'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn16; +connection default; +XA ROLLBACK 'trx_16'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn15; +connection default; +XA ROLLBACK 'trx_15'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn14; +connection default; +XA ROLLBACK 'trx_14'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn13; +connection default; +XA ROLLBACK 'trx_13'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn12; +connection default; +XA ROLLBACK 'trx_12'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn11; +connection default; +XA ROLLBACK 'trx_11'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn10; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@sql_log_bin = OFF; +CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb; +XA START 'trx1tmp'; +INSERT INTO tmp1 SET a=1; +XA END 'trx1tmp'; +XA PREPARE 'trx1tmp'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@sql_log_bin = OFF; +CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb; +XA START 'trx2tmp'; +INSERT INTO tmp1 SET a=1; +XA END 'trx2tmp'; +XA PREPARE 'trx2tmp'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@sql_log_bin = OFF; +CREATE TEMPORARY TABLE tmp1 (a int) ENGINE=innodb; +XA START 'trx3tmp'; +INSERT INTO tmp1 SET a=1; +XA END 'trx3tmp'; +XA PREPARE 'trx3tmp'; +connection default; +XA COMMIT 'trx1tmp'; +ERROR XAE04: XAER_NOTA: Unknown XID +XA ROLLBACK 'trx1tmp'; +ERROR XAE04: XAER_NOTA: Unknown XID +XA START 'trx1tmp'; +ERROR XAE08: XAER_DUPID: The XID already exists +connection default; +*** 3 prepared transactions must be in the list *** +XA RECOVER; +formatID gtrid_length bqual_length data +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +connection conn1tmp; +disconnect conn1tmp; +connection default; +XA COMMIT 'trx1tmp'; +KILL connection CONN_ID; +XA COMMIT 'trx3tmp'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx1ro'; +SELECT * from t ORDER BY a; +a +0 +1 +2 +3 +4 +5 +5 +6 +6 +7 +7 +8 +8 +9 +9 +10 +11 +12 +13 +14 +XA END 'trx1ro'; +XA PREPARE 'trx1ro'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx2ro'; +SELECT * from t ORDER BY a; +a +0 +1 +2 +3 +4 +5 +5 +6 +6 +7 +7 +8 +8 +9 +9 +10 +11 +12 +13 +14 +XA END 'trx2ro'; +XA PREPARE 'trx2ro'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx3ro'; +SELECT * from t ORDER BY a; +a +0 +1 +2 +3 +4 +5 +5 +6 +6 +7 +7 +8 +8 +9 +9 +10 +11 +12 +13 +14 +XA END 'trx3ro'; +XA PREPARE 'trx3ro'; +connection default; +*** 4 prepared transactions must be in the list *** +XA RECOVER; +formatID gtrid_length bqual_length data +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +connection conn1ro; +disconnect conn1ro; +connection default; +XA ROLLBACK 'trx1ro'; +KILL connection CONN_ID; +XA ROLLBACK 'trx3ro'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx1empty'; +XA END 'trx1empty'; +XA PREPARE 'trx1empty'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx2empty'; +XA END 'trx2empty'; +XA PREPARE 'trx2empty'; +connect conn$index$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx3empty'; +XA END 'trx3empty'; +XA PREPARE 'trx3empty'; +connection default; +*** 5 prepared transactions must be in the list *** +XA RECOVER; +formatID gtrid_length bqual_length data +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +1 LEN1 LEN2 TRX_N +connection conn1empty; +disconnect conn1empty; +connection default; +XA COMMIT 'trx1empty'; +KILL connection CONN_ID; +XA COMMIT 'trx3empty'; +connect conn1$type, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'trx1unprepared'; +INSERT INTO t set a=0; +XA END 'trx1unprepared'; +INSERT INTO t set a=0; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state +XA START 'trx1unprepared'; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state +XA START 'trx1unprepared'; +ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state +disconnect conn1unprepared; +connection default; +XA COMMIT 'trx1unprepared'; +ERROR XAE04: XAER_NOTA: Unknown XID +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_0'; +INSERT INTO t SET a=0; +XA END 'trx_0'; +XA PREPARE 'trx_0'; +disconnect conn0; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_1'; +INSERT INTO t SET a=1; +XA END 'trx_1'; +XA PREPARE 'trx_1'; +disconnect conn1; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_2'; +INSERT INTO t SET a=2; +XA END 'trx_2'; +XA PREPARE 'trx_2'; +disconnect conn2; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_3'; +INSERT INTO t SET a=3; +XA END 'trx_3'; +XA PREPARE 'trx_3'; +disconnect conn3; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_4'; +INSERT INTO t SET a=4; +XA END 'trx_4'; +XA PREPARE 'trx_4'; +disconnect conn4; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_5'; +INSERT INTO t SET a=5; +XA END 'trx_5'; +XA PREPARE 'trx_5'; +disconnect conn5; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_6'; +INSERT INTO t SET a=6; +XA END 'trx_6'; +XA PREPARE 'trx_6'; +disconnect conn6; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_7'; +INSERT INTO t SET a=7; +XA END 'trx_7'; +XA PREPARE 'trx_7'; +disconnect conn7; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_8'; +INSERT INTO t SET a=8; +XA END 'trx_8'; +XA PREPARE 'trx_8'; +disconnect conn8; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_9'; +INSERT INTO t SET a=9; +XA END 'trx_9'; +XA PREPARE 'trx_9'; +disconnect conn9; +connection default; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_10'; +INSERT INTO t SET a=10; +XA END 'trx_10'; +XA PREPARE 'trx_10'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_11'; +INSERT INTO t SET a=11; +XA END 'trx_11'; +XA PREPARE 'trx_11'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_12'; +INSERT INTO t SET a=12; +XA END 'trx_12'; +XA PREPARE 'trx_12'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_13'; +INSERT INTO t SET a=13; +XA END 'trx_13'; +XA PREPARE 'trx_13'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_14'; +INSERT INTO t SET a=14; +XA END 'trx_14'; +XA PREPARE 'trx_14'; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_15'; +INSERT INTO t SET a=15; +XA END 'trx_15'; +XA PREPARE 'trx_15'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_16'; +INSERT INTO t SET a=16; +XA END 'trx_16'; +XA PREPARE 'trx_16'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_17'; +INSERT INTO t SET a=17; +XA END 'trx_17'; +XA PREPARE 'trx_17'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +XA START 'trx_18'; +INSERT INTO t SET a=18; +XA END 'trx_18'; +XA PREPARE 'trx_18'; +connection default; +KILL CONNECTION CONN_ID; +connect conn$i, 127.0.0.1,root,,test,$MASTER_MYPORT,; +SET @@binlog_format = STATEMENT; +SET @@binlog_format = ROW; +XA START 'trx_19'; +INSERT INTO t SET a=19; +XA END 'trx_19'; +XA PREPARE 'trx_19'; +connection default; +KILL CONNECTION CONN_ID; +connection default; +XA ROLLBACK 'trx_0'; +XA ROLLBACK 'trx_1'; +XA ROLLBACK 'trx_2'; +XA ROLLBACK 'trx_3'; +XA ROLLBACK 'trx_4'; +XA COMMIT 'trx_5'; +XA COMMIT 'trx_6'; +XA COMMIT 'trx_7'; +XA COMMIT 'trx_8'; +XA COMMIT 'trx_9'; +# Kill and restart +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_0'; +INSERT INTO t SET a=0; +XA END 'new_trx_0'; +XA PREPARE 'new_trx_0'; +disconnect conn_restart_0; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_1'; +INSERT INTO t SET a=1; +XA END 'new_trx_1'; +XA PREPARE 'new_trx_1'; +disconnect conn_restart_1; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_2'; +INSERT INTO t SET a=2; +XA END 'new_trx_2'; +XA PREPARE 'new_trx_2'; +disconnect conn_restart_2; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_3'; +INSERT INTO t SET a=3; +XA END 'new_trx_3'; +XA PREPARE 'new_trx_3'; +disconnect conn_restart_3; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_4'; +INSERT INTO t SET a=4; +XA END 'new_trx_4'; +XA PREPARE 'new_trx_4'; +disconnect conn_restart_4; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_5'; +INSERT INTO t SET a=5; +XA END 'new_trx_5'; +XA PREPARE 'new_trx_5'; +disconnect conn_restart_5; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_6'; +INSERT INTO t SET a=6; +XA END 'new_trx_6'; +XA PREPARE 'new_trx_6'; +disconnect conn_restart_6; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_7'; +INSERT INTO t SET a=7; +XA END 'new_trx_7'; +XA PREPARE 'new_trx_7'; +disconnect conn_restart_7; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_8'; +INSERT INTO t SET a=8; +XA END 'new_trx_8'; +XA PREPARE 'new_trx_8'; +disconnect conn_restart_8; +connection default; +connect conn_restart_$k, 127.0.0.1,root,,test,$MASTER_MYPORT,; +XA START 'new_trx_9'; +INSERT INTO t SET a=9; +XA END 'new_trx_9'; +XA PREPARE 'new_trx_9'; +disconnect conn_restart_9; +connection default; +connection default; +XA COMMIT 'new_trx_0'; +XA COMMIT 'new_trx_1'; +XA COMMIT 'new_trx_2'; +XA COMMIT 'new_trx_3'; +XA COMMIT 'new_trx_4'; +XA COMMIT 'new_trx_5'; +XA COMMIT 'new_trx_6'; +XA COMMIT 'new_trx_7'; +XA COMMIT 'new_trx_8'; +XA COMMIT 'new_trx_9'; +XA START 'trx_10'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_10'; +XA START 'trx_11'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_11'; +XA START 'trx_12'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_12'; +XA START 'trx_13'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_13'; +XA START 'trx_14'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA COMMIT 'trx_14'; +XA START 'trx_15'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_15'; +XA START 'trx_16'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_16'; +XA START 'trx_17'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_17'; +XA START 'trx_18'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_18'; +XA START 'trx_19'; +ERROR XAE08: XAER_DUPID: The XID already exists +XA ROLLBACK 'trx_19'; +SELECT * FROM t; +a +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +disconnect conn2tmp; +disconnect conn3tmp; +disconnect conn2ro; +disconnect conn3ro; +disconnect conn2empty; +disconnect conn3empty; +connection default; +XA ROLLBACK 'trx_20'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn19; +connection default; +XA ROLLBACK 'trx_19'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn18; +connection default; +XA ROLLBACK 'trx_18'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn17; +connection default; +XA ROLLBACK 'trx_17'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn16; +connection default; +XA ROLLBACK 'trx_16'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn15; +connection default; +XA ROLLBACK 'trx_15'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn14; +connection default; +XA ROLLBACK 'trx_14'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn13; +connection default; +XA ROLLBACK 'trx_13'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn12; +connection default; +XA ROLLBACK 'trx_12'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn11; +connection default; +XA ROLLBACK 'trx_11'; +ERROR XAE04: XAER_NOTA: Unknown XID +disconnect conn10; +connection default; +XA START 'one_phase_trx_0'; +INSERT INTO t SET a=0; +XA END 'one_phase_trx_0'; +XA COMMIT 'one_phase_trx_0' ONE PHASE; +XA START 'one_phase_trx_1'; +INSERT INTO t SET a=1; +XA END 'one_phase_trx_1'; +XA COMMIT 'one_phase_trx_1' ONE PHASE; +XA START 'one_phase_trx_2'; +INSERT INTO t SET a=2; +XA END 'one_phase_trx_2'; +XA COMMIT 'one_phase_trx_2' ONE PHASE; +XA START 'one_phase_trx_3'; +INSERT INTO t SET a=3; +XA END 'one_phase_trx_3'; +XA COMMIT 'one_phase_trx_3' ONE PHASE; +XA START 'one_phase_trx_4'; +INSERT INTO t SET a=4; +XA END 'one_phase_trx_4'; +XA COMMIT 'one_phase_trx_4' ONE PHASE; +SELECT SUM(a) FROM t; +SUM(a) +290 +DROP TABLE t; +DROP VIEW v_processlist; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_processlist` AS SELECT * FROM performance_schema.threads where type = 'FOREGROUND' +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `mtr`; INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'Found 10 prepared XA transactions' COLLATE 'latin1_swedish_ci')) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t (a INT) ENGINE=innodb +master-bin.000001 # Gtid # # XA START X'7472785f30',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=0 +master-bin.000001 # Query # # XA END X'7472785f30',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f30',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f31',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=1 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f31',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f31',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f32',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=2 +master-bin.000001 # Query # # XA END X'7472785f32',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f32',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f33',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=3 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f33',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f33',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f34',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=4 +master-bin.000001 # Query # # XA END X'7472785f34',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f34',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f35',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=5 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f35',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f35',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f36',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=6 +master-bin.000001 # Query # # XA END X'7472785f36',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f36',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f37',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=7 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f37',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f37',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f38',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=8 +master-bin.000001 # Query # # XA END X'7472785f38',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f38',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f39',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=9 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f39',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f39',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3130',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=10 +master-bin.000001 # Query # # XA END X'7472785f3130',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3130',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3131',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=11 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f3131',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3131',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3132',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=12 +master-bin.000001 # Query # # XA END X'7472785f3132',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3132',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3133',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=13 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f3133',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3133',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3134',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=14 +master-bin.000001 # Query # # XA END X'7472785f3134',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3134',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3135',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=15 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f3135',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3135',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3136',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=16 +master-bin.000001 # Query # # XA END X'7472785f3136',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3136',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3137',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=17 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f3137',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3137',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3138',X'',1 GTID #-#-# +master-bin.000001 # Query # # use `test`; INSERT INTO t SET a=18 +master-bin.000001 # Query # # XA END X'7472785f3138',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3138',X'',1 +master-bin.000001 # Gtid # # XA START X'7472785f3139',X'',1 GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t SET a=19 +master-bin.000001 # Table_map # # table_id: # (test.t) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # XA END X'7472785f3139',X'',1 +master-bin.000001 # XA_prepare # # XA PREPARE X'7472785f3139',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA ROLLBACK X'7472785f30',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA ROLLBACK X'7472785f31',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA ROLLBACK X'7472785f32',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA ROLLBACK X'7472785f33',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA ROLLBACK X'7472785f34',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA COMMIT X'7472785f35',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA COMMIT X'7472785f36',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA COMMIT X'7472785f37',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA COMMIT X'7472785f38',X'',1 +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # XA COMMIT X'7472785f39',X'',1 +master-bin.000001 # Stop # # +All transactions must be completed, to empty-list the following: +XA RECOVER; +formatID gtrid_length bqual_length data +XA RECOVER; +formatID gtrid_length bqual_length data diff --git a/mysql-test/suite/binlog/r/binlog_xa_recover.result b/mysql-test/suite/binlog/r/binlog_xa_recover.result new file mode 100644 index 00000000..f5060fd5 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_xa_recover.result @@ -0,0 +1,223 @@ +SET GLOBAL max_binlog_size= 4096; +SET GLOBAL innodb_flush_log_at_trx_commit= 1; +RESET MASTER; +CREATE TABLE t1 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Innodb; +INSERT INTO t1 VALUES (100, REPEAT("x", 4100)); +INSERT INTO t1 VALUES (101, REPEAT("x", 4100)); +INSERT INTO t1 VALUES (102, REPEAT("x", 4100)); +connect con1,localhost,root,,; +SET DEBUG_SYNC= "ha_commit_trans_before_log_and_order SIGNAL con1_wait WAIT_FOR con1_cont"; +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con1_ready WAIT_FOR _ever"; +INSERT INTO t1 VALUES (1, REPEAT("x", 4100)); +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con1_wait"; +connect con2,localhost,root,,; +SET DEBUG_SYNC= "ha_commit_trans_before_log_and_order SIGNAL con2_wait WAIT_FOR con2_cont"; +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con2_ready WAIT_FOR _ever"; +INSERT INTO t1 VALUES (2, NULL); +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con2_wait"; +connect con3,localhost,root,,; +SET DEBUG_SYNC= "ha_commit_trans_before_log_and_order SIGNAL con3_wait WAIT_FOR con3_cont"; +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con3_ready WAIT_FOR _ever"; +INSERT INTO t1 VALUES (3, REPEAT("x", 4100)); +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con3_wait"; +connect con4,localhost,root,,; +SET DEBUG_SYNC= "ha_commit_trans_before_log_and_order SIGNAL con4_wait WAIT_FOR con4_cont"; +SET SESSION debug_dbug="+d,crash_commit_after_log"; +INSERT INTO t1 VALUES (4, NULL); +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con4_wait"; +SET DEBUG_SYNC= "now SIGNAL con1_cont"; +SET DEBUG_SYNC= "now WAIT_FOR con1_ready"; +SET DEBUG_SYNC= "now SIGNAL con2_cont"; +SET DEBUG_SYNC= "now WAIT_FOR con2_ready"; +SET DEBUG_SYNC= "now SIGNAL con3_cont"; +SET DEBUG_SYNC= "now WAIT_FOR con3_ready"; +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +master-bin.000003 # +master-bin.000004 # +master-bin.000005 # +master-bin.000006 # +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000003 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000003 # Gtid_list # # [#-#-#] +master-bin.000003 # Binlog_checkpoint # # master-bin.000002 +master-bin.000003 # Binlog_checkpoint # # master-bin.000003 +master-bin.000003 # Gtid # # BEGIN GTID #-#-# +master-bin.000003 # Annotate_rows # # INSERT INTO t1 VALUES (102, REPEAT("x", 4100)) +master-bin.000003 # Table_map # # table_id: # (test.t1) +master-bin.000003 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000003 # Xid # # COMMIT /* XID */ +master-bin.000003 # Rotate # # master-bin.000004;pos=POS +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000004 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000004 # Gtid_list # # [#-#-#] +master-bin.000004 # Binlog_checkpoint # # master-bin.000003 +master-bin.000004 # Binlog_checkpoint # # master-bin.000004 +master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Annotate_rows # # INSERT INTO t1 VALUES (1, REPEAT("x", 4100)) +master-bin.000004 # Table_map # # table_id: # (test.t1) +master-bin.000004 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000004 # Xid # # COMMIT /* XID */ +master-bin.000004 # Rotate # # master-bin.000005;pos=POS +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000005 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000005 # Gtid_list # # [#-#-#] +master-bin.000005 # Binlog_checkpoint # # master-bin.000004 +master-bin.000005 # Gtid # # BEGIN GTID #-#-# +master-bin.000005 # Annotate_rows # # INSERT INTO t1 VALUES (2, NULL) +master-bin.000005 # Table_map # # table_id: # (test.t1) +master-bin.000005 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000005 # Xid # # COMMIT /* XID */ +master-bin.000005 # Gtid # # BEGIN GTID #-#-# +master-bin.000005 # Annotate_rows # # INSERT INTO t1 VALUES (3, REPEAT("x", 4100)) +master-bin.000005 # Table_map # # table_id: # (test.t1) +master-bin.000005 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000005 # Xid # # COMMIT /* XID */ +master-bin.000005 # Rotate # # master-bin.000006;pos=POS +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000006 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000006 # Gtid_list # # [#-#-#] +master-bin.000006 # Binlog_checkpoint # # master-bin.000004 +PURGE BINARY LOGS TO "master-bin.000006"; +show binary logs; +Log_name File_size +master-bin.000004 # +master-bin.000005 # +master-bin.000006 # +SET DEBUG_SYNC= "now SIGNAL con4_cont"; +connection con4; +Got one of the listed errors +connection default; +SELECT a FROM t1 ORDER BY a; +a +1 +2 +3 +4 +100 +101 +102 +Test that with multiple binlog checkpoints, recovery starts from the last one. +SET GLOBAL max_binlog_size= 4096; +SET GLOBAL innodb_flush_log_at_trx_commit= 1; +RESET MASTER; +connect con10,localhost,root,,; +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con10_ready WAIT_FOR con10_cont"; +INSERT INTO t1 VALUES (10, REPEAT("x", 4100)); +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con10_ready"; +connect con11,localhost,root,,; +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con11_ready WAIT_FOR con11_cont"; +INSERT INTO t1 VALUES (11, REPEAT("x", 4100)); +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con11_ready"; +connect con12,localhost,root,,; +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con12_ready WAIT_FOR con12_cont"; +INSERT INTO t1 VALUES (12, REPEAT("x", 4100)); +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con12_ready"; +INSERT INTO t1 VALUES (13, NULL); +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +master-bin.000003 # +master-bin.000004 # +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000004 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000004 # Gtid_list # # [#-#-#] +master-bin.000004 # Binlog_checkpoint # # master-bin.000001 +master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Annotate_rows # # INSERT INTO t1 VALUES (13, NULL) +master-bin.000004 # Table_map # # table_id: # (test.t1) +master-bin.000004 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000004 # Xid # # COMMIT /* XID */ +SET DEBUG_SYNC= "now SIGNAL con10_cont"; +connection con10; +connection default; +SET DEBUG_SYNC= "now SIGNAL con12_cont"; +connection con12; +connection default; +SET DEBUG_SYNC= "now SIGNAL con11_cont"; +connection con11; +connection default; +Now crash the server +SET SESSION debug_dbug="+d,crash_commit_after_log"; +INSERT INTO t1 VALUES (14, NULL); +Got one of the listed errors +connection default; +SELECT a FROM t1 ORDER BY a; +a +1 +2 +3 +4 +10 +11 +12 +13 +14 +100 +101 +102 +*** Check that recovery works if we crashed early during rotate, before +*** binlog checkpoint event could be written. +SET GLOBAL max_binlog_size= 4096; +SET GLOBAL innodb_flush_log_at_trx_commit= 1; +RESET MASTER; +INSERT INTO t1 VALUES (21, REPEAT("x", 4100)); +INSERT INTO t1 VALUES (22, REPEAT("x", 4100)); +INSERT INTO t1 VALUES (23, REPEAT("x", 4100)); +SET SESSION debug_dbug="+d,crash_before_write_checkpoint_event"; +INSERT INTO t1 VALUES (24, REPEAT("x", 4100)); +Got one of the listed errors +SELECT a FROM t1 ORDER BY a; +a +1 +2 +3 +4 +10 +11 +12 +13 +14 +21 +22 +23 +24 +100 +101 +102 +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +master-bin.000003 # +master-bin.000004 # +master-bin.000005 # +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000004 # Format_desc # # SERVER_VERSION, BINLOG_VERSION +master-bin.000004 # Gtid_list # # [#-#-#] +master-bin.000004 # Binlog_checkpoint # # master-bin.000003 +master-bin.000004 # Binlog_checkpoint # # master-bin.000004 +master-bin.000004 # Gtid # # BEGIN GTID #-#-# +master-bin.000004 # Annotate_rows # # INSERT INTO t1 VALUES (24, REPEAT("x", 4100)) +master-bin.000004 # Table_map # # table_id: # (test.t1) +master-bin.000004 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000004 # Xid # # COMMIT /* XID */ +master-bin.000004 # Rotate # # master-bin.000005;pos=POS +connection default; +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/r/flashback-largebinlog.result b/mysql-test/suite/binlog/r/flashback-largebinlog.result new file mode 100644 index 00000000..4bfa3f66 --- /dev/null +++ b/mysql-test/suite/binlog/r/flashback-largebinlog.result @@ -0,0 +1,70 @@ +# +# Preparatory cleanup. +# +drop database if exists mysqltest; +create database mysqltest; +use mysqltest; +DROP TABLE IF EXISTS t1; +# +# We need a fixed timestamp to avoid varying results. +# +SET timestamp=1000000000; +# +# We need big packets. +# +# Capture initial value to reset at the end of the test +# Now adjust max_allowed_packet +SET @@global.max_allowed_packet= 10*1024*1024*1024; +Warnings: +Warning 1292 Truncated incorrect max_allowed_packet value: '10737418240' +max_allowed_packet is a global variable. +In order for the preceding change in max_allowed_packets' value +to be seen and used, we must start a new connection. +The change does not take effect with the current one. +For simplicity, we just disconnect / reconnect connection default here. +disconnect default; +connect default, localhost,root,,; +# +# Delete all existing binary logs. +# +RESET MASTER; +# +# Create a test table. +# +use mysqltest; +CREATE TABLE t1 ( +c1 LONGTEXT +) DEFAULT CHARSET latin1; +# +# Show how many rows are affected by each statement. +# +# +# Insert some big rows. +# +insert 1024MB data twice +INSERT INTO t1 VALUES (REPEAT('ManyMegaByteBlck', 67108864)); +affected rows: 1 +INSERT INTO t1 VALUES (REPEAT('MegaByteBlckMany', 67108864)); +affected rows: 1 +# +# Flush all log buffers to the log file. +# +FLUSH LOGS; +affected rows: 0 +# +# Call mysqlbinlog to display the log file contents. +# NOTE: The output of mysqlbinlog is redirected to +# $MYSQLTEST_VARDIR/tmp/mysqlbinlog_big_1.out +# If you want to examine it, disable remove_file +# at the bottom of the test script. +# +# +# Cleanup. +# +# reset variable value to pass testcase checks +affected rows: 0 +DROP TABLE t1; +affected rows: 0 +drop database if exists mysqltest; +affected rows: 0 +remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_big_1.out diff --git a/mysql-test/suite/binlog/r/flashback.result b/mysql-test/suite/binlog/r/flashback.result new file mode 100644 index 00000000..da1ef1f4 --- /dev/null +++ b/mysql-test/suite/binlog/r/flashback.result @@ -0,0 +1,709 @@ +# +# Preparatory cleanup. +# +DROP TABLE IF EXISTS t1; +# +# We need a fixed timestamp to avoid varying results. +# +SET timestamp=1000000000; +# < CASE 1 > +# Delete all existing binary logs. +# +RESET MASTER; +CREATE TABLE t1 ( +c01 tinyint, +c02 smallint, +c03 mediumint, +c04 int, +c05 bigint, +c06 char(10), +c07 varchar(20), +c08 TEXT +) ENGINE=InnoDB; +# < CASE 1 > +# Insert data to t1 +# +INSERT INTO t1 VALUES(0,0,0,0,0,'','',''); +INSERT INTO t1 VALUES(1,2,3,4,5, "abc", "abcdefg", "abcedfghijklmnopqrstuvwxyz"); +INSERT INTO t1 VALUES(127, 32767, 8388607, 2147483647, 9223372036854775807, repeat('a', 10), repeat('a', 20), repeat('a', 255)); +# < CASE 1 > +# Update t1 +# +UPDATE t1 SET c01=100 WHERE c02=0 OR c03=3; +# < CASE 1 > +# Clear t1 +# +DELETE FROM t1; +FLUSH LOGS; +# < CASE 1 > +# Show mysqlbinlog result without -B +# +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 9:46:40 at startup +ROLLBACK/*!*/; +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [] +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-1 ddl +/*!100101 SET @@session.skip_parallel_replication=0*//*!*/; +/*!100001 SET @@session.gtid_domain_id=0*//*!*/; +/*!100001 SET @@session.server_id=1*//*!*/; +/*!100001 SET @@session.gtid_seq_no=1*//*!*/; +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=1411383296/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +CREATE TABLE t1 ( +c01 tinyint, +c02 smallint, +c03 mediumint, +c04 int, +c05 bigint, +c06 char(10), +c07 varchar(20), +c08 TEXT +) ENGINE=InnoDB +/*!*/; +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-2 trans +/*!100001 SET @@session.gtid_seq_no=2*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES(0,0,0,0,0,'','','') +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* INT meta=0 nullable=1 is_null=0 */ +### @5=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-3 trans +/*!100001 SET @@session.gtid_seq_no=3*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES(1,2,3,4,5, "abc", "abcdefg", "abcedfghijklmnopqrstuvwxyz") +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=2 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=3 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=4 /* INT meta=0 nullable=1 is_null=0 */ +### @5=5 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='abc' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='abcdefg' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='abcedfghijklmnopqrstuvwxyz' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-4 trans +/*!100001 SET @@session.gtid_seq_no=4*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES(127, 32767, 8388607, 2147483647, 9223372036854775807, repeat('a', 10), repeat('a', 20), repeat('a', 255)) +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @5=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='aaaaaaaaaa' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='aaaaaaaaaaaaaaaaaaaa' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-5 trans +/*!100001 SET @@session.gtid_seq_no=5*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c01=100 WHERE c02=0 OR c03=3 +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* INT meta=0 nullable=1 is_null=0 */ +### @5=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### SET +### @1=100 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* INT meta=0 nullable=1 is_null=0 */ +### @5=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=2 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=3 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=4 /* INT meta=0 nullable=1 is_null=0 */ +### @5=5 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='abc' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='abcdefg' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='abcedfghijklmnopqrstuvwxyz' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### SET +### @1=100 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=2 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=3 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=4 /* INT meta=0 nullable=1 is_null=0 */ +### @5=5 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='abc' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='abcdefg' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='abcedfghijklmnopqrstuvwxyz' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +# Number of rows: 2 +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-6 trans +/*!100001 SET @@session.gtid_seq_no=6*//*!*/; +START TRANSACTION +/*!*/; +# at # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=100 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* INT meta=0 nullable=1 is_null=0 */ +### @5=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1=100 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=2 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=3 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=4 /* INT meta=0 nullable=1 is_null=0 */ +### @5=5 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='abc' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='abcdefg' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='abcedfghijklmnopqrstuvwxyz' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### DELETE FROM `test`.`t1` +### WHERE +### @1=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @5=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='aaaaaaaaaa' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='aaaaaaaaaaaaaaaaaaaa' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +# Number of rows: 3 +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +COMMIT/*!*/; +# at # +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# < CASE 1 > +# Show mysqlbinlog result with -B +# +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; +/*!40019 SET @@session.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +DELIMITER /*!*/; +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 9:46:40 at startup +ROLLBACK/*!*/; +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [] +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES(0,0,0,0,0,'','','') +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# Number of rows: 1 +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES(1,2,3,4,5, "abc", "abcdefg", "abcedfghijklmnopqrstuvwxyz") +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# Number of rows: 1 +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT INTO t1 VALUES(127, 32767, 8388607, 2147483647, 9223372036854775807, repeat('a', 10), repeat('a', 20), repeat('a', 255)) +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# Number of rows: 1 +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> UPDATE t1 SET c01=100 WHERE c02=0 OR c03=3 +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# Number of rows: 2 +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> DELETE FROM t1 +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# Number of rows: 3 +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +START TRANSACTION/*!*/; +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @5=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='aaaaaaaaaa' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='aaaaaaaaaaaaaaaaaaaa' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=100 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=2 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=3 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=4 /* INT meta=0 nullable=1 is_null=0 */ +### @5=5 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='abc' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='abcdefg' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='abcedfghijklmnopqrstuvwxyz' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### INSERT INTO `test`.`t1` +### SET +### @1=100 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* INT meta=0 nullable=1 is_null=0 */ +### @5=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +COMMIT +/*!*/; +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +START TRANSACTION/*!*/; +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Update_rows: table id # flags: STMT_END_F +### UPDATE `test`.`t1` +### WHERE +### @1=100 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=2 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=3 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=4 /* INT meta=0 nullable=1 is_null=0 */ +### @5=5 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='abc' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='abcdefg' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='abcedfghijklmnopqrstuvwxyz' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### SET +### @1=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=2 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=3 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=4 /* INT meta=0 nullable=1 is_null=0 */ +### @5=5 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='abc' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='abcdefg' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='abcedfghijklmnopqrstuvwxyz' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### UPDATE `test`.`t1` +### WHERE +### @1=100 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* INT meta=0 nullable=1 is_null=0 */ +### @5=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +### SET +### @1=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* INT meta=0 nullable=1 is_null=0 */ +### @5=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +COMMIT +/*!*/; +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +START TRANSACTION/*!*/; +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=127 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=32767 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=8388607 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=2147483647 /* INT meta=0 nullable=1 is_null=0 */ +### @5=9223372036854775807 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='aaaaaaaaaa' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='aaaaaaaaaaaaaaaaaaaa' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +COMMIT +/*!*/; +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +START TRANSACTION/*!*/; +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=1 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=2 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=3 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=4 /* INT meta=0 nullable=1 is_null=0 */ +### @5=5 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='abc' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='abcdefg' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='abcedfghijklmnopqrstuvwxyz' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +COMMIT +/*!*/; +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = # +START TRANSACTION/*!*/; +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Delete_rows: table id # flags: STMT_END_F +### DELETE FROM `test`.`t1` +### WHERE +### @1=0 /* TINYINT meta=0 nullable=1 is_null=0 */ +### @2=0 /* SHORTINT meta=0 nullable=1 is_null=0 */ +### @3=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */ +### @4=0 /* INT meta=0 nullable=1 is_null=0 */ +### @5=0 /* LONGINT meta=0 nullable=1 is_null=0 */ +### @6='' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @7='' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */ +### @8='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +COMMIT +/*!*/; +#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +use `test`/*!*/; +SET TIMESTAMP=1000000000/*!*/; +SET @@session.pseudo_thread_id=#/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0/*!*/; +SET @@session.sql_mode=1411383296/*!*/; +SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; +/*!\C latin1 *//*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; +SET @@session.lc_time_names=0/*!*/; +SET @@session.collation_database=DEFAULT/*!*/; +COMMIT +/*!*/; +DELIMITER ; +# End of log file +ROLLBACK /* added by mysqlbinlog */; +/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; +/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/; +# < CASE 1 > +# Insert data to t1 +# +TRUNCATE TABLE t1; +INSERT INTO t1 VALUES(0,0,0,0,0,'','',''); +INSERT INTO t1 VALUES(1,2,3,4,5, "abc", "abcdefg", "abcedfghijklmnopqrstuvwxyz"); +INSERT INTO t1 VALUES(127, 32767, 8388607, 2147483647, 9223372036854775807, repeat('a', 10), repeat('a', 20), repeat('a', 60)); +# < CASE 1 > +# Delete all existing binary logs. +# +RESET MASTER; +SELECT * FROM t1; +c01 c02 c03 c04 c05 c06 c07 c08 +0 0 0 0 0 +1 2 3 4 5 abc abcdefg abcedfghijklmnopqrstuvwxyz +127 32767 8388607 2147483647 9223372036854775807 aaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +# < CASE 1 > +# Operate some data +# +UPDATE t1 SET c01=20; +UPDATE t1 SET c02=200; +UPDATE t1 SET c03=2000; +DELETE FROM t1; +FLUSH LOGS; +# < CASE 1 > +# Flashback & Check the result +# +SELECT * FROM t1; +c01 c02 c03 c04 c05 c06 c07 c08 +127 32767 8388607 2147483647 9223372036854775807 aaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +1 2 3 4 5 abc abcdefg abcedfghijklmnopqrstuvwxyz +0 0 0 0 0 +RESET MASTER; +# < CASE 2 > +# UPDATE multi-rows in one event +# +BEGIN; +UPDATE t1 SET c01=10 WHERE c01=0; +UPDATE t1 SET c01=20 WHERE c01=10; +COMMIT; +FLUSH LOGS; +# < CASE 2 > +# Flashback & Check the result +# +SELECT * FROM t1; +c01 c02 c03 c04 c05 c06 c07 c08 +127 32767 8388607 2147483647 9223372036854775807 aaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +1 2 3 4 5 abc abcdefg abcedfghijklmnopqrstuvwxyz +0 0 0 0 0 +DROP TABLE t1; +# < CASE 3 > +# Self-referencing foreign keys +# +CREATE TABLE t1 (a INT PRIMARY KEY, b INT, FOREIGN KEY my_fk(b) REFERENCES t1(a)) ENGINE=InnoDB; +BEGIN; +INSERT INTO t1 VALUES (1, NULL); +INSERT INTO t1 VALUES (2, 1), (3, 2), (4, 3); +COMMIT; +SELECT * FROM t1; +a b +1 NULL +2 1 +3 2 +4 3 +RESET MASTER; +DELETE FROM t1 ORDER BY a DESC; +FLUSH LOGS; +# < CASE 3 > +# Flashback & Check the result +# +SELECT * FROM t1; +a b +1 NULL +2 1 +3 2 +4 3 +DROP TABLE t1; +# < CASE 4 > +# Trigger +# +CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; +BEGIN; +INSERT INTO t1 VALUES (1, NULL); +INSERT INTO t1 VALUES (2, 1), (3, 2), (4, 3); +INSERT INTO t2 VALUES (6, 7), (7, 8), (8, 9); +COMMIT; +SELECT * FROM t1; +a b +1 NULL +2 1 +3 2 +4 3 +SELECT * FROM t2; +a b +6 7 +7 8 +8 9 +CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW DELETE FROM t2 WHERE a = NEW.b; +RESET MASTER; +INSERT INTO t1 VALUES (5, 6), (7, 8); +SELECT * FROM t1; +a b +1 NULL +2 1 +3 2 +4 3 +5 6 +7 8 +SELECT * FROM t2; +a b +7 8 +FLUSH LOGS; +# < CASE 4 > +# Flashback & Check the result +# +SELECT * FROM t1; +a b +1 NULL +2 1 +3 2 +4 3 +SELECT * FROM t2; +a b +6 7 +7 8 +8 9 +DROP TRIGGER trg1; +DROP TABLE t1; +DROP TABLE t2; +# < CASE 5 > +# REPLCAE Queries +# +CREATE TABLE t1 (a INT PRIMARY KEY, b INT, UNIQUE uk(b)) ENGINE=InnoDB; +BEGIN; +INSERT INTO t1 VALUES (1, NULL); +INSERT INTO t1 VALUES (2, 1), (3, 2), (4, 3); +INSERT INTO t1 VALUES (5, 4), (6, 5), (7, 6); +COMMIT; +SELECT * FROM t1; +a b +1 NULL +2 1 +3 2 +4 3 +5 4 +6 5 +7 6 +RESET MASTER; +REPLACE INTO t1 VALUES (3, 100); +REPLACE INTO t1 SET a=4, b=200; +SELECT * FROM t1; +a b +1 NULL +2 1 +5 4 +6 5 +7 6 +3 100 +4 200 +REPLACE INTO t1 VALUES (5,5); +SELECT * FROM t1; +a b +1 NULL +2 1 +5 5 +7 6 +3 100 +4 200 +FLUSH LOGS; +# < CASE 5 > +# Flashback & Check the result +# +SELECT * FROM t1; +a b +1 NULL +2 1 +3 2 +4 3 +5 4 +6 5 +7 6 +DROP TABLE t1; +# < CASE 6 > +# Test Case from MDEV-21067 +# +CREATE DATABASE world; +CREATE TABLE world.city ( +ID INT AUTO_INCREMENT PRIMARY KEY, +Name VARCHAR(64), +CountryCode VARCHAR(64), +District VARCHAR(64), +Population INT +) ENGINE=InnoDB; +CREATE TABLE test.test ( +ID INT AUTO_INCREMENT PRIMARY KEY, +REC VARCHAR(64), +ts TIMESTAMP +) ENGINE=InnoDB; +INSERT INTO world.city VALUES (NULL, 'Davenport', 'USA', 'Iowa', 100); +INSERT INTO world.city VALUES (NULL, 'Boulder', 'USA', 'Colorado', 1000); +INSERT INTO world.city VALUES (NULL, 'Gweru', 'ZWE', 'Midlands', 10000); +RESET MASTER; +CHECKSUM TABLE world.city; +Table Checksum +world.city 563256876 +INSERT INTO test.test VALUES (NULL, 'Good record 1', CURRENT_TIMESTAMP()); +INSERT INTO world.city VALUES (NULL, 'Wrong value 1', '000', 'Wrong', 0); +INSERT INTO world.city VALUES (NULL, 'Wrong value 2', '000', 'Wrong', 0) , (NULL, 'Wrong value 3', '000', 'Wrong', 0); +INSERT INTO test.test VALUES (NULL, 'Good record 2', CURRENT_TIMESTAMP()); +UPDATE world.city SET Population = 99999999 WHERE ID IN (1, 2, 3); +INSERT INTO test.test VALUES (NULL, 'Good record 3', CURRENT_TIMESTAMP()); +DELETE FROM world.city WHERE ID BETWEEN 1 AND 2; +INSERT INTO test.test VALUES (NULL, 'Good record 5', CURRENT_TIMESTAMP()); +REPLACE INTO world.city VALUES (4074, 'Wrong value 4', '000', 'Wrong', 0); +REPLACE INTO world.city VALUES (4078, 'Wrong value 5', '000', 'Wrong', 0), (NULL, 'Wrong value 6', '000', 'Wrong', 0); +INSERT INTO test.test VALUES (NULL, 'Good record 6', CURRENT_TIMESTAMP()); +INSERT INTO world.city +SELECT NULL, Name, CountryCode, District, Population FROM world.city WHERE ID BETWEEN 2 AND 10; +INSERT INTO test.test VALUES (NULL, 'Good record 7', CURRENT_TIMESTAMP()); +INSERT INTO test.test VALUES (NULL, 'Good record 8', CURRENT_TIMESTAMP()); +DELETE FROM world.city; +INSERT INTO test.test VALUES (NULL, 'Good record 9', CURRENT_TIMESTAMP()); +FLUSH LOGS; +# < CASE 6 > +# Flashback & Check the result +# +SELECT * FROM world.city; +ID Name CountryCode District Population +1 Davenport USA Iowa 100 +2 Boulder USA Colorado 1000 +3 Gweru ZWE Midlands 10000 +SELECT * FROM test.test; +ID REC ts +1 Good record 1 2001-09-09 09:46:40 +2 Good record 2 2001-09-09 09:46:40 +3 Good record 3 2001-09-09 09:46:40 +4 Good record 5 2001-09-09 09:46:40 +5 Good record 6 2001-09-09 09:46:40 +6 Good record 7 2001-09-09 09:46:40 +7 Good record 8 2001-09-09 09:46:40 +8 Good record 9 2001-09-09 09:46:40 +CHECKSUM TABLE world.city; +Table Checksum +world.city 563256876 +DROP TABLE test.test; +DROP TABLE world.city; +DROP DATABASE world; +# < CASE 7 > +# Test Case for MDEV-17260 +# +RESET MASTER; +CREATE TABLE t1 ( f INT PRIMARY KEY ) ENGINE=innodb; +INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6); +# 6- Rows must be present +SELECT COUNT(*) FROM t1; +COUNT(*) +6 +FLUSH LOGS; +DELETE FROM t1; +FLUSH LOGS; +# 0- Rows must be present +include/assert.inc [Table t1 should have 0 rows.] +# 6- Rows must be present upon restoring from flashback +include/assert.inc [Table t1 should have six rows.] +DROP TABLE t1; +SET binlog_format=statement; +Warnings: +Warning 1105 MariaDB Galera and flashback do not support binlog format: STATEMENT +SET GLOBAL binlog_format=statement; +ERROR HY000: Flashback does not support binlog_format STATEMENT diff --git a/mysql-test/suite/binlog/r/foreign_key.result b/mysql-test/suite/binlog/r/foreign_key.result new file mode 100644 index 00000000..171018f2 --- /dev/null +++ b/mysql-test/suite/binlog/r/foreign_key.result @@ -0,0 +1,34 @@ +reset master; +CREATE TABLE t1 ( +id INT, +k INT, +c CHAR(8), +KEY (k), +PRIMARY KEY (id), +FOREIGN KEY (id) REFERENCES t1 (k) +) ENGINE=InnoDB; +LOCK TABLES t1 WRITE; +SET SESSION FOREIGN_KEY_CHECKS= OFF; +SET AUTOCOMMIT=OFF; +INSERT INTO t1 VALUES (1,1,'foo'); +DROP TABLE t1; +SET SESSION FOREIGN_KEY_CHECKS= ON; +SET AUTOCOMMIT=ON; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 ( +id INT, +k INT, +c CHAR(8), +KEY (k), +PRIMARY KEY (id), +FOREIGN KEY (id) REFERENCES t1 (k) +) ENGINE=InnoDB +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1,1,'foo') +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; set foreign_key_checks=1; DROP TABLE `t1` /* generated by server */ diff --git a/mysql-test/suite/binlog/r/load_data_stm_view.result b/mysql-test/suite/binlog/r/load_data_stm_view.result new file mode 100644 index 00000000..c21ffb7d --- /dev/null +++ b/mysql-test/suite/binlog/r/load_data_stm_view.result @@ -0,0 +1,25 @@ +reset master; +create table t1 (i int, j int); +create view v1 as select i from t1; +LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/3940.data' INTO TABLE v1 (i); +LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/3940.data' INTO TABLE v1; +select * from v1; +i +1 +1 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; create table t1 (i int, j int) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select i from t1 +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=# +master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/3940.data' IGNORE INTO TABLE `v1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`i`) ;file_id=# +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=# +master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/3940.data' IGNORE INTO TABLE `v1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`i`) ;file_id=# +master-bin.000001 # Query # # COMMIT +drop view v1; +drop table t1; diff --git a/mysql-test/suite/binlog/r/mysqladmin.result b/mysql-test/suite/binlog/r/mysqladmin.result new file mode 100644 index 00000000..4be6c96d --- /dev/null +++ b/mysql-test/suite/binlog/r/mysqladmin.result @@ -0,0 +1,12 @@ +create user adm@localhost identified by 'foobar'; +grant reload on *.* to adm@localhost; +reset master; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # flush status +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # flush status +drop user adm@localhost; diff --git a/mysql-test/suite/binlog/r/read_only.result b/mysql-test/suite/binlog/r/read_only.result new file mode 100644 index 00000000..9a173d9a --- /dev/null +++ b/mysql-test/suite/binlog/r/read_only.result @@ -0,0 +1,129 @@ +# +# MDEV-17863 DROP TEMPORARY TABLE creates a transaction in +# binary log on read only server +# MDEV-19074 Improved read_only mode for slaves with +# gtid_strict_mode enabled +# +create user test@localhost; +grant CREATE, DROP, INSERT, SELECT on *.* to test@localhost; +create table t1 (a int) engine=myisam; +insert into t1 values (1),(2); +reset master; +set global read_only=1; +# Ensure that optimize and analyze doesn't log to binary log +connect con1,localhost,test,,test; +insert into t1 values(3); +ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement +analyze table t1; +Table Op Msg_type Msg_text +test.t1 analyze status Engine-independent statistics collected +test.t1 analyze status OK +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +repair table t1; +Table Op Msg_type Msg_text +test.t1 repair Error The MariaDB server is running with the --read-only option so it cannot execute this statement +test.t1 repair error Corrupt +optimize table t1; +ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement +# Ensure that using temporary tables is not logged +create temporary table tmp1 (a int) engine=myisam; +insert into tmp1 values (1),(2); +update tmp1 set a=10 where a=2; +delete from tmp1 where a=1; +create temporary table tmp2 select * from t1; +select * from tmp1; +a +10 +select * from tmp2; +a +1 +2 +create temporary table tmp3 like t1; +create or replace temporary table tmp3 like t1; +alter table tmp2 add column (b int); +select * from tmp2; +a b +1 NULL +2 NULL +insert into t1 select a+100 from tmp2; +ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement +drop table tmp1,tmp2,tmp3; +# Clean up test connection +disconnect con1; +connection default; +# Execute some commands as root that should not be logged +optimize table t1; +Table Op Msg_type Msg_text +test.t1 optimize status Table is already up to date +repair table t1; +Table Op Msg_type Msg_text +test.t1 repair status OK +# Changes to temporary tables created under readonly should not +# be logged +create temporary table tmp4 (a int) engine=myisam; +insert into tmp4 values (1),(2); +create temporary table tmp5 (a int) engine=myisam; +insert into tmp5 select * from tmp4; +alter table tmp5 add column (b int); +set global read_only=0; +insert into tmp4 values (3),(4); +insert into tmp5 values (10,3),(11,4); +select * from tmp4; +a +1 +2 +3 +4 +select * from tmp5; +a b +1 NULL +2 NULL +10 3 +11 4 +update tmp4 set a=10 where a=2; +delete from tmp4 where a=1; +create table t2 select * from tmp4; +alter table tmp5 add column (c int); +insert into tmp5 values (20,5,1),(21,5,2); +select * from tmp5; +a b c +1 NULL NULL +2 NULL NULL +10 3 NULL +11 4 NULL +20 5 1 +21 5 2 +insert into t1 select a+200 from tmp5; +select * from t1; +a +1 +2 +201 +202 +210 +211 +220 +221 +drop table tmp4,tmp5; +# Check what is logged. Only last create select and the insert...select's should be +# row-logged +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE `t2` ( + `a` int(11) DEFAULT NULL +) +master-bin.000001 # Annotate_rows # # create table t2 select * from tmp4 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 select a+200 from tmp5 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +# Clean up +drop user test@localhost; +drop table t1,t2; diff --git a/mysql-test/suite/binlog/r/read_only_statement.result b/mysql-test/suite/binlog/r/read_only_statement.result new file mode 100644 index 00000000..9a173d9a --- /dev/null +++ b/mysql-test/suite/binlog/r/read_only_statement.result @@ -0,0 +1,129 @@ +# +# MDEV-17863 DROP TEMPORARY TABLE creates a transaction in +# binary log on read only server +# MDEV-19074 Improved read_only mode for slaves with +# gtid_strict_mode enabled +# +create user test@localhost; +grant CREATE, DROP, INSERT, SELECT on *.* to test@localhost; +create table t1 (a int) engine=myisam; +insert into t1 values (1),(2); +reset master; +set global read_only=1; +# Ensure that optimize and analyze doesn't log to binary log +connect con1,localhost,test,,test; +insert into t1 values(3); +ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement +analyze table t1; +Table Op Msg_type Msg_text +test.t1 analyze status Engine-independent statistics collected +test.t1 analyze status OK +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +repair table t1; +Table Op Msg_type Msg_text +test.t1 repair Error The MariaDB server is running with the --read-only option so it cannot execute this statement +test.t1 repair error Corrupt +optimize table t1; +ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement +# Ensure that using temporary tables is not logged +create temporary table tmp1 (a int) engine=myisam; +insert into tmp1 values (1),(2); +update tmp1 set a=10 where a=2; +delete from tmp1 where a=1; +create temporary table tmp2 select * from t1; +select * from tmp1; +a +10 +select * from tmp2; +a +1 +2 +create temporary table tmp3 like t1; +create or replace temporary table tmp3 like t1; +alter table tmp2 add column (b int); +select * from tmp2; +a b +1 NULL +2 NULL +insert into t1 select a+100 from tmp2; +ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement +drop table tmp1,tmp2,tmp3; +# Clean up test connection +disconnect con1; +connection default; +# Execute some commands as root that should not be logged +optimize table t1; +Table Op Msg_type Msg_text +test.t1 optimize status Table is already up to date +repair table t1; +Table Op Msg_type Msg_text +test.t1 repair status OK +# Changes to temporary tables created under readonly should not +# be logged +create temporary table tmp4 (a int) engine=myisam; +insert into tmp4 values (1),(2); +create temporary table tmp5 (a int) engine=myisam; +insert into tmp5 select * from tmp4; +alter table tmp5 add column (b int); +set global read_only=0; +insert into tmp4 values (3),(4); +insert into tmp5 values (10,3),(11,4); +select * from tmp4; +a +1 +2 +3 +4 +select * from tmp5; +a b +1 NULL +2 NULL +10 3 +11 4 +update tmp4 set a=10 where a=2; +delete from tmp4 where a=1; +create table t2 select * from tmp4; +alter table tmp5 add column (c int); +insert into tmp5 values (20,5,1),(21,5,2); +select * from tmp5; +a b c +1 NULL NULL +2 NULL NULL +10 3 NULL +11 4 NULL +20 5 1 +21 5 2 +insert into t1 select a+200 from tmp5; +select * from t1; +a +1 +2 +201 +202 +210 +211 +220 +221 +drop table tmp4,tmp5; +# Check what is logged. Only last create select and the insert...select's should be +# row-logged +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE `t2` ( + `a` int(11) DEFAULT NULL +) +master-bin.000001 # Annotate_rows # # create table t2 select * from tmp4 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 select a+200 from tmp5 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +# Clean up +drop user test@localhost; +drop table t1,t2; diff --git a/mysql-test/suite/binlog/r/show_concurrent_rotate.result b/mysql-test/suite/binlog/r/show_concurrent_rotate.result new file mode 100644 index 00000000..cee5de33 --- /dev/null +++ b/mysql-test/suite/binlog/r/show_concurrent_rotate.result @@ -0,0 +1,16 @@ +connect con1,localhost,root,,; +FLUSH LOGS; +FLUSH LOGS; +FLUSH LOGS; +SET DEBUG_SYNC= "at_after_lock_index WAIT_FOR con1_go"; +SHOW BINARY LOGS; +connect con2,localhost,root,,; +RESET MASTER; +FLUSH LOGS; +SET DEBUG_SYNC= "now SIGNAL con1_go"; +connection con1; +# The correct result must consists of two records +Log_name File_size +master-bin.000001 # +master-bin.000002 # +SET debug_sync = 'reset'; diff --git a/mysql-test/suite/binlog/r/temptable_uservar_disconnect-7938.result b/mysql-test/suite/binlog/r/temptable_uservar_disconnect-7938.result new file mode 100644 index 00000000..59a1f598 --- /dev/null +++ b/mysql-test/suite/binlog/r/temptable_uservar_disconnect-7938.result @@ -0,0 +1,11 @@ +connect con1,localhost,root,,; +create table t1 (i int); +create trigger tr after insert on t1 for each row set @b=@a; +create temporary table tmp like t1; +insert into t1 values (1); +disconnect con1; +connection default; +select * from t1; +i +1 +drop table t1; diff --git a/mysql-test/suite/binlog/std_data/binlog_old_version_4_1.000001 b/mysql-test/suite/binlog/std_data/binlog_old_version_4_1.000001 Binary files differnew file mode 100644 index 00000000..66db9668 --- /dev/null +++ b/mysql-test/suite/binlog/std_data/binlog_old_version_4_1.000001 diff --git a/mysql-test/suite/binlog/std_data/bug32407.001 b/mysql-test/suite/binlog/std_data/bug32407.001 Binary files differnew file mode 100644 index 00000000..c7324370 --- /dev/null +++ b/mysql-test/suite/binlog/std_data/bug32407.001 diff --git a/mysql-test/suite/binlog/std_data/update-full-row.binlog b/mysql-test/suite/binlog/std_data/update-full-row.binlog Binary files differnew file mode 100644 index 00000000..866a3510 --- /dev/null +++ b/mysql-test/suite/binlog/std_data/update-full-row.binlog diff --git a/mysql-test/suite/binlog/std_data/update-partial-row.binlog b/mysql-test/suite/binlog/std_data/update-partial-row.binlog Binary files differnew file mode 100644 index 00000000..67e3611a --- /dev/null +++ b/mysql-test/suite/binlog/std_data/update-partial-row.binlog diff --git a/mysql-test/suite/binlog/std_data/ver_5_1-telco.001 b/mysql-test/suite/binlog/std_data/ver_5_1-telco.001 Binary files differnew file mode 100644 index 00000000..76856cb0 --- /dev/null +++ b/mysql-test/suite/binlog/std_data/ver_5_1-telco.001 diff --git a/mysql-test/suite/binlog/std_data/ver_5_1_17.001 b/mysql-test/suite/binlog/std_data/ver_5_1_17.001 Binary files differnew file mode 100644 index 00000000..9b6e200e --- /dev/null +++ b/mysql-test/suite/binlog/std_data/ver_5_1_17.001 diff --git a/mysql-test/suite/binlog/std_data/ver_5_1_23.001 b/mysql-test/suite/binlog/std_data/ver_5_1_23.001 Binary files differnew file mode 100644 index 00000000..0e9a9d14 --- /dev/null +++ b/mysql-test/suite/binlog/std_data/ver_5_1_23.001 diff --git a/mysql-test/suite/binlog/std_data/ver_trunk_row_v2.001 b/mysql-test/suite/binlog/std_data/ver_trunk_row_v2.001 Binary files differnew file mode 100644 index 00000000..28360bec --- /dev/null +++ b/mysql-test/suite/binlog/std_data/ver_trunk_row_v2.001 diff --git a/mysql-test/suite/binlog/std_data/write-full-row.binlog b/mysql-test/suite/binlog/std_data/write-full-row.binlog Binary files differnew file mode 100644 index 00000000..b9edb89e --- /dev/null +++ b/mysql-test/suite/binlog/std_data/write-full-row.binlog diff --git a/mysql-test/suite/binlog/std_data/write-partial-row.binlog b/mysql-test/suite/binlog/std_data/write-partial-row.binlog Binary files differnew file mode 100644 index 00000000..7424ec4e --- /dev/null +++ b/mysql-test/suite/binlog/std_data/write-partial-row.binlog diff --git a/mysql-test/suite/binlog/t/backup.test b/mysql-test/suite/binlog/t/backup.test new file mode 100644 index 00000000..e1d921c7 --- /dev/null +++ b/mysql-test/suite/binlog/t/backup.test @@ -0,0 +1,19 @@ +--source include/have_log_bin.inc +--source include/have_binlog_format_mixed.inc + +--echo # +--echo # Test BACKUP STAGES BLOCK_COMMIT with binary logging on +--echo # + +SET BINLOG_FORMAT=MIXED; +RESET MASTER; + +create table t1 (a int) engine=aria; +insert into t1 values (1); + +BACKUP STAGE START; +BACKUP STAGE BLOCK_COMMIT; +SELECT @@gtid_binlog_pos; +BACKUP STAGE END; +source include/show_binlog_events.inc; +drop table t1; diff --git a/mysql-test/suite/binlog/t/binlog_admin_cmd_kill.test b/mysql-test/suite/binlog/t/binlog_admin_cmd_kill.test new file mode 100644 index 00000000..e2397f0e --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_admin_cmd_kill.test @@ -0,0 +1,98 @@ +# ==== Purpose ==== +# +# Test verifies that when an admin command execution is interrupted by KILL +# command it should stop its execution. The admin command in binary log should +# contain only the list of tables which have successfully executed admin +# command prior to kill. +# +# ==== Implementation ==== +# +# Steps: +# 0 - Create two table t1,t2. +# 1 - Execute OPTIMIZE TABLE t1,t2 command. +# 2 - Using debug sync mechanism kill OPTIMIZE TABLE command at a stage +# where it has not optimized any table. +# 3 - Check that OPTIMIZE TABLE command is not written to binary log. +# 4 - Using debug sync mechanism hold the execution of OPTIMIZE TABLE after +# t1 table optimization. Now kill the OPTIMIZE TABLE command. +# 5 - Observe the binlog output, the OPTIMIZE TABLE command should display `t1,t2`. +# 6 - Please note that, we binlog the entire query even if at least one +# table is modified as admin commands are safe to replicate and they will +# not make the slave to diverge. +# +# ==== References ==== +# +# MDEV-22530: Aborting OPTIMIZE TABLE still logs in binary log and replicates to the Slave server. +# +--source include/have_log_bin.inc +--source include/have_debug.inc +--source include/have_debug_sync.inc +--source include/have_innodb.inc + +--echo # +--echo # Kill OPTIMIZE command prior to table modification +--echo # +RESET MASTER; + +CREATE TABLE t1 (f INT) ENGINE=INNODB; +CREATE TABLE t2 (f INT) ENGINE=INNODB; + +--connect(con1,127.0.0.1,root,,test,$MASTER_MYPORT,) +--connection con1 +SET debug_sync='admin_command_kill_before_modify SIGNAL ready_to_be_killed WAIT_FOR master_cont'; +--send OPTIMIZE TABLE t1,t2 + +--connection default +SET debug_sync='now WAIT_FOR ready_to_be_killed'; +--let $thd_id= `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE INFO LIKE '%OPTIMIZE TABLE %'` + +# Now kill. +--replace_result $thd_id THD_ID +eval KILL $thd_id; + +SET debug_sync = 'reset'; +--disconnect con1 + +--source include/show_binlog_events.inc +DROP TABLE t1,t2; + +RESET MASTER; + +--echo # +--echo # Kill OPTIMIZE command after table modification +--echo # + +CREATE TABLE t1 (f INT) ENGINE=INNODB; +CREATE TABLE t2 (f INT) ENGINE=INNODB; + +--connect(con1,127.0.0.1,root,,test,$MASTER_MYPORT,) +--connection con1 +SET debug_sync='admin_command_kill_after_modify SIGNAL ready_to_be_killed WAIT_FOR master_cont'; +--send OPTIMIZE TABLE t1,t2 + +--connection default +SET debug_sync='now WAIT_FOR ready_to_be_killed'; +--let $thd_id= `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE INFO LIKE '%OPTIMIZE TABLE %'` + +# Now kill. +--replace_result $thd_id THD_ID +eval KILL $thd_id; + +SET debug_sync = 'reset'; +--disconnect con1 + +--let $wait_binlog_event= OPTIMIZE +--source include/wait_for_binlog_event.inc + +DROP TABLE t1,t2; +let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1); +FLUSH LOGS; + +--let $MYSQLD_DATADIR= `select @@datadir` +--exec $MYSQL_BINLOG $MYSQLD_DATADIR/$binlog_file > $MYSQLTEST_VARDIR/tmp/mysqlbinlog.out + +--let SEARCH_PATTERN= OPTIMIZE TABLE t1,t2 +--let SEARCH_FILE= $MYSQLTEST_VARDIR/tmp/mysqlbinlog.out +--source include/search_pattern_in_file.inc + +--remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog.out diff --git a/mysql-test/suite/binlog/t/binlog_base64_flag.test b/mysql-test/suite/binlog/t/binlog_base64_flag.test new file mode 100644 index 00000000..5311da54 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_base64_flag.test @@ -0,0 +1,190 @@ +# This test case verifies that the mysqlbinlog --base64-output=X flags +# work as expected, and that BINLOG statements with row events fail if +# they are not preceded by BINLOG statements with Format description +# events. +# +# See also BUG#32407. + + +# BINLOG statement does not work in embedded mode. +source include/not_embedded.inc; + +call mtr.add_suppression("BINLOG_BASE64_EVENT: According to the master's version"); +call mtr.add_suppression("BINLOG_BASE64_EVENT: Column 1 of table 'test.char128_utf8' cannot be converted"); + +disable_warnings; +DROP TABLE IF EXISTS t1; +enable_warnings; +# Test to show BUG#32407. This reads a binlog created with the +# mysql-5.1-telco-6.1 tree, specifically at the tag +# mysql-5.1.15-ndb-6.1.23, and applies it to the database. The test +# should fail before BUG#32407 was fixed and succeed afterwards. +--echo ==== Test BUG#32407 ==== + +# The binlog contains row events equivalent to: +# CREATE TABLE t1 (a int) engine = myisam +# INSERT INTO t1 VALUES (1), (1) +exec $MYSQL_BINLOG suite/binlog/std_data/bug32407.001 | $MYSQL; +# The above line should succeed and t1 should contain two ones +select * from t1; + + +# Test that a BINLOG statement encoding a row event fails unless a +# Format_description_event as been supplied with an earlier BINLOG +# statement. +--echo ==== Test BINLOG statement w/o FD event ==== + +# This is a binlog statement consisting of one Table_map_log_event and +# one Write_rows_log_event. Together, they correspond to the +# following query: +# INSERT INTO TABLE test.t1 VALUES (2) + +error ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT; +BINLOG ' +SVtYRxMBAAAAKQAAADQBAAAAABAAAAAAAAAABHRlc3QAAnQxAAEDAAE= +SVtYRxcBAAAAIgAAAFYBAAAQABAAAAAAAAEAAf/+AgAAAA== +'; +# The above line should fail and 2 should not be in the table +select * from t1; + + +# Test that it works to read a Format_description_log_event with a +# BINLOG statement, followed by a row-event in base64 from the same +# version. +--echo ==== Test BINLOG statement with FD event ==== + +# This is a binlog statement containing a Format_description_log_event +# from the same version as the Table_map and Write_rows_log_event. +BINLOG ' +ODdYRw8BAAAAZgAAAGoAAAABAAQANS4xLjIzLXJjLWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAA4N1hHEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC +'; + +# This is a Table_map_log_event+Write_rows_log_event corresponding to: +# INSERT INTO TABLE test.t1 VALUES (3) +BINLOG ' +TFtYRxMBAAAAKQAAAH8BAAAAABAAAAAAAAAABHRlc3QAAnQxAAEDAAE= +TFtYRxcBAAAAIgAAAKEBAAAQABAAAAAAAAEAAf/+AwAAAA== +'; +# The above line should succeed and 3 should be in the table +select * from t1; + +# The same as above with one-fragment BINLOG to prove +# equivalency with the fragmented BINLOG @frag_0, @frag_1. +DELETE FROM t1 WHERE a=3; +# This is a binlog statement containing a Format_description_log_event +# from the same version as the Table_map and Write_rows_log_event. +BINLOG ' +ODdYRw8BAAAAZgAAAGoAAAABAAQANS4xLjIzLXJjLWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAA4N1hHEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC +'; + +# This is a Table_map_log_event+Write_rows_log_event corresponding to: +# INSERT INTO TABLE test.t1 VALUES (3) +SET @binlog_fragment_0=' +TFtYRxMBAAAAKQAAAH8BAAAAABAAAAAAAAAABHRlc3QAAnQxAAEDAAE= +TFtYRxcBAAAAIgAAAKEBAAAQABAAAAAAAAEAAf/+AwAAAA== +'; +SET @binlog_fragment_1=''; +BINLOG @binlog_fragment_0, @binlog_fragment_1; +# The above line should succeed and 3 should be in the table: +select * from t1; +# show "one-shot" feature of binlog_fragment variables +SELECT @binlog_fragment_0, @binlog_fragment_1 as 'NULL','NULL'; + +# New mysqlbinlog supports --base64-output=never +--echo ==== Test --base64-output=never on a binlog with row events ==== + +# mysqlbinlog should fail +--replace_regex /#[0-9][0-9][0-9][0-9][0-9][0-9] \N*/<#>/ /SET \@\@session.pseudo_thread_id.*/<#>/ +exec $MYSQL_BINLOG --base64-output=never --print-row-count=0 --print-row-event-positions=0 suite/binlog/std_data/bug32407.001; + + +# Test that the following fails cleanly: "First, read a +# Format_description event which has N event types. Then, read an +# event of type M>N" +--echo ==== Test non-matching FD event and Row event ==== + +# This is the Format_description_log_event from +# bug32407.001, encoded in base64. It contains only the old +# row events (number of event types is 22) +BINLOG ' +4CdYRw8BAAAAYgAAAGYAAAAAAAQANS4xLjE1LW5kYi02LjEuMjQtZGVidWctbG9nAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAADgJ1hHEzgNAAgAEgAEBAQEEgAATwAEGggICAg= +'; + +# The following is a Write_rows_log_event with event type 23, i.e., +# not supported by the Format_description_log_event above. It +# corresponds to the following query: +# INSERT INTO t1 VALUES (5) +error 1149; +BINLOG ' +Dl1YRxMBAAAAKQAAADQBAAAAABAAAAAAAAAABHRlc3QAAnQxAAEDAAE= +Dl1YRxcBAAAAIgAAAFYBAAAQABAAAAAAAAEAAf/+BQAAAA== +'; +# the above line should fail and 5 should not be in the binlog. +select * from t1; + +# Test that BUG#37426 is triggered. + +CREATE TABLE char128_utf8 ( + i1 INT NOT NULL, + c CHAR(128) CHARACTER SET utf8 NOT NULL, + i2 INT NOT NULL); +CREATE TABLE char63_utf8 ( + i1 INT NOT NULL, + c CHAR(63) CHARACTER SET utf8 NOT NULL, + i2 INT NOT NULL); + +# +# This is the format description log event +# + +BINLOG ' +MuNkSA8BAAAAZgAAAGoAAAAAAAQANS4xLjI1LXJjLWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAy42RIEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC +'; + +# ... this event corresponding to +# +# INSERT INTO char63_utf8 VALUES ( 1, "123", 1 ) +# +# The binlog event below shall not trigger the bug check + +BINLOG ' +3u9kSBMBAAAANgAAAJYBAAAAABAAAAAAAAAABHRlc3QAC2NoYXI2M191dGY4AAMD/gMC/r0A +3u9kSBcBAAAAKgAAAMABAAAQABAAAAAAAAEAA//4AQAAAAMxMjMBAAAA +'; +SELECT * FROM char63_utf8; + +# ... and this is an event corresponding to +# +# INSERT INTO char128_utf8 VALUES ( 1, "123", 1 ) +# +# The binlog event below shall trigger the bug check and produce an error +# + +error ER_UNKNOWN_ERROR; +BINLOG ' +iONkSBMBAAAANwAAAJkBAAAAABAAAAAAAAAABHRlc3QADGNoYXIxMjhfdXRmOAADA/4DAv6AAA== +iONkSBcBAAAAKwAAAMQBAAAQABAAAAAAAAEAA//4AQAAAAMAMTIzAQAAAA== +'; + +drop table t1, char63_utf8, char128_utf8; + +call mtr.add_suppression("Slave SQL.*master suffers from this bug: http:..bugs.mysql.com.bug.php.id=37426.* error.* 1105"); +call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 1 size mismatch.* error.* 1535"); +call mtr.add_suppression("Slave SQL.*Column 1 of table .test.char128_utf8. cannot be converted.* error.* 1677"); + +--echo # +--echo # Bug #54393: crash and/or valgrind errors in +--echo # mysql_client_binlog_statement +--echo # +--error ER_SYNTAX_ERROR +BINLOG ''; +--error ER_BASE64_DECODE_ERROR +BINLOG '123'; +--error ER_BASE64_DECODE_ERROR +BINLOG '-2079193929'; +--error ER_BASE64_DECODE_ERROR +BINLOG 'xç↓%~∙Dâ•’Æ’â•¡'; diff --git a/mysql-test/suite/binlog/t/binlog_bug23533.test b/mysql-test/suite/binlog/t/binlog_bug23533.test new file mode 100644 index 00000000..ca610e39 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_bug23533.test @@ -0,0 +1,50 @@ +############################################################# +# Bug#23533: CREATE SELECT max_binlog_cache_size test +# case needed +############################################################# + +--source include/have_innodb.inc +--source include/have_log_bin.inc +--source include/have_binlog_format_row.inc + +SET AUTOCOMMIT=0; + +# Create 1st table +CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b TEXT, PRIMARY KEY(a)) ENGINE=InnoDB; +--disable_query_log +let $i= 1000; +while ($i) +{ + BEGIN; + eval INSERT INTO t1 VALUES($i, REPEAT('x', 4096)); + COMMIT; + dec $i; +} +--enable_query_log +SELECT COUNT(*) FROM t1; + +# Set small value for max_binlog_cache_size +let $saved_binlog_cache_size= query_get_value(SELECT @@binlog_cache_size AS Value, Value, 1); +let $saved_max_binlog_cache_size= query_get_value(SELECT @@max_binlog_cache_size AS Value, Value, 1); +SET GLOBAL binlog_cache_size=4096; +SET GLOBAL max_binlog_cache_size=4096; + +# New value of max_binlog_cache_size will apply to new session +disconnect default; +connect(default,localhost,root,,test); + +# Copied data from t1 into t2 large than max_binlog_cache_size +START TRANSACTION; +--error ER_TRANS_CACHE_FULL +CREATE TABLE t2 SELECT * FROM t1; +COMMIT; +SHOW TABLES LIKE 't%'; + +# 5.1 End of Test +--disable_query_log +eval SET GLOBAL max_binlog_cache_size=$saved_max_binlog_cache_size; +eval SET GLOBAL binlog_cache_size=$saved_binlog_cache_size; +--enable_query_log +DROP TABLE t1; +disconnect default; +connect(default,localhost,root,,test); diff --git a/mysql-test/suite/binlog/t/binlog_bug36391-master.opt b/mysql-test/suite/binlog/t/binlog_bug36391-master.opt new file mode 100644 index 00000000..56273241 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_bug36391-master.opt @@ -0,0 +1 @@ +--sql_mode=NO_BACKSLASH_ESCAPES diff --git a/mysql-test/suite/binlog/t/binlog_bug36391.test b/mysql-test/suite/binlog/t/binlog_bug36391.test new file mode 100644 index 00000000..64d91dfa --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_bug36391.test @@ -0,0 +1,30 @@ +# +# BUG#36391 and BUG#38731 +# +# The fix for BUG#20103 "Escaping with backslash does not work as expected" +# was implemented too greedy though in that it not only changes the behavior +# of backslashes within strings but in general, so disabling command shortcuts +# like \G or \C (which in turn leads to BUG#36391: "mysqlbinlog creates invalid charset statements". +# +# The test executes simple commands that are stored in the binary log and +# re-execute them through the mysql client which should have to process +# some command shortcuts. The backslashes within strings is disabled in the file +# rpl_bug36391-master.opt by the option --sql_mode=NO_BACKSLASH_ESCAPES. +# +# + +--source include/have_log_bin.inc +--source include/have_binlog_format_mixed.inc + +CREATE TABLE t1(id INT); +let $binlog= query_get_value(SHOW MASTER STATUS, File, 1); +let $binlog_path= `SELECT CONCAT(@@DATADIR, '$binlog')`; +SHOW TABLES; +FLUSH LOGS; +DROP TABLE t1; + +--exec $MYSQL_BINLOG $binlog_path | $MYSQL test +SHOW TABLES; + +# Clean up +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/t/binlog_checkpoint.test b/mysql-test/suite/binlog/t/binlog_checkpoint.test new file mode 100644 index 00000000..cdb71887 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_checkpoint.test @@ -0,0 +1,177 @@ +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_debug_sync.inc +--source include/have_binlog_format_row.inc + +SET @old_max_binlog_size= @@global.max_binlog_size; +SET GLOBAL max_binlog_size= 4096; +SET @old_innodb_flush_log_at_trx_commit= @@global.innodb_flush_log_at_trx_commit; +SET GLOBAL innodb_flush_log_at_trx_commit= 1; +RESET MASTER; + +CREATE TABLE t1 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Innodb; +CREATE TABLE t2 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Myisam; + +--echo *** Test that RESET MASTER waits for pending commit checkpoints to complete. + +# con1 will hang before doing commit checkpoint, blocking RESET MASTER. +connect(con1,localhost,root,,); +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con1_ready WAIT_FOR con1_go"; +send INSERT INTO t1 VALUES (1, REPEAT("x", 4100)); + +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con1_ready"; +# Let's add a few binlog rotations just for good measure. +INSERT INTO t2 VALUES (1, REPEAT("x", 4100)); +INSERT INTO t2 VALUES (2, REPEAT("x", 4100)); +--source include/show_binary_logs.inc +--let $binlog_file= master-bin.000004 +--let $binlog_start= 4 +--source include/show_binlog_events.inc +SET DEBUG_SYNC= "execute_command_after_close_tables SIGNAL reset_master_done"; +send RESET MASTER; + +connect(con2,localhost,root,,); +--echo This will timeout, as RESET MASTER is blocked +SET DEBUG_SYNC= "now WAIT_FOR reset_master_done TIMEOUT 1"; +# Wake up transaction to allow RESET MASTER to complete. +SET DEBUG_SYNC= "now SIGNAL con1_go"; + +connection con1; +reap; + +connection default; +reap; +--source include/show_binary_logs.inc +--let $binlog_file= master-bin.000001 +--let $binlog_start= 4 +--source include/show_binlog_events.inc + +--echo *** Test that binlog N is active, and commit checkpoint for (N-1) is +--echo *** done while there is still a pending commit checkpoint for (N-2). + +connection con1; +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con1_ready WAIT_FOR con1_continue"; +send INSERT INTO t1 VALUES (20, REPEAT("x", 4100)); + +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con1_ready"; + +connection con2; +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con2_ready WAIT_FOR con2_continue"; +send INSERT INTO t1 VALUES (21, REPEAT("x", 4100)); + +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con2_ready"; +--source include/show_binary_logs.inc +--let $binlog_file= master-bin.000001 +--source include/show_binlog_events.inc +--let $binlog_file= master-bin.000002 +--source include/show_binlog_events.inc +--let $binlog_file= master-bin.000003 +--source include/show_binlog_events.inc + +# We need to sync the test case with the background processing of the +# commit checkpoint, otherwise we get nondeterministic results. +SET DEBUG_SYNC= "RESET"; +SET @old_dbug= @@global.DEBUG_DBUG; +SET GLOBAL debug_dbug="+d,binlog_background_checkpoint_processed"; + +SET DEBUG_SYNC= "now SIGNAL con2_continue"; + +connection con2; +reap; + +connection default; +--echo con1 is still pending, no new binlog checkpoint should have been logged. +# Make sure commit checkpoint is processed before we check that no checkpoint +# event has been binlogged. +SET DEBUG_SYNC= "now WAIT_FOR binlog_background_checkpoint_processed"; +SET GLOBAL debug_dbug= @old_dbug; +SET DEBUG_SYNC= "RESET"; + +--let $binlog_file= master-bin.000003 +--source include/show_binlog_events.inc + +SET DEBUG_SYNC= "now SIGNAL con1_continue"; + +connection con1; +reap; + +connection default; + +--echo No commit checkpoints are pending, a new binlog checkpoint should have been logged. +--let $binlog_file= master-bin.000003 + +# Wait for the master-bin.000003 binlog checkpoint to appear. +--let $wait_for_all= 0 +--let $show_statement= SHOW BINLOG EVENTS IN "$binlog_file" +--let $field= Info +--let $condition= = "master-bin.000003" +--source include/wait_show_condition.inc + +--source include/show_binlog_events.inc + + +--echo *** MDEV-4322: Broken XID counting during binlog rotation *** + +# Test that binlog shutdown waits for any pending binlog checkpoints to have time to complete. + +connection default; +# We will use debug_sync to setup a wait inside the background processing +# of binlog checkpoints. The wait is newer resumed, and will eventually +# time out. If server shutdown does not wait for checkpoint processing to +# complete, we will get an assert. +# +# It is a bit tricky to inject the wait properly as it has to happen in a +# background thread during shutdown. So we first inject a DBUG to set the +# debug_sync wait in the correct thread, then wait to be signalled that +# the inject happened so that we can remove it again from DBUG (else +# check_testcase will complain). + +SET @old_dbug= @@global.DEBUG_DBUG; +SET GLOBAL debug_dbug="+d,inject_binlog_background_thread_before_mark_xid_done"; + +FLUSH LOGS; +INSERT INTO t1 VALUES (30, REPEAT("x", 4100)); +SET DEBUG_SYNC= "now WAIT_FOR injected_binlog_background_thread"; +SET GLOBAL debug_dbug= @old_dbug; +INSERT INTO t1 VALUES (31, REPEAT("x", 4100)); +--source include/show_binary_logs.inc +SET debug_sync = 'reset'; + + +--echo *** MDEV-7402: 'reset master' hangs, waits for signalled COND_xid_list *** + +--source include/wait_for_binlog_checkpoint.inc + +connect(con3,localhost,root,,); +# Make the binlog background thread wait before clearing the pending checkpoint. +# The bug was that one RESET MASTER would clear the reset_master_pending +# flag set by another RESET MASTER; this could cause the wakeup from the +# binlog background thread not to be sent, and thus the second RESET MASTER +# to wait infinitely. +SET debug_sync="reset_logs_after_set_reset_master_pending SIGNAL reset_master_ready WAIT_FOR reset_master_cont"; +send RESET MASTER; + +--connection default +SET @old_dbug= @@global.DEBUG_DBUG; +SET GLOBAL debug_dbug="+d,inject_binlog_background_thread_before_mark_xid_done"; +SET debug_sync="now WAIT_FOR reset_master_ready"; +RESET MASTER; +SET debug_sync="now WAIT_FOR injected_binlog_background_thread"; +SET GLOBAL debug_dbug=@old_dbug; +SET debug_sync="now SIGNAL reset_master_cont"; + +--connection con3 +REAP; + +--connection default +SET debug_sync = 'reset'; + + +# Clean up. +DROP TABLE t1, t2; +SET GLOBAL max_binlog_size= @old_max_binlog_size; +SET GLOBAL innodb_flush_log_at_trx_commit= @old_innodb_flush_log_at_trx_commit; +SET debug_sync = 'reset'; diff --git a/mysql-test/suite/binlog/t/binlog_checkpoint_flush_logs.test b/mysql-test/suite/binlog/t/binlog_checkpoint_flush_logs.test new file mode 100644 index 00000000..e21f1eb3 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_checkpoint_flush_logs.test @@ -0,0 +1,79 @@ +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_debug_sync.inc +--source include/have_binlog_format_row.inc + +# References: +# +# MDEV-24526 binlog rotate via FLUSH LOGS may obsolate binlog file too eary +# +# The test for MDEV-24526 proves the fixes correct observed race condition +# between a commiting transaction and FLUSH-LOGS. +# The plot. +# Trx_1 (con1) transaction binlogs first +# to yield its turn acquiring LOCK_commit_ordered to Trx_2 and stand +# still waiting of a signal that will never arrive. +# Trx_2 can't acquire it in the fixed version even though +# Trx_3 makes sure Trx_2 has reached a post-rotation execution point +# to signal it to proceed. +# Then the server gets crashed and Trx_1 must recover unlike +# in the OLD buggy version. +# +SET GLOBAL innodb_flush_log_at_trx_commit= 1; +RESET MASTER; + +CREATE TABLE t1 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Innodb; + +--echo *** Test that FLUSH LOGS waits if a transaction ordered commit is in progress. + +connect(con1,localhost,root,,); # Trx_1 +# hang before doing acquiring Commit Ordered mutex +SET DEBUG_SYNC= "commit_before_get_LOCK_commit_ordered SIGNAL con1_ready WAIT_FOR con1_go"; + +--send INSERT INTO t1 VALUES (1, REPEAT("x", 1)) + +connection default; # Trx_2 + +SET DEBUG_SYNC= "now WAIT_FOR con1_ready"; +SET DEBUG_SYNC= "rotate_after_rotate SIGNAL con_flush_ready WAIT_FOR default_go"; +--send FLUSH LOGS + +connect(con2,localhost,root,,); # Trx_3 +--echo Trx_1 is not yet committed: +SELECT count(*) as 'ZERO' from t1; + +--echo Wait for Trx_2 has rotated binlog: +SET DEBUG_SYNC= "now WAIT_FOR con_flush_ready"; +# Useless signal to prove Trx_2 cannot race Trx_1's commit +# even though Trx_1 never received the being waited 'con1_go'. +SET DEBUG_SYNC= "now SIGNAL default_go"; + +--let $shutdown_timeout=0 +--source include/restart_mysqld.inc + +connection default; +--enable_reconnect +--error 0,2013 +--reap + +--echo Must be tree logs in the list: +--source include/show_binary_logs.inc +--let $binlog_file= master-bin.000001 +--let $binlog_start= 4 +--source include/show_binlog_events.inc + +--echo Only one Binlog checkpoint must exist and point to master-bin.000001 +--let $binlog_file= master-bin.000002 +--let $binlog_start= 4 +--source include/show_binlog_events.inc + + +# In the buggy server version the following select may have +# resulted with ZERO: +SELECT count(*) as 'ONE' from t1; + +# Clean up. +connection default; + +DROP TABLE t1; +SET debug_sync = 'reset'; diff --git a/mysql-test/suite/binlog/t/binlog_checksum.test b/mysql-test/suite/binlog/t/binlog_checksum.test new file mode 100644 index 00000000..7ecb9308 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_checksum.test @@ -0,0 +1,37 @@ +source include/have_innodb.inc; +source include/have_log_bin.inc; + +# +# WL#2540 replication event checksum +# +# Objectives of the test are: +# to demo binlog events with CRC32 checksum in them and +# to prove show binlog events and mysqlbinlog are capable to handle +# the checksum. +# + +set @save_binlog_checksum = @@global.binlog_checksum; +set @save_master_verify_checksum = @@global.master_verify_checksum; +set @@global.binlog_checksum = CRC32; +set @@global.master_verify_checksum = 1; +let $MYSQLD_DATADIR= `select @@datadir`; + +reset master; +--echo must be master-bin.000001 +--source include/show_binary_logs.inc + +create table t1 (a int); +flush logs; +drop table t1; + +--source include/show_binlog_events.inc +--exec $MYSQL_BINLOG -c $MYSQLD_DATADIR/master-bin.000001 | $MYSQL +show tables; + +# clean-up + +drop table t1; +set @@global.binlog_checksum = @save_binlog_checksum; +set @@global.master_verify_checksum = @save_master_verify_checksum; + +--echo End of the tests diff --git a/mysql-test/suite/binlog/t/binlog_commit_wait.test b/mysql-test/suite/binlog/t/binlog_commit_wait.test new file mode 100644 index 00000000..7d7af2a9 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_commit_wait.test @@ -0,0 +1,229 @@ +--source include/have_innodb.inc +--source include/have_log_bin.inc + +ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB; +CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; + +SET @old_count= @@GLOBAL.binlog_commit_wait_count; +SET GLOBAL binlog_commit_wait_count= 3; +SET @old_usec= @@GLOBAL.binlog_commit_wait_usec; +SET GLOBAL binlog_commit_wait_usec= 20000000; + +connect(con1,localhost,root,,test); +connect(con2,localhost,root,,test); +connect(con3,localhost,root,,test); + +# Get Initial status measurements +--connection default +SELECT variable_value INTO @group_commits FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commits'; +SELECT variable_value INTO @group_commit_trigger_count FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_count'; +SELECT variable_value INTO @group_commit_trigger_timeout FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_timeout'; +SELECT variable_value INTO @group_commit_trigger_lock_wait FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_lock_wait'; + +# Note: binlog_group_commits is counted at the start of the group and group_commit_trigger_* is +# counted near when the groups its finalised. + +# Check that if T2 goes to wait for a row lock of T1 while T1 is waiting for +# more transactions to arrive for group commit, the commit of T1 will complete +# immediately. +# We test this by setting a very high timeout (20 seconds), and testing that +# that much time does not elapse. + +--connection default +SET @a= current_timestamp(); + +--connection con1 +BEGIN; +INSERT INTO t1 VALUES (1,0); +send COMMIT; + +--connection con2 +send INSERT INTO t1 VALUES (1,1); + +--connection con1 +reap; + +--connection default +SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a); +SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")); + +# All connections are to the same server. One transaction occurs on con1. It is +# commited before con2 is started. con2 transaction violates the unique key contraint. This +# type of group commit is binlog_group_commit_trigger_lock_wait so that further con2 +# transactions will occur afterwards as they may be as result of the ER_DUP_ENTRY on the +# application side. +# before: binlog_group_commit=0, binlog_group_commit_trigger_count=0 +# before: binlog_group_commit_trigger_timeout=0, binlog_group_commit_trigger_lock_wait=0 +# after: binlog_group_commit+1 by reason of binlog_group_commit_trigger_lock_wait+1 +SELECT variable_value - @group_commits FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commits'; +SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_count'; +SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_timeout'; +SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_lock_wait'; + +--connection con2 +--error ER_DUP_ENTRY +reap; + + +# Test that the commit triggers when sufficient commits have queued up. +--connection default +SET @a= current_timestamp(); + +--connection con1 +send INSERT INTO t1 VALUES (2,0); + +--connection con2 +send INSERT INTO t1 VALUES (3,0); + +--connection con3 +INSERT INTO t1 VALUES (4,0); + +--connection con1 +reap; +--connection con2 +reap; + +--connection default +SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a); +SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")); + +# All connections are to the same server. 3 non-conflicting transaction occur +# on each connection. The binlog_commit_wait_count=3 at the start therefore 1 +# group is committed by virtue of reaching 3 transactions. Hence +# binlog_group_commit_trigger_count is incremented. +# before: binlog_group_commit=1, binlog_group_commit_trigger_count=0 +# before: binlog_group_commit_trigger_timeout=0, binlog_group_commit_trigger_lock_wait=1 +# after: binlog_group_commit+1 by reason of binlog_group_commit_trigger_count+1 +SELECT variable_value - @group_commits FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commits'; +SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_count'; +SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_timeout'; +SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_lock_wait'; + +# Test that commit triggers immediately if there is already a transaction +# waiting on another transaction that reaches its commit. + +--connection default +SET @a= current_timestamp(); + +--connection con1 +send INSERT INTO t1 VALUES (6,0); + +--connection con2 +BEGIN; +UPDATE t1 SET b=b+1 WHERE a=1; + +--connection con3 +send UPDATE t1 SET b=b+10 WHERE a=1; + +--connection con2 +# A small sleep to let con3 have time to wait on con2. +# The sleep might be too small on loaded host, but that is not a big problem; +# it only means we will trigger a different code path (con3 waits after con2 +# is ready to commit rather than before); and either path should work the same. +# So we will not get false positive in case of different timing; at worst false +# negative. +SELECT SLEEP(0.25); +UPDATE t1 SET b=b+1 WHERE a=3; +COMMIT; + +--connection con1 +reap; + +--connection default +SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a); +SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")); + +# All connections are to the same server. con2 and con3 updates are aquiring +# the same row lock for a=1. Either con2 or con3 will be in a lock wait +# thefore the binlog_group_commit_trigger_lock_wait is incremented. +# before: binlog_group_commit=2, binlog_group_commit_trigger_count=1 +# before: binlog_group_commit_trigger_timeout=0, binlog_group_commit_trigger_lock_wait=1 +# after: binlog_group_commit+1 by reason of binlog_group_commit_trigger_lock_wait+1 +SELECT variable_value - @group_commits FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commits'; +SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_count'; +SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_timeout'; +SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_lock_wait'; + +--connection default +SET @a= current_timestamp(); + +# Now con3 will be waiting for a following group commit to trigger. +--connection con1 +send INSERT INTO t1 VALUES (7,0); +--connection con2 +INSERT INTO t1 VALUES (8,0); +--connection con3 +reap; + +--connection default +SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a); +SELECT IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20")); + +# The con1 and con2 transactions above are combined with the 'send UPDATE t1 SET b=b+10 WHERE a=1;' +# on con3 from the previous block. So we have 3 so this is a count based group. +# before: binlog_group_commit=3, binlog_group_commit_trigger_count=1 +# before: binlog_group_commit_trigger_timeout=0, binlog_group_commit_trigger_lock_wait=2 +# after: binlog_group_commit+1 by reason of binlog_group_commit_trigger_count+1 +SELECT variable_value - @group_commits FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commits'; +SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_count'; +SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_timeout'; +SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_lock_wait'; + +# Test that when the binlog_commit_wait_usec is reached the tranction gets a group commit + +--connection default +SET @a= current_timestamp(); +SET GLOBAL binlog_commit_wait_usec= 5*1000*1000; + +--connection con1 +reap; +INSERT INTO t1 VALUES (9,0); + +--connection default +SET @b= unix_timestamp(current_timestamp()) - unix_timestamp(@a); +SELECT IF(@b < 4, CONCAT("Error: too little time elapsed: ", @b, " seconds < 4"), + IF(@b < 20, "Ok", CONCAT("Error: too much time elapsed: ", @b, " seconds >= 20"))); + +# con1 pushes 1 transaction. The count was for 3 to occur before a group commit. +# The timeout is 5 seconds but we allow between 4 and 20 because of the fragile nature +# of time in test. This is a timeout causing the commit so binlog_group_commit_trigger_timeout +# is incremented. +# before: binlog_group_commit=4, binlog_group_commit_trigger_count=2 +# before: binlog_group_commit_trigger_timeout=0, binlog_group_commit_trigger_lock_wait=2 +# after: binlog_group_commit+1 by reason of binlog_group_commit_trigger_timeout+1 +SELECT variable_value - @group_commits FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commits'; +SELECT variable_value - @group_commit_trigger_count FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_count'; +SELECT variable_value - @group_commit_trigger_timeout FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_timeout'; +SELECT variable_value - @group_commit_trigger_lock_wait FROM information_schema.global_status + WHERE variable_name = 'binlog_group_commit_trigger_lock_wait'; + +--connection default +SELECT * FROM t1 ORDER BY a; + +--connection default +DROP TABLE t1; +SET GLOBAL binlog_commit_wait_count= @old_count; +SET GLOBAL binlog_commit_wait_usec= @old_usec; diff --git a/mysql-test/suite/binlog/t/binlog_database.test b/mysql-test/suite/binlog/t/binlog_database.test new file mode 100644 index 00000000..8d298b8a --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_database.test @@ -0,0 +1,15 @@ +# A wrapper to test that dropping a database is binlogged +# correctly. We test all three modes in the same file to avoid +# unecessary server restarts. + +--source include/have_innodb.inc +--source include/have_binlog_format_statement.inc + +set binlog_format=statement; +source include/database.test; +set binlog_format=mixed; +source include/database.test; +set binlog_format=row; +source include/database.test; + +show databases; diff --git a/mysql-test/suite/binlog/t/binlog_delete_and_flush_index-master.opt b/mysql-test/suite/binlog/t/binlog_delete_and_flush_index-master.opt new file mode 100644 index 00000000..434bd66d --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_delete_and_flush_index-master.opt @@ -0,0 +1 @@ +--log-bin=master-bin --log-bin-index=master-bin diff --git a/mysql-test/suite/binlog/t/binlog_delete_and_flush_index.test b/mysql-test/suite/binlog/t/binlog_delete_and_flush_index.test new file mode 100644 index 00000000..84c83687 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_delete_and_flush_index.test @@ -0,0 +1,114 @@ +# BUG#34582: FLUSH LOGS does not close and reopen the binlog index +# file +# +# WHAT +# ==== +# +# We want to test that FLUSH LOGS closes and reopens binlog index +# file. +# +# HOW +# === +# +# PREPARE: +# 1. create some binlog events +# 2. show index content, binlog events and binlog contents +# for mysql-bin.000001 +# 3. copy the mysql-bin.000001 to mysql-bin-b34582.000001 +# 4. change the index file so that mysql-bin.000001 is replaced +# with mysql-bin-b34582.000001 +# 5. FLUSH the logs so that new index is closed and reopened +# +# ASSERTIONS: +# 1. index file contents shows mysql-bin-b34582.000001 and +# mysql-bin.000002 +# 1. show binary logs shows current index entries +# 2. binlog contents for mysql-bin-b34582.000001 are displayed +# 3. Purge binlogs up to the latest one succeeds +# 4. SHOW BINARY LOGS presents the latest one only after purging +# 5. Purged binlogs files don't exist in the filesystem +# 6. Not purged binlog file exists in the filesystem +# +# CLEAN UP: +# 1. RESET MASTER +# + +-- source include/have_log_bin.inc + +RESET MASTER; + +-- let $datadir= `SELECT @@datadir` +-- let $index=$datadir/master-bin.index +-- chmod 0644 $index + +# action: issue one command so that binlog gets some event +CREATE TABLE t1 (a int); + +-- echo ### assertion: index file contains regular entries +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval SET @index=LOAD_FILE('$index') +-- replace_regex /\.[\\\/]master/master/ +SELECT @index; + +--echo ### assertion: show original binlogs +-- source include/show_binary_logs.inc + +--echo ### assertion: binlog contents from regular entries +-- source include/show_binlog_events.inc + +# action: copy binlogs to other names and change entries in index file +-- copy_file $datadir/master-bin.000001 $datadir/master-bin-b34582.000001 +let INDEX_FILE=$index; +perl; +$file= $ENV{'INDEX_FILE'}; +open(FILE, ">$file") || die "Unable to open $file."; +truncate(FILE,0); +close ($file); +EOF + +-- append_file $index +master-bin-b34582.000001 +EOF + +# action: should cause rotation, and creation of new binlogs +FLUSH LOGS; + +# file is not used anymore - remove it (mysql closed on flush logs). +-- remove_file $datadir/master-bin.000001 + +-- echo ### assertion: index file contains renamed binlog and the new one +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval SET @index=LOAD_FILE('$index') +-- replace_regex /\.[\\\/]master/master/ +SELECT @index; + +-- echo ### assertion: original binlog content still exists, despite we +-- echo ### renamed and changed the index file +-- source include/show_binlog_events.inc + +-- echo ### assertion: user changed binlog index shows correct entries +-- source include/show_binary_logs.inc + +DROP TABLE t1; + +-- echo ### assertion: purging binlogs up to binlog created after instrumenting index file should work +-- let $current_binlog= query_get_value(SHOW MASTER STATUS, File, 1) +-- eval PURGE BINARY LOGS TO '$current_binlog' + +-- echo ### assertion: show binary logs should only contain latest binlog +-- source include/show_binary_logs.inc + +-- echo ### assertion: assert that binlog files were indeed purged (using file_exists calls) +-- error 1 +-- file_exists $datadir/master-bin-b34852.000001 + +-- echo ### assertion: assert that not purged binlog file exists +-- file_exists $datadir/$current_binlog + +-- echo ### assertion: show index file contents and these should match show binary logs issued above +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval SET @index=LOAD_FILE('$index') +-- replace_regex /\.[\\\/]master/master/ +SELECT @index; + +RESET MASTER; diff --git a/mysql-test/suite/binlog/t/binlog_dmls_on_tmp_tables_readonly.test b/mysql-test/suite/binlog/t/binlog_dmls_on_tmp_tables_readonly.test new file mode 100644 index 00000000..0fa35d57 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_dmls_on_tmp_tables_readonly.test @@ -0,0 +1,92 @@ +# ==== Purpose ==== +# +# Check that DMLs are allowed on temporary tables, when server is in read only +# mode and binary log is enabled with binlog-format being stmt/mixed mode. +# +# ==== Implementation ==== +# +# Start the server with binary log being enabled. Mark the server as read only. +# Create a non-SUPER user and let the user to create a temporary table and +# perform DML operations on that temporary table. DMLs should not be blocked +# with a 'server read-only mode' error. +# +# ==== References ==== +# +# Bug#12818255: READ-ONLY OPTION DOES NOT ALLOW INSERTS/UPDATES ON TEMPORARY +# TABLES +# Bug#14294223: CHANGES NOT ALLOWED TO TEMPORARY TABLES ON READ-ONLY SERVERS +############################################################################### +--source include/have_log_bin.inc +--source include/have_innodb.inc +--disable_warnings +DROP TABLE IF EXISTS t1 ; +--enable_warnings + +--enable_connect_log +--echo # READ_ONLY does nothing to SUPER users +--echo # so we use a non-SUPER one: +CREATE USER test@localhost; +GRANT CREATE, SELECT, DROP ON *.* TO test@localhost; + +connect (con1,localhost,test,,test); + +connection default; +SET GLOBAL READ_ONLY=1; + +connection con1; +CREATE TEMPORARY TABLE t1 (a INT) ENGINE=INNODB; + +--echo # Test INSERTS with autocommit being off and on. +BEGIN; +INSERT INTO t1 VALUES (10); +COMMIT; +INSERT INTO t1 VALUES (20); + +--echo # Test UPDATES with autocommit being off and on. +BEGIN; +UPDATE t1 SET a=30 WHERE a=10; +COMMIT; +UPDATE t1 SET a=40 WHERE a=20; + +connection default; +SET GLOBAL READ_ONLY=0; + +--echo # Test scenario where global read_only is enabled in the middle of transaction. +--echo # Test INSERT operations on temporary tables, INSERTs should be successful even +--echo # when global read_only is enabled. +connection con1; +BEGIN; +INSERT INTO t1 VALUES(50); + +connection default; +SET GLOBAL READ_ONLY=1; + +connection con1; +SELECT @@GLOBAL.READ_ONLY; +COMMIT; + +connection default; +SET GLOBAL READ_ONLY=0; + +--echo # Test UPDATE operations on temporary tables, UPDATEs should be successful even +--echo # when global read_only is enabled. +connection con1; +BEGIN; +UPDATE t1 SET a=60 WHERE a=50; + +connection default; +SET GLOBAL READ_ONLY=1; + +connection con1; +SELECT @@GLOBAL.READ_ONLY; +COMMIT; + +SELECT * FROM t1; + +--echo # Clean up +connection default; +SET GLOBAL READ_ONLY=0; + +disconnect con1; +DROP USER test@localhost; +--disable_connect_log diff --git a/mysql-test/suite/binlog/t/binlog_drop_if_exists.test b/mysql-test/suite/binlog/t/binlog_drop_if_exists.test new file mode 100644 index 00000000..b565104c --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_drop_if_exists.test @@ -0,0 +1,162 @@ +--source include/have_innodb.inc + +# BUG#13684: +# SP: DROP PROCEDURE|FUNCTION IF EXISTS not binlogged if routine +# does not exist +# +# There is an inconsistency with DROP DATABASE IF EXISTS, DROP +# TABLE IF EXISTS and DROP VIEW IF EXISTS: those are binlogged even +# if the DB or TABLE does not exist, whereas DROP PROCEDURE IF +# EXISTS does not. It would be nice or at least consistent if DROP +# PROCEDURE/STATEMENT worked the same too. +# +# Description: +# DROP PROCEDURE|FUNCTION IF EXISTS does not get binlogged whereas DROP +# DATABASE|TABLE|TRIGGER|... IF EXISTS do. +# +# Fixed DROP PROCEDURE|FUNCTION IF EXISTS by adding a call to +# write_bin_log in mysql_execute_command. Checked also if all +# documented "DROP (...) IF EXISTS" get binlogged. Left out DROP +# SERVER IF EXISTS because it seems that it only gets binlogged when +# using row event (see BUG#25705). +# +# TODO: add DROP SERVER IF EXISTS to the test case when its +# binlogging procedure gets fixed (BUG#25705). Furthermore, when +# logging in RBR format the events that get logged are effectively in +# RBR format and not in STATEMENT format meaning that one must needs +# to be extra careful when writing a test for it, or change the CREATE +# SERVER logging to always log as STATEMENT. You can quickly check this +# by enabling the flag below $fixed_bug_25705=1 and watch the diff on +# the STDOUT. More detail may be found on the generated reject file. +# +# Test is implemented as follows: +# +# i) test each "drop if exists" (DDL), found in MySQL 5.1 manual, +# on inexistent objects (except for DROP SERVER); +# ii) show binlog events; +# iii) create an object for each drop if exists statement; +# iv) issue "drop if exists" in existent objects. +# v) show binlog events; +# +# References: +# http://dev.mysql.com/doc/refman/5.1/en/sql-syntax-data-definition.html +# +--source include/have_log_bin.inc +RESET MASTER; + +disable_warnings; + +# test all "drop if exists" in manual with inexistent objects +DROP PROCEDURE IF EXISTS db_bug_13684.p; +DROP FUNCTION IF EXISTS db_bug_13684.f; +DROP TRIGGER IF EXISTS db_bug_13684.tr; +DROP VIEW IF EXISTS db_bug_13684.v; +DROP EVENT IF EXISTS db_bug_13684.e; +DROP TABLE IF EXISTS db_bug_13684.t; +DROP DATABASE IF EXISTS db_bug_13684; + +let $fixed_bug_25705 = 0; + +if($fixed_bug_25705) +{ + DROP SERVER IF EXISTS s_bug_13684; +} +--source include/show_binlog_events.inc + +# test drop with existing values + +# create +CREATE DATABASE db_bug_13684; + +CREATE TABLE db_bug_13684.t (a int); + +CREATE EVENT db_bug_13684.e + ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR + DO + UPDATE db_bug_13684.t SET a = a + 1; + +CREATE VIEW db_bug_13684.v + AS SELECT * FROM db_bug_13684.t; + +CREATE TRIGGER db_bug_13684.tr BEFORE INSERT ON db_bug_13684.t + FOR EACH ROW BEGIN + END; + +CREATE PROCEDURE db_bug_13684.p (OUT p1 INT) + BEGIN + END; + +CREATE FUNCTION db_bug_13684.f (s CHAR(20)) + RETURNS CHAR(50) DETERMINISTIC + RETURN s; + +if($fixed_bug_25705) +{ + CREATE SERVER s_bug_13684 + FOREIGN DATA WRAPPER mysql + OPTIONS (USER 'Remote', HOST '192.168.1.106', DATABASE 'test'); +} + +--source include/show_binlog_events.inc + +# drop existing +DROP PROCEDURE IF EXISTS db_bug_13684.p; +DROP FUNCTION IF EXISTS db_bug_13684.f; +DROP TRIGGER IF EXISTS db_bug_13684.tr; +DROP VIEW IF EXISTS db_bug_13684.v; +DROP EVENT IF EXISTS db_bug_13684.e; +DROP TABLE IF EXISTS db_bug_13684.t; +DROP DATABASE IF EXISTS db_bug_13684; +if($fixed_bug_25705) +{ + DROP SERVER IF EXISTS s_bug_13684; +} + +--source include/show_binlog_events.inc + +enable_warnings; + +# Drop comments in binlog +let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1); +CREATE TABLE t1(id int); +DROP TABLE /* comment */ t1; +CREATE TABLE t1(id int); +DROP TABLE IF EXISTS /* comment */ t1; + +CREATE TABLE t1(id int); +DROP TABLE /**/ t1; +CREATE TABLE t1(id int); +DROP TABLE IF EXISTS /* */ t1; + +--source include/show_binlog_events.inc + +--echo # +--echo # MDEV-22820 Bogus "Unknown table" warnings produced upon attempt to +--echo # drop parent table referenced by FK +--echo # + +let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1); + +create table t1 (a int, key(a)) engine=InnoDB; +create table t2 (b int, foreign key(b) references t1(a)) engine=InnoDB; +--error ER_ROW_IS_REFERENCED_2 +drop table if exists t1; +--error ER_ROW_IS_REFERENCED_2 +drop table if exists t1,t0; +show warnings; +drop table t2,t1; + +create table t3 (a int) engine=aria; + +# This is not logged +--error ER_BAD_TABLE_ERROR +drop table t10,t20; +# This is logged +--error ER_BAD_TABLE_ERROR +drop table t10,t20,t3; + +# These are both logged +drop table if exists t10,t20; +drop table if exists t10,t20,t3; + +--source include/show_binlog_events.inc diff --git a/mysql-test/suite/binlog/t/binlog_empty_xa_prepared.test b/mysql-test/suite/binlog/t/binlog_empty_xa_prepared.test new file mode 100644 index 00000000..443feb60 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_empty_xa_prepared.test @@ -0,0 +1,82 @@ +# The test verifies execution and binary logging of user XA that produce empty +# XA-PREPARE group of events. + +--source include/have_binlog_format_mixed.inc +--source include/have_innodb.inc + + +# MDEV-22420 DDL on temporary object is prohibited when XA is in prepare state + +# Temporary sequnce may not be created within a transaction +CREATE TEMPORARY SEQUENCE seq_1; + +XA START '3'; +CREATE TEMPORARY TABLE tmp_1(c INT); +XA END '3'; +XA PREPARE '3'; +--error ER_XAER_RMFAIL +DROP TEMPORARY TABLE tmp_1; +--error ER_XAER_RMFAIL +ALTER TABLE tmp_1 DROP COLUMN c; +--error ER_XAER_RMFAIL +DROP TEMPORARY SEQUENCE seq_1; +--error ER_XAER_RMFAIL +ALTER SEQUENCE seq_1 INCREMENT BY 1; + +--error ER_XAER_RMFAIL +CREATE TEMPORARY TABLE tmp_2(c INT); +--error ER_XAER_RMFAIL +CREATE TEMPORARY SEQUENCE seq_2; + +# Cleanup +XA ROLLBACK '3'; + +--echo # Proof of correct logging incl empty XA-PREPARE +--source include/show_binlog_events.inc + +# The test verifies execution and binary logging of user XA that produce empty +# XA-PREPARE group of events. +# +# MDEV-22757 Assertion `!binlog || exist_hton_without_prepare' +# in MYSQL_BIN_LOG::unlog_xa_prepare + +RESET MASTER; +CREATE TABLE t1 (a INT) ENGINE=MyISAM; +CREATE TABLE t2 (id INT PRIMARY KEY) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1),(2); +INSERT INTO t2 VALUES (1),(2); + +XA START '1'; +REPLACE INTO t1 SELECT * FROM t1; +REPLACE INTO t2 SELECT * FROM t2; +XA END '1'; +XA PREPARE '1'; + +# Cleanup +XA ROLLBACK '1'; +DROP TABLE t1, t2; + +--echo # Proof of correct logging incl empty XA-PREPARE +--source include/show_binlog_events.inc + + +# MDEV-22430 Assertion ... in MYSQL_BIN_LOG::unlog_xa_prepare + +RESET MASTER; +CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1); +CREATE SEQUENCE s ENGINE=InnoDB; + +XA START '2'; +SELECT NEXT VALUE FOR s; +REPLACE INTO t1 SELECT * FROM t1; +XA END '2'; +XA PREPARE '2'; + +# Cleanup +XA ROLLBACK '2'; +DROP SEQUENCE s; +DROP TABLE t1; + +--echo # Proof of correct logging incl empty XA-PREPARE +--source include/show_binlog_events.inc diff --git a/mysql-test/suite/binlog/t/binlog_flush_binlogs_delete_domain.test b/mysql-test/suite/binlog/t/binlog_flush_binlogs_delete_domain.test new file mode 100644 index 00000000..8311f4bd --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_flush_binlogs_delete_domain.test @@ -0,0 +1,156 @@ +# Prove basic properties of +# +# FLUSH BINARY LOGS DELETE_DOMAIN_ID = (...) +# +# The command removes the supplied list of domains from the current +# @@global.gtid_binlog_state provided the binlog files do not contain +# events from such domains. + +# The test is not format specific. One format is chosen to run it. +--source include/have_binlog_format_mixed.inc + +# Reset binlog state +RESET MASTER; + +# Empty list is accepted +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (); +--echo and the command execution is effective thence rotates binlog as usual +--source include/show_binary_logs.inc + +--echo Non-existed domain is warned, the command completes without rotation +--echo but with a warning +--let $binlog_pre_flush=query_get_value(SHOW MASTER STATUS, Position, 1) +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (99); +--let $binlog_start=$binlog_pre_flush +--source include/show_binary_logs.inc + +# Log one event in a specified domain and try to delete the domain +SET @@SESSION.gtid_domain_id=1; +SET @@SESSION.server_id=1; +CREATE TABLE t (a int); +SELECT @@GLOBAL.gtid_binlog_state, @@GLOBAL.gtid_binlog_pos; +--let $binlog_start= +--source include/show_binlog_events.inc + +--error ER_BINLOG_CANT_DELETE_GTID_DOMAIN +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1); + +# the same error after log rotation +FLUSH BINARY LOGS; +--error ER_BINLOG_CANT_DELETE_GTID_DOMAIN +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1); + +# the latest binlog does not really contain any events incl ones from 1-domain +--let $purge_to_binlog= query_get_value(SHOW MASTER STATUS, File, 1) +--eval PURGE BINARY LOGS TO '$purge_to_binlog'; +# So now it's safe to delete +--error 0 +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1); +--echo Gtid_list of the current binlog does not contain '1': +--let $binlog_file=query_get_value(SHOW MASTER STATUS, File, 1) +--source include/show_gtid_list.inc +--echo But the previous log's Gtid_list may have it which explains a warning from the following command +--let $binlog_file=$purge_to_binlog +--source include/show_gtid_list.inc + +--echo Already deleted domain in Gtid_list of the earliest log is benign +--echo but may cause a warning +--error 0 +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (1); + +# Few domains delete. The chosen number verifies among others how +# expected overrun of the static buffers of underlying dynamic arrays is doing. +--let $domain_cnt=17 +--let $server_in_domain_cnt=3 +--let $domain_list= +--disable_query_log +while ($domain_cnt) +{ + --let servers=$server_in_domain_cnt + --eval SET @@SESSION.gtid_domain_id=$domain_cnt + while ($servers) + { + --eval SET @@SESSION.server_id=10*$domain_cnt + $servers + --eval INSERT INTO t SET a=@@SESSION.server_id + + --dec $servers + } + --let $domain_list= $domain_cnt, $domain_list + + --dec $domain_cnt +} +--enable_query_log +--let $zero=0 +--let $domain_list= $domain_list$zero + +--error ER_BINLOG_CANT_DELETE_GTID_DOMAIN +--eval FLUSH BINARY LOGS DELETE_DOMAIN_ID = ($domain_list) + +# Now satisfy the safety condtion to purge log files containing $domain list +FLUSH BINARY LOGS; +--let $purge_to_binlog= query_get_value(SHOW MASTER STATUS, File, 1) +--eval PURGE BINARY LOGS TO '$purge_to_binlog' +--error 0 +--eval FLUSH BINARY LOGS DELETE_DOMAIN_ID = ($domain_list) +--echo Gtid_list of the current binlog does not contain $domain_list: +--let $binlog_file=query_get_value(SHOW MASTER STATUS, File, 1) +--source include/show_gtid_list.inc + +# Show reaction on @@global.gtid_binlog_state not succeeding +# earlier state as described by the 1st binlog' Gtid_list. +# Now let it be out-order gtid logged to a domain unrelated to deletion. + +--let $del_d_id=1 +--eval SET @@SESSION.gtid_domain_id=$del_d_id; +SET @@SESSION.server_id=1; +SET @@SESSION.gtid_seq_no=1; +INSERT INTO t SET a=1; +SET @@SESSION.server_id=2; +SET @@SESSION.gtid_seq_no=2; +INSERT INTO t SET a=2; + +SET @@SESSION.gtid_domain_id=11; +SET @@SESSION.server_id=11; +SET @@SESSION.gtid_seq_no=11; +INSERT INTO t SET a=11; + +SET @gtid_binlog_state_saved=@@GLOBAL.gtid_binlog_state; +FLUSH BINARY LOGS; + +# Inject out of order for domain '11' before +SET @@SESSION.gtid_domain_id=11; +SET @@SESSION.server_id=11; +SET @@SESSION.gtid_seq_no=1; +INSERT INTO t SET a=1; + +SELECT @gtid_binlog_state_saved "as original state", @@GLOBAL.gtid_binlog_state as "out of order for 11 domain state"; + +# to delete '1', first to purge logs containing its events +--let $purge_to_binlog= query_get_value(SHOW MASTER STATUS, File, 1) +--eval PURGE BINARY LOGS TO '$purge_to_binlog' + +--echo the following command succeeds with warnings +--eval FLUSH BINARY LOGS DELETE_DOMAIN_ID = ($del_d_id) + +# cleanup: forget the out-of-order +RESET MASTER; + +# +# MDEV-14431 +# Check rejection to delete a domain with value exceeding its range's maximum +# +--let $d_max_plus_1=`SELECT 1 << 32` +--error ER_BINLOG_CANT_DELETE_GTID_DOMAIN +--eval FLUSH BINARY LOGS DELETE_DOMAIN_ID = ($d_max_plus_1) + +# accepted maximum: +--let $d_max=`SELECT (1 << 32) - 1` +--error 0 +--eval FLUSH BINARY LOGS DELETE_DOMAIN_ID = ($d_max) + +# +# Cleanup +# + +DROP TABLE t; +RESET MASTER; diff --git a/mysql-test/suite/binlog/t/binlog_format_switch_in_tmp_table.test b/mysql-test/suite/binlog/t/binlog_format_switch_in_tmp_table.test new file mode 100644 index 00000000..68685060 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_format_switch_in_tmp_table.test @@ -0,0 +1,76 @@ +# +# Bug #45855 row events in binlog after switch from binlog_fmt=mix to stmt with open tmp tbl +# Bug #45856 can't switch from binlog_format=row to mix with open tmp tbl +# This test verfies if the program will generate ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR +# error and forbid switching @@SESSION.binlog_format from MIXED or ROW to +# STATEMENT when there are open temp tables and we are logging in row format. +# There is no error in any other case. +# + +source include/have_binlog_format_mixed.inc; + +SELECT @@SESSION.binlog_format; +CREATE TABLE t1 (a VARCHAR(100)); +CREATE TEMPORARY TABLE t2 (a VARCHAR(100)); + +--echo # Test allow switching @@SESSION.binlog_format from MIXED to STATEMENT +--echo # when there are open temp tables and we are logging in statement based format. +SET SESSION binlog_format = STATEMENT; +SELECT @@SESSION.binlog_format; + +--echo # Test allow switching @@SESSION.binlog_format from STATEMENT to +--echo # STATEMENT when there are open temp tables. +SET SESSION binlog_format = STATEMENT; +SELECT @@SESSION.binlog_format; + +INSERT INTO t1 VALUES ('statement based'); +SELECT @@SESSION.binlog_format; +--echo # Test allow switching @@SESSION.binlog_format from STATEMENT to +--echo # MIXED when there are open temp tables. +SET SESSION binlog_format = MIXED; +SELECT @@SESSION.binlog_format; + +--echo # Test allow switching @@SESSION.binlog_format from MIXED to MIXED +--echo # when there are open temp tables. +SET SESSION binlog_format = MIXED; +SELECT @@SESSION.binlog_format; + +INSERT INTO t2 VALUES (UUID()); +SELECT @@SESSION.binlog_format; + +--echo # Test forbit switching @@SESSION.binlog_format from MIXED to STATEMENT +--echo # when there are open temp tables and we are logging in row based format. +--ERROR ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR +SET SESSION binlog_format = STATEMENT; +SELECT @@SESSION.binlog_format; + +SET SESSION binlog_format = ROW; +SELECT @@SESSION.binlog_format; + +INSERT INTO t1 VALUES ('row based'); +--echo # Test allow switching @@SESSION.binlog_format from ROW to MIXED +--echo # when there are open temp tables. +SET SESSION binlog_format = MIXED; +SELECT @@SESSION.binlog_format; + +INSERT INTO t1 VALUES ('row based'); +--echo # Test allow switching @@SESSION.binlog_format from MIXED to ROW +--echo # when there are open temp tables. +SET SESSION binlog_format = ROW; +SELECT @@SESSION.binlog_format; + +--echo # Test allow switching @@SESSION.binlog_format from ROW to ROW +--echo # when there are open temp tables. +SET SESSION binlog_format = ROW; +SELECT @@SESSION.binlog_format; + +INSERT INTO t1 VALUES ('row based'); +--echo # Test forbit switching @@SESSION.binlog_format from ROW to STATEMENT +--echo # when there are open temp tables. +--ERROR ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR +SET SESSION binlog_format = STATEMENT; +SELECT @@SESSION.binlog_format; + +DROP TEMPORARY TABLE t2; +DROP TABLE t1; + diff --git a/mysql-test/suite/binlog/t/binlog_grant.test b/mysql-test/suite/binlog/t/binlog_grant.test new file mode 100644 index 00000000..ec8d2aec --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_grant.test @@ -0,0 +1,214 @@ +# Test grants for various objects (especially variables) related to +# the binary log + +source include/have_log_bin.inc; + +connection default; +--disable_warnings +reset master; +--enable_warnings + +set @saved_binlog_format = @@global.binlog_format; +create user mysqltest_1@localhost; +show grants for mysqltest_1@localhost; + +connect (plain,localhost,mysqltest_1,,test); +connect (root,localhost,root,,test); + +# Testing setting session SQL_LOG_BIN variable both as +# root and as plain user. + +--echo **** Variable SQL_LOG_BIN **** + +connection root; +--echo [root] +set session sql_log_bin = 1; + +connection plain; +--echo [plain] +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +set session sql_log_bin = 1; + + +# Testing setting both session and global BINLOG_FORMAT variable both +# as root and as plain user. + +--echo **** Variable BINLOG_FORMAT **** + +connection root; +--echo [root] +set global binlog_format = row; +set session binlog_format = row; + +connection plain; +--echo [plain] +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +set global binlog_format = row; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +set session binlog_format = row; + +--echo **** Clean up **** +disconnect plain; +disconnect root; + +connection default; +set global binlog_format = @saved_binlog_format; +drop user mysqltest_1@localhost; + + +# Testing if REPLICATION CLIENT privilege is enough to execute +# SHOW MASTER LOGS and SHOW BINARY. +CREATE USER 'mysqltest_1'@'localhost'; +GRANT REPLICATION CLIENT ON *.* TO 'mysqltest_1'@'localhost'; +--connect(rpl,localhost,mysqltest_1,,) + +--connection rpl +# We are only interested if the following commands succeed and not on +# their output. +--disable_result_log +SHOW MASTER LOGS; +SHOW BINARY LOGS; +SHOW BINLOG STATUS; +--enable_result_log + +# clean up +--disconnect rpl +connection default; +DROP USER 'mysqltest_1'@'localhost'; + + +--echo # +--echo # Start of 10.5 test +--echo # + +--echo # +--echo # MDEV-21743 Split up SUPER privilege to smaller privileges +--echo # + +--echo # Test that REPLICATION CLIENT is an alias for BINLOG MONITOR + +CREATE USER user1@localhost; +GRANT REPLICATION CLIENT ON *.* TO user1@localhost; +SHOW GRANTS FOR user1@localhost; +REVOKE REPLICATION CLIENT ON *.* FROM user1@localhost; +SHOW GRANTS FOR user1@localhost; +DROP USER user1@localhost; + + +--echo # Test if SHOW BINARY LOGS and SHOW BINGLOG STATUS are not allowed without REPLICATION CLIENT or SUPER +CREATE USER user1@localhost; +GRANT ALL PRIVILEGES ON *.* TO user1@localhost; +REVOKE REPLICATION CLIENT, SUPER ON *.* FROM user1@localhost; +--connect(user1,localhost,user1,,) +--connection user1 +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +SHOW MASTER LOGS; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +SHOW BINARY LOGS; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +SHOW BINLOG STATUS; +--disconnect user1 +--connection default +DROP USER user1@localhost; + + +--echo # Test if PURGE BINARY LOGS is not allowed without BINLOG ADMIN or SUPER +CREATE USER user1@localhost; +GRANT ALL PRIVILEGES ON *.* TO user1@localhost; +REVOKE BINLOG ADMIN, SUPER ON *.* FROM user1@localhost; +--connect(user1,localhost,user1,,) +--connection user1 +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +PURGE BINARY LOGS BEFORE '2001-01-01 00:00:00'; +--disconnect user1 +--connection default +DROP USER user1@localhost; + + +--echo # Test if PURGE BINLOG is allowed with BINLOG ADMIN +CREATE USER user1@localhost; +GRANT BINLOG ADMIN ON *.* TO user1@localhost; +--connect(user1,localhost,user1,,) +--connection user1 +PURGE BINARY LOGS BEFORE '2001-01-01 00:00:00'; +--disconnect user1 +connection default; +DROP USER user1@localhost; + + +--echo # Test if PURGE BINLOG is allowed with SUPER +CREATE USER user1@localhost; +GRANT SUPER ON *.* TO user1@localhost; +--connect(user1,localhost,user1,,) +--connection user1 +PURGE BINARY LOGS BEFORE '2001-01-01 00:00:00'; +--disconnect user1 +connection default; +DROP USER user1@localhost; + + +--echo # Test if SHOW BINLOG EVENTS is not allowed without BINLOG MONITOR +CREATE USER user1@localhost; +GRANT ALL PRIVILEGES ON *.* TO user1@localhost; +REVOKE BINLOG MONITOR ON *.* FROM user1@localhost; +--connect(user1,localhost,user1,,) +--connection user1 +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +SHOW BINLOG EVENTS; +--disconnect user1 +--connection default +DROP USER user1@localhost; + + +--echo # Test if SHOW BINLOG EVENTS is allowed with BINLOG MONITOR +CREATE USER user1@localhost; +GRANT BINLOG MONITOR ON *.* TO user1@localhost; +--connect(user1,localhost,user1,,) +--connection user1 +--disable_result_log +SHOW BINLOG EVENTS; +--enable_result_log +--disconnect user1 +connection default; +DROP USER user1@localhost; + +--echo # +--echo # MDEV-21975 Add BINLOG REPLAY privilege and bind new privileges to +--echo # gtid_seq_no, preudo_thread_id, server_id, gtid_domain_id +--echo # +--echo # Test combinations of BINLOG REPLAY guarded features which typically +--echo # arise in mysqlbinlog output replay on server. +--echo # + +CREATE USER user1@localhost; +GRANT BINLOG REPLAY ON *.* TO user1@localhost; +RESET MASTER; +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2),(3); +--connect(user1,localhost,user1,,) +# Genuine mysqlbinlog output +--exec $MYSQL_BINLOG --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog.sql +RENAME TABLE t1 to t2; + +--exec $MYSQL --user=user1 test < $MYSQLTEST_VARDIR/tmp/mysqlbinlog.sql + +--connection default +REVOKE BINLOG REPLAY ON *.* FROM user1@localhost; +call mtr.add_suppression("Access denied; you need (at least one of) the SUPER, BINLOG REPLAY privilege(s) for this operation"); +--echo # Privilege errors are expected now: +--connection user1 +--error 1 +--exec $MYSQL --user=user1 test < $MYSQLTEST_VARDIR/tmp/mysqlbinlog.sql + +--connection default +--let $diff_tables=t1,t2 +--source include/diff_tables.inc + +--echo # Test cleanup +--remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog.sql +DROP TABLE t2,t1; +DROP USER user1@localhost; + +--echo # +--echo # End of 10.5 test +--echo # diff --git a/mysql-test/suite/binlog/t/binlog_gtid_delete_domain_debug.test b/mysql-test/suite/binlog/t/binlog_gtid_delete_domain_debug.test new file mode 100644 index 00000000..5de549c4 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_gtid_delete_domain_debug.test @@ -0,0 +1,11 @@ +# Check "internal" error branches of +# FLUSH BINARY LOGS DELETE_DOMAIN_ID = (...) +# handler. +--source include/have_debug.inc +--source include/have_binlog_format_mixed.inc + +SET @@SESSION.debug_dbug='+d,inject_binlog_delete_domain_init_error'; +--error ER_BINLOG_CANT_DELETE_GTID_DOMAIN +FLUSH BINARY LOGS DELETE_DOMAIN_ID = (99); + +SHOW WARNINGS; diff --git a/mysql-test/suite/binlog/t/binlog_implicit_commit.test b/mysql-test/suite/binlog/t/binlog_implicit_commit.test new file mode 100644 index 00000000..11ceae5f --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_implicit_commit.test @@ -0,0 +1,63 @@ +# The purpose of this test is to test that setting autocommit does a +# commit of outstanding transactions and nothing is left pending in +# the transaction cache. + +source include/have_log_bin.inc; +source include/have_innodb.inc; + +# We need a transactional engine, so let's use InnoDB +CREATE TABLE t1 (id INT) ENGINE = InnoDB; + +# Testing SET AUTOCOMMIT +SET BINLOG_FORMAT = STATEMENT; + +let $cleanup = COMMIT; + +let $prepare = SET AUTOCOMMIT = 0; +let $statement = SET AUTOCOMMIT = 1; +source include/implicit.test; + +let $prepare = SET AUTOCOMMIT = 1; +let $statement = SET AUTOCOMMIT = 1; +source include/implicit.test; + +let $prepare = SET AUTOCOMMIT = 0; +let $statement = SET AUTOCOMMIT = 0; +source include/implicit.test; + +let $prepare = SET AUTOCOMMIT = 1; +let $statement = SET AUTOCOMMIT = 0; +source include/implicit.test; + +SET BINLOG_FORMAT = ROW; +let $prepare = SET AUTOCOMMIT = 0; +let $statement = SET AUTOCOMMIT = 1; +source include/implicit.test; + +let $prepare = SET AUTOCOMMIT = 1; +let $statement = SET AUTOCOMMIT = 1; +source include/implicit.test; + +let $prepare = SET AUTOCOMMIT = 0; +let $statement = SET AUTOCOMMIT = 0; +source include/implicit.test; + +let $prepare = SET AUTOCOMMIT = 1; +let $statement = SET AUTOCOMMIT = 0; +source include/implicit.test; + +RESET MASTER; +SET AUTOCOMMIT = 0; +INSERT INTO t1 VALUES (1); +source include/show_binlog_events.inc; +LOCK TABLES t1 WRITE; +source include/show_binlog_events.inc; +INSERT INTO t1 VALUES (2); +source include/show_binlog_events.inc; +UNLOCK TABLES; +source include/show_binlog_events.inc; +COMMIT; +source include/show_binlog_events.inc; + +# Cleaning up +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/t/binlog_incident.test b/mysql-test/suite/binlog/t/binlog_incident.test new file mode 100644 index 00000000..de7abf20 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_incident.test @@ -0,0 +1 @@ +--source include/binlog_incident.inc diff --git a/mysql-test/suite/binlog/t/binlog_index-master.opt b/mysql-test/suite/binlog/t/binlog_index-master.opt new file mode 100644 index 00000000..c3754b4d --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_index-master.opt @@ -0,0 +1 @@ +--loose-skip-stack-trace --log-warnings=0 --log-bin=master-bin --log-bin-index=master-bin diff --git a/mysql-test/suite/binlog/t/binlog_index.test b/mysql-test/suite/binlog/t/binlog_index.test new file mode 100644 index 00000000..a7c4ce8f --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_index.test @@ -0,0 +1 @@ +--source include/binlog_index.inc diff --git a/mysql-test/suite/binlog/t/binlog_innodb.opt b/mysql-test/suite/binlog/t/binlog_innodb.opt new file mode 100644 index 00000000..2d4e658e --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_innodb.opt @@ -0,0 +1 @@ +--binlog_cache_size=32768 --binlog_stmt_cache_size=32768 diff --git a/mysql-test/suite/binlog/t/binlog_innodb.test b/mysql-test/suite/binlog/t/binlog_innodb.test new file mode 100644 index 00000000..153dcdd1 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_innodb.test @@ -0,0 +1,204 @@ +source include/have_innodb.inc; +source include/have_log_bin.inc; + +SET BINLOG_FORMAT=MIXED; + +RESET MASTER; + +CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=INNODB; +INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6); + +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; +BEGIN; +# Should be logged as statement +UPDATE t1 SET b = 2*a WHERE a > 1; +COMMIT; + +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +BEGIN; +# Should be logged as rows +UPDATE t1 SET b = a * a WHERE a > 3; +COMMIT; + +# Check that errors are generated when trying to use READ COMMITTED +# transaction isolation level in STATEMENT binlog mode. + +SET BINLOG_FORMAT=STATEMENT; + +SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +BEGIN; +error ER_BINLOG_STMT_MODE_AND_ROW_ENGINE; +UPDATE t1 SET b = 1*a WHERE a > 1; +COMMIT; + +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +BEGIN; +error ER_BINLOG_STMT_MODE_AND_ROW_ENGINE; +UPDATE t1 SET b = 2*a WHERE a > 2; +COMMIT; + +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; +BEGIN; +UPDATE t1 SET b = 3*a WHERE a > 3; +COMMIT; + +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +BEGIN; +UPDATE t1 SET b = 4*a WHERE a > 4; +COMMIT; + +SET BINLOG_FORMAT=MIXED; + +SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +BEGIN; +UPDATE t1 SET b = 1*a WHERE a > 1; +COMMIT; + +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +BEGIN; +UPDATE t1 SET b = 2*a WHERE a > 2; +COMMIT; + +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; +BEGIN; +UPDATE t1 SET b = 3*a WHERE a > 3; +COMMIT; + +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +BEGIN; +UPDATE t1 SET b = 4*a WHERE a > 4; +COMMIT; + +SET BINLOG_FORMAT=ROW; + +SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +BEGIN; +UPDATE t1 SET b = 1*a WHERE a > 1; +COMMIT; + +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +BEGIN; +UPDATE t1 SET b = 2*a WHERE a > 2; +COMMIT; + +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; +BEGIN; +UPDATE t1 SET b = 3*a WHERE a > 3; +COMMIT; + +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +BEGIN; +UPDATE t1 SET b = 4*a WHERE a > 4; +COMMIT; + +source include/show_binlog_events.inc; + +DROP TABLE t1; + + +# +# Let us test binlog_cache_use and binlog_cache_disk_use status vars. +# Actually this test has nothing to do with innodb per se, it just requires +# transactional table. +# +flush status; +show status like "binlog_cache_use"; +show status like "binlog_cache_disk_use"; + +create table t1 (a int) engine=innodb; + +# Now we are going to create transaction which is long enough so its +# transaction binlog will be flushed to disk... +let $1=2000; +disable_query_log; +begin; +while ($1) +{ + eval insert into t1 values( $1 ); + dec $1; +} +commit; +enable_query_log; +show status like "binlog_cache_use"; +show status like "binlog_cache_disk_use"; + +# Transaction which should not be flushed to disk and so should not +# increase binlog_cache_disk_use. +begin; +delete from t1; +commit; +show status like "binlog_cache_use"; +show status like "binlog_cache_disk_use"; +drop table t1; + +# +# Bug#27716 multi-update did partially and has not binlogged +# + +CREATE TABLE `t1` ( + `a` int(11) NOT NULL auto_increment, + `b` int(11) default NULL, + PRIMARY KEY (`a`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 ; + +CREATE TABLE `t2` ( + `a` int(11) NOT NULL auto_increment, + `b` int(11) default NULL, + PRIMARY KEY (`a`) +) ENGINE=INNODB DEFAULT CHARSET=latin1 ; + +# A. testing multi_update::send_eof() execution branch +insert into t1 values (1,1),(2,2); +insert into t2 values (1,1),(4,4); +reset master; +--error ER_DUP_ENTRY +UPDATE t2,t1 SET t2.a=t1.a+2; +# check +select * from t2 /* must be (3,1), (4,4) */; +--echo # There must no UPDATE in binlog; +source include/show_binlog_events.inc; + +# B. testing multi_update::send_error() execution branch +delete from t1; +delete from t2; +insert into t1 values (1,2),(3,4),(4,4); +insert into t2 values (1,2),(3,4),(4,4); +reset master; +--error ER_DUP_ENTRY +UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a; +--echo # There must be no UPDATE query event; +source include/show_binlog_events.inc; + +# cleanup bug#27716 +drop table t1, t2; + +--echo *** MDEV-11937: InnoDB flushes redo log too often *** + +# Count number of log fsyncs reported by InnoDB per commit. +CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB; + +SET @old_flush = @@GLOBAL.innodb_flush_log_at_trx_commit; +SET GLOBAL innodb_flush_log_at_trx_commit=1; + +--let $syncs1 = query_get_value(SHOW STATUS LIKE 'Innodb_os_log_fsyncs', Value, 1) +--let $ROWS = 100 +--disable_query_log +let $count = $ROWS; +while ($count) { + eval INSERT INTO t1 VALUES ($count); + dec $count; +} +--let $syncs2 = query_get_value(SHOW STATUS LIKE 'Innodb_os_log_fsyncs', Value, 1) +eval SET @num_sync = $syncs2 - $syncs1; +--enable_query_log + +# Allow a bit of slack, in case some background process or something +# is introducing a few more syncs. +eval SELECT IF(@num_sync < $ROWS*1.5, "OK", + CONCAT("ERROR: More than 1 fsync per commit (saw ", @num_sync/$ROWS, ")")) AS status; + +DROP TABLE t1; +SET GLOBAL innodb_flush_log_at_trx_commit=@old_flush; + + +--echo End of tests diff --git a/mysql-test/suite/binlog/t/binlog_innodb_row.test b/mysql-test/suite/binlog/t/binlog_innodb_row.test new file mode 100644 index 00000000..f4ad1058 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_innodb_row.test @@ -0,0 +1,105 @@ +# +# Tests of innodb/binlog with the row binlog format +# +source include/have_innodb.inc; +source include/have_log_bin.inc; +source include/have_binlog_format_row.inc; + +# +# Bug #40221 Replication failure on RBR + UPDATE the primary key +# + +CREATE TABLE t1 (i int unique) ENGINE=innodb; +reset master; + +# part 1: update can cause the dup key + +begin; +insert into t1 values (1),(2); +--echo *** the following UPDATE query wont generate any updates for the binlog *** +--error ER_DUP_ENTRY +update t1 set i = 3 where i < 3; +commit; + +--echo *** Results of the test: the binlog must have only Write_rows events not any Update_rows *** +source include/show_binlog_events.inc; + +# part 2: insert can cause the dup key + +delete from t1; +reset master; + +begin; +insert into t1 values (1),(2); +--echo *** the following UPDATE query wont generate any updates for the binlog *** +--error ER_DUP_ENTRY +insert into t1 values (3),(4),(1),(2); +commit; + +--echo *** Results of the test: the binlog must have only one Write_rows event not two *** +source include/show_binlog_events.inc; + +drop table t1; + +# +# BUG#51251 +# +# The test case checks if truncating a temporary table created with +# engine InnoDB will not cause the truncate statement to be binlogged. + +# Before patch for BUG#51251, the TRUNCATE statements below would be +# binlogged, which would cause the slave to fail with "table does not +# exist". + +RESET MASTER; + +CREATE TABLE t1 ( c1 int , primary key (c1)) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 LIKE t1; +TRUNCATE TABLE t2; +DROP TABLE t1; + +-- echo ############################################### +-- echo ### assertion: No event for 'TRUNCATE TABLE t2' +-- echo ############################################### +-- source include/show_binlog_events.inc +-- echo ############################################### + +RESET MASTER; + +CREATE TEMPORARY TABLE t1 (c1 int) Engine=InnoDB; +INSERT INTO t1 VALUES (1), (2), (3); +TRUNCATE t1; +DROP TEMPORARY TABLE t1; + +-- echo ############################################### +-- echo ### assertion: No event for 'TRUNCATE TABLE t1' +-- echo ############################################### +-- source include/show_binlog_events.inc +-- echo ############################################### + + +--echo # +--echo # Bug#12346411 SQL/LOG.CC:6509: ASSERTION `PREPARED_XIDS > 0' FAILED +--echo # + +--disable_warnings +DROP TABLE IF EXISTS t1, t2; +--enable_warnings + +CREATE TABLE t1(a INT PRIMARY KEY) engine=innodb; +CREATE TABLE t2(a INT) engine=myisam; + +INSERT INTO t1 VALUES (1); +START TRANSACTION; +INSERT INTO t2 VALUES (1); +INSERT IGNORE INTO t1 VALUES (1); +COMMIT; + +INSERT INTO t1 VALUES (2); +START TRANSACTION; +INSERT INTO t2 VALUES (2); +UPDATE IGNORE t1 SET a=1 WHERE a=2; +COMMIT; + +DROP TABLE t1, t2; diff --git a/mysql-test/suite/binlog/t/binlog_innodb_stm.test b/mysql-test/suite/binlog/t/binlog_innodb_stm.test new file mode 100644 index 00000000..4dfa7a76 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_innodb_stm.test @@ -0,0 +1,26 @@ +source include/have_innodb.inc; +source include/have_binlog_format_statement.inc; + +# +# MDEV-18466 Unsafe to log updates on tables referenced by foreign keys with triggers in statement format +# + +create table categories( + cat_id int not null primary key, + cat_name varchar(255) not null, + cat_description text +) engine=innodb; + +create table products( + prd_id int not null auto_increment primary key, + prd_name varchar(355) not null, + prd_price decimal, + cat_id int not null, + foreign key fk_cat(cat_id) + references categories(cat_id) + on update cascade +) engine=innodb; + +insert into categories values (1, 'drinks', 'drinks'); +update categories set cat_description=2 where cat_id=1; +drop table products, categories; diff --git a/mysql-test/suite/binlog/t/binlog_invalid_read_in_rotate.combinations b/mysql-test/suite/binlog/t/binlog_invalid_read_in_rotate.combinations new file mode 100644 index 00000000..72076e12 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_invalid_read_in_rotate.combinations @@ -0,0 +1,5 @@ +[enable_checksum] +binlog_checksum=1 + +[disable_checksum] +binlog_checksum=0 diff --git a/mysql-test/suite/binlog/t/binlog_invalid_read_in_rotate.test b/mysql-test/suite/binlog/t/binlog_invalid_read_in_rotate.test new file mode 100644 index 00000000..36bb56c8 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_invalid_read_in_rotate.test @@ -0,0 +1,48 @@ +# ==== Purpose ==== +# +# Test verifies that reading binary log by using "SHOW BINLOG EVENTS" command +# from various random positions doesn't lead to crash. It should exit +# gracefully with appropriate error. +# +# ==== References ==== +# +# MDEV-18046:Assortment of crashes, assertion failures and ASAN errors in mysql_show_binlog_events + +--source include/have_log_bin.inc +--source include/have_innodb.inc + +RESET MASTER; + +call mtr.add_suppression("Error in Log_event::read_log_event*"); +call mtr.add_suppression("Replication event checksum verification failed while reading from a log file*"); + +DROP TABLE /*! IF EXISTS*/ t1; +CREATE TABLE `t1` ( +`col_int` int, +pk integer auto_increment, +`col_char_12_key` char(12), +`col_int_key` int, +`col_char_12` char(12), +primary key (pk), +key (`col_char_12_key` ), +key (`col_int_key` )) ENGINE=InnoDB; + +INSERT /*! IGNORE */ INTO t1 VALUES (183173120, NULL, 'abcd', 1, 'efghijk'), (1, NULL, 'lmno', 2, 'p'); + +--disable_warnings +ALTER TABLE `t1` ENABLE KEYS; +--enable_warnings + +--let $max_pos= query_get_value(SHOW MASTER STATUS,Position,1) +--let $pos= 1 +while ($pos <= $max_pos) +{ + --disable_query_log + --disable_result_log + --error 0,1220 + eval SHOW BINLOG EVENTS FROM $pos; + --inc $pos + --enable_result_log + --enable_query_log +} +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/t/binlog_ioerr.test b/mysql-test/suite/binlog/t/binlog_ioerr.test new file mode 100644 index 00000000..e75adb19 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_ioerr.test @@ -0,0 +1 @@ +--source include/binlog_ioerr.inc diff --git a/mysql-test/suite/binlog/t/binlog_killed.test b/mysql-test/suite/binlog/t/binlog_killed.test new file mode 100644 index 00000000..7c3a262d --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_killed.test @@ -0,0 +1,457 @@ +-- source include/have_innodb.inc +-- source include/have_binlog_format_statement.inc +-- source include/binlog_start_pos.inc + +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); + +# You cannot use `KILL' with the Embedded MySQL Server library, +# because the embedded server merely runs inside the threads of the host +# application. -- the docs + +-- source include/not_embedded.inc + +# +# Avoid printing binlog checkpoints +# + +--let $skip_checkpoint_events=1 + + +### +### bug#22725 : incorrect killed error in binlogged query +### + +connect (con1, localhost, root,,); +connect (con2, localhost, root,,); + +create table t1 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB; +create table t2 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=MyISAM; +create table t3 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB; + +# +# effective test for bug#22725 +# + +connection con1; +select get_lock("a", 20); + +connection con2; +let $ID= `select connection_id()`; + +# +# reset master does not reset binlogging on the embedded server. +# the test is not run on the embedded for reason of using KILL query. +# `reset master' problem is to be addressed by bug#15580 fixes. +# +reset master; +send insert into t2 values (null, null), (null, get_lock("a", 10)); + + +connection con1; + +--disable_abort_on_error +--disable_warnings + +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where info like "%insert into t2 values%" and state like 'User lock'; +--source include/wait_condition.inc + +--replace_regex /[0-9]+/ID/ +eval kill query $ID; + +connection con2; +--error 0,ER_QUERY_INTERRUPTED +reap; +let $rows= `select count(*) from t2 /* must be 2 or 0 */`; + +let $MYSQLD_DATADIR= `select @@datadir`; +--let $binlog_killed_pos=query_get_value(SHOW BINLOG EVENTS, Pos, 6) +--let $binlog_killed_end_log_pos=query_get_value(SHOW BINLOG EVENTS, End_log_pos, 6) +--exec $MYSQL_BINLOG --force-if-open --start-position=$binlog_killed_pos --stop-position=$binlog_killed_end_log_pos $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/kill_query_calling_sp.binlog +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--disable_result_log +eval select +(@a:=load_file("$MYSQLTEST_VARDIR/tmp/kill_query_calling_sp.binlog")) +is not null; +--enable_result_log +--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR +let $error_code= `select @a like "%#%error_code=0%" /* must return 1 or 0*/`; +let $insert_binlogged= `select @a like "%insert into%" /* must return 1 or 0 */`; +eval set @result= $rows - $error_code - $insert_binlogged; + +--enable_warnings +--enable_abort_on_error + +select @result /* must be zero either way */; + + +--remove_file $MYSQLTEST_VARDIR/tmp/kill_query_calling_sp.binlog +connection con1; +select RELEASE_LOCK("a"); + +# +# bug#27571 asynchronous setting mysql_`query`::error and Query_log_e::error_code +# + +# checking that killing inside of select loops is safe as before +# killing after the loop can be only simulated - another test + +delete from t1; +delete from t2; +insert into t1 values (1,1),(2,2); + +# +# simple update +# +connection con1; +begin; update t1 set b=11 where a=2; + +connection con2; +let $ID= `select connection_id()`; +begin; +send update t1 set b=b+10; + +connection con1; +--replace_result $ID ID +eval kill query $ID; +rollback; + +# Bug #32148 killi query may be ineffective +# forced to comment out the test's outcome +# and mask out ineffective ER_QUERY_INTERRUPTED +# todo1: revert back upon fixing bug#32148 +# todo2: the tests need refining in that +# killing should wait till the victim requested +# its lock (wait_condition available in 5.1 tests) + +connection con2; +--error 0,ER_QUERY_INTERRUPTED +reap; +rollback; +select * from t1 order by a /* must be the same as before (1,1),(2,2) */; + +# +# multi update +# commented out as Bug #31807 multi-update,delete killing does not report with ER_QUERY_INTERRUPTED +# in the way +# +# connection con1; +# begin; update t1 set b=b+10; + +# connection con2; +# send update t1 as t_1,t1 as t_2 set t_1.b=11 where t_2.a=2; + +# connection con1; +# --replace_result $ID ID +# eval kill query $ID; +# rollback; + +# disable_abort_on_error; + +# connection con2; +# --error HY000,ER_QUERY_INTERRUPTED +# reap; +# select * from t1 /* must be the same as before (1,1),(2,2) */; + +# enable_abort_on_error; +# +# simple delete +# +connection con1; +begin; delete from t1 where a=2; + +connection con2; +let $ID= `select connection_id()`; +begin; +send delete from t1 where a=2; + +connection con1; +--replace_result $ID ID +eval kill query $ID; +rollback; + +connection con2; +--error 0,ER_QUERY_INTERRUPTED +reap; +rollback; +# todo1,2 above +select * from t1 order by a /* must be the same as before (1,1),(2,2) */; + + +# +# multi delete +# the same as for multi-update +# +# connection con1; +# begin; delete from t1 where a=2; + +# connection con2; +# send delete t1 from t1 where t1.a=2; + +# connection con1; +# --replace_result $ID ID +# eval kill query $ID; +# rollback; + +# connection con2; +# --error 0,ER_QUERY_INTERRUPTED +# reap; +# select * from t1 /* must be the same as before (1,1),(2,2) */; +# +# insert select +# +connection con1; +--disable_warnings +drop table if exists t4; +--enable_warnings +create table t4 (a int, b int) engine=innodb; +insert into t4 values (3, 3); +begin; insert into t1 values (3, 3); + +connection con2; +let $ID= `select connection_id()`; +begin; +send insert into t1 select * from t4 for update; + +connection con1; +--replace_result $ID ID +eval kill query $ID; +rollback; + +connection con2; +--error 0,ER_QUERY_INTERRUPTED,ER_LOCK_WAIT_TIMEOUT +reap; +# todo 1,2 above +rollback; +select * from t1 /* must be the same as before (1,1),(2,2) */; + +drop table t4; # cleanup for the sub-case + +### +## non-ta table case: killing must be recorded in binlog +### +create table t4 (a int, b int) ENGINE=MyISAM /* for killing update and delete */; + +delimiter |; +create function bug27563(n int) +RETURNS int(11) +NOT DETERMINISTIC +begin + if @b > 0 then + select get_lock("a", 20) into @a; + else + set @b= 1; + end if; + return n; +end| +delimiter ;| + +# +# update +# + +delete from t4; +insert into t4 values (1,1), (1,1); +reset master; +connection con1; +select get_lock("a", 20); + +connection con2; +let $ID= `select connection_id()`; +set @b= 0; +send update t4 set b=b + bug27563(b); + +connection con1; +let $wait_condition= select count(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST where state='User lock'; +source include/wait_condition.inc; +select count(*) FROM INFORMATION_SCHEMA.PROCESSLIST where state='User lock'; + +--replace_result $ID ID +eval kill query $ID; + +connection con2; +--error ER_QUERY_INTERRUPTED +reap; +select * from t4 order by b /* must be (1,1), (1,2) */; +select @b /* must be 1 at the end of a stmt calling bug27563() */; +--echo must have the update query event on the 4th line +source include/show_binlog_events.inc; +--let $binlog_killed_pos= query_get_value(SHOW BINLOG EVENTS, Pos, 5) +--let $binlog_killed_end_log_pos= query_get_value(SHOW BINLOG EVENTS, End_log_pos, 5) + +--echo *** a proof the query is binlogged with an error *** + +--exec $MYSQL_BINLOG --force-if-open --start-position=$binlog_killed_pos --stop-position=$binlog_killed_end_log_pos $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval select +(@a:=load_file("$MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog")) +is not null; +--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR +let $error_code= `select @a like "%#%error_code=0%" /* must return 0*/`; +eval select $error_code /* must return 0 to mean the killed update is in */; + +# cleanup for the sub-case +connection con1; +select RELEASE_LOCK("a"); +--remove_file $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog + +# +# delete +# + +delete from t4; +insert into t4 values (1,1), (2,2); +reset master; +connection con1; +select get_lock("a", 20); + +connection con2; +let $ID= `select connection_id()`; +set @b= 0; +send delete from t4 where b=bug27563(1) or b=bug27563(2); + +connection con1; +let $wait_condition= select count(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST where state='User lock'; +source include/wait_condition.inc; +select count(*) FROM INFORMATION_SCHEMA.PROCESSLIST where state='User lock'; +--replace_result $ID ID +eval kill query $ID; + +connection con2; +--error ER_QUERY_INTERRUPTED +reap; +select count(*) from t4 /* must be 1 */; +select @b /* must be 1 at the end of a stmt calling bug27563() */; +--echo must have the delete query event on the 4th line +source include/show_binlog_events.inc; +--let $binlog_killed_pos= query_get_value(SHOW BINLOG EVENTS, Pos, 5) +--let $binlog_killed_end_log_pos= query_get_value(SHOW BINLOG EVENTS, End_log_pos, 5) + +# a proof the query is binlogged with an error + +--exec $MYSQL_BINLOG --force-if-open --start-position=$binlog_killed_pos --stop-position=$binlog_killed_end_log_pos $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval select +(@a:=load_file("$MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog")) +is not null; +--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR +let $error_code= `select @a like "%#%error_code=0%" /* must return 0*/`; +eval select $error_code /* must return 0 to mean the killed delete is in */; + +# cleanup for the sub-case +connection con1; +select RELEASE_LOCK("a"); +--remove_file $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog + +drop table t4; + +# +# load data - see simulation tests +# + + +# bug#27571 cleanup + +drop function bug27563; + + +# Prove that killing connection in the middle +# of mixed engine transactions affect binlogging +# as specified. + +# keep binlogging for this piece of test in a new file +FLUSH LOGS; + +# Connection con3 as transaction generator thoughout the test +connect (con3, localhost, root,,); + +connection con3; +let $ID= `select connection_id()`; + +--let $threads_connected=`select variable_value from information_schema.global_status where variable_name="threads_connected"` +--let wait_condition=select variable_value < $threads_connected from information_schema.global_status where variable_name="threads_connected" + +--echo MI: MyISAM, INNODB +BEGIN; +INSERT INTO t2 VALUES (NULL, 1); +INSERT INTO t1 VALUES (NULL, 2); + +#Connection con1 as killer throughout the test +connection con1; +--replace_result $ID ID +--eval KILL $ID +let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1); +--source include/wait_condition.inc +--let $binlog_start= 4 +--source include/show_binlog_events.inc +--let $binlog_killed_pos=query_get_value(SHOW MASTER STATUS, Position, 1) + +disconnect con3; +connect (con3, localhost, root,,); +connection con3; +let $ID= `select connection_id()`; + +--echo IM: INNODB, MyISAM +BEGIN; +INSERT INTO t1 VALUES (NULL, 3); +INSERT INTO t2 VALUES (NULL, 4); + +connection con1; +--replace_result $ID ID +--eval KILL $ID +--source include/wait_condition.inc +--let $binlog_start= $binlog_killed_pos +--source include/show_binlog_events.inc +--let $binlog_killed_pos=query_get_value(SHOW MASTER STATUS, Position, 1) + +disconnect con3; +connect (con3, localhost, root,,); +connection con3; +let $ID= `select connection_id()`; + +--echo IMI: INNODB, MyISAM, INNODB +BEGIN; +INSERT INTO t1 VALUES (NULL, 5); +INSERT INTO t2 VALUES (NULL, 6); +INSERT INTO t1 VALUES (NULL, 7); + +connection con1; +--replace_result $ID ID +--eval KILL $ID +--source include/wait_condition.inc +--let $binlog_start= $binlog_killed_pos +--source include/show_binlog_events.inc +--let $binlog_killed_pos=query_get_value(SHOW MASTER STATUS, Position, 1) + +disconnect con3; +connect (con3, localhost, root,,); +connection con3; +let $ID= `select connection_id()`; + +--echo MI2: MyISAM, INNODB, MyISAM, INNODB +BEGIN; +INSERT INTO t2 VALUES (NULL, 8); +INSERT INTO t1 VALUES (NULL, 9); +INSERT INTO t2 VALUES (NULL, 10); +INSERT INTO t1 VALUES (NULL, 11); + +connection con1; +--replace_result $ID ID +--eval KILL $ID +--source include/wait_condition.inc +--let $binlog_start= $binlog_killed_pos +--source include/show_binlog_events.inc + + +# +# common cleanup +# + +connection default; +disconnect con1; +disconnect con2; + +drop table t1,t2,t3; + +--echo end of the tests diff --git a/mysql-test/suite/binlog/t/binlog_killed_simulate-master.opt b/mysql-test/suite/binlog/t/binlog_killed_simulate-master.opt new file mode 100644 index 00000000..90c70ece --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_killed_simulate-master.opt @@ -0,0 +1 @@ +--loose-debug=d,simulate_kill_bug27571 diff --git a/mysql-test/suite/binlog/t/binlog_killed_simulate.test b/mysql-test/suite/binlog/t/binlog_killed_simulate.test new file mode 100644 index 00000000..20f51721 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_killed_simulate.test @@ -0,0 +1,61 @@ +-- source include/have_debug.inc +-- source include/have_binlog_format_statement.inc +-- source include/binlog_start_pos.inc +# +# bug#27571 asynchronous setting mysql_$query()'s local error and +# Query_log_event::error_code +# + +# +# Checking that killing upon successful row-loop does not affect binlogging +# + +create table t1 (a int) engine=MyISAM; +insert into t1 set a=1; +reset master; + +update t1 set a=2 /* will be "killed" after work has been done */; + +# a proof the query is binlogged with no error +let datadir= `select @@datadir`; +--exec $MYSQL_BINLOG --force-if-open --start-position=$binlog_start_pos $datadir/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval set @a:=load_file("$MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"); +--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR +select @a like '%#%error_code=0%' /* must return 1 as query completed before got killed*/; + +# cleanup for the sub-case +remove_file $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog; + +# +# Checking that killing inside of row-loop for LOAD DATA into +# non-transactional table affects binlogging +# + +create table t2 (a int, b int) ENGINE=MyISAM; +reset master; +--error ER_QUERY_INTERRUPTED +load data infile '../../std_data/rpl_loaddata.dat' into table t2 /* will be "killed" in the middle */; + +# a proof the query is binlogged with an error +--let binlog_load_data= query_get_value(SHOW BINLOG EVENTS, Pos, 5) +--let binlog_end= query_get_value(SHOW BINLOG EVENTS, Pos, 6) +source include/show_binlog_events.inc; + +--mkdir $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571 +--exec $MYSQL_BINLOG --local-load=$MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571 --force-if-open --start-position=$binlog_load_data --stop-position=$binlog_end $datadir/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval set @a:=load_file("$MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"); +--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR +select @a like '%#%error_code=0%' /* must return 0 to mean the killed query is in */; + +# cleanup for the sub-case +remove_file $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog; + +--remove_files_wildcard $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571 * +--rmdir $MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571 + +drop table t1,t2; + +--echo end of the tests diff --git a/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.opt b/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.opt new file mode 100644 index 00000000..c52ef14d --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.opt @@ -0,0 +1 @@ +--max_binlog_stmt_cache_size=18446744073709547520 diff --git a/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.test b/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.test new file mode 100644 index 00000000..ca3f45c1 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_max_binlog_stmt_cache_size.test @@ -0,0 +1,36 @@ + +--echo # +--echo # MDEV-4774: Strangeness with max_binlog_stmt_cache_size Settings +--echo # + +CALL mtr.add_suppression("unsigned value 18446744073709547520 adjusted to 4294963200"); + +--replace_result 18446744073709547520 MAX_BINLOG_STMT_CACHE_SIZE 4294963200 MAX_BINLOG_STMT_CACHE_SIZE +SELECT @@global.max_binlog_stmt_cache_size; + +# Save the initial value of @@global.max_binlog_stmt_cache_size. +--replace_result 18446744073709547520 MAX_BINLOG_STMT_CACHE_SIZE 4294963200 MAX_BINLOG_STMT_CACHE_SIZE +SET @cache_size= @@max_binlog_stmt_cache_size; + +--disable_warnings +SET @@global.max_binlog_stmt_cache_size= @cache_size+1; +--enable_warnings +--replace_result 18446744073709547520 MAX_BINLOG_STMT_CACHE_SIZE 4294963200 MAX_BINLOG_STMT_CACHE_SIZE +SELECT @@global.max_binlog_stmt_cache_size; + +--disable_warnings +SET @@global.max_binlog_stmt_cache_size = @cache_size+4095; +--enable_warnings +--replace_result 4294963200 MAX_BINLOG_STMT_CACHE_SIZE 18446744073709547520 MAX_BINLOG_STMT_CACHE_SIZE +SELECT @@global.max_binlog_stmt_cache_size; + +--disable_warnings +SET @@global.max_binlog_stmt_cache_size= @cache_size-1; +--enable_warnings +SELECT @@global.max_binlog_stmt_cache_size = @cache_size-4096; + +# Restore @@global.max_binlog_stmt_cache_size to its initial value. +SET @@global.max_binlog_stmt_cache_size= @cache_size; + +--echo # End of test + diff --git a/mysql-test/suite/binlog/t/binlog_max_extension.test b/mysql-test/suite/binlog/t/binlog_max_extension.test new file mode 100644 index 00000000..81e35744 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_max_extension.test @@ -0,0 +1,87 @@ +# BUG#40611: MySQL cannot make a binary log after sequential number beyond +# unsigned long. +# +# Problem statement +# ================= +# +# Extension for log file names might be created with negative +# numbers (when counter used would wrap around), causing server +# failure when incrementing -00001 (reaching number 000000 +# extension). +# +# Test +# ==== +# This tests aims at testing the a patch that removes negatives +# numbers from log name extensions and checks that the server +# reports gracefully that the limit has been reached. +# +# It instruments index file to point to a log file close to +# the new maximum and calls flush logs to get warning. +# + +call mtr.add_suppression("Next log extension: 2147483647. Remaining log filename extensions: 0."); +call mtr.add_suppression("Log filename extension number exhausted:"); +call mtr.add_suppression("Can't generate a unique log-filename"); + + +-- source include/have_log_bin.inc +RESET MASTER; + +-- let $MYSQLD_DATADIR= `select @@datadir` +-- let $log_bin_index=`select substring_index(@@log_bin_index,'/',-1)` +-- let $log_bin_basename=`select substring_index(@@log_bin_basename,'/',-1)` + +############################################### +# check hitting maximum file name extension: +############################################### + +########## +# Prepare +########## + +# 1. Stop master server +-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +-- shutdown_server +-- source include/wait_until_disconnected.inc + +# 2. Prepare log and index file +-- copy_file $MYSQLD_DATADIR/$log_bin_index $MYSQLD_DATADIR/$log_bin_index.orig +-- copy_file $MYSQLD_DATADIR/$log_bin_basename.000001 $MYSQLD_DATADIR/$log_bin_basename.2147483646 +-- append_file $MYSQLD_DATADIR/$log_bin_index +master-bin.2147483646 +EOF + +# 3. Restart the server +-- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +-- enable_reconnect +-- source include/wait_until_connected_again.inc + +########### +# Assertion +########### + +# assertion: should raise error +-- error ER_NO_UNIQUE_LOGFILE +FLUSH LOGS; + +############## +# Clean up +############## + +# 1. Stop the server +-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +-- shutdown_server +-- source include/wait_until_disconnected.inc + +# 2. Undo changes to index and log files +-- remove_file $MYSQLD_DATADIR/$log_bin_index +-- copy_file $MYSQLD_DATADIR/$log_bin_index.orig $MYSQLD_DATADIR/$log_bin_index +-- remove_file $MYSQLD_DATADIR/$log_bin_index.orig + +-- remove_file $MYSQLD_DATADIR/$log_bin_basename.2147483646 +-- remove_file $MYSQLD_DATADIR/$log_bin_basename.2147483647 + +# 3. Restart the server +-- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +-- enable_reconnect +-- source include/wait_until_connected_again.inc diff --git a/mysql-test/suite/binlog/t/binlog_mdev342-master.opt b/mysql-test/suite/binlog/t/binlog_mdev342-master.opt new file mode 100644 index 00000000..590d44a6 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mdev342-master.opt @@ -0,0 +1 @@ +--loose-skip-stack-trace --skip-core-file diff --git a/mysql-test/suite/binlog/t/binlog_mdev342.test b/mysql-test/suite/binlog/t/binlog_mdev342.test new file mode 100644 index 00000000..024fa884 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mdev342.test @@ -0,0 +1,65 @@ +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_debug_sync.inc +--source include/have_binlog_format_row.inc +# Valgrind does not work well with test that crashes the server +--source include/not_valgrind.inc + +# (We do not need to restore these settings, as we crash the server). +SET GLOBAL max_binlog_size= 4096; +SET GLOBAL innodb_flush_log_at_trx_commit= 1; +RESET MASTER; + +CREATE TABLE t1 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Innodb; + +# One connection does an insert that causes a binlog rotate. +# The rotate is paused after writing new file but before updating index. +connect(con1,localhost,root,,); +SET DEBUG_SYNC= "binlog_open_before_update_index SIGNAL con1_ready WAIT_FOR con1_cont"; +SET SESSION debug_dbug="+d,crash_create_critical_before_update_index"; +send INSERT INTO t1 VALUES (1, REPEAT("x", 4100)); + +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con1_ready"; + +# Another connection creates a prepared transaction. +# After the transaction is prepared, it will hang waiting for LOCK_log. +connect(con2,localhost,root,,); +SET DEBUG_SYNC= "ha_commit_trans_after_prepare SIGNAL con2_ready"; +send INSERT INTO t1 VALUES (2, NULL); + +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con2_ready"; + +# Now crash the server in con1, with old binlog closed, new binlog not yet in +# index, and one transaction in prepared-but-not-committed state. +--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +wait-binlog_mdev342.test +EOF +# If con1 manages to race ahead and crash, we can see the crash already in the +# SET DEBUG_SYNC statement, so need --error here also. +--error 0,2006,2013 +SET DEBUG_SYNC= "now SIGNAL con1_cont"; +connection con1; +--error 2006,2013 +reap; + +--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +restart-binlog_mdev342.test +EOF + +connection default; +--enable_reconnect +--source include/wait_until_connected_again.inc + +# Check that all transactions are recovered. +SELECT a FROM t1 ORDER BY a; + +--source include/show_binary_logs.inc +--let $binlog_file= master-bin.000001 +--let $binlog_start= 4 +--source include/show_binlog_events.inc + +# Cleanup +connection default; +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/t/binlog_mdev717.test b/mysql-test/suite/binlog/t/binlog_mdev717.test new file mode 100644 index 00000000..61d3aa71 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mdev717.test @@ -0,0 +1,46 @@ +# MDEV-717 LP:1003679 - Wrong binlog order on concurrent DROP schema and CREATE function. + +--source include/have_debug_sync.inc +--source include/have_log_bin.inc +RESET MASTER; + +connect(con1,localhost,root); +connection default; + +CREATE DATABASE mysqltest; +SET DEBUG_SYNC= "after_wait_locked_schema_name SIGNAL locked WAIT_FOR release"; +--send DROP DATABASE mysqltest; +connection con1; +SET DEBUG_SYNC= "now WAIT_FOR locked"; +SET DEBUG_SYNC= "before_wait_locked_pname SIGNAL release"; +--error ER_BAD_DB_ERROR +CREATE FUNCTION mysqltest.f1() RETURNS INT RETURN 1; +connection default; +--reap + +CREATE DATABASE mysqltest; +SET DEBUG_SYNC= "after_wait_locked_schema_name SIGNAL locked WAIT_FOR release"; +--send DROP DATABASE mysqltest; +connection con1; +SET DEBUG_SYNC= "now WAIT_FOR locked"; +SET DEBUG_SYNC= "before_wait_locked_pname SIGNAL release"; +--error ER_BAD_DB_ERROR +CREATE EVENT mysqltest.e1 ON SCHEDULE EVERY 15 MINUTE DO BEGIN END; +connection default; +--reap + +CREATE DATABASE mysqltest; +CREATE EVENT mysqltest.e1 ON SCHEDULE EVERY 15 MINUTE DO BEGIN END; +SET DEBUG_SYNC= "after_wait_locked_schema_name SIGNAL locked WAIT_FOR release"; +--send DROP DATABASE mysqltest; +connection con1; +SET DEBUG_SYNC= "now WAIT_FOR locked"; +SET DEBUG_SYNC= "before_wait_locked_pname SIGNAL release"; +--error ER_BAD_DB_ERROR +ALTER EVENT mysqltest.e1 ON SCHEDULE EVERY 20 MINUTE DO BEGIN END; +connection default; +--reap + +SET DEBUG_SYNC= "RESET"; +--source include/show_binlog_events.inc + diff --git a/mysql-test/suite/binlog/t/binlog_mixed.test b/mysql-test/suite/binlog/t/binlog_mixed.test new file mode 100644 index 00000000..fa1b2ca3 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mixed.test @@ -0,0 +1,23 @@ +--source include/have_innodb.inc +--source include/have_binlog_format_mixed_or_row.inc + +# +# MDEV-22048 Assertion `binlog_table_maps == 0 || +# locked_tables_mode == LTM_LOCK_TABLES' failed in +# THD::reset_for_next_command +# + +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +INSERT INTO t1 (a) VALUES (1),(2); + +CREATE TABLE t2 (b INT) ENGINE=InnoDB; + +CREATE TRIGGER tr1 BEFORE UPDATE ON t1 FOR EACH ROW SET @a = 0; +CREATE TRIGGER tr2 BEFORE INSERT ON t2 FOR EACH ROW DELETE FROM t1 LIMIT 1; + +SET AUTOCOMMIT= OFF; +LOCK TABLES t2 WRITE; +DELETE FROM t1 LIMIT 1; +SAVEPOINT A; +UNLOCK TABLES; +DROP TABLE t1, t2; diff --git a/mysql-test/suite/binlog/t/binlog_mixed_cache_stat.opt b/mysql-test/suite/binlog/t/binlog_mixed_cache_stat.opt new file mode 100644 index 00000000..2d4e658e --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mixed_cache_stat.opt @@ -0,0 +1 @@ +--binlog_cache_size=32768 --binlog_stmt_cache_size=32768 diff --git a/mysql-test/suite/binlog/t/binlog_mixed_cache_stat.test b/mysql-test/suite/binlog/t/binlog_mixed_cache_stat.test new file mode 100644 index 00000000..f22ea65d --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mixed_cache_stat.test @@ -0,0 +1,5 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/have_binlog_format_mixed.inc +-- source include/binlog_cache_stat.test diff --git a/mysql-test/suite/binlog/t/binlog_mixed_load_data.test b/mysql-test/suite/binlog/t/binlog_mixed_load_data.test new file mode 100644 index 00000000..7e7cb973 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mixed_load_data.test @@ -0,0 +1,15 @@ +# +# Bug #34283 mysqlbinlog leaves tmpfile after termination +# if binlog contains load data infile, so in mixed mode we +# go to row-based for avoiding the problem. +# + +--source include/have_binlog_format_mixed.inc +--source include/have_log_bin.inc + +RESET MASTER; +CREATE TABLE t1 (word CHAR(20) NOT NULL) ENGINE=MYISAM; +let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1); +LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1; +--source include/show_binlog_events.inc +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog-cp932-master.opt b/mysql-test/suite/binlog/t/binlog_mysqlbinlog-cp932-master.opt new file mode 100644 index 00000000..bb0cda45 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog-cp932-master.opt @@ -0,0 +1 @@ +--max-binlog-size=8192 diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog-cp932.test b/mysql-test/suite/binlog/t/binlog_mysqlbinlog-cp932.test new file mode 100644 index 00000000..80710261 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog-cp932.test @@ -0,0 +1 @@ +--source include/binlog_mysqlbinlog-cp932.inc diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog2-master.opt b/mysql-test/suite/binlog/t/binlog_mysqlbinlog2-master.opt new file mode 100644 index 00000000..4d69f335 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog2-master.opt @@ -0,0 +1 @@ +--timezone=GMT-3 diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test b/mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test new file mode 100644 index 00000000..f5b7e2c0 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test @@ -0,0 +1,217 @@ +# Test for the new options --start-datetime, stop-datetime, +# and a few others. + +# TODO: Need to look at making row based version once new binlog client is complete. +-- source include/have_binlog_format_mixed_or_statement.inc +-- source include/binlog_start_pos.inc + +set sql_mode=""; +set global binlog_checksum=NONE; +--disable_warnings +drop table if exists t1; +--enable_warnings + +# We need this for getting fixed timestamps inside of this test. +# I use a date in the past to keep a growing timestamp along the +# binlog (including the Start_log_event). This test will work +# unchanged everywhere, because mysql-test-run has fixed TZ, which it +# exports (so mysqlbinlog has same fixed TZ). +set @a=UNIX_TIMESTAMP("1970-01-21 15:32:22"); +set timestamp=@a; +reset master; +create table t1 (a int auto_increment not null primary key, b char(3)); +insert into t1 values(null, "a"); +insert into t1 values(null, "b"); +set timestamp=@a+2; +--let $binlog_pos_760=query_get_value(SHOW MASTER STATUS, Position, 1) +insert into t1 values(null, "c"); +--let $binlog_pos_951=query_get_value(SHOW BINLOG EVENTS in 'master-bin.000001' from $binlog_pos_760, Pos, 5) +set timestamp=@a+4; +insert into t1 values(null, "d"); +insert into t1 values(null, "e"); + +flush logs; +set timestamp=@a+1; # this could happen on a slave +insert into t1 values(null, "f"); +--let $binlog_pos_135=query_get_value(SHOW BINLOG EVENTS in 'master-bin.000002', Pos, 4) +--let $binlog_pos_203=query_get_value(SHOW BINLOG EVENTS in 'master-bin.000002', Pos, 5) + +# delimiters are for easier debugging in future + +--disable_query_log +select "--- Local --" as ""; +--enable_query_log + +# +# We should use --short-form everywhere because in other case output will +# be time dependent (the Start events). Better than nothing. +# +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --base64-output=never $MYSQLD_DATADIR/master-bin.000001 + +--disable_query_log +select "--- offset --" as ""; +--enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --offset=5 $MYSQLD_DATADIR/master-bin.000001 +--disable_query_log +select "--- start-position --" as ""; +--enable_query_log +let $start_pos= `select @binlog_start_pos + 696`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --start-position=$start_pos $MYSQLD_DATADIR/master-bin.000001 +--disable_query_log +select "--- stop-position --" as ""; +--enable_query_log +let $stop_pos= `select @binlog_start_pos + 696`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --stop-position=$stop_pos $MYSQLD_DATADIR/master-bin.000001 +--disable_query_log +select "--- start and stop positions ---" as ""; +--enable_query_log +let $start_pos= `select @binlog_start_pos + 696`; +let $stop_pos= `select @binlog_start_pos + 857`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --start-position=$start_pos --stop-position=$stop_pos $MYSQLD_DATADIR/master-bin.000001 +--disable_query_log +select "--- start-datetime --" as ""; +--enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form "--start-datetime=1970-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 +--disable_query_log +select "--- stop-datetime --" as ""; +--enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form "--stop-datetime=1970-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 + +--disable_query_log +select "--- Local with 2 binlogs on command line --" as ""; +--enable_query_log + +# This is to verify that some options apply only to first, or last binlog + +flush logs; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 + +--disable_query_log +select "--- offset --" as ""; +--enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --offset=5 $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 +--disable_query_log +select "--- start-position --" as ""; +--enable_query_log +let $start_pos= `select @binlog_start_pos + 696`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --start-position=$start_pos $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 +--disable_query_log +select "--- stop-position --" as ""; +--enable_query_log +let $stop_pos= `select @binlog_start_pos + 134`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --stop-position=$stop_pos $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 +--disable_query_log +select "--- start-datetime --" as ""; +--enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form "--start-datetime=1970-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 +--disable_query_log +select "--- stop-datetime --" as ""; +--enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form "--stop-datetime=1970-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 + +--disable_query_log +select "--- Remote --" as ""; +--enable_query_log + +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 + +--disable_query_log +select "--- offset --" as ""; +--enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --offset=5 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 +--disable_query_log +select "--- start-position --" as ""; +--enable_query_log +let $start_pos= `select @binlog_start_pos + 696`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --start-position=$start_pos --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 +--disable_query_log +select "--- stop-position --" as ""; +--enable_query_log +let $stop_pos= `select @binlog_start_pos + 696`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --stop-position=$stop_pos --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 +--disable_query_log +select "--- start and stop positions ---" as ""; +--enable_query_log +let $start_pos= `select @binlog_start_pos + 696`; +let $stop_pos= `select @binlog_start_pos + 812`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --start-position=$start_pos --stop-position $stop_pos --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 +--disable_query_log +select "--- start-datetime --" as ""; +--enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form "--start-datetime=1970-01-21 15:32:24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 +--disable_query_log +select "--- stop-datetime --" as ""; +--enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form "--stop-datetime=1970-01-21 15:32:24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 + +--disable_query_log +select "--- Remote with 2 binlogs on command line --" as ""; +--enable_query_log + +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 + +--disable_query_log +select "--- offset --" as ""; +--enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --offset=5 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 +--disable_query_log +select "--- start-position --" as ""; +--enable_query_log +let $start_pos= `select @binlog_start_pos + 696`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --start-position=$start_pos --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 +--disable_query_log +select "--- stop-position --" as ""; +--enable_query_log +let $stop_pos= `select @binlog_start_pos + 109`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --stop-position=$stop_pos --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 +--disable_query_log +select "--- start-datetime --" as ""; +--enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form "--start-datetime=19700121153224" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 +--disable_query_log +select "--- stop-datetime --" as ""; +--enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form "--stop-datetime=1970/01/21 15@32@24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 + +--disable_query_log +select "--- to-last-log --" as ""; +--enable_query_log + +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --short-form --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT --to-last-log master-bin.000001 + +# clean up +--disable_query_log +select "--- end of test --" as ""; +--enable_query_log +drop table t1; + +set global binlog_checksum=default; +# End of 4.1 tests diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog_base64.test b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_base64.test new file mode 100644 index 00000000..3d3444ce --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_base64.test @@ -0,0 +1,102 @@ +-- source include/have_binlog_format_row.inc +# +# Reset master to cleanup binlog +# +reset master; + +# +# Write different events to binlog +# +create table t1 (a int); +insert into t1 values (1); +insert into t1 values (2); +insert into t1 values (3); +update t1 set a=a+2 where a=2; +update t1 set a=a+2 where a=3; + +create table t2 (word varchar(20)); +load data infile '../../std_data/words.dat' into table t2; + +# +# Save binlog +# +let $MYSQLD_DATADIR=`select @@datadir`; +flush logs; +--exec $MYSQL_BINLOG --hexdump $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_base64.sql + +# +# Clear database and restore from binlog +# +drop table t1; +drop table t2; +--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/mysqlbinlog_base64.sql + +# +# Verify that all binlog events have been executed +# +select * from t1; +select * from t2; + +# +# Verify that events larger than the default IO_CACHE buffer +# are handled correctly (BUG#25628). +# +flush logs; +drop table t2; +create table t2 (word varchar(20)); +load data infile '../../std_data/words.dat' into table t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +select count(*) from t2; + +flush logs; +--exec $MYSQL_BINLOG --hexdump $MYSQLD_DATADIR/master-bin.000003 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_base64.sql +--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/mysqlbinlog_base64.sql + +# +# Verify that all binlog events have been executed +# +select count(*) from t2; + +# +# Test cleanup +# +--remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_base64.sql +drop table t1; +drop table t2; + +# +# BUG#12354268 +# +# This test verifies that using --start-position with DECODE-ROWS +# does not make mysqlbinlog to output an error stating that it +# does not contain any FD event. +# + +RESET MASTER; +USE test; +SET @old_binlog_format= @@binlog_format; +SET SESSION binlog_format=ROW; +CREATE TABLE t1(c1 INT); +--let $master_binlog= query_get_value(SHOW MASTER STATUS, File, 1) +--let $master_pos= query_get_value(SHOW MASTER STATUS, Position, 1) +--let $MYSQLD_DATADIR= `SELECT @@datadir` + +INSERT INTO t1 VALUES (1); + +FLUSH LOGS; + +--disable_result_log +--exec $MYSQL_BINLOG --base64-output=DECODE-ROWS --start-position=$master_pos -v $MYSQLD_DATADIR/$master_binlog +--enable_result_log + +DROP TABLE t1; +SET SESSION binlog_format= @old_binlog_format; +RESET MASTER; diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row-master.opt b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row-master.opt new file mode 100644 index 00000000..4d69f335 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row-master.opt @@ -0,0 +1 @@ +--timezone=GMT-3 diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row.test b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row.test new file mode 100644 index 00000000..b366578f --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row.test @@ -0,0 +1,491 @@ +--source include/have_log_bin.inc +--source include/have_binlog_format_row.inc +--source include/have_ucs2.inc + +--echo # +--echo # Preparatory cleanup. +--echo # +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +--echo # +--echo # We need a fixed timestamp to avoid varying results. +--echo # +SET timestamp=1000000000; + +--echo # +--echo # Delete all existing binary logs. +--echo # +RESET MASTER; + + +CREATE TABLE t1 (c01 BIT); +INSERT INTO t1 VALUES (0); +INSERT INTO t1 VALUES (1); +DROP TABLE t1; + +CREATE TABLE t1 (c01 BIT(7)); +INSERT INTO t1 VALUES (1); +INSERT INTO t1 VALUES (2); +INSERT INTO t1 VALUES (4); +INSERT INTO t1 VALUES (8); +INSERT INTO t1 VALUES (16); +INSERT INTO t1 VALUES (32); +INSERT INTO t1 VALUES (64); +INSERT INTO t1 VALUES (127); +DELETE FROM t1 WHERE c01=127; +UPDATE t1 SET c01=15 WHERE c01=16; +DROP TABLE t1; + +CREATE TABLE t1 (a BIT(20), b CHAR(2)); +INSERT INTO t1 VALUES (b'00010010010010001001', 'ab'); +DROP TABLE t1; + +CREATE TABLE t1 (c02 BIT(64)); +INSERT INTO t1 VALUES (1); +INSERT INTO t1 VALUES (2); +INSERT INTO t1 VALUES (128); +INSERT INTO t1 VALUES (b'1111111111111111111111111111111111111111111111111111111111111111'); +DROP TABLE t1; + + +CREATE TABLE t1 (c03 TINYINT); +INSERT INTO t1 VALUES (1),(2),(3); +INSERT INTO t1 VALUES (-128); +UPDATE t1 SET c03=2 WHERE c03=1; +DELETE FROM t1 WHERE c03=-128; +DROP TABLE t1; + +CREATE TABLE t1 (c04 TINYINT UNSIGNED); +INSERT INTO t1 VALUES (128), (255); +UPDATE t1 SET c04=2 WHERE c04=1; +DELETE FROM t1 WHERE c04=255; +DROP TABLE t1; + +CREATE TABLE t1 (c06 BOOL); +INSERT INTO t1 VALUES (TRUE); +DELETE FROM t1 WHERE c06=TRUE; +DROP TABLE t1; + +CREATE TABLE t1 (c07 SMALLINT); +INSERT INTO t1 VALUES (1234); +DELETE FROM t1 WHERE c07=1234; +DROP TABLE t1; + +CREATE TABLE t1 (c08 SMALLINT UNSIGNED); +INSERT INTO t1 VALUES (32768), (65535); +UPDATE t1 SET c08=2 WHERE c08=32768; +DELETE FROM t1 WHERE c08=65535; +DROP TABLE t1; + +CREATE TABLE t1 (c10 MEDIUMINT); +INSERT INTO t1 VALUES (12345); +DELETE FROM t1 WHERE c10=12345; +DROP TABLE t1; + +CREATE TABLE t1 (c11 MEDIUMINT UNSIGNED); +INSERT INTO t1 VALUES (8388608), (16777215); +UPDATE t1 SET c11=2 WHERE c11=8388608; +DELETE FROM t1 WHERE c11=16777215; +DROP TABLE t1; + +CREATE TABLE t1 (c13 INT); +INSERT INTO t1 VALUES (123456); +DELETE FROM t1 WHERE c13=123456; +DROP TABLE t1; + +CREATE TABLE t1 (c14 INT UNSIGNED); +INSERT INTO t1 VALUES (2147483648), (4294967295); +UPDATE t1 SET c14=2 WHERE c14=2147483648; +DELETE FROM t1 WHERE c14=4294967295; +DROP TABLE t1; + +CREATE TABLE t1 (c16 BIGINT); +INSERT INTO t1 VALUES (1234567890); +DELETE FROM t1 WHERE c16=1234567890; +DROP TABLE t1; + +CREATE TABLE t1 (c17 BIGINT UNSIGNED); +INSERT INTO t1 VALUES (9223372036854775808), (18446744073709551615); +UPDATE t1 SET c17=2 WHERE c17=9223372036854775808; +DELETE FROM t1 WHERE c17=18446744073709551615; +DROP TABLE t1; + +CREATE TABLE t1 (c19 FLOAT); +INSERT INTO t1 VALUES (123.2234); +DELETE FROM t1 WHERE c19>123; +DROP TABLE t1; + +CREATE TABLE t1 (c22 DOUBLE); +INSERT INTO t1 VALUES (123434.22344545); +DELETE FROM t1 WHERE c22>123434; +DROP TABLE t1; + +# + +CREATE TABLE t1 (c25 DECIMAL(10,5)); +INSERT INTO t1 VALUES (124.45); +INSERT INTO t1 VALUES (-543.21); +DELETE FROM t1 WHERE c25=124.45; +DROP TABLE t1; + +# + +CREATE TABLE t1 (c28 DATE); +INSERT INTO t1 VALUES ('2001-02-03'); +DELETE FROM t1 WHERE c28='2001-02-03'; +DROP TABLE t1; + +CREATE TABLE t1 (c29 DATETIME); +INSERT INTO t1 VALUES ('2001-02-03 10:20:30'); +DELETE FROM t1 WHERE c29='2001-02-03 10:20:30'; +DROP TABLE t1; + +CREATE TABLE t1 (c30 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); +INSERT INTO t1 VALUES ('2001-02-03 10:20:30'); +DELETE FROM t1 WHERE c30='2001-02-03 10:20:30'; +DROP TABLE t1; + +CREATE TABLE t1 (c31 TIME); +INSERT INTO t1 VALUES ('11:22:33'); +DELETE FROM t1 WHERE c31='11:22:33'; +DROP TABLE t1; + +CREATE TABLE t1 (c32 YEAR); +INSERT INTO t1 VALUES ('2001'); +DELETE FROM t1 WHERE c32=2001; +DROP TABLE t1; + +# + +CREATE TABLE t1 (c33 CHAR); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c33='a'; +DROP TABLE t1; + +CREATE TABLE t1 (c34 CHAR(0)); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c34=''; +DROP TABLE t1; + +CREATE TABLE t1 (c35 CHAR(1)); +INSERT INTO t1 VALUES ('b'); +DELETE FROM t1 WHERE c35='b'; +DROP TABLE t1; + +CREATE TABLE t1 (c36 CHAR(255)); +INSERT INTO t1 VALUES (repeat('c',255)); +DELETE FROM t1 WHERE c36>'c'; +DROP TABLE t1; + +# + +CREATE TABLE t1 (c37 NATIONAL CHAR); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c37='a'; +DROP TABLE t1; + +CREATE TABLE t1 (c38 NATIONAL CHAR(0)); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c38=''; +DROP TABLE t1; + +CREATE TABLE t1 (c39 NATIONAL CHAR(1)); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c39='a'; +DROP TABLE t1; + +CREATE TABLE t1 (c40 NATIONAL CHAR(255)); +INSERT INTO t1 VALUES (repeat('a', 255)); +INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 255)); +DELETE FROM t1 WHERE c40>'a'; +DROP TABLE t1; + +# + +CREATE TABLE t1 (c41 CHAR CHARACTER SET UCS2); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c41='a'; +DROP TABLE t1; + +CREATE TABLE t1 (c42 CHAR(0) CHARACTER SET UCS2); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c42=''; +DROP TABLE t1; + +CREATE TABLE t1 (c43 CHAR(1) CHARACTER SET UCS2); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c43='a'; +DROP TABLE t1; + +CREATE TABLE t1 (c44 CHAR(255) CHARACTER SET UCS2); +INSERT INTO t1 VALUES (repeat('a', 255)); +INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 255)); +DELETE FROM t1 WHERE c44>'a'; +DROP TABLE t1; + +# + +CREATE TABLE t1 (c45 VARCHAR(0)); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c45=''; +DROP TABLE t1; + +CREATE TABLE t1 (c46 VARCHAR(1)); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c46='a'; +DROP TABLE t1; + +CREATE TABLE t1 (c47 VARCHAR(255)); +INSERT INTO t1 VALUES (repeat('a',255)); +DELETE FROM t1 WHERE c47>'a'; +DROP TABLE t1; + +CREATE TABLE t1 (c48 VARCHAR(261)); +INSERT INTO t1 VALUES (repeat('a',261)); +DELETE FROM t1 WHERE c48>'a'; +DROP TABLE t1; + +# + +CREATE TABLE t1 (c49 NATIONAL VARCHAR(0)); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c49=''; +DROP TABLE t1; + +CREATE TABLE t1 (c50 NATIONAL VARCHAR(1)); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c50='a'; +DROP TABLE t1; + +CREATE TABLE t1 (c51 NATIONAL VARCHAR(255)); +INSERT INTO t1 VALUES (repeat('a',255)); +INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 255)); +DELETE FROM t1 WHERE c51>'a'; +DROP TABLE t1; + +CREATE TABLE t1 (c52 NATIONAL VARCHAR(261)); +INSERT INTO t1 VALUES (repeat('a',261)); +INSERT INTO t1 VALUES (repeat(_latin1 0xDF, 261)); +DELETE FROM t1 WHERE c52>'a'; +DROP TABLE t1; + +# + +CREATE TABLE t1 (c53 VARCHAR(0) CHARACTER SET ucs2); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c53=''; +DROP TABLE t1; + +CREATE TABLE t1 (c54 VARCHAR(1) CHARACTER SET ucs2); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c54='a'; +DROP TABLE t1; + +CREATE TABLE t1 (c55 VARCHAR(255) CHARACTER SET ucs2); +INSERT INTO t1 VALUES (repeat('ab', 127)); +DELETE FROM t1 WHERE c55>'a'; +DROP TABLE t1; + +CREATE TABLE t1 (c56 VARCHAR(261) CHARACTER SET ucs2); +INSERT INTO t1 VALUES (repeat('ab', 130)); +DELETE FROM t1 WHERE c56>'a'; +DROP TABLE t1; + +# + +CREATE TABLE t1 (c57 BINARY); +INSERT INTO t1 VALUES (0x00); +INSERT INTO t1 VALUES (0x02); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c57='a'; +DROP TABLE t1; + +CREATE TABLE t1 (c58 BINARY(0)); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c58=''; +DROP TABLE t1; + +CREATE TABLE t1 (c59 BINARY(1)); +INSERT INTO t1 VALUES (0x00); +INSERT INTO t1 VALUES (0x02); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c59='a'; +DROP TABLE t1; + +CREATE TABLE t1 (c60 BINARY(255)); +INSERT INTO t1 VALUES (0x00); +INSERT INTO t1 VALUES (0x02); +INSERT INTO t1 VALUES (repeat('a\0',120)); +DELETE FROM t1 WHERE c60<0x02; +DROP TABLE t1; + +# + +CREATE TABLE t1 (c61 VARBINARY(0)); +INSERT INTO t1 VALUES (''); +DELETE FROM t1 WHERE c61=''; +DROP TABLE t1; + +CREATE TABLE t1 (c62 VARBINARY(1)); +INSERT INTO t1 VALUES (0x00); +INSERT INTO t1 VALUES (0x02); +INSERT INTO t1 VALUES ('a'); +DELETE FROM t1 WHERE c62=0x02; +DROP TABLE t1; + +CREATE TABLE t1 (c63 VARBINARY(255)); +INSERT INTO t1 VALUES (0x00); +INSERT INTO t1 VALUES (0x02); +INSERT INTO t1 VALUES (repeat('a\0',120)); +DELETE FROM t1 WHERE c63=0x02; +DROP TABLE t1; + +# + +CREATE TABLE t1 (c65 TINYBLOB); +INSERT INTO t1 VALUES ('tinyblob1'); +DELETE FROM t1 WHERE c65='tinyblob1'; +DROP TABLE t1; + +CREATE TABLE t1 (c68 BLOB); +INSERT INTO t1 VALUES ('blob1'); +DELETE FROM t1 WHERE c68='blob1'; +DROP TABLE t1; + +CREATE TABLE t1 (c71 MEDIUMBLOB); +INSERT INTO t1 VALUES ('mediumblob1'); +DELETE FROM t1 WHERE c71='mediumblob1'; +DROP TABLE t1; + +CREATE TABLE t1 (c74 LONGBLOB); +INSERT INTO t1 VALUES ('longblob1'); +DELETE FROM t1 WHERE c74='longblob1'; +DROP TABLE t1; + +CREATE TABLE t1 (c66 TINYTEXT); +INSERT INTO t1 VALUES ('tinytext1'); +DELETE FROM t1 WHERE c66='tinytext1'; +DROP TABLE t1; + +CREATE TABLE t1 (c69 TEXT); +INSERT INTO t1 VALUES ('text1'); +DELETE FROM t1 WHERE c69='text1'; +DROP TABLE t1; + +CREATE TABLE t1 (c72 MEDIUMTEXT); +INSERT INTO t1 VALUES ('mediumtext1'); +DELETE FROM t1 WHERE c72='mediumtext1'; +DROP TABLE t1; + +CREATE TABLE t1 (c75 LONGTEXT); +INSERT INTO t1 VALUES ('longtext1'); +DELETE FROM t1 WHERE c75='longtext1'; +DROP TABLE t1; + +# + +CREATE TABLE t1 (c67 TINYTEXT CHARACTER SET UCS2); +INSERT INTO t1 VALUES ('tinytext1'); +DELETE FROM t1 WHERE c67='tinytext1'; +DROP TABLE t1; + +CREATE TABLE t1 (c70 TEXT CHARACTER SET UCS2); +INSERT INTO t1 VALUES ('text1'); +DELETE FROM t1 WHERE c70='text1'; +DROP TABLE t1; + +CREATE TABLE t1 (c73 MEDIUMTEXT CHARACTER SET UCS2); +INSERT INTO t1 VALUES ('mediumtext1'); +DELETE FROM t1 WHERE c73='mediumtext1'; +DROP TABLE t1; + +CREATE TABLE t1 (c76 LONGTEXT CHARACTER SET UCS2); +INSERT INTO t1 VALUES ('longtext1'); +DELETE FROM t1 WHERE c76='longtext1'; +DROP TABLE t1; + +# + +CREATE TABLE t1 (c77 ENUM('a','b','c')); +INSERT INTO t1 VALUES ('b'); +DELETE FROM t1 WHERE c77='b'; +DROP TABLE t1; + +# + +CREATE TABLE t1 (c78 SET('a','b','c','d','e','f')); +INSERT INTO t1 VALUES ('a,b'); +INSERT INTO t1 VALUES ('a,c'); +INSERT INTO t1 VALUES ('b,c'); +INSERT INTO t1 VALUES ('a,b,c'); +INSERT INTO t1 VALUES ('a,b,c,d'); +INSERT INTO t1 VALUES ('a,b,c,d,e'); +INSERT INTO t1 VALUES ('a,b,c,d,e,f'); +DELETE FROM t1 WHERE c78='a,b'; +DROP TABLE t1; + +# +# Check multi-table update +# +CREATE TABLE t1 (a int NOT NULL DEFAULT 0, b int NOT NULL DEFAULT 0); +CREATE TABLE t2 (a int NOT NULL DEFAULT 0, b int NOT NULL DEFAULT 0); +INSERT INTO t1 SET a=1; +INSERT INTO t1 SET b=1; +INSERT INTO t2 SET a=1; +INSERT INTO t2 SET b=1; +UPDATE t1, t2 SET t1.a=10, t2.a=20; +DROP TABLE t1,t2; + +--echo # +--echo # MDEV-20591 Wrong Number of rows in mysqlbinlog output. +--echo # + +CREATE TABLE t1(c_char_utf8 CHAR(10) , + c_varchar_utf8 char(10) , + c_text_utf8 blob ); + +INSERT into t1 values("B", "B", REPEAT("#", 2000)); + +drop table t1; + +flush logs; + +let $MYSQLD_DATADIR= `select @@datadir`; + +--copy_file std_data/old_decimal/t1dec102.frm $MYSQLD_DATADIR/test/t1dec102.frm +--copy_file std_data/old_decimal/t1dec102.MYD $MYSQLD_DATADIR/test/t1dec102.MYD +--copy_file std_data/old_decimal/t1dec102.MYI $MYSQLD_DATADIR/test/t1dec102.MYI + +INSERT INTO t1dec102 VALUES (-999.99); +INSERT INTO t1dec102 VALUES (0); +INSERT INTO t1dec102 VALUES (999.99); +SELECT * FROM t1dec102 ORDER BY a; +DROP TABLE t1dec102; + +flush logs; +# +# MDEV-22330: mysqlbinlog stops with an error Don't know how to handle column +# type: 255 meta: 4 (0004) +# Check support for GEOMETRY type with verbose mode. +# +CREATE TABLE t1 (a GEOMETRY DEFAULT NULL); + +INSERT INTO t1 VALUES (NULL); +INSERT INTO t1 VALUES (POINT(10,10)); +DROP TABLE t1; +FLUSH LOGS; + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9]*[.][0-9]{1,3})[0-9e+-]*[^ ]*(.*(FLOAT|DOUBLE).*[*].)/\1...\2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9]*[.][0-9]{1,3})[0-9e+-]*[^ ]*(.*(FLOAT|DOUBLE).*[*].)/\1...\2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ +--error 1 +--exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000002 2>&1 + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9]*[.][0-9]{1,3})[0-9e+-]*[^ ]*(.*(FLOAT|DOUBLE).*[*].)/\1...\2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000003 diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_frag.test b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_frag.test new file mode 100644 index 00000000..3e18ef1e --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_frag.test @@ -0,0 +1,50 @@ +--source include/have_debug.inc +--source include/have_binlog_format_row.inc + +--let $MYSQLD_DATADIR= `select @@datadir` + +CREATE TABLE t (a TEXT); +# events of interest are guaranteed to stay in 000001 log +RESET MASTER; +--eval INSERT INTO t SET a=repeat('a', 1024) +SELECT a into @a from t; +FLUSH LOGS; +DELETE FROM t; + +--exec $MYSQL_BINLOG --verbose --debug-binlog-row-event-max-encoded-size=256 $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog.sql + +--let SEARCH_PATTERN= BINLOG @binlog_fragment_0, @binlog_fragment_1 +--let SEARCH_FILE= $MYSQLTEST_VARDIR/tmp/mysqlbinlog.sql +--source include/search_pattern_in_file.inc + +--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/mysqlbinlog.sql + +SELECT a LIKE @a as 'true' FROM t; + +# improper syntax error +--echo BINLOG number-of-fragments must be exactly two +--error ER_PARSE_ERROR +BINLOG @binlog_fragment; +--error ER_PARSE_ERROR +BINLOG @binlog_fragment, @binlog_fragment, @binlog_fragment; + +# corrupted fragments error check (to the expected error code notice, +# the same error code occurs in a similar unfragmented case) +SET @binlog_fragment_0='012345'; +SET @binlog_fragment_1='012345'; +--error ER_SYNTAX_ERROR +BINLOG @binlog_fragment_0, @binlog_fragment_1; + +# Not existing fragment is not allowed +SET @binlog_fragment_0='012345'; +--error ER_WRONG_TYPE_FOR_VAR +BINLOG @binlog_fragment_0, @binlog_fragment_not_exist; + +# MDEV-22520 +SET @a= '42'; +--error ER_SYNTAX_ERROR +BINLOG @a, @a; + +--echo # Cleanup +--remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog.sql +DROP TABLE t; diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb-master.opt b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb-master.opt new file mode 100644 index 00000000..4d69f335 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb-master.opt @@ -0,0 +1 @@ +--timezone=GMT-3 diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb.test b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb.test new file mode 100644 index 00000000..cef1a712 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_innodb.test @@ -0,0 +1,24 @@ +# mysqlbinlog_row_innodb.test +# +# Show that mysqlbinlog displays human readable comments to +# row-based log events. +# +# Main module for the InnoDB storage engine. +# +# Calls include/mysqlbinlog_row.inc +# See there for more informaton. +# + +--source include/have_innodb.inc +let $engine_type=InnoDB; + +# +# The test case would also work with statement based or mixed mode logging. +# But this would require different result files. To handle this with the +# current test suite, new main test cases are required. +# +--source include/have_binlog_format_row.inc +--source include/have_ucs2.inc + +--source include/mysqlbinlog_row_engine.inc + diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam-master.opt b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam-master.opt new file mode 100644 index 00000000..4d69f335 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam-master.opt @@ -0,0 +1 @@ +--timezone=GMT-3 diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam.test b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam.test new file mode 100644 index 00000000..e7b03358 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_myisam.test @@ -0,0 +1,23 @@ +# mysqlbinlog_row.test +# +# Show that mysqlbinlog displays human readable comments to +# row-based log events. +# +# Main module for the MyISAM storage engine. +# +# Calls include/mysqlbinlog_row.inc +# See there for more informaton. +# + +#--source include/have_myisam.inc +let $engine_type=MyISAM; + +# +# The test case would also work with statement based or mixed mode logging. +# But this would require different result files. To handle this with the +# current test suite, new main test cases are required. +# +--source include/have_binlog_format_row.inc +--source include/have_ucs2.inc + +--source include/mysqlbinlog_row_engine.inc diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans-master.opt b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans-master.opt new file mode 100644 index 00000000..4d69f335 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans-master.opt @@ -0,0 +1 @@ +--timezone=GMT-3 diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans.test b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans.test new file mode 100644 index 00000000..12d83e0a --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans.test @@ -0,0 +1,161 @@ +# mysqlbinlog_trans.test +# +# Show that mysqlbinlog work correctly with transactions. +# + +#--source include/have_myisam.inc +--let $engine_type_nontrans= MyISAM +--source include/have_innodb.inc +--let $engine_type= InnoDB + +# +# The test case would also work with statement based or mixed mode logging. +# But this would require different result files. To handle this with the +# current test suite, new main test cases are required. +# +--source include/have_binlog_format_row.inc + +--source include/have_log_bin.inc + +--echo # +--echo # Preparatory cleanup. +--echo # +--disable_warnings +DROP TABLE IF EXISTS t1, t2; +--enable_warnings + +--echo # +--echo # We need a fixed timestamp to avoid varying results. +--echo # +SET timestamp=1000000000; + +--echo # +--echo # Delete all existing binary logs. +--echo # +RESET MASTER; + +--echo # +--echo # Create test tables. +--echo # +eval CREATE TABLE t1 ( + c1 INT, + c2 VARCHAR(20) + ) ENGINE=$engine_type DEFAULT CHARSET latin1; +eval CREATE TABLE t2 ( + c1 INT, + c2 VARCHAR(20) + ) ENGINE=$engine_type_nontrans DEFAULT CHARSET latin1; + +--echo # +--echo # Start transaction #1, transactional table only, commit. +--echo # +START TRANSACTION; + +--echo # +--echo # Do some statements. +--echo # +INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); +UPDATE t1 SET c1 = c1 + 10; +DELETE FROM t1 WHERE c1 = 12; + +--echo # +--echo # Commit transaction. +--echo # +COMMIT; +SELECT * FROM t1; +TRUNCATE TABLE t1; + +--echo # +--echo # Start transaction #2, transactional table only, rollback. +--echo # +START TRANSACTION; + +--echo # +--echo # Do some statements. +--echo # +INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); +UPDATE t1 SET c1 = c1 + 10; +DELETE FROM t1 WHERE c1 = 12; + +--echo # +--echo # Rollback transaction. +--echo # +ROLLBACK; +SELECT * FROM t1; +TRUNCATE TABLE t1; + +--echo # +--echo # Start transaction #3, both tables, commit. +--echo # +START TRANSACTION; + +--echo # +--echo # Do some statements on the transactional table. +--echo # +INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); +UPDATE t1 SET c1 = c1 + 10; +DELETE FROM t1 WHERE c1 = 12; + +--echo # +--echo # Do some statements on the non-transactional table. +--echo # +INSERT INTO t2 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); +UPDATE t2 SET c1 = c1 + 10; +DELETE FROM t2 WHERE c1 = 12; + +--echo # +--echo # Commit transaction. +--echo # +COMMIT; +SELECT * FROM t1; +SELECT * FROM t2; +TRUNCATE TABLE t1; +TRUNCATE TABLE t2; + +--echo # +--echo # Start transaction #4, both tables, rollback. +--echo # +START TRANSACTION; + +--echo # +--echo # Do some statements on the transactional table. +--echo # +INSERT INTO t1 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); +UPDATE t1 SET c1 = c1 + 10; +DELETE FROM t1 WHERE c1 = 12; + +--echo # +--echo # Do some statements on the non-transactional table. +--echo # +INSERT INTO t2 VALUES (1,'varchar-1'), (2,'varchar-2'), (3,'varchar-3'); +UPDATE t2 SET c1 = c1 + 10; +DELETE FROM t2 WHERE c1 = 12; + +--echo # +--echo # Rollback transaction. +--echo # +ROLLBACK; +SELECT * FROM t1; +SELECT * FROM t2; +TRUNCATE TABLE t1; +TRUNCATE TABLE t2; + +--echo # +--echo # Flush all log buffers to the log file. +--echo # +FLUSH LOGS; + +--echo # +--echo # Call mysqlbinlog to display the log file contents. +--echo # +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 + +--echo # +--echo # Cleanup. +--echo # +DROP TABLE t1, t2; + + diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog_stop_never.test b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_stop_never.test new file mode 100644 index 00000000..d73e453c --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_stop_never.test @@ -0,0 +1,66 @@ +# ==== Purpose ==== +# +# Test verifies that continuous streaming of binary log content using the +# "mysqlbinlog --stop-never" option and sourcing it to mysql client works +# fine. +# +# ==== Implementation ==== +# +# Steps: +# 1 - Create a table on a server on which binary log is enabled and insert +# a row. +# 2 - Disable the binary log on the server and drop the table. +# 3 - Capture the binary log output using "mysqlbinlog --stop_never" option +# and source it to mysql client. +# 4 - Query the PROCESSLIST table to ensure that the dump thread which is +# serving "stop_never" option has read entire binlog. +# 5 - Verify that the table is populated on the server. +# 6 - Cleanup. +# +# ==== References ==== +# +# MDEV-11154: Write_on_release_cache(log_event.cc) function will not write +# "COMMIT", if use "mysqlbinlog ... | mysql ..." + +--source include/not_windows.inc + +# Test is not specific to any binlog format. Hence Running only for 'row'. +--source include/have_binlog_format_row.inc + +# binlog file name is needed in the test. To use master-bin.000001, +# RESET MASTER is needed. +RESET MASTER; +# kill the dump threads if there any dump threads (may be from previous test) +--source include/stop_dump_threads.inc + +--echo # Step-1: Execute some dummy statements. +CREATE TABLE t1(i int); +INSERT INTO t1 values (1); + +--echo # Step-2: Disable binary log temporarily and drop the table 't1'. +set @@SESSION.SQL_LOG_BIN = 0; +DROP TABLE t1; +set @@SESSION.SQL_LOG_BIN = 1; + +--echo # Step-3: Execute MYSQL_BINLOG with --stop-never and source it to mysql client. +--write_file $MYSQL_TMP_DIR/mysqlbinlog_stop_never.sh +(`$MYSQL_BINLOG --read-from-remote-server --stop-never --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 | $MYSQL --user=root --protocol=tcp --host=127.0.0.1 --port=$MASTER_MYPORT`) < /dev/null > /dev/null 2>&1 & +EOF +--exec /bin/bash $MYSQL_TMP_DIR/mysqlbinlog_stop_never.sh + +--echo # Step-4: Wait till dump thread transfer is completed. +let $wait_condition= SELECT id from information_schema.processlist where processlist.command like '%Binlog%' and state like '%Master has sent%'; +--source include/wait_condition.inc + +--echo # Step-5: Check that the data is there. +let $count= 1; +let $table= test.t1; +source include/wait_until_rows_count.inc; + +--echo # Step-6: Cleanup +--echo # kill the dump thread serving the mysqlbinlog --stop-never process +--source include/stop_dump_threads.inc + +DROP TABLE t1; +--remove_file $MYSQL_TMP_DIR/mysqlbinlog_stop_never.sh + diff --git a/mysql-test/suite/binlog/t/binlog_mysqlbinlog_suppress_O_TMPFILE.test b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_suppress_O_TMPFILE.test new file mode 100644 index 00000000..c97269a8 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_mysqlbinlog_suppress_O_TMPFILE.test @@ -0,0 +1,51 @@ +# ==== Purpose ==== +# +# Suppress the following informational note that gets printed to standard +# error when O_TMPFILE flag is not supported by underlying operating system. +# +# Note: ../client/mysqlbinlog: O_TMPFILE is not supported on /tmp (disabling +# future attempts) +# +# Step 1: Generate a binarylog file with a size greater than 1MB. +# Step 2: Use mysqlbinlog tool to generate sql file and redirect the standard +# error to standard output (2>&1) +# Step 3: Source the generated sql file as inpurt to mysql client, observe no +# syntax error is reported. +# +# ==== References ==== +# +# MDEV-23846: O_TMPFILE error in mysqlbinlog stream output breaks restore +# +--source include/have_binlog_format_row.inc + +RESET MASTER; +CREATE TABLE t(f text); +INSERT INTO t VALUES (repeat('x',4096)); +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +INSERT INTO t SELECT * FROM t; +SELECT COUNT(*) FROM t; +FLUSH LOGS; +let $MYSQLD_DATADIR= `select @@datadir`; + +--exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_base64.sql 2>&1 +# +# Clear database and restore from binlog +# +DROP TABLE t; + +--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/mysqlbinlog_base64.sql + +--echo # 512- Rows must be present +--let $assert_cond= COUNT(*) = 512 FROM t +--let $assert_text= Table t should have 512 rows. +--source include/assert.inc + +DROP TABLE t; +RESET MASTER; diff --git a/mysql-test/suite/binlog/t/binlog_no_uniqfile_crash.test b/mysql-test/suite/binlog/t/binlog_no_uniqfile_crash.test new file mode 100644 index 00000000..cb8b1078 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_no_uniqfile_crash.test @@ -0,0 +1,83 @@ +# ==== Purpose ==== +# +# Test verifies that when RESET MASTER TO # command is supplied with binlog +# extension number greater than 2147483647 the command should report +# appropriate error and binary log should be disabled. It should not result in +# a crash. +# +# ==== Implementation ==== +# +# Steps: +# 0 - Verify case with max binary log extension. Max value is '2147483647' +# 1 - Confirm that SHOW BINARY LOGS displays a binary log with '2147483647' +# 2 - Verify that events are successfully written into max extension file. +# 3 - Try to create a binary log with extension greater than max allowed +# value '2147483648', verify ER_NO_UNIQUE_LOGFILE error is reported. +# 4 - Execute CREATE DATABASE db2 statement and verify server dosn't crash. +# 5 - Execute SHOW BINARY LOG command and verify that it reports +# ER_NO_BINARY_LOGGING error. +# 6 - Restart the server and verify that databse 'db2' exists and it it not +# present in the binary log. +# +# ==== References ==== +# +# MDEV-22451: SIGSEGV in __memmove_avx_unaligned_erms/memcpy from +# _my_b_write on CREATE after RESET MASTER +# +--source include/have_log_bin.inc + +call mtr.add_suppression("Next log extension: 2147483647. Remaining log filename extensions: 0"); +call mtr.add_suppression("Log filename extension number exhausted:."); +call mtr.add_suppression("Can't generate a unique log-filename"); +call mtr.add_suppression("MYSQL_BIN_LOG::open failed to generate new file name."); +call mtr.add_suppression("Could not use master-bin for logging"); + + +--echo "Test case verifies creation of binary log with max entension value." +RESET MASTER TO 2147483647; +--source include/show_binary_logs.inc + +# Check error log for correct messages. +let $log_error_= `SELECT @@GLOBAL.log_error`; +if(!$log_error_) +{ + # MySQL Server on windows is started with --console and thus + # does not know the location of its .err log, use default location + let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.1.err; +} + +--let SEARCH_FILE=$log_error_ +--let SEARCH_PATTERN=Next log extension: 2147483647. Remaining log filename extensions: 0. +--source include/search_pattern_in_file.inc + +CREATE DATABASE db1; +--source include/show_binlog_events.inc + +--error ER_NO_UNIQUE_LOGFILE +RESET MASTER TO 2147483648; + +--let SEARCH_FILE=$log_error_ +--let SEARCH_PATTERN=Turning logging off for the whole duration of the MariaDB server process +--source include/search_pattern_in_file.inc + +--echo "Following CREATE DATABSE db2 command will not be present in binary log" +--echo "as binary log got closed due to ER_NO_UNIQUE_LOGFILE error." +CREATE DATABASE db2; + + +--echo "RESET MASTER command fails to generate a new binary log" +--echo "log-bin will be disabled and server needs to be restarted to" +--echo "re-enable the binary log." +--error ER_NO_BINARY_LOGGING +SHOW BINARY LOGS; + +--source include/restart_mysqld.inc + +--source include/show_binary_logs.inc +SHOW DATABASES LIKE 'db%'; +--source include/show_binlog_events.inc + +# Cleanup +DROP DATABASE db1; +DROP DATABASE db2; +--source include/show_binlog_events.inc diff --git a/mysql-test/suite/binlog/t/binlog_old_versions.test b/mysql-test/suite/binlog/t/binlog_old_versions.test new file mode 100644 index 00000000..13010154 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_old_versions.test @@ -0,0 +1,153 @@ +# Test that old binlog formats can be read. + +# Some previous versions of MySQL use their own binlog format, +# especially in row-based replication. This test uses saved binlogs +# from those old versions to test that we can replicate from old +# versions to the present version. + +# Replicating from old versions to new versions is necessary in an +# online upgrade scenario, where the . + +# The previous versions we currently test are: +# - version 5.1.17 and earlier trees +# - mysql-5.1-wl2325-xxx trees (AKA alcatel trees) +# - mysql-5.1-telco-6.1 trees +# For completeness, we also test mysql-5.1-new_rpl, which is supposed +# to be the "correct" version. + +# All binlogs were generated with the same commands (listed at the end +# of this test for reference). The binlogs contain the following +# events: Table_map, Write_rows, Update_rows, Delete_rows Query, Xid, +# User_var, Int_var, Rand, Begin_load, Append_file, Execute_load. + +# Related bugs: BUG#27779, BUG#31581, BUG#31582, BUG#31583, BUG#32407 + +source include/not_embedded.inc; + +--echo ==== Read binlog with v2 row events ==== + +# Read binlog. +--exec $MYSQL_BINLOG --local-load=$MYSQLTEST_VARDIR/tmp/ suite/binlog/std_data/ver_trunk_row_v2.001 | $MYSQL --local-infile=1 +# Show result. +SELECT * FROM t1 ORDER BY a; +SELECT * FROM t2 ORDER BY a; +SELECT COUNT(*) FROM t3; +# Reset. +DROP TABLE t1, t2, t3; + + +--echo ==== Read modern binlog (version 5.1.23) ==== + +# Read binlog. +--exec $MYSQL_BINLOG --local-load=$MYSQLTEST_VARDIR/tmp/ suite/binlog/std_data/ver_5_1_23.001 | $MYSQL --local-infile=1 +# Show result. +SELECT * FROM t1 ORDER BY a; +SELECT * FROM t2 ORDER BY a; +SELECT COUNT(*) FROM t3; +# Reset. +DROP TABLE t1, t2, t3; + + +--echo ==== Read binlog from version 5.1.17 ==== + +# Read binlog. +--exec $MYSQL_BINLOG --local-load=$MYSQLTEST_VARDIR/tmp/ suite/binlog/std_data/ver_5_1_17.001 | $MYSQL --local-infile=1 +# Show result. +SELECT * FROM t1 ORDER BY a; +SELECT * FROM t2 ORDER BY a; +SELECT COUNT(*) FROM t3; +# Reset. +DROP TABLE t1, t2, t3; + + +--echo ==== Read binlog from version 4.1 ==== + +# In this version, neither row-based binlogging nor Xid events +# existed, so the binlog was generated without the "row-based tests" +# part and the "get xid event" part, and it does not create table t2. + +# Read binlog. +--exec $MYSQL_BINLOG --local-load=$MYSQLTEST_VARDIR/tmp/ suite/binlog/std_data/binlog_old_version_4_1.000001 | $MYSQL --local-infile=1 +# Show result. +SELECT * FROM t1 ORDER BY a; +SELECT COUNT(*) FROM t3; +# Reset. +DROP TABLE t1, t3; + + +--echo ==== Read binlog from telco tree (mysql-5.1-telco-6.1) ==== + +# Read binlog. +--exec $MYSQL_BINLOG --local-load=$MYSQLTEST_VARDIR/tmp/ suite/binlog/std_data/ver_5_1-telco.001 | $MYSQL --local-infile=1 +# Show resulting tablea. +SELECT * FROM t1 ORDER BY a; +SELECT * FROM t2 ORDER BY a; +SELECT COUNT(*) FROM t3; +# Reset. +DROP TABLE t1, t2, t3; + + +#### The following commands were used to generate the binlogs #### +# +#source include/master-slave.inc; +# +## ==== initialize ==== +#USE test; +#CREATE TABLE t1 (a int, b char(50)) ENGINE = MyISAM; +#CREATE TABLE t2 (a int, b char(50)) ENGINE = InnoDB; +#CREATE TABLE t3 (a char(20)); +# +# +## ==== row based tests ==== +#SET BINLOG_FORMAT='row'; +# +## ---- get write, update, and delete rows events ---- +#INSERT INTO t1 VALUES (0, 'one'), (1, 'two'); +#UPDATE t1 SET a=a+1; +#DELETE FROM t1 WHERE a=2; +# +# +## ==== statement based tests ==== +#SET BINLOG_FORMAT = 'statement'; +# +## ---- get xid events ---- +#BEGIN; +#INSERT INTO t2 VALUES (3, 'first stm in trx'); +#INSERT INTO t1 VALUES (3, 'last stm in trx: next event should be xid'); +#COMMIT; +# +## ---- get user var events ---- +#SET @x = 4; +#INSERT INTO t1 VALUES (@x, 'four'); +# +## ---- get rand event ---- +#INSERT INTO t1 VALUES (RAND() * 1000000, 'random'); +# +## ---- get intvar event ---- +#INSERT INTO t1 VALUES (LAST_INSERT_ID(), 'last_insert_id'); +# +## ---- get begin, append and execute load events ---- +## double the file until we have more than 2^17 bytes, so that the +## event has to be split and we can use Append_file_log_event. +# +#SET SQL_LOG_BIN=0; +#CREATE TABLE temp (a char(20)); +#LOAD DATA INFILE '../std_data_ln/words.dat' INTO TABLE temp; +#INSERT INTO temp SELECT * FROM temp; +#INSERT INTO temp SELECT * FROM temp; +#INSERT INTO temp SELECT * FROM temp; +#INSERT INTO temp SELECT * FROM temp; +#INSERT INTO temp SELECT * FROM temp; +#INSERT INTO temp SELECT * FROM temp; +#INSERT INTO temp SELECT * FROM temp; +#INSERT INTO temp SELECT * FROM temp; +#SELECT a FROM temp INTO OUTFILE 'big_file.dat'; +#DROP TABLE temp; +#SET SQL_LOG_BIN=1; +# +#LOAD DATA INFILE 'big_file.dat' INTO TABLE t3; +# +#SELECT * FROM t1 ORDER BY a; +#SELECT * FROM t2 ORDER BY a; +#SELECT COUNT(*) FROM t3; +#--source include/rpl_end.inc diff --git a/mysql-test/suite/binlog/t/binlog_parallel_replication_marks_row.test b/mysql-test/suite/binlog/t/binlog_parallel_replication_marks_row.test new file mode 100644 index 00000000..82898486 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_parallel_replication_marks_row.test @@ -0,0 +1,3 @@ +--source include/have_log_bin.inc +--source include/have_binlog_format_row.inc +--source include/binlog_parallel_replication_marks.test diff --git a/mysql-test/suite/binlog/t/binlog_parallel_replication_marks_stm_mix.test b/mysql-test/suite/binlog/t/binlog_parallel_replication_marks_stm_mix.test new file mode 100644 index 00000000..15042b3a --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_parallel_replication_marks_stm_mix.test @@ -0,0 +1,3 @@ +--source include/have_log_bin.inc +--source include/have_binlog_format_mixed_or_statement.inc +--source include/binlog_parallel_replication_marks.test diff --git a/mysql-test/suite/binlog/t/binlog_query_filter_rules-master.opt b/mysql-test/suite/binlog/t/binlog_query_filter_rules-master.opt new file mode 100644 index 00000000..33632bf9 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_query_filter_rules-master.opt @@ -0,0 +1 @@ +--replicate-do-db='impossible_database' diff --git a/mysql-test/suite/binlog/t/binlog_query_filter_rules.test b/mysql-test/suite/binlog/t/binlog_query_filter_rules.test new file mode 100644 index 00000000..d56a32ce --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_query_filter_rules.test @@ -0,0 +1,32 @@ +# regression test for +# Bug#36099 replicate-do-db affects replaying RBR events with mysqlbinlog +# The test verifies that the slave side filtering rule does not affect +# applying of row-events on master via mysqlbinlog + +-- source include/have_log_bin.inc +-- source include/not_embedded.inc +-- source include/have_binlog_format_row.inc + +--disable_warnings +drop table if exists t1; +--enable_warnings + +reset master; + +create table t1 (a int); +insert into t1 values (1); + +let $MYSQLD_DATADIR= `select @@datadir`; +flush logs; +--exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/bug36099.sql + +drop table t1; +--exec $MYSQL -e "source $MYSQLTEST_VARDIR/tmp/bug36099.sql" + +--echo *** must be 1 *** +select * from t1; + +# cleanup + +drop table t1; +remove_file $MYSQLTEST_VARDIR/tmp/bug36099.sql; diff --git a/mysql-test/suite/binlog/t/binlog_recover_checksum_error.test b/mysql-test/suite/binlog/t/binlog_recover_checksum_error.test new file mode 100644 index 00000000..12c9f3d9 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_recover_checksum_error.test @@ -0,0 +1,37 @@ +# The test verifies server binlog-based recovery. +# +# MDEV-23832 checksum error at server binlog recovery should not crash + +# The test logic really requires --log-bin. +--source include/have_binlog_format_mixed.inc +--source include/have_debug.inc + +--let $do_checksum = `SELECT @@global.master_verify_checksum` +--let $debug_dbug_saved = `SELECT @@global.debug_dbug` +--let $binlog_checksum = `SELECT @@global.binlog_checksum` +set @@global.binlog_checksum = CRC32; + +call mtr.add_suppression("Replication event checksum verification failed"); +call mtr.add_suppression("Error in Log_event::read_log_event"); + +# Proof of no crash follows. +# There's no need for actual bin-loggable queries to the server +--let $restart_parameters= --master_verify_checksum=ON --debug_dbug="+d,corrupt_read_log_event_char" +--let $shutdown_timeout=0 +--source include/restart_mysqld.inc +--let $restart_parameters= +--let $shutdown_timeout= + +# +# Cleanup + +--replace_regex /= .*/= VALUE/ +--eval set @@global.debug_dbug = "$debug_dbug_saved" + +--replace_result $do_checksum DO_CHECKSUM +--eval set @@global.master_verify_checksum = $do_checksum +--replace_result $binlog_checksum BINLOG_CHECKSUM +--eval set @@global.binlog_checksum = $binlog_checksum +# +--echo # EOF the test +# diff --git a/mysql-test/suite/binlog/t/binlog_rotate_perf.test b/mysql-test/suite/binlog/t/binlog_rotate_perf.test new file mode 100644 index 00000000..74c91fec --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_rotate_perf.test @@ -0,0 +1,102 @@ +# ==== Purpose ==== +# +# functional test for open_binlog call using when +# +# flush log reset master/slave called +# +# ==== Related ==== +# +# TXSQL feature 67 binlog rotate perf optimization + +let $engine= myisam; + +--source include/have_binlog_format_row.inc +--connect(conn1,localhost,root,,test) + +reset master; +create database test_rotate_db; +use test_rotate_db; +--echo #currrent engine=$engine +# Create a new table +--replace_column 2 # +show binary logs; +--eval CREATE TABLE t1_$engine (c1 INT) ENGINE=$engine +--eval insert into t1_$engine values(0),(1) + +# do batch flush and show +let $loop_times= 100; +--source include/show_master_status.inc +while ($loop_times) { + flush logs; + flush logs; + if ($loop_times < 5) + { + --source include/show_master_status.inc + if ($loop_times == 4) + { + --source include/show_binary_logs.inc + } + reset master; + } + if ($loop_times >= 5) + { + flush logs; + } + + # + dec $loop_times; + --echo # left times= $loop_times +} +--echo # [engine=$engine] after first loop_times=$loop_times, show master logs results +--source include/show_binary_logs.inc + +# do batch flush and show with restart mysql +--source include/show_master_status.inc +let $loop_times= 10; +while ($loop_times) { + flush logs; + flush logs; + --echo #begin to restart mysqld current loop_times=$loop_times + --source include/restart_mysqld.inc + # + dec $loop_times; + --echo # left restart times= $loop_times +} +--echo # [engine=$engine] after second loop_times=$loop_times, show master logs results +--source include/show_binary_logs.inc + + +# try to change the log-bin configs and restart +--echo # ======= now try to change the log-bin config for mysqld ======= +--let $restart_parameters="--log-bin=new_log_bin" +--echo #begin to restart mysqld +--source include/restart_mysqld.inc +--let $restart_parameters= "" + +--source include/show_binary_logs.inc +let $loop_times= 10; +while ($loop_times) { + flush logs; + flush logs; + if ($loop_times < 5) + { + if ($loop_times == 4) + { + --source include/show_binary_logs.inc + } + reset master; + } + if ($loop_times >= 5) + { + flush logs; + } + + # + dec $loop_times; + --echo # left times= $loop_times +} +--echo # [engine=$engine] after third loop_times=$loop_times, show master logs results +--source include/show_binary_logs.inc + +##cleanup +drop database test_rotate_db; diff --git a/mysql-test/suite/binlog/t/binlog_row_annotate-master.opt b/mysql-test/suite/binlog/t/binlog_row_annotate-master.opt new file mode 100644 index 00000000..24d88646 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_annotate-master.opt @@ -0,0 +1 @@ +--timezone=GMT-3 --binlog-do-db=test1 --binlog-do-db=test2 --binlog-do-db=test3 diff --git a/mysql-test/suite/binlog/t/binlog_row_annotate.test b/mysql-test/suite/binlog/t/binlog_row_annotate.test new file mode 100644 index 00000000..a6e5f828 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_annotate.test @@ -0,0 +1 @@ +--source include/binlog_row_annotate.inc diff --git a/mysql-test/suite/binlog/t/binlog_row_binlog-master.opt b/mysql-test/suite/binlog/t/binlog_row_binlog-master.opt new file mode 100644 index 00000000..e4c44226 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_binlog-master.opt @@ -0,0 +1 @@ +--max_binlog_size=8192 --default-storage-engine=MyISAM diff --git a/mysql-test/suite/binlog/t/binlog_row_binlog.test b/mysql-test/suite/binlog/t/binlog_row_binlog.test new file mode 100644 index 00000000..14cc00a2 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_binlog.test @@ -0,0 +1,7 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/have_binlog_format_row.inc +let collation=utf8_unicode_ci; +--source include/have_collation.inc +--source include/binlog.test diff --git a/mysql-test/suite/binlog/t/binlog_row_cache_stat.test b/mysql-test/suite/binlog/t/binlog_row_cache_stat.test new file mode 100644 index 00000000..6f406119 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_cache_stat.test @@ -0,0 +1,5 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/have_binlog_format_row.inc +-- source include/binlog_cache_stat.test diff --git a/mysql-test/suite/binlog/t/binlog_row_ctype_cp932.test b/mysql-test/suite/binlog/t/binlog_row_ctype_cp932.test new file mode 100644 index 00000000..b99afb6c --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_ctype_cp932.test @@ -0,0 +1,5 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/have_binlog_format_row.inc +-- source include/ctype_cp932.test diff --git a/mysql-test/suite/binlog/t/binlog_row_ctype_ucs.test b/mysql-test/suite/binlog/t/binlog_row_ctype_ucs.test new file mode 100644 index 00000000..02a9b647 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_ctype_ucs.test @@ -0,0 +1,6 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/have_binlog_format_row.inc +-- source include/ctype_ucs_binlog.test + diff --git a/mysql-test/suite/binlog/t/binlog_row_drop_tbl.test b/mysql-test/suite/binlog/t/binlog_row_drop_tbl.test new file mode 100644 index 00000000..82853065 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_drop_tbl.test @@ -0,0 +1,5 @@ +# This is a wrapper for drop_table.test so that the same test case can be used +# For both statement and row based bin logs + +-- source include/have_binlog_format_row.inc +-- source include/drop_table.test diff --git a/mysql-test/suite/binlog/t/binlog_row_drop_tmp_tbl.test b/mysql-test/suite/binlog/t/binlog_row_drop_tmp_tbl.test new file mode 100644 index 00000000..e45e659c --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_drop_tmp_tbl.test @@ -0,0 +1,5 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/have_binlog_format_row.inc +-- source include/drop_temp_table.test diff --git a/mysql-test/suite/binlog/t/binlog_row_innodb_stat-master.opt b/mysql-test/suite/binlog/t/binlog_row_innodb_stat-master.opt new file mode 100644 index 00000000..4cb92754 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_innodb_stat-master.opt @@ -0,0 +1 @@ +--binlog_cache_size=32768 diff --git a/mysql-test/suite/binlog/t/binlog_row_insert_select.test b/mysql-test/suite/binlog/t/binlog_row_insert_select.test new file mode 100644 index 00000000..e2a08536 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_insert_select.test @@ -0,0 +1,10 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/have_binlog_format_row.inc +# Bug#18326: Do not lock table for writing during prepare of statement +# The use of the ps protocol causes extra table maps in the binlog, so +# we disable the ps-protocol for this statement. +--disable_ps_protocol +-- source include/insert_select-binlog.test +--enable_ps_protocol diff --git a/mysql-test/suite/binlog/t/binlog_row_mix_innodb_myisam-master.opt b/mysql-test/suite/binlog/t/binlog_row_mix_innodb_myisam-master.opt new file mode 100644 index 00000000..a177f285 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_mix_innodb_myisam-master.opt @@ -0,0 +1 @@ +--loose-innodb-lock-wait-timeout=2 --default-storage-engine=MyISAM diff --git a/mysql-test/suite/binlog/t/binlog_row_mix_innodb_myisam.test b/mysql-test/suite/binlog/t/binlog_row_mix_innodb_myisam.test new file mode 100644 index 00000000..9692c6ee --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_mix_innodb_myisam.test @@ -0,0 +1,15 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/have_binlog_format_row.inc + +# Bug#18326: Do not lock table for writing during prepare of statement +# The use of the ps protocol causes extra table maps in the binlog, so +# we disable the ps-protocol for this statement. +--disable_ps_protocol + +-- source include/mix_innodb_myisam_binlog.test + +--enable_ps_protocol + +-- source include/mix_innodb_myisam_side_effects.test diff --git a/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_db_filter.test b/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_db_filter.test new file mode 100644 index 00000000..2e3e53b8 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_db_filter.test @@ -0,0 +1,148 @@ +# BUG#42941: --database parameter to mysqlbinlog fails with RBR +# +# WHAT +# ==== +# +# This test aims at checking whether a rows log event is printed or +# not when --database parameter is used to filter events from one +# given database. +# +# HOW +# === +# +# The test is implemented as follows: +# +# i) Some operations are done in two different databases: +# 'test' and 'b42941'; +# ii) mysqlbinlog is used to dump the contents of the binlog file +# filtering only events from 'b42941'. The result of the dump is +# stored in a temporary file. (This is done with and without +# --verbose/hexdump flag); +# iii) The contents of the dump are loaded into a session variable; +# iv) The variable contents are searched for 'test' and 'b42941'; +# v) Should 'test' be found, an ERROR is reported. Should 'b42941' be +# absent, an ERROR is reported. + +-- source include/have_log_bin.inc +-- source include/have_binlog_format_row.inc +-- source include/have_innodb.inc + +RESET MASTER; +-- let $MYSQLD_DATADIR= `select @@datadir` + +CREATE TABLE t1 (id int); +CREATE TABLE t2 (id int); +CREATE TABLE t3 (txt TEXT); +CREATE TABLE t4 (a int) ENGINE= InnoDB; +INSERT INTO t1 VALUES (1); +INSERT INTO t1 VALUES (2); +INSERT INTO t2 VALUES (1); +INSERT INTO t2 VALUES (2); +INSERT INTO t1 VALUES (3); +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data/words.dat' INTO TABLE t3 +INSERT INTO t1 VALUES (4); + +CREATE DATABASE b42941; +use b42941; +CREATE TABLE t1 (id int); +CREATE TABLE t2 (id int); +CREATE TABLE t3 (txt TEXT); +CREATE TABLE t4 (a int) ENGINE= InnoDB; +INSERT INTO t1 VALUES (1); +INSERT INTO t1 VALUES (2); +INSERT INTO t2 VALUES (1); +INSERT INTO t2 VALUES (2); +INSERT INTO t1 VALUES (3); +-- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +-- eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data/words.dat' INTO TABLE t3 +INSERT INTO t1 VALUES (4); + +INSERT INTO test.t1 VALUES (5); + +FLUSH LOGS; + +UPDATE test.t1 t11, b42941.t1 t12 SET t11.id=10, t12.id=100; + +BEGIN; +INSERT INTO test.t4 VALUES (1); +INSERT INTO b42941.t4 VALUES (1); +UPDATE test.t4 tn4, b42941.t4 tt4 SET tn4.a= 10, tt4.a= 100; +COMMIT; + +FLUSH LOGS; + +-- let $log_file1= $MYSQLD_DATADIR/master-bin.000001 +-- let $log_file2= $MYSQLD_DATADIR/master-bin.000002 +-- let $outfile= $MYSQLTEST_VARDIR/tmp/b42941-mysqlbinlog +-- let $cmd= $MYSQL_BINLOG + +let $i= 3; +while($i) +{ + -- let $flags=--database=b42941 + + # construct CLI for mysqlbinlog + if($i==3) + { + -- let $flags= $flags --verbose --hexdump + } + + if($i==2) + { + -- let $flags= $flags --verbose + } + +# if($i==1) +# { + # do nothing $flags is already set as it should be +# } + + # execute mysqlbinlog on the two available master binlog files + -- exec $cmd $flags $log_file1 > $outfile.1 + -- exec $cmd $flags $log_file2 > $outfile.2 + + # load outputs into a variable + -- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR + -- eval SET @b42941_output.1= LOAD_FILE('$outfile.1') + + -- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR + -- eval SET @b42941_output.2= LOAD_FILE('$outfile.2') + + # remove unecessary files + -- remove_file $outfile.1 + -- remove_file $outfile.2 + + # + # The two tests are canceled since we introduced the patch of bug#46998, + # which will make mydsqlbinlog output the 'BEGIN', 'COMMIT' and 'ROLLBACK' + # in regardless of database filtering + # + # assertion: events for database test are filtered + #if (`SELECT INSTR(@b42941_output.1, 'test')`) + #{ + #-- echo **** ERROR **** Database name 'test' FOUND in mysqlbinlog output ($flags $outfile.1). + #} + + #if (`SELECT INSTR(@b42941_output.2, 'test')`) + #{ + #-- echo **** ERROR **** Database name 'test' FOUND in mysqlbinlog output ($flags $outfile.2). + #} + + # assertion: events for database b42941 are not filtered + if (!`SELECT INSTR(@b42941_output.1, 'b42941')`) + { + -- echo **** ERROR **** Database name 'b42941' NOT FOUND in mysqlbinlog output ($flags $outfile.1). + } + + if (!`SELECT INSTR(@b42941_output.2, 'b42941')`) + { + -- echo **** ERROR **** Database name 'b42941' NOT FOUND in mysqlbinlog output ($flags $outfile.2). + } + + dec $i; +} + +DROP DATABASE b42941; +use test; +DROP TABLE t1, t2, t3, t4; diff --git a/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_options-master.opt b/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_options-master.opt new file mode 100644 index 00000000..4d69f335 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_options-master.opt @@ -0,0 +1 @@ +--timezone=GMT-3 diff --git a/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_options.test b/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_options.test new file mode 100644 index 00000000..064cebef --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_options.test @@ -0,0 +1,78 @@ +--source include/have_log_bin.inc +--source include/have_binlog_format_row.inc + +# +# MWL36: Add a mysqlbinlog option to change the used database +# (Adding --rewrite-db option) +# +--disable_warnings +DROP DATABASE IF EXISTS test1; +DROP DATABASE IF EXISTS test2; +DROP DATABASE IF EXISTS test3; +--enable_warnings + +# For SBR --rewrite-db affects only default database and doesn't affect +# a query (specifically CREATE DATABASE) itself. Hence (for testing +# purpose) we start binary logging after all databases have been created. + +CREATE DATABASE test1; +CREATE DATABASE test2; +CREATE DATABASE test3; + +# Fix timestamp to avoid varying results. +SET timestamp=1000000000; + +# Delete all existing binary logs. +RESET MASTER; + +# Whe'll call mysqlbinlog with two rewrite rules: +# --rewrite-db="test1->new_test1" +# --rewrite-db="test3->new_test3" + +USE test1; +CREATE TABLE t1 (a INT, b INT); +INSERT INTO t1 VALUES (1,1),(2,2); + +USE test2; +CREATE TABLE t2 (a INT); +INSERT INTO t2 VALUES (1),(2); + +DELETE FROM test1.t1 WHERE a=1; + +USE test3; +CREATE TABLE t3 (a INT); +INSERT INTO t3 VALUES (1),(2); +INSERT INTO test1.t1 VALUES (3,3); + +USE test1; +LOAD DATA INFILE '../../std_data/loaddata7.dat' INTO TABLE t1 + FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; +DELETE FROM test3.t3 WHERE a=1; + +flush logs; + +--echo # +--echo # mysqlbinlog output +--echo # --base64-output = decode-rows +--echo # --rewrite-db = test1->new_test1 +--echo # --rewrite-db = test3->new_test3 +--echo # + +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --base64-output=decode-rows --rewrite-db="test1->new_test1" --rewrite-db="test3->new_test3" -v -v $MYSQLD_DATADIR/master-bin.000001 + +--echo # +--echo # mysqlbinlog output +--echo # --base64-output = decode-rows +--echo # --rewrite-db = test1->new_test1 +--echo # --rewrite-db = test3->new_test3 +--echo # --read-from-remote-server +--echo # + +--replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --base64-output=decode-rows --rewrite-db="test1->new_test1" --rewrite-db="test3->new_test3" -v -v --read-from-remote-server --user=root --host=localhost --port=$MASTER_MYPORT master-bin.000001 + +DROP DATABASE test1; +DROP DATABASE test2; +DROP DATABASE test3; diff --git a/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_verbose.test b/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_verbose.test new file mode 100644 index 00000000..98aa7635 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_verbose.test @@ -0,0 +1,69 @@ +######################################################## +# WHAT +# ==== +# This test aims to check that the mysqlbinlog --verbose +# command can output binlogs in 4 format variants. +# +# 1) Updates logged as write_row events +# Only primary key and updated columns included in the +# event +# 2) Updates logged as write_row_events +# All columns included in the event +# 3) Updates logged as update_row events +# Only primary key and updated columns included in the +# event +# 4) Updates logged as update_row events +# All columns included in the event +######################################################## + +# We require binlog_format_row as we're independent of binlog format +# and there's no point running the same test 3 times +-- source include/have_binlog_format_row.inc + +--disable_query_log +--let $binlog_file=write-partial-row.binlog +--exec $MYSQL_BINLOG --verbose suite/binlog/std_data/$binlog_file > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_verbose.sql +create table raw_binlog_rows (txt varchar(1000)); +--eval load data local infile '$MYSQLTEST_VARDIR/tmp/mysqlbinlog_verbose.sql' into table raw_binlog_rows columns terminated by '\n'; +--remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_verbose.sql +--enable_query_log +--echo Verbose statements from : $binlog_file +# Output --verbose lines, with extra Windows CR's trimmed +select replace(txt,'\r', '') as stmt from raw_binlog_rows where txt like '###%'; +drop table raw_binlog_rows; + +--disable_query_log +--let $binlog_file=write-full-row.binlog +--exec $MYSQL_BINLOG --verbose suite/binlog/std_data/$binlog_file > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_verbose.sql +create table raw_binlog_rows (txt varchar(1000)); +--eval load data local infile '$MYSQLTEST_VARDIR/tmp/mysqlbinlog_verbose.sql' into table raw_binlog_rows columns terminated by '\n'; +--remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_verbose.sql +--enable_query_log +--echo Verbose statements from : $binlog_file +# Output --verbose lines, with extra Windows CR's trimmed +select replace(txt,'\r', '') as stmt from raw_binlog_rows where txt like '###%'; +drop table raw_binlog_rows; + +--disable_query_log +--let $binlog_file=update-partial-row.binlog +--exec $MYSQL_BINLOG --verbose suite/binlog/std_data/$binlog_file > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_verbose.sql +create table raw_binlog_rows (txt varchar(1000)); +--eval load data local infile '$MYSQLTEST_VARDIR/tmp/mysqlbinlog_verbose.sql' into table raw_binlog_rows columns terminated by '\n'; +--remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_verbose.sql +--enable_query_log +--echo Verbose statements from : $binlog_file +# Output --verbose lines, with extra Windows CR's trimmed +select replace(txt,'\r', '') as stmt from raw_binlog_rows where txt like '###%'; +drop table raw_binlog_rows; + +--disable_query_log +--let $binlog_file=update-full-row.binlog +--exec $MYSQL_BINLOG --verbose suite/binlog/std_data/$binlog_file > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_verbose.sql +create table raw_binlog_rows (txt varchar(1000)); +--eval load data local infile '$MYSQLTEST_VARDIR/tmp/mysqlbinlog_verbose.sql' into table raw_binlog_rows columns terminated by '\n'; +--remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_verbose.sql +--enable_query_log +--echo Verbose statements from : $binlog_file +# Output --verbose lines, with extra Windows CR's trimmed +select replace(txt,'\r', '') as stmt from raw_binlog_rows where txt like '###%'; +drop table raw_binlog_rows; diff --git a/mysql-test/suite/binlog/t/binlog_server_id.test b/mysql-test/suite/binlog/t/binlog_server_id.test new file mode 100644 index 00000000..6e98ec6e --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_server_id.test @@ -0,0 +1,29 @@ +# Test for BUG#28908 Replication: set global server_id is not setting the session server_id + +-- source include/have_log_bin.inc + +let $saved_server_id=`select @@server_id`; +set global server_id=1; +reset master; + +-- disable_warnings +drop table if exists t1,t2,t3; +-- enable_warnings + +create table t1 (a int); +select @@server_id; +source include/show_binlog_events2.inc; + +set global server_id=2; +create table t2 (b int); +select @@server_id; +source include/show_binlog_events2.inc; + +set global server_id=3; +create table t3 (c int); +select @@server_id; +source include/show_binlog_events2.inc; + +# cleanup +eval set global server_id=$saved_server_id; +drop table t1,t2,t3; diff --git a/mysql-test/suite/binlog/t/binlog_sf.test b/mysql-test/suite/binlog/t/binlog_sf.test new file mode 100644 index 00000000..05b31afc --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_sf.test @@ -0,0 +1,191 @@ +-- source include/have_log_bin.inc + +# We change binlog format inside the test, so no need to re-run with +# more than one binlog_format. +-- source include/have_binlog_format_statement.inc + +# Bug#16456 RBR: rpl_sp.test expects query to fail, but passes in RBR +# BUG#41166 stored function requires "deterministic" if binlog_format is "statement" + +# save status + +let $oblf=`select @@SESSION.BINLOG_FORMAT`; +let $otfc=`select @@log_bin_trust_function_creators`; + +set global log_bin_trust_function_creators=0; + + + +# fail *on definition* + +set binlog_format=STATEMENT; + +delimiter |; +--error ER_BINLOG_UNSAFE_ROUTINE +create function fn16456() + returns int +begin + return unix_timestamp(); +end| +delimiter ;| + + + +# force in definition, so we can see whether we fail on call + +set global log_bin_trust_function_creators=1; + +delimiter |; +create function fn16456() + returns int +begin + return unix_timestamp(); +end| +delimiter ;| + +set global log_bin_trust_function_creators=0; + + + +# allow funcall in RBR + +set binlog_format=ROW; + +--replace_column 1 timestamp +select fn16456(); + + + +# fail funcall in SBR + +set binlog_format=STATEMENT; + +--error ER_BINLOG_UNSAFE_ROUTINE +select fn16456(); + + + +# clean + +drop function fn16456; + + + +# success in definition with deterministic + +set global log_bin_trust_function_creators=0; + +delimiter |; +create function fn16456() + returns int deterministic +begin + return unix_timestamp(); +end| +delimiter ;| + + + +# allow funcall in RBR + +set binlog_format=ROW; + +--replace_column 1 timestamp +select fn16456(); + + + +# allow funcall in SBR + +set binlog_format=STATEMENT; + +--replace_column 1 timestamp +select fn16456(); + + + +# clean + +drop function fn16456; + + +# success in definition with NO SQL + +set global log_bin_trust_function_creators=0; + +delimiter |; +create function fn16456() + returns int no sql +begin + return unix_timestamp(); +end| +delimiter ;| + + + +# allow funcall in RBR + +set binlog_format=ROW; + +--replace_column 1 timestamp +select fn16456(); + + + +# allow funcall in SBR + +set binlog_format=STATEMENT; + +--replace_column 1 timestamp +select fn16456(); + + +# clean + +drop function fn16456; + + + +# success in definition with reads sql data + +set global log_bin_trust_function_creators=0; + +delimiter |; +create function fn16456() + returns int reads sql data +begin + return unix_timestamp(); +end| +delimiter ;| + + + +# allow funcall in RBR + +set binlog_format=ROW; + +--replace_column 1 timestamp +select fn16456(); + + + +# allow funcall in SBR + +set binlog_format=STATEMENT; + +--replace_column 1 timestamp +select fn16456(); + + + +# clean + +drop function fn16456; + + + +# restore status + +--disable_query_log +eval set binlog_format=$oblf; +eval set global log_bin_trust_function_creators=$otfc; +--enable_query_log diff --git a/mysql-test/suite/binlog/t/binlog_show_binlog_event_random_pos.combinations b/mysql-test/suite/binlog/t/binlog_show_binlog_event_random_pos.combinations new file mode 100644 index 00000000..72076e12 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_show_binlog_event_random_pos.combinations @@ -0,0 +1,5 @@ +[enable_checksum] +binlog_checksum=1 + +[disable_checksum] +binlog_checksum=0 diff --git a/mysql-test/suite/binlog/t/binlog_show_binlog_event_random_pos.test b/mysql-test/suite/binlog/t/binlog_show_binlog_event_random_pos.test new file mode 100644 index 00000000..05e6967c --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_show_binlog_event_random_pos.test @@ -0,0 +1,42 @@ +# ==== Purpose ==== +# +# Test verifies that reading binary log by using "SHOW BINLOG EVENTS" command +# from various random positions doesn't lead to crash. It should exit +# gracefully with appropriate error. +# +# ==== References ==== +# +# MDEV-18046:Assortment of crashes, assertion failures and ASAN errors in mysql_show_binlog_events + +--source include/have_log_bin.inc +--source include/have_innodb.inc + +RESET MASTER; +call mtr.add_suppression("Error in Log_event::read_log_event*"); +call mtr.add_suppression("Replication event checksum verification failed while reading from a log file*"); + +DROP TABLE IF EXISTS t1; +CREATE TABLE t1 (c1 CHAR(255), c2 CHAR(255), c3 CHAR(255), c4 CHAR(255), c5 CHAR(255)); +INSERT INTO t1 VALUES (repeat('a', 255), repeat('a', 255),repeat('a', 255),repeat('a', 255),repeat('a', 255)); +INSERT INTO t1 VALUES (repeat('a', 255), repeat('a', 255),repeat('a', 255),repeat('a', 255),repeat('a', 255)); +UPDATE t1 SET c1=repeat('b',255); +INSERT INTO t1 VALUES (repeat('a', 255), repeat('a', 255),repeat('a', 255),repeat('a', 255),repeat('a', 255)); +--let $max_pos= query_get_value(SHOW MASTER STATUS,Position,1) +--let $pos= 1 +while ($pos <= $max_pos) +{ + --disable_query_log + --disable_result_log + --error 0,1220 + eval SHOW BINLOG EVENTS FROM $pos LIMIT 100; + --inc $pos + --enable_result_log + --enable_query_log +} + +# Testing a case where input position is greater than actual binlog file size. +--replace_result $pos POS $max_pos MAX_POS +--error 1220 +eval SHOW BINLOG EVENTS FROM $pos; + +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test b/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test new file mode 100644 index 00000000..29a86076 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test @@ -0,0 +1,95 @@ +################################################################################ +# BUG#50479 DDL stmt on row-only/stmt-only tables generate spurious +# binlog_format errors +# +# In the fix of BUG#39934 in 5.1-rep+3, errors are generated when +# binlog_format=row and a statement modifies a table restricted to +# statement-logging (ER_BINLOG_ROW_MODE_AND_STMT_ENGINE); or if +# binlog_format=statement and a statement modifies a table limited to +# row-logging (ER_BINLOG_STMT_MODE_AND_ROW_ENGINE). +# +# In this test case, we check if some DDL statements that lock tables do not +# trigger errors as they do not generate rows events and as such are harmless +# from the point of view of conflicts between the engine's supported logging +# format and the value of binlog_format. +# +# In particular, we check if: +# 1 - ALTER TABLE, CREATE INDEX and CREATE TRIGGER do not generate either +# ER_BINLOG_STMT_MODE_AND_ROW_ENGINE or ER_BINLOG_STMT_MODE_AND_ROW_ENGINE +# +# 2 - CREATE TABLE ... SELECT generates an error because the command can +# generate row events but CREATE TABLE without SELECT does not generate +# an error. +################################################################################ +--source include/have_innodb.inc +--source include/have_example_plugin.inc +--source include/have_log_bin.inc + +SET @old_binlog_format= @@global.binlog_format; +INSTALL PLUGIN example SONAME 'ha_example'; + +--echo ################################################################################ +--echo # Verifies if ER_BINLOG_STMT_MODE_AND_ROW_ENGINE happens by setting the binlog +--echo # format to STATEMENT and the transaction isolation level to READ COMMITTED as +--echo # such changes force Innodb to accept changes in the row format. +--echo # +--echo # When CREATE TABLE, ALTER TABLE, CREATE INDEX and CREATE TRIGGER are executed +--echo # any error should be triggered. +--echo # +--echo # In contrast, CREATE TABLE ... SELECT should trigger the following error: +--echo # ER_BINLOG_STMT_MODE_AND_ROW_ENGINE. +--echo ################################################################################ +SET binlog_format = STATEMENT; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +CREATE TABLE t_row (a VARCHAR(100)) ENGINE = InnoDB; + +ALTER TABLE t_row ADD COLUMN b INT; + +CREATE TRIGGER trig_row BEFORE INSERT ON t_row FOR EACH ROW INSERT INTO t_stmt VALUES (1); + +CREATE INDEX i ON t_row(a); + +--error ER_BINLOG_STMT_MODE_AND_ROW_ENGINE +CREATE TABLE t_row_new ENGINE = InnoDB SELECT * FROM t_row; + +DROP TABLE t_row; + +--echo +--echo + +--echo ################################################################################ +--echo # Verifies if ER_BINLOG_ROW_MODE_AND_STMT_ENGINE happens by setting the binlog +--echo # format to ROW and using a engine, i.e. EXAMPLE, that only supports STATEMENT. +--echo # +--echo # When CREATE TABLE, ALTER TABLE, CREATE INDEX and CREATE TRIGGER are executed +--echo # the error ER_BINLOG_ROW_MODE_AND_STMT_ENGINE is not triggered. Note that other +--echo # errors are triggered due to restrictions in the engine. +--echo # +--echo # In contrast, CREATE TABLE ... SELECT should trigger the following error: +--echo # ER_BINLOG_ROW_MODE_AND_STMT_ENGINE. +--echo ################################################################################ +SET binlog_format = ROW; +CREATE TABLE t_stmt (a VARCHAR(100)) ENGINE = EXAMPLE; + +ALTER TABLE t_stmt ADD COLUMN b INT; + +CREATE TRIGGER trig_stmt BEFORE INSERT ON t_stmt FOR EACH ROW INSERT INTO t_stmt VALUES (1); + +--error ER_TOO_MANY_KEY_PARTS +CREATE INDEX i ON t_stmt(a); + +--error ER_BINLOG_ROW_MODE_AND_STMT_ENGINE +CREATE TABLE t_stmt_new ENGINE = EXAMPLE SELECT * FROM t_stmt; + +DROP TABLE t_stmt; + +--echo +--echo + +--echo ################################################################################ +--echo # CLEAN UP # +--echo ################################################################################ +flush tables; +UNINSTALL PLUGIN example; +SET @@global.binlog_format = @old_binlog_format; +SET @@session.binlog_format = @old_binlog_format; diff --git a/mysql-test/suite/binlog/t/binlog_sql_mode.test b/mysql-test/suite/binlog/t/binlog_sql_mode.test new file mode 100644 index 00000000..167c8f5a --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_sql_mode.test @@ -0,0 +1,171 @@ +# ==== Purpose ==== +# +# Test that sql_mode can correct restore before generating the binlog event +# when creating CREATEable objects. +# +# ==== Method ==== +# +# Scan binlog file to check if the sql_mode is still set to 0 before generating binlog event +# + +-- source include/have_log_bin.inc + +# BUG#39526 sql_mode not retained in binary log for CREATE PROCEDURE + +SET @old_sql_mode= @@global.sql_mode; +SET @old_binlog_format=@@session.binlog_format; +let $MYSQLD_DATADIR= `select @@datadir`; +SET SESSION sql_mode=8; + +--echo Initialization + +RESET MASTER; +CREATE TABLE t1 (id INT); + +CREATE PROCEDURE testProc() SELECT * FROM t1; +CREATE VIEW testView as SELECT * from t1; + +DELIMITER |; +CREATE FUNCTION testFunc() + RETURNS INT + BEGIN + return 1; + END;| +DELIMITER ;| + +DELIMITER |; +CREATE TRIGGER testTrig BEFORE INSERT ON t1 + FOR EACH ROW BEGIN + UPDATE t1 SET id = id +1; + END;| +DELIMITER ;| + +DELIMITER |; +CREATE EVENT testEvent ON SCHEDULE + EVERY 1 DAY + DO + BEGIN + UPDATE t1 SET id = id +1; + END;| +DELIMITER ;| + +--echo Check Result + +let $MYSQLD_DATADIR= `select @@datadir`; +--exec $MYSQL_BINLOG --force-if-open $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval select +(@a:=load_file("$MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog")) +is not null; +let $s_mode_unsigned= `select @a like "%@@session.sql_mode=0%" /* must return 0 */`; +echo *** String sql_mode=0 is found: $s_mode_unsigned ***; + +--remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug39526.binlog + +--echo Clean Up + +DROP PROCEDURE testProc; +DROP FUNCTION testFunc; +DROP TRIGGER testTrig; +DROP EVENT testEvent; +DROP VIEW testView; +DROP TABLE t1; + +SET @@global.sql_mode= @old_sql_mode; +SET @@session.binlog_format=@old_binlog_format; + +--echo +--echo # +--echo # Test for Bug#12601974 - STORED PROCEDURE SQL_MODE=NO_BACKSLASH_ESCAPES +--echo # IGNORED AND BREAKS REPLICATION +--echo # + +--disable_warnings +DROP DATABASE IF EXISTS mysqltest_db; +DROP TABLE IF EXISTS test_table; +--enable_warnings + +CREATE DATABASE mysqltest_db; +USE mysqltest_db; +CREATE TABLE test_table (c1 CHAR(50)); + +SET @org_mode=@@sql_mode; + +SET @@sql_mode=''; +DELIMITER $; +CREATE PROCEDURE proc_without_sql_mode (IN param1 CHAR(50), IN param2 CHAR(50)) +BEGIN + DECLARE var1 CHAR(50) DEFAULT param1; + DECLARE var2 CHAR(50) DEFAULT param2; + DECLARE var3 CHAR(50) DEFAULT 'abcd\bef'; + DECLARE var4 CHAR(50) DEFAULT 'abcd\nef'; + DECLARE var5 CHAR(50) DEFAULT 'abcd\ref'; + DECLARE var6 CHAR(50) DEFAULT 'abcd\tef'; + DECLARE var7 CHAR(50) DEFAULT 'abcd\\ef'; + DECLARE var8 CHAR(50) DEFAULT 'abcd\%ef'; + DECLARE var9 CHAR(50) DEFAULT 'abcd\_ef'; + + INSERT INTO test_table VALUES (var1); + INSERT INTO test_table VALUES (var2); + INSERT INTO test_table VALUES (var3); + INSERT INTO test_table VALUES (var4); + INSERT INTO test_table VALUES (var5); + INSERT INTO test_table VALUES (var6); + INSERT INTO test_table VALUES (var7); + INSERT INTO test_table VALUES (var8); + INSERT INTO test_table VALUES (var9); +END +$ + +SET @@sql_mode='NO_BACKSLASH_ESCAPES'$ +CREATE PROCEDURE proc_with_sql_mode (IN param1 CHAR(50), IN param2 CHAR(50)) +BEGIN + DECLARE var1 CHAR(50) DEFAULT param1; + DECLARE var2 CHAR(50) DEFAULT param2; + DECLARE var3 CHAR(50) DEFAULT 'wxyz\bef'; + DECLARE var4 CHAR(50) DEFAULT 'wxyz\nef'; + DECLARE var5 CHAR(50) DEFAULT 'wxyz\ref'; + DECLARE var6 CHAR(50) DEFAULT 'wxyz\tef'; + DECLARE var7 CHAR(50) DEFAULT 'wxyz\\ef'; + DECLARE var8 CHAR(50) DEFAULT 'wxyz\%ef'; + DECLARE var9 CHAR(50) DEFAULT 'wxyz\_ef'; + + INSERT INTO test_table VALUES (var1); + INSERT INTO test_table VALUES (var2); + INSERT INTO test_table VALUES (var3); + INSERT INTO test_table VALUES (var4); + INSERT INTO test_table VALUES (var5); + INSERT INTO test_table VALUES (var6); + INSERT INTO test_table VALUES (var7); + INSERT INTO test_table VALUES (var8); + INSERT INTO test_table VALUES (var9); +END +$ + +DELIMITER ;$ +SET @@sql_mode=''; +CALL proc_without_sql_mode('abcd\'ef', 'abcd\"ef'); +CALL proc_with_sql_mode('wxyz\'ef', 'wxyz\"ef'); +SELECT * FROM test_table; + +let $MYSQLD_DATADIR= `select @@datadir`; +--exec $MYSQL_BINLOG --force-if-open -d mysqltest_db $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug12601974.binlog + +--echo "Dropping table test_table" +DROP TABLE test_table; + +--exec $MYSQL -e "source $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug12601974.binlog" + +--echo #"test_table" content after replaying the binlog +SELECT * FROM test_table; + +--echo #Clean up +--remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug12601974.binlog +DROP DATABASE mysqltest_db; +SET @@sql_mode= @org_mode; +use test; + +--echo +--echo #End of Test for Bug#12601974 + + diff --git a/mysql-test/suite/binlog/t/binlog_start_comment.test b/mysql-test/suite/binlog/t/binlog_start_comment.test new file mode 100644 index 00000000..98f2ca05 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_start_comment.test @@ -0,0 +1,25 @@ +# Test case for bug#32205 Replaying statements from mysqlbinlog fails +# with a syntax error, replicates fine + +source include/have_log_bin.inc; +source include/have_local_infile.inc; + +reset master; +--disable_warnings +drop table if exists t1,t2; +--enable_warnings +create table t1 (word varchar(20)) -- create table t1; +create table t2 (word varchar(20)) -- create table t2; +load data infile '../../std_data/words.dat' into table t1 -- load data to t1; +insert into t2 values ("Ada"); +flush logs; +select * from t2; +let $MYSQLD_DATADIR= `select @@datadir`; +--exec $MYSQL_BINLOG --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/binlog_start_comment.binlog +--exec $MYSQL --local-infile=1 < $MYSQLTEST_VARDIR/tmp/binlog_start_comment.binlog +flush logs; +select * from t2; + +# clean up +drop table t1,t2; +remove_file $MYSQLTEST_VARDIR/tmp/binlog_start_comment.binlog; diff --git a/mysql-test/suite/binlog/t/binlog_statement_insert_delayed.test b/mysql-test/suite/binlog/t/binlog_statement_insert_delayed.test new file mode 100644 index 00000000..9145afc0 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_statement_insert_delayed.test @@ -0,0 +1,13 @@ +# This test is to verify replication with INSERT DELAY through +# unrecommended STATEMENT binlog format + +-- source include/not_embedded.inc +-- source include/have_binlog_format_statement.inc +-- disable_query_log +reset master; # get rid of previous tests binlog +-- enable_query_log +disable_query_log; +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); +enable_query_log; +-- source include/binlog_insert_delayed.test +reset master; diff --git a/mysql-test/suite/binlog/t/binlog_stm_binlog-master.opt b/mysql-test/suite/binlog/t/binlog_stm_binlog-master.opt new file mode 100644 index 00000000..099f07e5 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_binlog-master.opt @@ -0,0 +1 @@ +--max_binlog_size=4096 --default-storage-engine=MyISAM diff --git a/mysql-test/suite/binlog/t/binlog_stm_binlog.test b/mysql-test/suite/binlog/t/binlog_stm_binlog.test new file mode 100644 index 00000000..e9c8e0ed --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_binlog.test @@ -0,0 +1,19 @@ +-- source include/not_embedded.inc +-- source include/have_binlog_format_mixed.inc +let collation=utf8_unicode_ci; +--source include/have_collation.inc + +# REQUIREMENT +# replace_regex should replace output of SHOW BINLOG EVENTS + +create table t1 (a int, b int) engine=innodb; +begin; +insert into t1 values (1,2); +commit; +source include/show_binlog_events.inc; +drop table t1; + +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/binlog.test diff --git a/mysql-test/suite/binlog/t/binlog_stm_blackhole.test b/mysql-test/suite/binlog/t/binlog_stm_blackhole.test new file mode 100644 index 00000000..9dea4d1b --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_blackhole.test @@ -0,0 +1,6 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/not_embedded.inc +-- source include/have_binlog_format_statement.inc +-- source include/blackhole.test diff --git a/mysql-test/suite/binlog/t/binlog_stm_cache_stat.test b/mysql-test/suite/binlog/t/binlog_stm_cache_stat.test new file mode 100644 index 00000000..a03f4c54 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_cache_stat.test @@ -0,0 +1,5 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/have_binlog_format_statement.inc +-- source include/binlog_cache_stat.test diff --git a/mysql-test/suite/binlog/t/binlog_stm_ctype_cp932.test b/mysql-test/suite/binlog/t/binlog_stm_ctype_cp932.test new file mode 100644 index 00000000..33378b28 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_ctype_cp932.test @@ -0,0 +1,6 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/not_embedded.inc +-- source include/have_binlog_format_mixed_or_statement.inc +-- source include/ctype_cp932.test diff --git a/mysql-test/suite/binlog/t/binlog_stm_ctype_ucs.test b/mysql-test/suite/binlog/t/binlog_stm_ctype_ucs.test new file mode 100644 index 00000000..ed5b899c --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_ctype_ucs.test @@ -0,0 +1,6 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/have_binlog_format_mixed_or_statement.inc +-- source include/ctype_ucs_binlog.test + diff --git a/mysql-test/suite/binlog/t/binlog_stm_datetime_ranges_mdev15289.test b/mysql-test/suite/binlog/t/binlog_stm_datetime_ranges_mdev15289.test new file mode 100644 index 00000000..ae4cab62 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_datetime_ranges_mdev15289.test @@ -0,0 +1,7 @@ +--source include/not_embedded.inc +--source include/have_binlog_format_statement.inc + +--exec $MYSQL_CLIENT_TEST test_datetime_ranges_mdev15289 > $MYSQLTEST_VARDIR/log/binlog_stm_datetime_ranges_mysql_client_test.out.log 2>&1 + +--let $binlog_file = LAST +source include/show_binlog_events.inc; diff --git a/mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt b/mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt new file mode 100644 index 00000000..e2cfcb29 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt @@ -0,0 +1 @@ +--binlog-do-db=b42829 diff --git a/mysql-test/suite/binlog/t/binlog_stm_do_db.test b/mysql-test/suite/binlog/t/binlog_stm_do_db.test new file mode 100644 index 00000000..991fdef1 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_do_db.test @@ -0,0 +1,90 @@ +# BUG#42829: binlogging enabled for all schemas regardless of +# binlog-db-db / binlog-ignore-db +# +# WHAT +# ==== +# +# We want to test whether filtered events from binlog will cause +# raising an error mentioning that statement is unable to be logged or +# not, when: +# +# 1. isolation level READ-COMMITTED; AND +# +# 2. using InnoDB engine; AND +# +# 3. using SBL (in which case InnoDB will only allow RBL). +# +# HOW +# === +# +# The test is implemented as follows: +# +# i) set tx_isolation to read-committed. +# +# ii) create two databases (one filtered other not - using +# binlog-do-db) +# +# iii) Create statements that are to be filtered on filtered db +# +# - At this point, before fix, an error would be raised +# +# iv) do the same thing for not the filtered database and check +# that events throw an error: +# +# - Error: ER_BINLOG_STMT_MODE_AND_ROW_ENGINE +# + +-- source include/have_log_bin.inc +-- source include/have_innodb.inc +-- source include/have_binlog_format_statement.inc + +SET @old_isolation_level= @@session.tx_isolation; +SET @@session.tx_isolation= 'READ-COMMITTED'; + +-- let $engine= InnoDB +-- let $filtered= b42829_filtered +-- let $not_filtered= b42829 + +-- eval CREATE DATABASE $not_filtered +-- eval use $not_filtered +-- eval CREATE TABLE t1 (x int, y int) engine=$engine +-- eval CREATE TABLE t2 (x int, y int) engine=$engine + +-- eval CREATE DATABASE $filtered +-- eval use $filtered +-- eval CREATE TABLE t1 (x int, y int) engine=$engine +-- eval CREATE TABLE t2 (x int, y int) engine=$engine + +SET @@session.sql_log_bin= 0; +-- eval INSERT INTO $filtered.t1 VALUES (100,100) +-- eval INSERT INTO $not_filtered.t1 VALUES (100,100) +SET @@session.sql_log_bin= 1; + +-- echo ### assertion: the inserts will not raise log error because +-- echo ### binlog-do-db is filtering used database +INSERT INTO t2 VALUES (1,2), (1,3), (1,4); +INSERT INTO t1 SELECT * FROM t2; + +-- echo ### assertion: assert that despite updating a not filtered +-- echo ### database this wont trigger an error as the +-- echo ### used database is the filtered one. +-- eval UPDATE $filtered.t1 ft1, $not_filtered.t1 nft1 SET ft1.x=1, nft1.x=2 + +-- eval use $not_filtered +-- echo ### assertion: the statements *will* raise log error because +-- echo ### binlog-do-db is not filtering used database +BEGIN; +-- error ER_BINLOG_STMT_MODE_AND_ROW_ENGINE +INSERT INTO t2 VALUES (1,2), (1,3), (1,4); +-- error ER_BINLOG_STMT_MODE_AND_ROW_ENGINE +-- eval UPDATE $filtered.t1 ft1, $not_filtered.t1 nft1 SET ft1.x=1, nft1.x=2 +-- error ER_BINLOG_STMT_MODE_AND_ROW_ENGINE +INSERT INTO t1 SELECT * FROM t2; +COMMIT; + +-- echo ### assertion: filtered events did not make into the binlog +source include/show_binlog_events.inc; + +-- eval DROP DATABASE $not_filtered +-- eval DROP DATABASE $filtered +SET @@session.tx_isolation= @old_isolation_level; diff --git a/mysql-test/suite/binlog/t/binlog_stm_drop_tbl.test b/mysql-test/suite/binlog/t/binlog_stm_drop_tbl.test new file mode 100644 index 00000000..fb8b290a --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_drop_tbl.test @@ -0,0 +1,5 @@ +# This is a wrapper for drop_table.test so that the same test case can be used +# For both statement and row based bin logs + +-- source include/have_binlog_format_mixed_or_statement.inc +-- source include/drop_table.test diff --git a/mysql-test/suite/binlog/t/binlog_stm_drop_tmp_tbl.test b/mysql-test/suite/binlog/t/binlog_stm_drop_tmp_tbl.test new file mode 100644 index 00000000..201aa45b --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_drop_tmp_tbl.test @@ -0,0 +1,5 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/have_binlog_format_mixed_or_statement.inc +-- source include/drop_temp_table.test diff --git a/mysql-test/suite/binlog/t/binlog_stm_innodb_stat-master.opt b/mysql-test/suite/binlog/t/binlog_stm_innodb_stat-master.opt new file mode 100644 index 00000000..4cb92754 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_innodb_stat-master.opt @@ -0,0 +1 @@ +--binlog_cache_size=32768 diff --git a/mysql-test/suite/binlog/t/binlog_stm_insert_select.test b/mysql-test/suite/binlog/t/binlog_stm_insert_select.test new file mode 100644 index 00000000..d0782c70 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_insert_select.test @@ -0,0 +1,5 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/have_binlog_format_mixed_or_statement.inc +-- source include/insert_select-binlog.test diff --git a/mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam-master.opt b/mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam-master.opt new file mode 100644 index 00000000..0fa355b4 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam-master.opt @@ -0,0 +1 @@ +--loose-innodb-lock-wait-timeout=2 --binlog-direct-non-transactional-updates=FALSE --default-storage-engine=MyISAM diff --git a/mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam.test b/mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam.test new file mode 100644 index 00000000..911c90b5 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam.test @@ -0,0 +1,15 @@ +# This is a wrapper for binlog.test so that the same test case can be used +# For both statement and row based bin logs 9/19/2005 [jbm] + +-- source include/have_binlog_format_statement.inc + +CALL mtr.add_suppression("Statement may not be safe to log in statement format."); + +-- source include/mix_innodb_myisam_binlog.test + +set @@session.binlog_format=statement; +-- source include/mix_innodb_myisam_side_effects.test +set @@session.binlog_format=@@global.binlog_format; + + +--echo end of tests diff --git a/mysql-test/suite/binlog/t/binlog_stm_ps.test b/mysql-test/suite/binlog/t/binlog_stm_ps.test new file mode 100644 index 00000000..b83991b1 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_ps.test @@ -0,0 +1,117 @@ +# This test is to verify replication with PS + +-- source include/not_embedded.inc +-- source include/have_binlog_format_statement.inc + +disable_query_log; +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); +enable_query_log; + +-- disable_query_log +reset master; # get rid of previous tests binlog +-- enable_query_log + +--disable_warnings +drop table if exists t1; +--enable_warnings +reset master; + +# +# Bug #26842: master binary log contains invalid queries - replication fails +# +create table t1 (a int); +prepare s from "insert into t1 values (@a),(?)"; +set @a=98; execute s using @a; +prepare s from "insert into t1 values (?)"; +set @a=99; execute s using @a; +prepare s from "insert into t1 select 100 limit ?"; +set @a=100; execute s using @a; +source include/show_binlog_events.inc; +drop table t1; + +--echo # +--echo # MDEV-10709 Expressions as parameters to Dynamic SQL +--echo # + +FLUSH LOGS; +SET TIMESTAMP=UNIX_TIMESTAMP('2001-01-02 10:20:30.123456'); +CREATE TABLE t1 (a DECIMAL(30,8)); +PREPARE stmt FROM 'INSERT INTO t1 VALUES (?)'; +EXECUTE stmt USING 10; +EXECUTE stmt USING 11e0; +EXECUTE stmt USING 12.1; +EXECUTE stmt USING '13'; +EXECUTE stmt USING CURRENT_DATE; +EXECUTE stmt USING MAKETIME(10,20,30); +EXECUTE stmt USING CURRENT_TIME; +EXECUTE stmt USING CURRENT_TIME(3); +EXECUTE stmt USING CURRENT_TIME(6); +EXECUTE stmt USING CURRENT_TIMESTAMP; +EXECUTE stmt USING CURRENT_TIMESTAMP(3); +EXECUTE stmt USING CURRENT_TIMESTAMP(6); +SELECT * FROM t1; +--let $binlog_file = LAST +source include/show_binlog_events.inc; +DROP TABLE t1; +SET TIMESTAMP=DEFAULT; + +--echo # +--echo # MDEV-10585 EXECUTE IMMEDIATE statement +--echo # + +FLUSH LOGS; +CREATE TABLE t1 (a INT); +EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (101)'; +SET @a=102; +EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (?)' USING @a; +SET @a=103; +SET @stmt='INSERT INTO t1 VALUES (?)'; +EXECUTE IMMEDIATE @stmt USING @a; +--let $binlog_file = LAST +source include/show_binlog_events.inc; +DROP TABLE t1; + +--echo # +--echo # MDEV-11360 Dynamic SQL: DEFAULT as a bind parameter +--echo # + +FLUSH LOGS; +CREATE TABLE t1 (a INT DEFAULT 10); +EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (Default)'; +--echo # The output of this query in 'Note' is a syntactically incorrect query. +--echo # But as it's never logged, it's ok. It should be human readable only. +EXECUTE IMMEDIATE 'EXPLAIN EXTENDED SELECT ?' USING Default; +EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (?)' USING Default; + +DELIMITER $$; +CREATE PROCEDURE p1 () +BEGIN + INSERT INTO t1 VALUES (Default); + # EXPLAIN should not be logged + EXECUTE IMMEDIATE 'EXPLAIN EXTENDED SELECT ?' USING Default; + EXECUTE IMMEDIATE 'INSERT INTO t1 VALUES (?)' USING Default; +END; +$$ +DELIMITER ;$$ +CALL p1; +DROP PROCEDURE p1; +DROP TABLE t1; + +--let $binlog_file = LAST +source include/show_binlog_events.inc; + +--echo # +--echo #MDEV-14467 Item_param: replace {INT|DECIMAL|REAL|STRING|TIME}_VALUE with Type_handler +--echo # + +FLUSH LOGS; +CREATE TABLE t1 (a INT); +EXECUTE IMMEDIATE 'INSERT INTO t1 SELECT 1 LIMIT ?' USING 10; +EXECUTE IMMEDIATE 'INSERT INTO t1 SELECT 1 LIMIT ?' USING 10.1; +EXECUTE IMMEDIATE 'INSERT INTO t1 SELECT 1 LIMIT ?' USING 10.1e0; +EXECUTE IMMEDIATE 'INSERT INTO t1 SELECT 1 LIMIT ?' USING '10'; +EXECUTE IMMEDIATE 'INSERT INTO t1 SELECT 1 LIMIT ?' USING TIME'10:10:10'; +DROP TABLE t1; + +--let $binlog_file = LAST +source include/show_binlog_events.inc; diff --git a/mysql-test/suite/binlog/t/binlog_stm_row.test b/mysql-test/suite/binlog/t/binlog_stm_row.test new file mode 100644 index 00000000..bade737c --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_row.test @@ -0,0 +1,101 @@ +--source include/have_log_bin.inc +# Test sets its own binlog_format, so we restrict it to run only once +--source include/have_binlog_format_row.inc + +CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); + +# Get rid of previous tests binlog +--disable_query_log +reset master; +--enable_query_log + +# +# Bug#34306: Can't make copy of log tables when server binary log is enabled +# +# This is an additional test for Bug#34306 in order to ensure that INSERT INTO +# .. SELECT FROM is properly replicated under SBR and RBR and that the proper +# read lock type are acquired. +# + +--disable_warnings +DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t2; +--enable_warnings + +set @saved_global_binlog_format = @@global.binlog_format; +set @saved_local_binlog_format = @@session.binlog_format; +SET GLOBAL BINLOG_FORMAT = STATEMENT; +SET SESSION BINLOG_FORMAT = STATEMENT; + +CREATE TABLE t1 (a INT); +CREATE TABLE t2 LIKE t1; +select @@SESSION.BINLOG_FORMAT; +INSERT INTO t1 VALUES(1); +INSERT INTO t2 VALUES(2); + +--connect(con1,localhost,root,,) +--connect(con2,localhost,root,,) + +--echo # +--echo # Ensure that INSERT INTO .. SELECT FROM under SBR takes a read +--echo # lock that will prevent the source table from being modified. +--echo # + +--connection con1 +SELECT GET_LOCK('Bug#34306', 120); +--connection con2 +PREPARE stmt FROM "INSERT INTO t1 SELECT * FROM t2 WHERE GET_LOCK('Bug#34306', 120)"; +--send EXECUTE stmt; +--connection default +let $wait_condition= + SELECT COUNT(*) = 1 FROM information_schema.processlist WHERE + state = "User lock" AND + info = "INSERT INTO t1 SELECT * FROM t2 WHERE GET_LOCK('Bug#34306', 120)"; +--source include/wait_condition.inc +--send INSERT INTO t2 VALUES (3); +--connection con1 +let $wait_condition= + SELECT COUNT(*) = 1 FROM information_schema.processlist WHERE + state = "Waiting for table level lock" and info = "INSERT INTO t2 VALUES (3)"; +--source include/wait_condition.inc +SELECT RELEASE_LOCK('Bug#34306'); +--connection con2 +--reap +SELECT RELEASE_LOCK('Bug#34306'); +--connection default +--reap + +--echo # +--echo # Ensure that INSERT INTO .. SELECT FROM prepared under SBR does +--echo # not prevent the source table from being modified if under RBR. +--echo # + +--connection con2 +SET SESSION BINLOG_FORMAT = ROW; +--connection con1 +SELECT GET_LOCK('Bug#34306', 120); +--connection con2 +--send EXECUTE stmt; +--connection default +let $wait_condition= + SELECT COUNT(*) = 1 FROM information_schema.processlist WHERE + state = "User lock" AND + info = "INSERT INTO t1 SELECT * FROM t2 WHERE GET_LOCK('Bug#34306', 120)"; +--source include/wait_condition.inc +--connection con1 +INSERT INTO t2 VALUES (4); +SELECT RELEASE_LOCK('Bug#34306'); +--connection con2 +--reap + +--disconnect con1 +--disconnect con2 +--connection default + +--echo # Show binlog events +source include/show_binlog_events.inc; + +DROP TABLE t1; +DROP TABLE t2; +SET GLOBAL BINLOG_FORMAT = @saved_global_binlog_format; +SET SESSION BINLOG_FORMAT = @saved_local_binlog_format; diff --git a/mysql-test/suite/binlog/t/binlog_stm_sp.test b/mysql-test/suite/binlog/t/binlog_stm_sp.test new file mode 100644 index 00000000..047cab74 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_sp.test @@ -0,0 +1,82 @@ +--source include/have_binlog_format_statement.inc + +--disable_query_log +reset master; # get rid of previous tests binlog +--enable_query_log + +--echo # +--echo # MDEV-11815 SP variables of temporal data types do not replicate correctly +--echo # + +CREATE TABLE t1(a INT); +DELIMITER $$; +CREATE PROCEDURE p1() +BEGIN + DECLARE i INT DEFAULT 123; + DECLARE b8 BIT(8) DEFAULT 0x61; + DECLARE t0 TIME DEFAULT '01:01:01'; + DECLARE t6 TIME(6) DEFAULT '01:01:01.123456'; + DECLARE d DATE DEFAULT '2001-01-01'; + DECLARE dt0 DATETIME DEFAULT '2001-01-01 01:01:01'; + DECLARE dt6 DATETIME(6) DEFAULT '2001-01-01 01:01:01.123456'; + DECLARE ts0 TIMESTAMP DEFAULT '2001-01-01 01:01:01'; + DECLARE ts6 TIMESTAMP(6) DEFAULT '2001-01-01 01:01:01.123456'; + INSERT INTO t1 VALUES (i=0x61); + INSERT INTO t1 VALUES (b8=0x61); + INSERT INTO t1 VALUES (t0=10101); + INSERT INTO t1 VALUES (t6=10101); + INSERT INTO t1 VALUES (d=20010101); + INSERT INTO t1 VALUES (dt0=20010101010101); + INSERT INTO t1 VALUES (dt6=20010101010101); + INSERT INTO t1 VALUES (ts0=20010101010101); + INSERT INTO t1 VALUES (ts6=20010101010101); +END; +$$ +DELIMITER ;$$ +CALL p1; +DROP TABLE t1; +DROP PROCEDURE p1; + +--let $binlog_file = LAST +source include/show_binlog_events.inc; + +--echo # +--echo # MDEV-16020 SP variables inside GROUP BY..WITH ROLLUP break replication +--echo # + +FLUSH LOGS; +CREATE TABLE t1 (d DATE); +INSERT INTO t1 VALUES ('1985-05-13'),('1989-12-24'); +CREATE TABLE t2 (d DATE, c BIGINT); +DELIMITER $$; +BEGIN NOT ATOMIC + BEGIN + DECLARE var INT DEFAULT 10; + INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, var; + INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, var WITH ROLLUP; + END; + BEGIN + DECLARE atomic INT DEFAULT 20; + INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, atomic; + INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, atomic WITH ROLLUP; + INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, `atomic`; + INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, `atomic` WITH ROLLUP; + END; + BEGIN + DECLARE atomic ROW (atomic INT, xxx INT) DEFAULT (31,32); + INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, atomic.atomic; + INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, atomic.atomic WITH ROLLUP; + INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, `atomic`.`atomic`; + INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, `atomic`.`atomic` WITH ROLLUP; + INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, atomic.xxx; + INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, atomic.xxx WITH ROLLUP; + INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, `atomic`.`xxx`; + INSERT INTO t2 SELECT d, COUNT(*) FROM t1 GROUP BY d, `atomic`.`xxx` WITH ROLLUP; + END; +END; +$$ +DELIMITER ;$$ +DROP TABLE t1,t2; + +--let $binlog_file = LAST +source include/show_binlog_events.inc; diff --git a/mysql-test/suite/binlog/t/binlog_stm_sp_type_row.test b/mysql-test/suite/binlog/t/binlog_stm_sp_type_row.test new file mode 100644 index 00000000..a7e21ee5 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_sp_type_row.test @@ -0,0 +1,108 @@ +--source include/not_embedded.inc +--source include/have_binlog_format_statement.inc + +--disable_query_log +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); +reset master; # get rid of previous tests binlog +--enable_query_log + + +SET sql_mode=ORACLE; + +--echo # +--echo # MDEV-10914 ROW data type for stored routine variables +--echo # + +CREATE TABLE t1 (a INT, b INT); +DELIMITER $$; +CREATE PROCEDURE p1 +AS + rec ROW(a INT,b INT); +BEGIN + rec.a:=100; + rec.b:=200; + INSERT INTO t1 VALUES (rec.a,rec.b); + INSERT INTO t1 VALUES (10, rec=ROW(100,200)); + INSERT INTO t1 VALUES (10, ROW(100,200)=rec); + INSERT INTO t1 SELECT 10, 20 FROM DUAL WHERE rec=ROW(100,200); + INSERT INTO t1 SELECT 10, 21 FROM DUAL WHERE ROW(100,200)=rec; + rec.a:=NULL; + INSERT INTO t1 VALUES (11, rec=ROW(100,200)); + INSERT INTO t1 VALUES (11, rec=ROW(100,201)); + INSERT INTO t1 VALUES (11, ROW(100,200)=rec); + INSERT INTO t1 VALUES (11, ROW(100,201)=rec); + INSERT INTO t1 SELECT 11, 20 FROM DUAL WHERE rec=ROW(100,200); + INSERT INTO t1 SELECT 11, 21 FROM DUAL WHERE ROW(100,200)=rec; + rec.b:=NULL; + INSERT INTO t1 VALUES (12, rec=ROW(100,200)); + INSERT INTO t1 VALUES (12, ROW(100,200)=rec); + INSERT INTO t1 SELECT 12, 20 FROM DUAL WHERE rec=ROW(100,200); + INSERT INTO t1 SELECT 12, 21 FROM DUAL WHERE ROW(100,200)=rec; +END; +$$ +DELIMITER ;$$ +CALL p1(); +SELECT * FROM t1; +DROP TABLE t1; +DROP PROCEDURE p1; +--let $binlog_file = LAST +source include/show_binlog_events.inc; + + +--echo # +--echo # Testing ROW fields in LIMIT +--echo # + +FLUSH LOGS; +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (10),(10); +CREATE TABLE t2 (a INT); +DELIMITER $$; +CREATE PROCEDURE p1() +AS + a INT:= 1; + rec ROW(a INT); +BEGIN + rec.a:= 1; + INSERT INTO t2 SELECT 1 FROM t1 LIMIT a; + INSERT INTO t2 SELECT 2 FROM t1 LIMIT rec.a; +END; +$$ +DELIMITER ;$$ +CALL p1(); +DROP TABLE t1,t2; +DROP PROCEDURE p1; +--let $binlog_file = LAST +source include/show_binlog_events.inc; + + +--echo # +--echo # End of MDEV-10914 ROW data type for stored routine variables +--echo # + + +--echo # +--echo # MDEV-12291 Allow ROW variables as SELECT INTO targets +--echo # + +FLUSH LOGS; +SET sql_mode=DEFAULT; +CREATE TABLE t1 (a INT, b VARCHAR(32)); +INSERT INTO t1 VALUES (10, 'b10'); +CREATE TABLE t2 LIKE t1; +DELIMITER $$; +CREATE PROCEDURE p1() +BEGIN + DECLARE rec1 ROW(a INT, b VARCHAR(32)); + SELECT * INTO rec1 FROM t1; + INSERT INTO t2 VALUES (rec1.a, rec1.b); +END; +$$ +DELIMITER ;$$ +CALL p1(); +SELECT * FROM t1; +DROP TABLE t1; +DROP TABLE t2; +DROP PROCEDURE p1; +--let $binlog_file = LAST +source include/show_binlog_events.inc; diff --git a/mysql-test/suite/binlog/t/binlog_stm_unsafe_warning-master.opt b/mysql-test/suite/binlog/t/binlog_stm_unsafe_warning-master.opt new file mode 100644 index 00000000..2dda40e6 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_unsafe_warning-master.opt @@ -0,0 +1 @@ +--binlog-ignore-db=b42851 --log-error --log-bin=master-bin --log-bin-index=master-bin diff --git a/mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test b/mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test new file mode 100644 index 00000000..70566da4 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test @@ -0,0 +1,196 @@ +# BUG#42851: Spurious "Statement is not safe to log in statement +# format." warnings +# +# WHY +# === +# +# This test aims at checking that the fix that removes spurious +# entries in the error log when the statement is filtered out from +# binlog, is working. +# +# HOW +# === +# +# The test case is split into three assertions when issuing statements +# containing LIMIT and ORDER BY: +# +# i) issue statements in database that is not filtered => check +# that warnings ARE shown; +# +# ii) issue statements in database that is not filtered, but with +# binlog disabled => check that warnings ARE NOT shown; +# +# iii) issue statements in database that is filtered => check that +# warnings ARE NOT shown. + +-- source include/have_log_bin.inc +-- source include/have_binlog_format_statement.inc +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT."); + +-- echo ### NOT filtered database => assertion: warnings ARE shown + +-- disable_warnings +DROP TABLE IF EXISTS t1; +-- enable_warnings + +CREATE TABLE t1 (a int, b int, primary key (a)); +INSERT INTO t1 VALUES (1,2), (2,3); +UPDATE t1 SET b='4' WHERE a=1 LIMIT 1; +UPDATE t1 SET b='5' WHERE a=2 ORDER BY a LIMIT 1; +DROP TABLE t1; + +-- echo ### NOT filtered database => assertion: binlog disabled and warnings ARE NOT shown + +SET SQL_LOG_BIN= 0; + +-- disable_warnings +DROP TABLE IF EXISTS t1; +-- enable_warnings + +CREATE TABLE t1 (a int, b int, primary key (a)); +INSERT INTO t1 VALUES (1,2), (2,3); +UPDATE t1 SET b='4' WHERE a=1 LIMIT 1; +UPDATE t1 SET b='5' WHERE a=2 ORDER BY a LIMIT 1; +DROP TABLE t1; + +SET SQL_LOG_BIN= 1; + +-- echo ### FILTERED database => assertion: warnings ARE NOT shown + +let $old_db= `SELECT DATABASE()`; + +CREATE DATABASE b42851; +USE b42851; + +-- disable_warnings +DROP TABLE IF EXISTS t1; +-- enable_warnings + +CREATE TABLE t1 (a int, b int, primary key (a)); +INSERT INTO t1 VALUES (1,2), (2,3); +UPDATE t1 SET b='4' WHERE a=1 LIMIT 1; +UPDATE t1 SET b='5' WHERE a=2 ORDER BY a LIMIT 1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(1000)); +INSERT INTO t1 VALUES (CURRENT_USER()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (FOUND_ROWS()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (GET_LOCK('tmp', 1)); #marked unsafe in BUG#47995 +INSERT INTO t1 VALUES (IS_FREE_LOCK('tmp')); #marked unsafe in BUG#47995 +INSERT INTO t1 VALUES (IS_USED_LOCK('tmp')); #marked unsafe in BUG#47995 +INSERT INTO t1 VALUES (LOAD_FILE('../../std_data/words2.dat')); #marked unsafe in BUG#39701 +INSERT INTO t1 VALUES (MASTER_POS_WAIT('dummy arg', 4711, 1)); +INSERT INTO t1 VALUES (RELEASE_LOCK('tmp')); #marked unsafe in BUG#47995 +INSERT INTO t1 VALUES (ROW_COUNT()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (SESSION_USER()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (SLEEP(1)); #marked unsafe in BUG#47995 +INSERT INTO t1 VALUES (SYSDATE()); #marked unsafe in BUG#47995 +INSERT INTO t1 VALUES (SYSTEM_USER()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (USER()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (UUID()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (UUID_SHORT()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (VERSION()); #marked unsafe in BUG#47995 +INSERT INTO t1 VALUES (RAND()); #marked unsafe in BUG#49222 + +# clean up +DROP DATABASE b42851; + +eval USE $old_db; + +--echo # +--echo # Bug#46265: Can not disable warning about unsafe statements for binary logging +--echo # + +let BINLOG_COUNTER1= `select CONVERT(NOW(),UNSIGNED) as timestmap from dual`; + +SET @old_log_warnings = @@log_warnings; + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings +CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(15)); + +SET GLOBAL LOG_WARNINGS = 0; +# Replacing the result file content here. +# Instead of writing $BINLOG_COUNTER1 value to result file, +# writing a fixed string timestamp to it. +--replace_result $BINLOG_COUNTER1 timestamp +eval INSERT INTO t1 VALUES(UUID(), '$BINLOG_COUNTER1'); +SET GLOBAL LOG_WARNINGS = 1; +--replace_result $BINLOG_COUNTER1 timestamp +eval INSERT INTO t1 VALUES(UUID(), '$BINLOG_COUNTER1'); +DROP TABLE t1; + +SET GLOBAL log_warnings = @old_log_warnings; + +let $log_error_= `SELECT @@GLOBAL.log_error`; +if(!$log_error_) +{ + # MySQL Server on windows is started with --console and thus + # does not know the location of its .err log, use default location + let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.1.err; +} + +# Assign env variable LOG_ERROR +let LOG_ERROR=$log_error_; + +--echo # Count the number of times the "Unsafe" message was printed +--echo # to the error log. + +perl; + use strict; + use Cwd; + my $log_error= $ENV{'LOG_ERROR'} or die "LOG_ERROR not set"; + open(FILE, "$log_error") or die("Unable to open '$log_error' from directory " . cwd() . " :$! \n"); + my $binlog_counter= $ENV{'BINLOG_COUNTER1'} or die "BINLOG_COUNTER1 not set"; + my $count = () = grep(/$binlog_counter/g,<FILE>); + # Grep the timestamp value from the error file. + print "Occurrences: $count\n"; + close(FILE); +EOF + +# +# Check how RAND() can be used with replication +# + +create table t1 (n1 int, n2 int, n3 int, + key (n1, n2, n3), + key (n2, n3, n1), + key (n3, n1, n2)); +insert into t1 values (1,1,1); +# This should work fine +insert into t1 values (RAND()*1000+10, RAND()*1000+10, RAND()*1000+10); +# This should need row based logging. +update t1 set n1=rand() where n1=1; +delete from t1 where n2=1 + rand()*0; +drop table t1; + +# bug#50192: diplaying the unsafe warning comes out to the user warning stack +-- disable_warnings +DROP TABLE IF EXISTS t1, t2; +-- enable_warnings + +CREATE TABLE t1 (a int); +CREATE TABLE t2 (a int auto_increment primary key, b int); +CREATE TRIGGER tr_bug50192 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t2 (b) VALUES (1); + +DELIMITER |; + +CREATE FUNCTION sf_bug50192() RETURNS INTEGER +BEGIN + INSERT INTO t2(b) VALUES(2); + RETURN 1; +END | + +DELIMITER ;| + +INSERT INTO t1 VALUES (0); +SHOW WARNINGS; +SELECT sf_bug50192(); +SHOW WARNINGS; + +# cleanup + +DROP FUNCTION sf_bug50192; +DROP TRIGGER tr_bug50192; +DROP TABLE t1, t2; diff --git a/mysql-test/suite/binlog/t/binlog_stm_user_variables.test b/mysql-test/suite/binlog/t/binlog_stm_user_variables.test new file mode 100644 index 00000000..85bf511a --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_stm_user_variables.test @@ -0,0 +1,87 @@ +-- source include/have_binlog_format_statement.inc +RESET MASTER; +# +# BUG#49562: SBR out of sync when using numeric data types + user variable +# + +-- let $max_unsigned_long= 18446744073709551615 +-- let $min_signed_long= -9223372036854775808 +-- eval SET @positive= $max_unsigned_long +-- eval SET @negative= $min_signed_long + +CREATE TABLE t1 (`tinyint` TINYINT, + `smallint` SMALLINT, + `mediumint` MEDIUMINT, + `integer` INTEGER, + `bigint` BIGINT, + `utinyint` TINYINT UNSIGNED, + `usmallint` SMALLINT UNSIGNED, + `umediumint` MEDIUMINT UNSIGNED, + `uinteger` INTEGER UNSIGNED, + `ubigint` BIGINT UNSIGNED, + `double` DOUBLE, + `float` FLOAT, + `real` REAL(30,2), + `decimal` DECIMAL(30,2)) ENGINE = MyISAM; + +-- echo ### insert max unsigned +-- echo ### a) declarative +-- disable_warnings +-- eval INSERT IGNORE INTO t1 VALUES ($max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long,$max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long, $max_unsigned_long); +-- enable_warnings +TRUNCATE t1; + +-- echo ### b) user var +-- disable_warnings +INSERT IGNORE INTO t1 VALUES (@positive, + @positive, + @positive, + @positive, + @positive, + @positive, + @positive, + @positive, + @positive, + @positive, + @positive, + @positive, + @positive, + @positive); +-- enable_warnings + +-- echo ## assertion: checks that User_var_log_event::pack_info +-- echo ## correctly displays the binlog content by taking into +-- echo ## account the unsigned_flag +-- source include/show_binlog_events.inc + +-- echo ### insert min signed +-- echo ### a) declarative +-- disable_warnings +-- eval INSERT IGNORE INTO t1 VALUES ($min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long,$min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long, $min_signed_long); +-- enable_warnings +TRUNCATE t1; + +-- echo ### b) user var +-- disable_warnings +INSERT IGNORE INTO t1 VALUES (@negative, + @negative, + @negative, + @negative, + @negative, + @negative, + @negative, + @negative, + @negative, + @negative, + @negative, + @negative, + @negative, + @negative); +-- enable_warnings + +-- echo ## assertion: checks that User_var_log_event::pack_info +-- echo ## correctly displays the binlog content by taking into +-- echo ## account the unsigned_flag +-- source include/show_binlog_events.inc + +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/t/binlog_switch_inside_trans.test b/mysql-test/suite/binlog/t/binlog_switch_inside_trans.test new file mode 100644 index 00000000..a93cd44f --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_switch_inside_trans.test @@ -0,0 +1,200 @@ +# +# BUG#47863 +# This test verifies if the session variable 'binlog_format' and +# 'binlog_direct_non_transactional_updates' are read-only inside +# a transaction and in sub-statements. +# + +source include/have_innodb.inc; +source include/have_binlog_format_row.inc; + +set @save_binlog_format= @@global.binlog_format; +set @save_binlog_dirct= @@global.binlog_direct_non_transactional_updates; +create table t1 (a int) engine= myisam; +create table t2 (a int) engine= innodb; + +SELECT @@session.binlog_format; +SELECT @@session.binlog_direct_non_transactional_updates; +SELECT @@session.sql_log_bin; +SET AUTOCOMMIT=1; +--echo # Test that the session variable 'binlog_format', +--echo # 'binlog_direct_non_transactional_updates' and 'sql_log_bin' +--echo # are writable outside a transaction. +--echo # Current session values are ROW, FALSE, TRUE, respectively. +set @@session.binlog_format= statement; +set @@session.binlog_direct_non_transactional_updates= TRUE; +set @@session.sql_log_bin= FALSE; +SELECT @@session.binlog_format; +SELECT @@session.binlog_direct_non_transactional_updates; +SELECT @@session.sql_log_bin; + +begin; +--echo # Test that the session variable 'binlog_format', +--echo # 'binlog_direct_non_transactional_updates' and 'sql_log_bin' are +--echo # read-only inside a transaction with no preceding updates. +--echo # Current session values are STATEMENT, TRUE, FALSE, respectively. +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT + set @@session.binlog_format= mixed; +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT + set @@session.binlog_direct_non_transactional_updates= FALSE; +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN +set @@session.sql_log_bin= FALSE; + + insert into t2 values (1); +--echo # Test that the session variable 'binlog_format', +--echo # 'binlog_direct_non_transactional_updates' and 'sql_log_bin' are +--echo # read-only inside a transaction with preceding transactional updates. +--echo # Current session values are STATEMENT, TRUE and FALSE, respectively. +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT + set @@session.binlog_format= row; +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT + set @@session.binlog_direct_non_transactional_updates= FALSE; +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN +set @@session.sql_log_bin= FALSE; +commit; + +begin; + insert into t1 values (2); +--echo # Test that the session variable 'binlog_format' +--echo # 'binlog_direct_non_transactional_updates' and 'sql_log_bin' are +--echo # read-only inside a transaction with preceding non-transactional updates. +--echo # Current session values are STATEMENT, TRUE, FALSE, respectively. +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT + set @@session.binlog_format= mixed; +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT + set @@session.binlog_direct_non_transactional_updates= FALSE; +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN +set @@session.sql_log_bin= FALSE; +commit; + +--echo # Test that the session variable 'binlog_format', +--echo # 'binlog_direct_non_transactional_updates' and 'sql_log_bin' are +--echo # writable when AUTOCOMMIT=0, before a transaction has started. +--echo # Current session values are STATEMENT, TRUE, FALSE, respectively. +set AUTOCOMMIT=0; +set @@session.binlog_format= row; +set @@session.binlog_direct_non_transactional_updates= FALSE; +set @@session.sql_log_bin= TRUE; +SELECT @@session.binlog_format; +SELECT @@session.binlog_direct_non_transactional_updates; +SELECT @@session.sql_log_bin; + +insert into t1 values (3); +--echo # Test that the session variable 'binlog_format', +--echo # 'binlog_direct_non_transactional_updates' and 'sql_log_bin' are +--echo # read-only inside an AUTOCOMMIT=0 transaction +--echo # with preceding non-transactional updates. +--echo # Current session values are ROW, FALSE, TRUE, respectively. +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT +set @@session.binlog_format= statement; +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT +set @@session.binlog_direct_non_transactional_updates= TRUE; +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN +set @@session.sql_log_bin= FALSE; +SELECT @@session.binlog_format; +SELECT @@session.binlog_direct_non_transactional_updates; +SELECT @@session.sql_log_bin; +commit; + +insert into t2 values (4); +--echo # Test that the session variable 'binlog_format', +--echo # 'binlog_direct_non_transactional_updates' and 'sql_log_bin' are +--echo # read-only inside an AUTOCOMMIT=0 transaction with +--echo # preceding transactional updates. +--echo # Current session values are ROW, FALSE, TRUE, respectively. +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT +set @@session.binlog_format= statement; +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT +set @@session.binlog_direct_non_transactional_updates= TRUE; +--error ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN +set @@session.sql_log_bin= FALSE; +SELECT @@session.binlog_format; +SELECT @@session.binlog_direct_non_transactional_updates; +SELECT @@session.sql_log_bin; +commit; + +begin; + insert into t2 values (5); +--echo # Test that the global variable 'binlog_format' and +--echo # 'binlog_direct_non_transactional_updates' are +--echo # writable inside a transaction. +--echo # Current session values are ROW, FALSE, TRUE respectively. + SELECT @@global.binlog_format; + set @@global.binlog_format= statement; + set @@global.binlog_direct_non_transactional_updates= TRUE; + SELECT @@global.binlog_format; + SELECT @@global.binlog_direct_non_transactional_updates; +commit; + +set @@global.binlog_format= @save_binlog_format; +set @@global.binlog_direct_non_transactional_updates= @save_binlog_dirct; + +create table t3(a int, b int) engine= innodb; +create table t4(a int) engine= innodb; +create table t5(a int) engine= innodb; +delimiter |; +eval create trigger tr1 after insert on t3 for each row begin + insert into t4(a) values(1); + set @@session.binlog_format= statement; + insert into t4(a) values(2); + insert into t5(a) values(3); +end | +delimiter ;| + +--echo # Test that the session variable 'binlog_format' is read-only +--echo # in sub-statements. +--echo # Current session value is ROW. +--error ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT +insert into t3(a,b) values(1,1); +SELECT @@session.binlog_format; + +create table t6(a int, b int) engine= innodb; +create table t7(a int) engine= innodb; +create table t8(a int) engine= innodb; +delimiter |; +eval create trigger tr2 after insert on t6 for each row begin + insert into t7(a) values(1); + set @@session.binlog_direct_non_transactional_updates= TRUE; + insert into t7(a) values(2); + insert into t8(a) values(3); +end | +delimiter ;| + +--echo # Test that the session variable +--echo # 'binlog_direct_non_transactional_updates' is +--echo # read-only in sub-statements. +--echo # Current session value is FALSE. +--error ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT +insert into t6(a,b) values(1,1); +SELECT @@session.binlog_direct_non_transactional_updates; + +create table t9(a int, b int) engine= innodb; +create table t10(a int) engine= innodb; +create table t11(a int) engine= innodb; +delimiter |; +eval create trigger tr3 after insert on t9 for each row begin + insert into t10(a) values(1); + set @@session.sql_log_bin= TRUE; + insert into t10(a) values(2); + insert into t11(a) values(3); +end | +delimiter ;| + +--echo # Test that the session variable 'sql_log_bin' is +--echo # read-only in sub-statements. +--echo # Current session value is FALSE. +--error ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN +insert into t9(a,b) values(1,1); +SELECT @@session.sql_log_bin; + +drop table t1; +drop table t2; +drop table t3; +drop table t4; +drop table t5; +drop table t6; +drop table t7; +drop table t8; +drop table t9; +drop table t10; +drop table t11; diff --git a/mysql-test/suite/binlog/t/binlog_table_map_optional_metadata.test b/mysql-test/suite/binlog/t/binlog_table_map_optional_metadata.test new file mode 100644 index 00000000..9fd201e0 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_table_map_optional_metadata.test @@ -0,0 +1,333 @@ +################################################################################ +# 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 + +RESET MASTER; +SET GLOBAL binlog_row_metadata = MINIMAL; + +--let $MYSQLD_DATADIR= `select @@datadir` +--let $binlog_file= $MYSQLD_DATADIR/master-bin.000001 + +--echo # +--echo # Temporal types can be printed correctly +--echo # +CREATE TABLE t1(c_year YEAR, c_date DATE, c_time TIME, c_time_f TIME(3), + c_datetime DATETIME, c_datetime_f DATETIME(3), + c_timestamp TIMESTAMP, c_timestamp_f TIMESTAMP(3) DEFAULT "2017-1-1 10:10:10"); + +INSERT INTO t1(c_year) VALUES(2017); +--source include/print_optional_metadata.inc + +DROP TABLE t1; +RESET MASTER; + +--echo # +--echo # Geometry types can be printed correctly +--echo # +CREATE TABLE t1 (c_geo GEOMETRY, c_point POINT, c_linestring LINESTRING, + c_polygon POLYGON, c_multi_point MULTIPOINT, + c_multi_linestring MULTILINESTRING, c_multi_polygon MULTIPOLYGON, + c_geometrycollection GEOMETRYCOLLECTION, c_char CHAR(100)); + +INSERT INTO t1(c_point) VALUES(ST_PointFromText('POINT(10 10)')); +--source include/print_optional_metadata.inc + +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; + +# geometry type is binlogged, the real geometry types are printed +INSERT INTO t1(c_point) VALUES(ST_PointFromText('POINT(10 10)')); +--source include/print_optional_metadata.inc + +DROP TABLE t1; +RESET MASTER; + +--echo # +--echo # Numeric types can be printed correctly +--echo # +CREATE TABLE t1(c_bit BIT(10), c_bool BOOL, c_smallint SMALLINT, + c_mediumint MEDIUMINT, c_int INT UNSIGNED, c_bigint BIGINT, + c_float FLOAT UNSIGNED, c_double DOUBLE, c_decimal DECIMAL(10, 2)); + +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1(c_bool) VALUES(1); + +--echo # UNSIGNED flag should be printed +--source include/print_optional_metadata.inc + +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1(c_bool) VALUES(1); + +--source include/print_optional_metadata.inc + +DROP TABLE t1; +RESET MASTER; + +--echo # +--echo # Character types can be printed correctly +--echo # +CREATE TABLE t1(c_char CHAR(10), c_varchar VARCHAR(500), + c_tinytext TINYTEXT, c_text TEXT, + c_mediumtext MEDIUMTEXT, c_longtext LONGTEXT CHARSET utf8); + +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1(c_char) VALUES("1"); + +# Charset set is printed with default charset +--source include/print_optional_metadata.inc + +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1(c_char) VALUES("1"); + +--source include/print_optional_metadata.inc + +DROP TABLE t1; +RESET MASTER; + +--echo # +--echo # Column names with non-ascii characters and escape characters can be printed correctly +--echo # +set names utf8; +CREATE TABLE t1(`åäö表\a'``"` INT); + +SHOW CREATE TABLE t1; + +INSERT INTO t1 VALUES(1); +--source include/print_optional_metadata.inc +DROP TABLE t1; +RESET MASTER; +--echo # +--echo # Charsets can be printed correctly +--echo # +CREATE TABLE t1(c_char_utf8 CHAR(10) CHARSET utf8, + c_varchar_utf8 VARCHAR(10) CHARSET utf8, + c_text_utf8 TEXT CHARSET utf8); + +INSERT INTO t1 VALUES("1", "2", "3"); + +# Charset set is printed with Default charset +--source include/print_optional_metadata.inc + +DROP TABLE t1; +RESET MASTER; + +# Test collation number less than 250 and collation number greater than 250 +CREATE TABLE t1(c_utf8mb4_520 CHAR(10) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci, + c_utf8mb4_0900 VARCHAR(10) CHARSET utf8mb4 COLLATE utf8mb4_polish_ci, + c_utf8mb4_def TEXT CHARSET utf8mb4); + +INSERT INTO t1 VALUES("1", "2", "3"); + +# Charset set is printed without default charset +--source include/print_optional_metadata.inc + +DROP TABLE t1; +RESET MASTER; + +--echo # +--echo # Blob and binary columns can be printed correctly +--echo # +CREATE TABLE t1(c_binary BINARY(10), c_varbinary VARBINARY(10), + c_tinyblob TINYBLOB, c_blob BLOB, + c_mediumblob MEDIUMBLOB, c_longblob LONGBLOB); + +INSERT INTO t1 VALUES("1", "2", "3", "4", "5", "6"); +--source include/print_optional_metadata.inc + +DROP TABLE t1; +RESET MASTER; + +--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 latin1, + c_set_4 SET("set3_v1_Ã¥", "set3_v2_ä", "set3_v3_ö") CHARACTER SET swe7 COLLATE swe7_bin); + +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1 VALUES("set1_v1_Ã¥", "set2_v3_ö", "set3_v1_Ã¥"); +--source include/print_optional_metadata.inc + +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1 VALUES("set1_v1_Ã¥", "set2_v3_ö", "set3_v1_Ã¥"); +--source include/print_optional_metadata.inc + +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_3 ENUM("enum2_v1_Ã¥", "enum2_v2_ä", "enum2_v3_ö") CHARACTER SET latin1, + c_enum_4 ENUM("enum3_v1_Ã¥", "enum3_v2_ä", "enum3_v3_ö") CHARACTER SET swe7 COLLATE swe7_bin); + +SET GLOBAL binlog_row_metadata = MINIMAL; +INSERT INTO t1 VALUES("enum1_v1_Ã¥", "enum2_v3_ö", "enum3_v1_Ã¥"); +--source include/print_optional_metadata.inc + +RESET MASTER; +SET GLOBAL binlog_row_metadata = FULL; +INSERT INTO t1 VALUES("enum1_v1_Ã¥", "enum2_v3_ö", "enum3_v1_Ã¥"); +--source include/print_optional_metadata.inc + +DROP TABLE t1; +RESET MASTER; + +--echo # +--echo # Verify that explicit NOT NULL can be printed correctly +--echo # +CREATE TABLE t1(c_not_null1 INT NOT NULL, c_null1 INT, c_not_null2 INT NOT NULL, + c_null2 INT); + +INSERT INTO t1 VALUES(1, 2, 3, 4); +--source include/print_optional_metadata.inc + +DROP TABLE t1; +RESET MASTER; + +--echo # +--echo # Verify that primary key can be printed correctly +--echo # +CREATE TABLE t1(c_key1 INT, c_key3 INT, c_not_key INT, c_key2 INT, +PRIMARY KEY(c_key1, c_key2, c_key3)); + +INSERT INTO t1 VALUES(1, 2, 3, 4); +--let $print_primary_key= 1 +--source include/print_optional_metadata.inc + +DROP TABLE t1; +RESET MASTER; + +# Key has prefix +CREATE TABLE t1(c_key1 CHAR(100), c_key3 CHAR(100), c_not_key INT, c_key2 CHAR(10), +PRIMARY KEY(c_key1(5), c_key2, c_key3(10))); + +INSERT INTO t1 VALUES("1", "2", 3, "4"); +--source include/print_optional_metadata.inc + +RESET MASTER; +# Primary key should not be printed +SET GLOBAL binlog_row_metadata = MINIMAL; + +INSERT INTO t1 VALUES("2", "2", 3, "4"); +--source include/print_optional_metadata.inc + +RESET MASTER; +--echo # +--echo # Coverage test: Print column index instead of column name if column name +--echo # is not binlogged. +--echo # +SET GLOBAL binlog_row_metadata = FULL; + +SET SESSION debug_dbug = 'd, dont_log_column_name'; +INSERT INTO t1 VALUES("3", "2", 3, "4"); +--source include/print_optional_metadata.inc + +--let $print_primary_key= +DROP TABLE t1; +RESET MASTER; + +--echo # +--echo # Coverage test: Inject an invalid column type +--echo # +CREATE TABLE t1(c1 int, c2 BLOB); + +SET SESSION debug_dbug = 'd,inject_invalid_column_type'; +INSERT INTO t1 VALUES(1, "a"); +# It prints an error +--source include/print_optional_metadata.inc + +RESET MASTER; + +--echo # +--echo # Coverage test: Inject an invalid BLOB metadata +--echo # +--let $start_pos= query_get_value(SHOW MASTER STATUS, Position, 1) + +SET SESSION debug_dbug = 'd,inject_invalid_blob_size'; +INSERT INTO t1 VALUES(2, "b"); + +# The invalid metadata will case assertion failure on Write_rows_log_event +# So we need to stop mysqlbinlog before reading Write_rows_log_event. +--let $stop_position= query_get_value(SHOW BINLOG EVENTS FROM $start_pos LIMIT 3, End_log_pos, 3) +--source include/print_optional_metadata.inc + +--echo # +--echo # Coverage test: Inject an invalid Geometry type +--echo # +DROP TABLE t1; +CREATE TABLE t1(c_geometry GEOMETRY, c_point POINT, c_multilinestring MULTILINESTRING); +RESET MASTER; +--let $start_pos= query_get_value(SHOW MASTER STATUS, Position, 1) + +SET SESSION debug_dbug = 'd,inject_invalid_geometry_type'; +INSERT INTO t1(c_point) VALUES(ST_PointFromText('POINT(10 10)')); + +# The invalid metadata will case assertion failure on Write_rows_log_event +# So we need to stop mysqlbinlog before reading Write_rows_log_event. +--let $stop_position= query_get_value(SHOW BINLOG EVENTS FROM $start_pos LIMIT 3, End_log_pos, 3) +--source include/print_optional_metadata.inc + +DROP TABLE t1; +RESET MASTER; +--echo # +--echo # Comptibility Test: Verify mysqlbinlog can print OLD table_map_log_event +--echo # without any optional metadata +--echo # +CREATE TABLE t1(c_int INT, c_tiny_int_unsigned TINYINT UNSIGNED, + c_binary BINARY(10), c_text TEXT, c_point POINT); + +SET session debug_dbug='d,simulate_no_optional_metadata'; +INSERT INTO t1(c_int) VALUES(1); +# TINYINT will be printed without UNSIGNED flag, +# CHAR will be printed as BINARY(10) +# POINT will be printed as GEOMETRY +--let $stop_position= +--source include/print_optional_metadata.inc + +DROP TABLE t1; +RESET MASTER; +--echo # +--echo # Simulate error on initializing charset and primary key metadata +--echo # +CREATE TABLE t1(c1 char(10) PRIMARY KEY); + +SET session debug_dbug='d,simulate_init_charset_field_error'; +INSERT INTO t1 VALUES("a"); + +SET GLOBAL binlog_row_metadata = FULL; +SET session debug_dbug='d,simulate_init_primary_key_field_error'; +INSERT INTO t1 VALUES("b"); + +--let $print_primary_key= 1 +--source include/print_optional_metadata.inc + +SET SESSION debug_dbug = ''; +SET GLOBAL binlog_row_metadata = NO_LOG; +DROP TABLE t1; +RESET MASTER; diff --git a/mysql-test/suite/binlog/t/binlog_table_map_optional_metadata_binary.test b/mysql-test/suite/binlog/t/binlog_table_map_optional_metadata_binary.test new file mode 100644 index 00000000..5997cfd5 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_table_map_optional_metadata_binary.test @@ -0,0 +1,73 @@ +################################################################################ +# 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 +--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 binary); + +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 binary); + +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; 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 00000000..1e218acd --- /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; diff --git a/mysql-test/suite/binlog/t/binlog_table_map_optional_metadata_utf32.test b/mysql-test/suite/binlog/t/binlog_table_map_optional_metadata_utf32.test new file mode 100644 index 00000000..c1d449ab --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_table_map_optional_metadata_utf32.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_utf32.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 utf32); + +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 utf32); + +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; diff --git a/mysql-test/suite/binlog/t/binlog_tmp_table.test b/mysql-test/suite/binlog/t/binlog_tmp_table.test new file mode 100644 index 00000000..45428530 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_tmp_table.test @@ -0,0 +1,159 @@ +# ==== Purpose ==== +# +# Test if statements used temporary tables are binlogged correctly +# +# ==== Method ==== +# +# Use two connections, use temporary tables on both of them, and by +# switching connections between statements, the test can check if the +# statements are logged with the correct thread id. +# +# The statements current tested include: +# CREATE TEMPORARY TABLE +# CREATE TEMPORARY TABLE LIKE +# INSERT +# REPLACE +# UPDATE +# INSERT SELECT +# TRUNCATE +# +# Note: When adding new query statements, please add them between the +# two 'flush logs'. And aslo please make sure the connection is +# switched between each statement. +# +# ==== Related bugs ==== +# +# BUG#35583 mysqlbinlog replay fails with ERROR 1146 when temp tables are used +# +source include/have_log_bin.inc; +source include/have_binlog_format_mixed_or_statement.inc; + +RESET MASTER; + +--disable_query_log +CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); +--enable_query_log + +connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,); +connect (master1,127.0.0.1,root,,test,$MASTER_MYPORT,); + +create table foo (a int); + +flush logs; + +connection master; +create temporary table tmp1_foo like foo; +connection master1; +create temporary table tmp2_foo (a int); + +connection master; +insert into tmp1_foo values (1), (2), (3), (4); +connection master1; +replace into tmp2_foo values (1), (2), (3), (4); + +connection master; +update tmp1_foo set a=2*a-1; +connection master1; +update tmp2_foo set a=2*a; + +connection master; +delete from tmp1_foo where a < 5; +connection master1; +delete from tmp2_foo where a < 5; + +--disable_warnings +connection master; +insert into foo select * from tmp1_foo; +connection master1; +insert into foo select * from tmp2_foo; +--enable_warnings + +connection master; +truncate table tmp1_foo; +connection master1; +truncate table tmp2_foo; + +let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1); + +flush logs; + +connection default; +select * from foo; + +# prepare for the replay +drop table foo; +create table foo (a int); + +# replay from binary log +let $MYSQLD_DATADIR= `select @@datadir`; +exec $MYSQL_BINLOG $MYSQLD_DATADIR/$binlog_file | $MYSQL; +select * from foo; + +# clean up +drop table foo; + +################################################################# +# BUG#51226 +################################################################# + +RESET MASTER; + +-- let $dbname=b51226 + +connect (con1,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK); +connect (con2,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK); + +# +# action: on con1 create the database and the tmp table +# +-- connection con1 +-- eval create database $dbname +-- eval use $dbname +create temporary table t1(i int); + +# +# action: on con1 create the tmp table +# +-- connection con2 +-- eval use $dbname +create temporary table t1(i int); + +# action: at this point, the last event binlogged contains the +# pseudo_thread_id from con2. So now we switch to con1, issue +# a statement that fails and close the connection (which logs +# implicitely a DROP TEMPORARY TABLE). +# +# Before the patch this would not log con1's pseudo_thread_id +# because the failing statement would reset THD context +# (unsetting the thread_specific_used flag, and consequently, +# causing the DROP event to be logged without pseudo_thread_id +# in its header). + +-- connection con1 +-- error 1050 +create temporary table t1(i int); +-- disconnect con1 + +-- connection default +-- let $wait_binlog_event= DROP +-- source include/wait_for_binlog_event.inc + +# action: insert in the t1. This would cause the the test to fail, +# because when replaying the binlog the previous implicit drop +# temp table would have been executed under the wrong +# pseudo_thread_id, dropping the tmp table on con2. +-- connection con2 +insert into t1 values(1); +-- disconnect con2 + +-- connection default +-- let $wait_binlog_event= DROP +-- source include/wait_for_binlog_event.inc + +-- eval DROP DATABASE $dbname +FLUSH LOGS; + +# assertion: assert that when replaying the binary log will succeed, +# instead of failing with "Table 'XXX.YYY' doesn't exist" +-- let $MYSQLD_DATADIR= `select @@datadir` +-- exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 | $MYSQL diff --git a/mysql-test/suite/binlog/t/binlog_tmp_table_row.test b/mysql-test/suite/binlog/t/binlog_tmp_table_row.test new file mode 100644 index 00000000..ce11c880 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_tmp_table_row.test @@ -0,0 +1,30 @@ +# ==== Purpose ==== +# +# Test if statements used temporary tables are not binlogged in the case of +# binlog_format=row +# +# ==== Method ==== +# +# We will see if binlog file size is increased or not, It should be constant for the +# entire period of test. +# +# ==== Related bugs ==== +# +# Mdev-9266 +# +source include/have_log_bin.inc; +source include/have_binlog_format_row.inc; + +RESET MASTER; + +--echo #Create table test +--let $sql_query= create temporary table t1(a int, b int) +--source suite/binlog/include/check_binlog_size.inc + +--echo #Add index test +--let $sql_query= create index index_a on t1(a) +--source suite/binlog/include/check_binlog_size.inc + +--echo #drop index test +--let $sql_query= drop index index_a on t1 +--source suite/binlog/include/check_binlog_size.inc diff --git a/mysql-test/suite/binlog/t/binlog_trigger.test b/mysql-test/suite/binlog/t/binlog_trigger.test new file mode 100644 index 00000000..4ad5d16a --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_trigger.test @@ -0,0 +1,23 @@ +--source include/not_embedded.inc +--source include/have_binlog_format_statement.inc + +--disable_query_log +reset master; # get rid of previous tests binlog +--enable_query_log + +--echo # +--echo # WL#3253: multiple triggers per table +--echo # + +--echo # Testing that the FOLLOWS and PRECEDES clauses get logged + +CREATE TABLE t1 (a INT, b INT); +CREATE TRIGGER tr1_bi BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 (a) VALUES (NEW.a + 100); +CREATE TRIGGER tr4_bi BEFORE INSERT ON t1 FOR EACH ROW INSERT INTO t2 (a) VALUES (NEW.a + 300); +CREATE TRIGGER tr2_bi BEFORE INSERT ON t1 FOR EACH ROW FOLLOWS tr1_bi INSERT INTO t2 (a) VALUES (NEW.a + 200); +CREATE TRIGGER tr3_bi BEFORE INSERT ON t1 FOR EACH ROW precedes tr4_bi INSERT INTO t2 (a) VALUES (NEW.a + 400); +DROP TABLE t1; + + +--let $binlog_file = LAST +source include/show_binlog_events.inc; diff --git a/mysql-test/suite/binlog/t/binlog_truncate_innodb.test b/mysql-test/suite/binlog/t/binlog_truncate_innodb.test new file mode 100644 index 00000000..511b82bd --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_truncate_innodb.test @@ -0,0 +1,45 @@ +source include/have_log_bin.inc; +source include/have_innodb.inc; + +let $engine = InnoDB; + +SET @old_binlog_format=@@binlog_format; + +SET BINLOG_FORMAT=ROW; +RESET MASTER; + +source include/binlog_truncate.test; + +--echo # Even though the isolation level might be permissive, truncate +--echo # table follows a stricter isolation as its locking is based on +--echo # (exclusive) metadata locks. + +let $before_truncate = SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +source include/binlog_truncate.test; + +let $before_truncate = SET TRANSACTION ISOLATION LEVEL READ COMMITTED; +source include/binlog_truncate.test; + +let $before_truncate = SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +source include/binlog_truncate.test; + +let $before_truncate = SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +source include/binlog_truncate.test; + +SET BINLOG_FORMAT=STATEMENT; +RESET MASTER; + +source include/binlog_truncate.test; + +--echo # Truncate is not supported for SBR if the isolation level is +--echo # READ UNCOMMITTED or READ COMMITTED. These specific isolation +--echo # levels are tested elsewhere. + +let $before_truncate = SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +source include/binlog_truncate.test; + +let $before_truncate = SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +source include/binlog_truncate.test; + +SET @@global.binlog_format = @old_binlog_format; +SET @@session.binlog_format = @old_binlog_format;
\ No newline at end of file diff --git a/mysql-test/suite/binlog/t/binlog_truncate_kill.test b/mysql-test/suite/binlog/t/binlog_truncate_kill.test new file mode 100644 index 00000000..0b9e873d --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_truncate_kill.test @@ -0,0 +1,55 @@ +############################################################################### +# Bug#17942050:KILL OF TRUNCATE TABLE WILL LEAD TO BINARY LOG WRITTEN WHILE +# ROWS REMAINS +# +# Problem: +# ======== +# When truncate table fails while using transactional based engines even +# though the operation errors out we still continue and log it to binlog. +# Because of this master has data but the truncate will be written to binary +# log which will cause inconsistency. +# +# Test: +# ===== +# Make master to wait in "open_table" call during the execution of truncate +# table command and kill the truncate table from other connection. This causes +# open table to return an error saying truncate failed during open table. This +# statement should not be binlogged. +############################################################################### +--source include/have_innodb.inc +--source include/have_debug_sync.inc +--source include/have_binlog_format_statement.inc +RESET MASTER; +--connection default +CREATE TABLE t1(id INT AUTO_INCREMENT PRIMARY KEY, a INT, b INT) ENGINE=INNODB; +INSERT INTO t1(a, b) VALUES(1,2),(2,4),(3,6),(4,8),(5,10); +SET DEBUG_SYNC = "open_and_process_table signal truncate_before_lock wait_for forever"; +--send TRUNCATE t1 + +connect(con1,localhost,root,,); +SET DEBUG_SYNC = "now wait_for truncate_before_lock"; +# Wait for one connection to reach open_and_process_table. +--let $show_statement= SHOW PROCESSLIST +--let $field= State +--let $condition= 'debug sync point: open_and_process_table'; +--source include/wait_show_condition.inc + +SELECT ((@id := id) - id) FROM information_schema.processlist WHERE processlist.info LIKE '%TRUNCATE t1%' AND state LIKE '%open_and_process_table%'; +# Test killing from mysql server +KILL QUERY @id; + +connection default; +--ERROR ER_QUERY_INTERRUPTED +--reap + +connection con1; +--source include/show_binlog_events.inc + +disconnect con1; +--source include/wait_until_disconnected.inc +connection default; + +SELECT * FROM t1; + +DROP TABLE t1; +SET DEBUG_SYNC= 'RESET'; diff --git a/mysql-test/suite/binlog/t/binlog_truncate_myisam.test b/mysql-test/suite/binlog/t/binlog_truncate_myisam.test new file mode 100644 index 00000000..864e9c63 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_truncate_myisam.test @@ -0,0 +1,17 @@ +source include/have_log_bin.inc; + +SET @old_binlog_format=@@binlog_format; + +let $engine = MyISAM; + +SET BINLOG_FORMAT=ROW; +RESET MASTER; + +source include/binlog_truncate.test; + +SET BINLOG_FORMAT=STATEMENT; +RESET MASTER; + +source include/binlog_truncate.test; + +SET BINLOG_FORMAT=@old_binlog_format; diff --git a/mysql-test/suite/binlog/t/binlog_unsafe-master.opt b/mysql-test/suite/binlog/t/binlog_unsafe-master.opt new file mode 100644 index 00000000..50fc48d2 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_unsafe-master.opt @@ -0,0 +1 @@ +--log-output=file,table diff --git a/mysql-test/suite/binlog/t/binlog_unsafe.test b/mysql-test/suite/binlog/t/binlog_unsafe.test new file mode 100644 index 00000000..673712ff --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_unsafe.test @@ -0,0 +1,759 @@ +# ==== Background ==== +# +# Some statements may execute differently on master and slave when +# logged in statement format. Such statements are called unsafe. +# Unsafe statements include: +# +# - statements using @@variables (with a small number of exceptions; +# see below); +# - statements using certain functions, e.g., UUID(); +# - statements using LIMIT; +# - INSERT DELAYED; +# - insert into two autoinc columns; +# - statements using UDF's. +# - statements reading from log tables in the mysql database. +# - INSERT ... SELECT ... ON DUPLICATE KEY UPDATE +# - REPLACE ... SELECT +# - CREATE TABLE [IGNORE/REPLACE] SELECT +# - INSERT IGNORE...SELECT +# - UPDATE IGNORE +# - INSERT... ON DUPLICATE KEY UPDATE on a table with two UNIQUE KEYS +# +# Note that statements that use stored functions, stored procedures, +# triggers, views, or prepared statements that invoke unsafe +# statements shall also be unsafe. +# +# Unsafeness of a statement shall have the following consequences: +# +# 1. If the binlogging is on and the unsafe statement is logged: +# - If binlog_format=STATEMENT, the statement shall give a warning. +# - If binlog_format=MIXED or binlog_format=ROW, the statement shall +# be logged in row format. +# +# 2. If binlogging is off or the statement is not logged (e.g. SELECT +# UUID()), no warning shall be issued and the statement shall not +# be logged. +# +# Moreover, when a sub-statement of a recursive construct (i.e., +# stored function, stored procedure, trigger, view, or prepared +# statement) is unsafe and binlog_format=STATEMENT, then a warning +# shall be issued for every recursive construct. In effect, this +# creates a stack trace from the top-level statement to the unsafe +# statement. +# +# +# ==== Purpose ==== +# +# This test verifies that a warning is generated when it should, +# according to the rules above. +# +# All @@variables should be unsafe, with some exceptions. Therefore, +# this test also verifies that the exceptions do *not* generate a +# warning. +# +# +# ==== Method ==== +# +# 1. Each type of statements listed above is executed. +# +# 2. Each unsafe statement is wrapped in each type of recursive +# construct (stored function, stored procedure, trigger, view, or +# prepared statement). +# +# 3. Each unsafe statement is wrapped in two levels of recursive +# constructs (function invoking trigger invoking UUID(), etc). +# +# We try to insert the variables that should not be unsafe into a +# table, and verify that *no* warning is issued. +# +# Execute a unsafe statement calling a trigger or stored function +# or neither when SQL_LOG_BIN is turned ON, a warning/error should be issued +# Execute a unsafe statement calling a trigger or stored function +# or neither when @@SQL_LOG_BIN is turned OFF, +# no warning/error is issued +# +# +# ==== Related bugs and worklogs ==== +# +# WL#3339: Issue warnings when statement-based replication may fail +# BUG#31168: @@hostname does not replicate +# BUG#34732: mysqlbinlog does not print default values for auto_increment variables +# BUG#34768: nondeterministic INSERT using LIMIT logged in stmt mode if binlog_format=mixed +# BUG#41980, SBL, INSERT .. SELECT .. LIMIT = ERROR, even when @@SQL_LOG_BIN is 0 +# BUG#42640: mysqld crashes when unsafe statements are executed (STRICT_TRANS_TABLES mode) +# BUG#45825: INSERT DELAYED is not unsafe: logged in statement format +# BUG#45785: LIMIT in SP does not cause RBL if binlog_format=MIXED +# BUG#47995: Mark user functions as unsafe +# BUG#49222: Mark RAND() unsafe +# BUG#11758262: MARK INSERT...SEL...ON DUP KEY UPD,REPLACE...SEL,CREATE...[IGN|REPL] SEL +# +# ==== Related test cases ==== +# +# rpl.rpl_variables verifies that variables which cannot be replicated +# safely in statement mode are replicated correctly in mixed or row +# mode. +# +# rpl.rpl_variables_stm tests the small subset of variables that +# actually can be replicated safely in statement mode. +# +--source include/have_udf.inc +--source include/have_log_bin.inc +--source include/have_binlog_format_statement.inc + +--disable_query_log +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); +--enable_query_log + +--echo #### Setup tables #### + +CREATE TABLE t0 (a CHAR(200)); +CREATE TABLE t1 (a CHAR(200)); +CREATE TABLE t2 (a CHAR(200)); +CREATE TABLE t3 (a CHAR(200)); +CREATE TABLE ta0 (a CHAR(200)); +CREATE TABLE ta1 (a CHAR(200)); +CREATE TABLE ta2 (a CHAR(200)); +CREATE TABLE ta3 (a CHAR(200)); +CREATE TABLE autoinc_table (a INT PRIMARY KEY AUTO_INCREMENT); +CREATE TABLE data_table (a CHAR(200)); +INSERT INTO data_table VALUES ('foo'); +CREATE TABLE trigger_table_1 (a INT); +CREATE TABLE trigger_table_2 (a INT); +CREATE TABLE trigger_table_3 (a INT); +CREATE TABLE double_autoinc_table (a INT PRIMARY KEY AUTO_INCREMENT); + +--DELIMITER | +CREATE TRIGGER double_autoinc_trig +BEFORE INSERT ON double_autoinc_table FOR EACH ROW +BEGIN + INSERT INTO autoinc_table VALUES (NULL); +END| + +CREATE FUNCTION multi_unsafe_func() RETURNS INT +BEGIN + INSERT INTO t0 VALUES(CONCAT(@@hostname, @@hostname)); + INSERT INTO t0 VALUES(0); + INSERT INTO t0 VALUES(CONCAT(UUID(), @@hostname)); + RETURN 1; +END| +--DELIMITER ; + +--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB +--eval CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "$UDF_EXAMPLE_SO" + +# In each iteration of this loop, we select one method to make the +# statement unsafe. +--let $unsafe_type= 0 +while ($unsafe_type < 9) { + + --echo + + if ($unsafe_type == 0) { + --echo ==== Testing UUID() unsafeness ==== + --let $desc_0= unsafe UUID() function + --let $stmt_sidef_0= INSERT INTO t0 VALUES (UUID()) + --let $value_0= UUID() + --let $sel_sidef_0= + --let $sel_retval_0= SELECT UUID() + --let $CRC_ARG_expected_number_of_warnings= 1 + } + + if ($unsafe_type == 1) { + --echo ==== Testing @@hostname unsafeness ==== + --let $desc_0= unsafe @@hostname variable + --let $stmt_sidef_0= INSERT INTO t0 VALUES (@@hostname) + --let $value_0= @@hostname + --let $sel_sidef_0= + # $sel_retval is going to be used in views. Views cannot execute + # statements that refer to @@variables. Hence, we set $set_retval + # to empty instead of SELECT @@hostname. + --let $sel_retval_0= + --let $CRC_ARG_expected_number_of_warnings= 1 + } + + if ($unsafe_type == 2) { + --echo ==== Testing SELECT...LIMIT unsafeness ==== + --let $desc_0= unsafe SELECT...LIMIT statement + --let $stmt_sidef_0= INSERT INTO t0 SELECT * FROM data_table LIMIT 1 + --let $value_0= + --let $sel_sidef_0= + --let $sel_retval_0= SELECT * FROM data_table LIMIT 1 + --let $CRC_ARG_expected_number_of_warnings= 1 + } + + if ($unsafe_type == 3) { + --echo ==== Testing INSERT DELAYED safeness after BUG#54579 is fixed ==== + --let $desc_0= unsafe INSERT DELAYED statement + --let $stmt_sidef_0= INSERT DELAYED INTO t0 VALUES (1), (2) + --let $value_0= + --let $sel_sidef_0= + --let $sel_retval_0= + --let $CRC_ARG_expected_number_of_warnings= 0 + } + + if ($unsafe_type == 4) { + --echo ==== Testing unsafeness of insert of two autoinc values ==== + --let $desc_0= unsafe update of two autoinc columns + --let $stmt_sidef_0= INSERT INTO double_autoinc_table VALUES (NULL) + --let $value_0= + --let $sel_sidef_0= + --let $sel_retval_0= + --let $CRC_ARG_expected_number_of_warnings= 1 + } + + if ($unsafe_type == 5) { + --echo ==== Testing unsafeness of UDF's ==== + --let $desc_0= unsafe UDF + --let $stmt_sidef_0= INSERT INTO t0 VALUES (myfunc_int(10)) + --let $value_0= myfunc_int(10) + --let $sel_sidef_0= SELECT myfunc_int(10) + --let $sel_retval_0= + --let $CRC_ARG_expected_number_of_warnings= 1 + } + + if ($unsafe_type == 6) { + --echo ==== Testing unsafeness of access to mysql.general_log ==== + --let $desc_0= unsafe use of mysql.general_log + --let $stmt_sidef_0= INSERT INTO t0 SELECT COUNT(*) FROM mysql.general_log + --let $value_0= + --let $sel_sidef_0= + --let $sel_retval_0= SELECT COUNT(*) FROM mysql.general_log + --let $CRC_ARG_expected_number_of_warnings= 1 + } + + if ($unsafe_type == 7) { + --echo ==== Testing a statement that is unsafe in many ways ==== + --let $desc_0= statement that is unsafe in many ways + # Concatenate three unsafe values, and then concatenate NULL to + # that so that the result is NULL and we instead use autoinc. + --let $stmt_sidef_0= INSERT DELAYED INTO double_autoinc_table SELECT CONCAT(UUID(), @@hostname, myfunc_int(), NULL) FROM mysql.general_log LIMIT 1 + --let $value_0= + --let $sel_sidef_0= + --let $sel_retval_0= + --let $CRC_ARG_expected_number_of_warnings= 7 + } + + if ($unsafe_type == 8) { + --echo ==== Testing a statement that is unsafe several times ==== + --let $desc_0= statement that is unsafe several times + --let $stmt_sidef_0= INSERT INTO ta0 VALUES (multi_unsafe_func()) + --let $value_0= + --let $sel_sidef_0= SELECT multi_unsafe_func() + --let $sel_retval_0= + --let $CRC_ARG_expected_number_of_warnings= 2 + } + + # In each iteration of the following loop, we select one way to + # enclose the unsafe statement as a sub-statement of a recursive + # construct (i.e., a function, procedure, trigger, view, or prepared + # statement). + # + # In the last iteration, $call_type_1=7, we don't create a recursive + # construct. Instead, we just invoke the unsafe statement directly. + + --let $call_type_1= 0 + while ($call_type_1 < 8) { + #--echo debug: level 1, types $call_type_1 -> $unsafe_type + --let $CRC_ARG_level= 1 + --let $CRC_ARG_type= $call_type_1 + --let $CRC_ARG_stmt_sidef= $stmt_sidef_0 + --let $CRC_ARG_value= $value_0 + --let $CRC_ARG_sel_sidef= $sel_sidef_0 + --let $CRC_ARG_sel_retval= $sel_retval_0 + --let $CRC_ARG_desc= $desc_0 + --source suite/rpl/include/create_recursive_construct.inc + --let $stmt_sidef_1= $CRC_RET_stmt_sidef + --let $value_1= $CRC_RET_value + --let $sel_sidef_1= $CRC_RET_sel_sidef + --let $sel_retval_1= $CRC_RET_sel_retval + --let $is_toplevel_1= $CRC_RET_is_toplevel + --let $drop_1= $CRC_RET_drop + --let $desc_1= $CRC_RET_desc + + # Some statements must be top-level statements, i.e., cannot be + # called as a sub-statement of any recursive construct. (One + # example is 'EXECUTE prepared_stmt'). When + # create_recursive_construct.inc creates a top-level statement, it + # sets $CRC_RET_is_toplevel=1. + + if (!$is_toplevel_1) { + + # In each iteration of this loop, we select one way to enclose + # the previous recursive construct in another recursive + # construct. + + --let $call_type_2= 0 + while ($call_type_2 < 7) { + #--echo debug: level 2, types $call_type_2 -> $call_type_1 -> $unsafe_type + --let $CRC_ARG_level= 2 + --let $CRC_ARG_type= $call_type_2 + --let $CRC_ARG_stmt_sidef= $stmt_sidef_1 + --let $CRC_ARG_value= $value_1 + --let $CRC_ARG_sel_sidef= $sel_sidef_1 + --let $CRC_ARG_sel_retval= $sel_retval_1 + --let $CRC_ARG_desc= $desc_1 + --source suite/rpl/include/create_recursive_construct.inc + --let $stmt_sidef_2= $CRC_RET_stmt_sidef + --let $value_2= $CRC_RET_value + --let $sel_sidef_2= $CRC_RET_sel_sidef + --let $sel_retval_2= $CRC_RET_sel_retval + --let $is_toplevel_2= $CRC_RET_is_toplevel + --let $drop_2= $CRC_RET_drop + --let $desc_2= $CRC_RET_desc + + if (!$is_toplevel_2) { + + # Conditioned out since it makes result file really big. + + if (0) { + + # In each iteration of this loop, we select one way to enclose + # the previous recursive construct in another recursive + # construct. + + --let $call_type_3= 0 + while ($call_type_3 < 7) { + #--echo debug: level 3, types $call_type_2 -> $call_type_2 -> $call_type_1 -> $unsafe_type + --let $CRC_ARG_level= 3 + --let $CRC_ARG_type= $call_type_3 + --let $CRC_ARG_stmt_sidef= $stmt_sidef_2 + --let $CRC_ARG_value= $value_2 + --let $CRC_ARG_sel_sidef= $sel_sidef_2 + --let $CRC_ARG_sel_retval= $sel_retval_2 + --let $CRC_ARG_desc= $desc_2 + --source suite/rpl/include/create_recursive_construct.inc + + # Drop created object. + if ($drop_3) { + --eval $drop_3 + } + --inc $call_type_3 + } # while (call_type_3) + } # if (0) + } # if (!is_toplevel_2) + + # Drop created object. + if ($drop_2) { + --eval $drop_2 + } + --inc $call_type_2 + } # while (call_type_2) + } # if (!is_toplevel_1) + + # Drop created object. + if ($drop_1) { + --eval $drop_1 + } + --inc $call_type_1 + } # while (call_type_1) + + --inc $unsafe_type +} # while (unsafe_type) + +DROP TRIGGER double_autoinc_trig; +DROP TABLE t0, t1, t2, t3, ta0, ta1, ta2, ta3, + autoinc_table, double_autoinc_table, + data_table, + trigger_table_1, trigger_table_2, trigger_table_3; +DROP FUNCTION myfunc_int; +DROP FUNCTION multi_unsafe_func; + + +--echo ==== Special system variables that should *not* be unsafe ==== + +CREATE TABLE t1 (a VARCHAR(1000)); +CREATE TABLE autoinc_table (a INT PRIMARY KEY AUTO_INCREMENT); + +INSERT INTO t1 VALUES (@@session.auto_increment_increment); +INSERT INTO t1 VALUES (@@session.auto_increment_offset); +INSERT INTO t1 VALUES (@@session.character_set_client); +INSERT INTO t1 VALUES (@@session.character_set_connection); +INSERT INTO t1 VALUES (@@session.character_set_database); +INSERT INTO t1 VALUES (@@session.character_set_server); +INSERT INTO t1 VALUES (@@session.collation_connection); +INSERT INTO t1 VALUES (@@session.collation_database); +INSERT INTO t1 VALUES (@@session.collation_server); +INSERT INTO t1 VALUES (@@session.foreign_key_checks); +INSERT INTO t1 VALUES (@@session.identity); +INSERT INTO t1 VALUES (@@session.last_insert_id); +INSERT INTO t1 VALUES (@@session.lc_time_names); +INSERT INTO t1 VALUES (@@session.pseudo_thread_id); +INSERT INTO t1 VALUES (@@session.sql_auto_is_null); +INSERT INTO t1 VALUES (@@session.timestamp); +INSERT INTO t1 VALUES (@@session.time_zone); +INSERT INTO t1 VALUES (@@session.unique_checks); + +SET @my_var= 4711; +INSERT INTO t1 VALUES (@my_var); + +# using insert_id implicitly should be ok. +SET insert_id= 12; +INSERT INTO autoinc_table VALUES (NULL); + +# See set_var.cc for explanation. +--echo The following variables *should* give a warning, despite they are replicated. +INSERT INTO t1 VALUES (@@session.sql_mode); +INSERT INTO t1 VALUES (@@session.insert_id); + + +DROP TABLE t1, autoinc_table; + + +# +# BUG#34768 - nondeterministic INSERT using LIMIT logged in stmt mode if +# binlog_format=mixed +# +CREATE TABLE t1(a INT, b INT, KEY(a), PRIMARY KEY(b)); +INSERT INTO t1 SELECT * FROM t1 LIMIT 1; +REPLACE INTO t1 SELECT * FROM t1 LIMIT 1; +UPDATE t1 SET a=1 LIMIT 1; +DELETE FROM t1 LIMIT 1; +delimiter |; +CREATE PROCEDURE p1() +BEGIN + INSERT INTO t1 SELECT * FROM t1 LIMIT 1; + REPLACE INTO t1 SELECT * FROM t1 LIMIT 1; + UPDATE t1 SET a=1 LIMIT 1; + DELETE FROM t1 LIMIT 1; +END| +delimiter ;| +CALL p1(); +DROP PROCEDURE p1; +DROP TABLE t1; + +# +# Bug#42634: % character in query can cause mysqld signal 11 segfault +# + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +CREATE TABLE t1 (a VARCHAR(200), b VARCHAR(200)); +INSERT INTO t1 VALUES ('a','b'); +UPDATE t1 SET b = '%s%s%s%s%s%s%s%s%s%s%s%s%s%s' WHERE a = 'a' LIMIT 1; +DROP TABLE t1; + +# +#For bug#41980, SBL, INSERT .. SELECT .. LIMIT = ERROR, even when @@SQL_LOG_BIN is 0 +# + +--disable_warnings +DROP TABLE IF EXISTS t1, t2; +--enable_warnings +CREATE TABLE t1(i INT PRIMARY KEY); +CREATE TABLE t2(i INT PRIMARY KEY); +CREATE TABLE t3(i INT, ch CHAR(50)); + +--echo "Should issue message Statement may not be safe to log in statement format." +INSERT INTO t1 SELECT * FROM t2 LIMIT 1; + +DELIMITER |; +CREATE FUNCTION func6() +RETURNS INT +BEGIN + INSERT INTO t1 VALUES (10); + INSERT INTO t1 VALUES (11); + INSERT INTO t1 VALUES (12); + RETURN 0; +END| +DELIMITER ;| +--echo "Should issue message Statement may not be safe to log in statement format only once" +INSERT INTO t3 VALUES(func6(), UUID()); + +--echo "Check whether SET @@SQL_LOG_BIN = 0/1 doesn't work in substatements" +DELIMITER |; +CREATE FUNCTION fun_check_log_bin() RETURNS INT +BEGIN + SET @@SQL_LOG_BIN = 0; + INSERT INTO t1 VALUES(@@global.sync_binlog); + RETURN 200; +END| +DELIMITER ;| +--echo "One unsafe warning should be issued in the following statement" +--error ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN +SELECT fun_check_log_bin(); +--echo "SQL_LOG_BIN should be ON still" +SHOW VARIABLES LIKE "SQL_LOG_BIN"; + +set @save_log_bin = @@SESSION.SQL_LOG_BIN; +set @@SESSION.SQL_LOG_BIN = 0; +--echo "Should NOT have any warning message issued in the following statements" +INSERT INTO t1 SELECT * FROM t2 LIMIT 1; +DROP TABLE t1,t2; + +--echo "Should NOT have any warning message issued in the following func7() and trig" +CREATE TABLE t1 (a INT); +CREATE TABLE t2 (a TEXT); +CREATE TABLE trigger_table (a CHAR(7)); +DELIMITER |; +CREATE FUNCTION func7() +RETURNS INT +BEGIN + INSERT INTO t1 VALUES (@@global.sync_binlog); + INSERT INTO t1 VALUES (@@session.insert_id); + INSERT INTO t2 SELECT UUID(); + INSERT INTO t2 VALUES (@@session.sql_mode); + INSERT INTO t2 VALUES (@@global.init_slave); + RETURN 0; +END| +DELIMITER ;| +SHOW VARIABLES LIKE "SQL_LOG_BIN"; +SELECT func7(); + +--echo ---- Insert from trigger ---- + +DELIMITER |; +CREATE TRIGGER trig +BEFORE INSERT ON trigger_table +FOR EACH ROW +BEGIN + INSERT INTO t1 VALUES (@@global.sync_binlog); + INSERT INTO t1 VALUES (@@session.insert_id); + INSERT INTO t1 VALUES (@@global.auto_increment_increment); + INSERT INTO t2 SELECT UUID(); + INSERT INTO t2 VALUES (@@session.sql_mode); + INSERT INTO t2 VALUES (@@global.init_slave); + INSERT INTO t2 VALUES (@@hostname); +END| +DELIMITER ;| + +INSERT INTO trigger_table VALUES ('bye.'); + +#clean up +DROP FUNCTION fun_check_log_bin; +DROP FUNCTION func6; +DROP FUNCTION func7; +DROP TRIGGER trig; +DROP TABLE t1, t2, t3, trigger_table; +set @@SESSION.SQL_LOG_BIN = @save_log_bin; + +# +# For BUG#42640: mysqld crashes when unsafe statements are executed (STRICT_TRANS_TABLES mode) +# +SET @save_sql_mode = @@SESSION.SQL_MODE; +SET @@SESSION.SQL_MODE = STRICT_ALL_TABLES; + +CREATE TABLE t1(i INT PRIMARY KEY); +CREATE TABLE t2(i INT PRIMARY KEY); + +INSERT INTO t1 SELECT * FROM t2 LIMIT 1; +INSERT INTO t1 VALUES(@@global.sync_binlog); + +UPDATE t1 SET i = 999 LIMIT 1; +DELETE FROM t1 LIMIT 1; + +DROP TABLE t1, t2; +SET @@SESSION.SQL_MODE = @save_sql_mode; + +# +# BUG#45825: INSERT DELAYED is not unsafe: logged in statement format +# BUG#45785: LIMIT in SP does not cause RBL if binlog_format=MIXED +# +SET @old_binlog_format = @@session.binlog_format; +SET binlog_format = MIXED; + +CREATE TABLE t1 (a INT); +CREATE TABLE t2 (a INT); +INSERT INTO t2 VALUES (1), (2); + +--DELIMITER | +CREATE PROCEDURE proc_insert_delayed () +BEGIN + INSERT DELAYED INTO t1 VALUES (1), (2); +END| + +CREATE FUNCTION func_limit () +RETURNS INT +BEGIN + INSERT INTO t1 SELECT * FROM t2 LIMIT 1; + RETURN 1; +END| +--DELIMITER ; + +RESET MASTER; +CALL proc_insert_delayed(); +SELECT func_limit(); +source include/show_binlog_events.inc; + +SET @@session.binlog_format = @old_binlog_format; +DROP TABLE t1, t2; +DROP PROCEDURE proc_insert_delayed; +DROP FUNCTION func_limit; + +# +# BUG#45827 +# The test verifies if stmt that have more than one +# different tables to update with autoinc columns +# will produce unsafe warning +# + +# Test case1: stmt that have more than one different tables +# to update with autoinc columns should produce +# unsafe warning when calling a function +CREATE TABLE t1 (a INT, b INT PRIMARY KEY AUTO_INCREMENT); +CREATE TABLE t2 (a INT, b INT PRIMARY KEY AUTO_INCREMENT); + +# The purpose of this function is to insert into t1 so that the second +# column is auto_increment'ed. +DELIMITER |; +CREATE FUNCTION func_modify_t1 () +RETURNS INT +BEGIN + INSERT INTO t1 SET a = 1; + RETURN 0; +END| +DELIMITER ;| +--echo # The following statement causes auto-incrementation +--echo # of both t1 and t2. It is logged in statement format, +--echo # so it should produce unsafe warning. +INSERT INTO t2 SET a = func_modify_t1(); + +SET SESSION binlog_format = MIXED; +--echo # Check if the statement is logged in row format. +let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1); +INSERT INTO t2 SET a = func_modify_t1(); +--source include/show_binlog_events.inc + +# clean up +DROP TABLE t1,t2; +DROP FUNCTION func_modify_t1; +# +# Test case2: stmt that have more than one different tables +# to update with autoinc columns should produce +# unsafe warning when invoking a trigger +SET SESSION binlog_format = STATEMENT; +CREATE TABLE t1 (a INT); +CREATE TABLE t2 (a INT, b INT PRIMARY KEY AUTO_INCREMENT); +CREATE TABLE t3 (a INT, b INT PRIMARY KEY AUTO_INCREMENT); + +# The purpose of this function is to insert into t1 so that the second +# column is auto_increment'ed. +delimiter |; +create trigger tri_modify_two_tables before insert on t1 for each row begin + insert into t2(a) values(new.a); + insert into t3(a) values(new.a); +end | +delimiter ;| +--echo # The following statement causes auto-incrementation +--echo # of both t2 and t3. It is logged in statement format, +--echo # so it should produce unsafe warning +INSERT INTO t1 SET a = 1; + +SET SESSION binlog_format = MIXED; +--echo # Check if the statement is logged in row format. +let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1); +INSERT INTO t1 SET a = 2; +--source include/show_binlog_events.inc + +# clean up +DROP TABLE t1,t2,t3; + +# +# BUG#47995: Mark user functions as unsafe +# BUG#49222: Mare RAND() unsafe +# +# Test that the system functions that are supposed to be marked unsafe +# generate a warning. Each INSERT statement below should generate a +# warning. +# +SET SESSION binlog_format = STATEMENT; + +CREATE TABLE t1 (a VARCHAR(1000)); +INSERT INTO t1 VALUES (CURRENT_USER()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (FOUND_ROWS()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (GET_LOCK('tmp', 1)); #marked unsafe in BUG#47995 +INSERT INTO t1 VALUES (IS_FREE_LOCK('tmp')); #marked unsafe in BUG#47995 +INSERT INTO t1 VALUES (IS_USED_LOCK('tmp')); #marked unsafe in BUG#47995 +INSERT INTO t1 VALUES (LOAD_FILE('../../std_data/words2.dat')); #marked unsafe in BUG#39701 +INSERT INTO t1 VALUES (MASTER_POS_WAIT('dummy arg', 4711, 1)); +INSERT INTO t1 VALUES (RELEASE_LOCK('tmp')); #marked unsafe in BUG#47995 +INSERT INTO t1 VALUES (ROW_COUNT()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (SESSION_USER()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (SLEEP(1)); #marked unsafe in BUG#47995 +INSERT INTO t1 VALUES (SYSDATE()); #marked unsafe in BUG#47995 +INSERT INTO t1 VALUES (SYSTEM_USER()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (USER()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (UUID()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (UUID_SHORT()); #marked unsafe before BUG#47995 +INSERT INTO t1 VALUES (VERSION()); #marked unsafe in BUG#47995 +INSERT INTO t1 VALUES (RAND()); #marked unsafe in BUG#49222 +DELETE FROM t1; + +# Since we replicate the TIMESTAMP variable, functions affected by the +# TIMESTAMP variable are safe to replicate. So we check that the +# following following functions that depend on the TIMESTAMP variable +# are not unsafe and don't generate a warning. + +SET TIME_ZONE= '+03:00'; +SET TIMESTAMP=1000000; +INSERT INTO t1 VALUES + (CURDATE()), + (CURRENT_DATE()), + (CURRENT_TIME()), + (CURRENT_TIMESTAMP()), + (CURTIME()), + (LOCALTIME()), + (LOCALTIMESTAMP()), + (NOW()), + (UNIX_TIMESTAMP()), + (UTC_DATE()), + (UTC_TIME()), + (UTC_TIMESTAMP()); +SELECT * FROM t1; + +DROP TABLE t1; +# +#BUG#11758262-50439: MARK INSERT...SEL...ON DUP KEY UPD,REPLACE.. +#The following statement may be unsafe when logged in statement format. +#INSERT IGNORE...SELECT +#INSERT ... SELECT ... ON DUPLICATE KEY UPDATE +#REPLACE ... SELECT +#UPDATE IGNORE +#CREATE TABLE... IGNORE SELECT +#CREATE TABLE... REPLACE SELECT +# +###BUG 11765650 - 58637: MARK UPDATES THAT DEPEND ON ORDER OF TWO KEYS UNSAFE +#INSERT.... ON DUP KEY UPDATE on a table with more than one UNIQUE KEY + +#setup tables +CREATE TABLE filler_table (a INT, b INT); +INSERT INTO filler_table values (1,1),(1,2); +CREATE TABLE insert_table (a INT, b INT, PRIMARY KEY(a)); +CREATE TABLE replace_table (a INT, b INT, PRIMARY KEY(a)); +INSERT INTO replace_table values (1,1),(2,2); +CREATE TABLE update_table (a INT, b INT, PRIMARY KEY(a)); +INSERT INTO update_table values (1,1),(2,2); +CREATE TABLE insert_2_keys (a INT UNIQUE KEY, b INT UNIQUE KEY); +INSERT INTO insert_2_keys values (1, 1); + +#INSERT IGNORE... SELECT +INSERT IGNORE INTO insert_table SELECT * FROM filler_table; +TRUNCATE TABLE insert_table; +#INSERT ... SELECT ... ON DUPLICATE KEY UPDATE +INSERT INTO insert_table SELECT * FROM filler_table ON DUPLICATE KEY UPDATE a = 1; +TRUNCATE TABLE insert_table; +#REPLACE...SELECT +REPLACE INTO replace_table SELECT * FROM filler_table; +#UPDATE IGNORE +UPDATE IGNORE update_table SET a=2; +#CREATE TABLE [IGNORE/REPLACE] SELECT +CREATE TABLE create_ignore_test (a INT, b INT, PRIMARY KEY(b)) IGNORE SELECT * FROM filler_table; +CREATE TABLE create_replace_test (a INT, b INT, PRIMARY KEY(b)) REPLACE SELECT * FROM filler_table; +#temporary tables should not throw the warning. +CREATE TEMPORARY TABLE temp1 (a INT, b INT, PRIMARY KEY(b)) REPLACE SELECT * FROM filler_table; + +#INSERT.... ON DUP KEY UPDATE on a table with more than one UNIQUE KEY +INSERT INTO insert_2_keys VALUES (1, 2) + ON DUPLICATE KEY UPDATE a=VALUES(a)+10, b=VALUES(b)+10; + +###clean up +DROP TABLE filler_table; +DROP TABLE insert_table; +DROP TABLE update_table; +DROP TABLE replace_table; +DROP TABLE create_ignore_test; +DROP TABLE create_replace_test; +DROP TABLE insert_2_keys; + +--echo "End of tests" diff --git a/mysql-test/suite/binlog/t/binlog_variables_log_bin-master.opt b/mysql-test/suite/binlog/t/binlog_variables_log_bin-master.opt new file mode 100644 index 00000000..85d14ea7 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_variables_log_bin-master.opt @@ -0,0 +1 @@ +--log-bin=other diff --git a/mysql-test/suite/binlog/t/binlog_variables_log_bin.test b/mysql-test/suite/binlog/t/binlog_variables_log_bin.test new file mode 100644 index 00000000..afaea3d9 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_variables_log_bin.test @@ -0,0 +1,5 @@ +--source include/not_embedded.inc + +let $log_bin_index=`select substring_index(@@log_bin_index,'/',-1)`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $log_bin_index mysqld-bin.index +--query_vertical SHOW VARIABLES LIKE 'log_bin%' diff --git a/mysql-test/suite/binlog/t/binlog_variables_log_bin_index-master.opt b/mysql-test/suite/binlog/t/binlog_variables_log_bin_index-master.opt new file mode 100644 index 00000000..68e580bd --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_variables_log_bin_index-master.opt @@ -0,0 +1,2 @@ +--log-bin=other +--log-bin-index=$MYSQLTEST_VARDIR/tmp/something.index diff --git a/mysql-test/suite/binlog/t/binlog_variables_log_bin_index.test b/mysql-test/suite/binlog/t/binlog_variables_log_bin_index.test new file mode 100644 index 00000000..d94d565d --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_variables_log_bin_index.test @@ -0,0 +1,4 @@ +--source include/not_embedded.inc + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--query_vertical SHOW VARIABLES LIKE 'log_bin%' diff --git a/mysql-test/suite/binlog/t/binlog_variables_relay_log-master.opt b/mysql-test/suite/binlog/t/binlog_variables_relay_log-master.opt new file mode 100644 index 00000000..a01432d7 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_variables_relay_log-master.opt @@ -0,0 +1 @@ +--relay-log=other-relay diff --git a/mysql-test/suite/binlog/t/binlog_variables_relay_log.test b/mysql-test/suite/binlog/t/binlog_variables_relay_log.test new file mode 100644 index 00000000..27ef1d73 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_variables_relay_log.test @@ -0,0 +1,5 @@ +--source include/not_embedded.inc + +let $relay_log_index=`select substring_index(@@relay_log_index,'/',-1)`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $relay_log_index mysqld-relay-bin.index +--query_vertical SHOW VARIABLES LIKE 'relay_log%' diff --git a/mysql-test/suite/binlog/t/binlog_variables_relay_log_index-master.opt b/mysql-test/suite/binlog/t/binlog_variables_relay_log_index-master.opt new file mode 100644 index 00000000..eeabaca1 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_variables_relay_log_index-master.opt @@ -0,0 +1,2 @@ +--relay-log=other-relay +--relay-log-index=$MYSQLTEST_VARDIR/tmp/something-relay.index diff --git a/mysql-test/suite/binlog/t/binlog_variables_relay_log_index.test b/mysql-test/suite/binlog/t/binlog_variables_relay_log_index.test new file mode 100644 index 00000000..1e987901 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_variables_relay_log_index.test @@ -0,0 +1,4 @@ +--source include/not_embedded.inc + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--query_vertical SHOW VARIABLES LIKE 'relay_log%' diff --git a/mysql-test/suite/binlog/t/binlog_write_error.test b/mysql-test/suite/binlog/t/binlog_write_error.test new file mode 100644 index 00000000..2c55173c --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_write_error.test @@ -0,0 +1,82 @@ +# +# This file is included by binlog_encryption.binlog_write_error +# Please check all dependent tests after modifying it +# + +# +# === Name === +# +# binlog_write_error.test +# +# === Description === +# +# This test case check if the error of writing binlog file is properly +# reported and handled when executing statements. +# +# === Related Bugs === +# +# BUG#37148 +# + +source include/have_debug.inc; +source include/have_binlog_format_mixed_or_statement.inc; + +--echo # +--echo # Test injecting binlog write error when executing queries +--echo # + +let $query= CREATE TABLE t1 (a INT); +source include/binlog_inject_error.inc; + +INSERT INTO t1 VALUES (1),(2),(3); + +let $query= INSERT INTO t1 VALUES (4),(5),(6); +source include/binlog_inject_error.inc; + +let $query= UPDATE t1 set a=a+1; +source include/binlog_inject_error.inc; + +let $query= DELETE FROM t1; +source include/binlog_inject_error.inc; + +let $query= CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100); +source include/binlog_inject_error.inc; + +let $query= DROP TRIGGER tr1; +source include/binlog_inject_error.inc; + +let $query= ALTER TABLE t1 ADD (b INT); +source include/binlog_inject_error.inc; + +let $query= CREATE VIEW v1 AS SELECT a FROM t1; +source include/binlog_inject_error.inc; + +let $query= DROP VIEW v1; +source include/binlog_inject_error.inc; + +let $query= CREATE PROCEDURE p1(OUT rows_cnt INT) SELECT count(*) INTO rows_cnt FROM t1; +source include/binlog_inject_error.inc; + +let $query= DROP PROCEDURE p1; +source include/binlog_inject_error.inc; + +let $query= DROP TABLE t1; +source include/binlog_inject_error.inc; + +let $query= CREATE FUNCTION f1() RETURNS INT return 1; +source include/binlog_inject_error.inc; + +let $query= DROP FUNCTION f1; +source include/binlog_inject_error.inc; + +let $query= CREATE USER user1; +source include/binlog_inject_error.inc; + +let $query= REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1; +source include/binlog_inject_error.inc; + +let $query= SET PASSWORD FOR user1=PASSWORD('foobar'); +source include/binlog_inject_error.inc; + +let $query= DROP USER user1; +source include/binlog_inject_error.inc; diff --git a/mysql-test/suite/binlog/t/binlog_xa_checkpoint.test b/mysql-test/suite/binlog/t/binlog_xa_checkpoint.test new file mode 100644 index 00000000..b208d02c --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_xa_checkpoint.test @@ -0,0 +1,57 @@ +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_debug_sync.inc +--source include/have_binlog_format_row.inc + +RESET MASTER; + +CREATE TABLE t1 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Innodb; + +# Test that +# 1. XA PREPARE is binlogged before the XA has been prepared in Engine +# 2. While XA PREPARE already binlogged in an old binlog file which has been rotated, +# Binlog checkpoint is not generated for the latest log until +# XA PREPARE returns, e.g OK to the client. + + +# con1 will hang before doing commit checkpoint, blocking RESET MASTER. +connect(con1,localhost,root,,); +SET DEBUG_SYNC= "at_unlog_xa_prepare SIGNAL con1_ready WAIT_FOR con1_go"; +XA START '1'; +INSERT INTO t1 SET a=1; +XA END '1'; +--send XA PREPARE '1'; + + +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con1_ready"; +FLUSH LOGS; +FLUSH LOGS; +FLUSH LOGS; + +--source include/show_binary_logs.inc +--let $binlog_file= master-bin.000004 +--let $binlog_start= 4 +--source include/show_binlog_events.inc + +SET DEBUG_SYNC= "now SIGNAL con1_go"; + +connection con1; +reap; +--echo *** master-bin.000004 checkpoint must show up now *** +--source include/wait_for_binlog_checkpoint.inc + +# Todo: think about the error code returned, move to an appropriate test, or remove +# connection default; +#--error 1399 +# DROP TABLE t1; + +connection con1; +XA ROLLBACK '1'; +SET debug_sync = 'reset'; + +# Clean up. +connection default; + +DROP TABLE t1; +SET debug_sync = 'reset'; diff --git a/mysql-test/suite/binlog/t/binlog_xa_prepared.inc b/mysql-test/suite/binlog/t/binlog_xa_prepared.inc new file mode 100644 index 00000000..b6306791 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_xa_prepared.inc @@ -0,0 +1,102 @@ +--source include/have_innodb.inc +--source include/have_perfschema.inc +# +# The test verifies binlogging of XA transaction and state of prepared XA +# as far as binlog is concerned. +# +# The prepared XA transactions can be disconnected from the client, +# discovered from another connection and commited or rolled back +# later. They also survive the server restart. The test runs two +# loops each consisting of prepared XA:s generation, their +# manipulation and a server restart followed with survived XA:s +# completion. +# +# Prepared XA can't get available to an external connection +# until connection that either leaves actively or is killed +# has completed a necessary part of its cleanup. +# Selecting from P_S.threads provides a method to learn that. +# +# Total number of connection each performing one insert into table +--let $conn_number=20 +# Number of rollbacks and commits from either side of the server restart +--let $rollback_number=5 +--let $commit_number=5 +# Number of transactions that are terminated before server restarts +--let $term_number=`SELECT $rollback_number + $commit_number` +# Instead of disconnect make some connections killed when their +# transactions got prepared. +--let $killed_number=5 +# make some connections disconnected by shutdown rather than actively +--let $server_disconn_number=5 +--let $prepared_at_server_restart = `SELECT $conn_number - $term_number` +# number a "warmup" connection after server restart, they all commit +--let $post_restart_conn_number=10 + +# Counter to be used in GTID consistency check. +# It's incremented per each non-XA transaction commit. +# Local to this file variable to control one-phase commit loop +--let $one_phase_number = 5 + +--connection default + +# Remove possibly preceeding binlogs and clear initialization time +# GTID executed info. In the following all transactions are counted +# to conduct verification at the end of the test. +if (`SELECT @@global.log_bin`) +{ + RESET MASTER; +} + +# Disconected and follower threads need synchronization +CREATE VIEW v_processlist as SELECT * FROM performance_schema.threads where type = 'FOREGROUND'; + +--eval call mtr.add_suppression("Found $prepared_at_server_restart prepared XA transactions") + +CREATE TABLE t (a INT) ENGINE=innodb; + +# Counter is incremented at the end of post restart to +# reflect number of loops done in correctness computation. +--let $restart_number = 0 +--let $how_to_restart=restart_mysqld.inc +--source suite/binlog/include/binlog_xa_prepared_do_and_restart.inc + +--let $how_to_restart=kill_and_restart_mysqld.inc +--source suite/binlog/include/binlog_xa_prepared_do_and_restart.inc + +--connection default + +# Few xs that commit in one phase, not subject to the server restart +# nor reconnect. +# This piece of test is related to mysqlbinlog recovery examine below. +--let $k = 0 +while ($k < $one_phase_number) +{ + --eval XA START 'one_phase_trx_$k' + --eval INSERT INTO t SET a=$k + --eval XA END 'one_phase_trx_$k' + --eval XA COMMIT 'one_phase_trx_$k' ONE PHASE + + --inc $k +} + +SELECT SUM(a) FROM t; +DROP TABLE t; +DROP VIEW v_processlist; + +let $outfile= $MYSQLTEST_VARDIR/tmp/mysqlbinlog.sql; +if (`SELECT @@global.log_bin`) +{ + # Recording proper samples of binlogged prepared XA:s + --source include/show_binlog_events.inc + --exec $MYSQL_BINLOG -R --to-last-log master-bin.000001 > $outfile +} + +--echo All transactions must be completed, to empty-list the following: +XA RECOVER; + +if (`SELECT @@global.log_bin`) +{ + --exec $MYSQL test < $outfile + --remove_file $outfile + XA RECOVER; +} diff --git a/mysql-test/suite/binlog/t/binlog_xa_prepared_disconnect.test b/mysql-test/suite/binlog/t/binlog_xa_prepared_disconnect.test new file mode 100644 index 00000000..2a318403 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_xa_prepared_disconnect.test @@ -0,0 +1,11 @@ +############################################################################### +# Bug#12161 Xa recovery and client disconnection +# Testing new server options and binary logging prepared XA transaction. +############################################################################### + +# +# MIXED mode is chosen because formats are varied inside the sourced tests. +# +--source include/have_binlog_format_mixed.inc + +--source suite/binlog/t/binlog_xa_prepared.inc diff --git a/mysql-test/suite/binlog/t/binlog_xa_recover.opt b/mysql-test/suite/binlog/t/binlog_xa_recover.opt new file mode 100644 index 00000000..f645a058 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_xa_recover.opt @@ -0,0 +1 @@ +--loose-skip-stack-trace --skip-core-file --loose-debug-dbug=+d,xa_recover_expect_master_bin_000004 diff --git a/mysql-test/suite/binlog/t/binlog_xa_recover.test b/mysql-test/suite/binlog/t/binlog_xa_recover.test new file mode 100644 index 00000000..3b2a7e45 --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_xa_recover.test @@ -0,0 +1,277 @@ +# +# This include file is used by more than one test suite +# (currently binlog and binlog_encryption). +# Please check all dependent tests after modifying it +# + +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_debug_sync.inc +--source include/have_binlog_format_row.inc +--source include/have_perfschema.inc +# Valgrind does not work well with test that crashes the server +--source include/not_valgrind.inc + +# (We do not need to restore these settings, as we crash the server). +SET GLOBAL max_binlog_size= 4096; +SET GLOBAL innodb_flush_log_at_trx_commit= 1; +RESET MASTER; + +CREATE TABLE t1 (a INT PRIMARY KEY, b MEDIUMTEXT) ENGINE=Innodb; +# Insert some data to force a couple binlog rotations (3), so we get some +# normal binlog checkpoints before starting the test. +INSERT INTO t1 VALUES (100, REPEAT("x", 4100)); +# Wait for the master-bin.000002 binlog checkpoint to appear. +--let $wait_for_all= 0 +--let $show_statement= SHOW BINLOG EVENTS IN "master-bin.000002" +--let $field= Info +--let $condition= = "master-bin.000002" +--source include/wait_show_condition.inc +INSERT INTO t1 VALUES (101, REPEAT("x", 4100)); +--let $wait_for_all= 0 +--let $show_statement= SHOW BINLOG EVENTS IN "master-bin.000003" +--let $field= Info +--let $condition= = "master-bin.000003" +--source include/wait_show_condition.inc +INSERT INTO t1 VALUES (102, REPEAT("x", 4100)); +--let $wait_for_all= 0 +--let $show_statement= SHOW BINLOG EVENTS IN "master-bin.000004" +--let $field= Info +--let $condition= = "master-bin.000004" +--source include/wait_show_condition.inc + +# Now start a bunch of transactions that span multiple binlog +# files. Leave then in the state prepared-but-not-committed in the engine +# and crash the server. Check that crash recovery is able to recover all +# of them. +# +# We use debug_sync to get all the transactions into the prepared state before +# we commit any of them. This is because the prepare step flushes the InnoDB +# redo log - including any commits made before, so recovery would become +# unnecessary, decreasing the value of this test. +# +# We arrange to have con1 with a prepared transaction in master-bin.000004, +# con2 and con3 with a prepared transaction in master-bin.000005, and a new +# empty master-bin.000006. So the latest binlog checkpoint should be +# master-bin.000006. + +connect(con1,localhost,root,,); +# First wait after prepare and before write to binlog. +SET DEBUG_SYNC= "ha_commit_trans_before_log_and_order SIGNAL con1_wait WAIT_FOR con1_cont"; +# Then complete InnoDB commit in memory (but not commit checkpoint / write to +# disk), and hang until crash, leaving a transaction to be XA recovered. +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con1_ready WAIT_FOR _ever"; +send INSERT INTO t1 VALUES (1, REPEAT("x", 4100)); + +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con1_wait"; + +connect(con2,localhost,root,,); +SET DEBUG_SYNC= "ha_commit_trans_before_log_and_order SIGNAL con2_wait WAIT_FOR con2_cont"; +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con2_ready WAIT_FOR _ever"; +send INSERT INTO t1 VALUES (2, NULL); + +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con2_wait"; + +connect(con3,localhost,root,,); +SET DEBUG_SYNC= "ha_commit_trans_before_log_and_order SIGNAL con3_wait WAIT_FOR con3_cont"; +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con3_ready WAIT_FOR _ever"; +send INSERT INTO t1 VALUES (3, REPEAT("x", 4100)); + +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con3_wait"; + +connect(con4,localhost,root,,); +SET DEBUG_SYNC= "ha_commit_trans_before_log_and_order SIGNAL con4_wait WAIT_FOR con4_cont"; +SET SESSION debug_dbug="+d,crash_commit_after_log"; +send INSERT INTO t1 VALUES (4, NULL); + +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con4_wait"; + +SET DEBUG_SYNC= "now SIGNAL con1_cont"; +SET DEBUG_SYNC= "now WAIT_FOR con1_ready"; +SET DEBUG_SYNC= "now SIGNAL con2_cont"; +SET DEBUG_SYNC= "now WAIT_FOR con2_ready"; +SET DEBUG_SYNC= "now SIGNAL con3_cont"; +SET DEBUG_SYNC= "now WAIT_FOR con3_ready"; + +# Check that everything is committed in binary log. +--source include/show_binary_logs.inc +--let $binlog_file= master-bin.000003 +--let $binlog_start= 4 +--source include/show_binlog_events.inc +--let $binlog_file= master-bin.000004 +--source include/show_binlog_events.inc +--let $binlog_file= master-bin.000005 +--source include/show_binlog_events.inc +--let $binlog_file= master-bin.000006 +--source include/show_binlog_events.inc + + +# Check that server will not purge too much. +PURGE BINARY LOGS TO "master-bin.000006"; +--source include/show_binary_logs.inc + +# Now crash the server with one more transaction in prepared state. +--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +wait-binlog_xa_recover.test +EOF +--error 0,2006,2013 +SET DEBUG_SYNC= "now SIGNAL con4_cont"; +connection con4; +--error 2006,2013 +reap; + +--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +restart-group_commit_binlog_pos.test +EOF + +connection default; +--enable_reconnect +--source include/wait_until_connected_again.inc + +# Check that all transactions are recovered. +SELECT a FROM t1 ORDER BY a; + +--echo Test that with multiple binlog checkpoints, recovery starts from the last one. +SET GLOBAL max_binlog_size= 4096; +SET GLOBAL innodb_flush_log_at_trx_commit= 1; +RESET MASTER; + +# Rotate to binlog master-bin.000003 while delaying binlog checkpoints. +# So we get multiple binlog checkpoints in master-bin.000003. +# Then complete the checkpoints, crash, and check that we only scan +# the necessary binlog file (ie. that we use the _last_ checkpoint). + +connect(con10,localhost,root,,); +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con10_ready WAIT_FOR con10_cont"; +send INSERT INTO t1 VALUES (10, REPEAT("x", 4100)); + +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con10_ready"; + +connect(con11,localhost,root,,); +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con11_ready WAIT_FOR con11_cont"; +send INSERT INTO t1 VALUES (11, REPEAT("x", 4100)); + +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con11_ready"; + +connect(con12,localhost,root,,); +SET DEBUG_SYNC= "commit_after_group_release_commit_ordered SIGNAL con12_ready WAIT_FOR con12_cont"; +send INSERT INTO t1 VALUES (12, REPEAT("x", 4100)); + +connection default; +SET DEBUG_SYNC= "now WAIT_FOR con12_ready"; +INSERT INTO t1 VALUES (13, NULL); + +--source include/show_binary_logs.inc +--let $binlog_file= master-bin.000004 +--let $binlog_start= 4 +--source include/show_binlog_events.inc + +SET DEBUG_SYNC= "now SIGNAL con10_cont"; +connection con10; +reap; +connection default; + +# We need to sync the test case with the background processing of the +# commit checkpoint, otherwise we get nondeterministic results. +let $wait_condition= select count(*) = 1 from performance_schema.threads where processlist_state = "Waiting for background binlog tasks"; +--source include/wait_condition.inc + +SET DEBUG_SYNC= "now SIGNAL con12_cont"; +connection con12; +reap; +connection default; + +SET DEBUG_SYNC= "now SIGNAL con11_cont"; +connection con11; +reap; + +connection default; +# Wait for the last (master-bin.000004) binlog checkpoint to appear. +--let $wait_for_all= 0 +--let $show_statement= SHOW BINLOG EVENTS IN "master-bin.000004" +--let $field= Info +--let $condition= = "master-bin.000004" +--source include/wait_show_condition.inc + +--echo Now crash the server +# It is not too easy to test XA recovery, as it runs early during server +# startup, before any connections can be made. +# What we do is set a DBUG error insert which will crash if XA recovery +# starts from any other binlog than master-bin.000004 (check the file +# binlog_xa_recover-master.opt). Then we will fail here if XA recovery +# would start from the wrong place. +--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +wait-binlog_xa_recover.test +EOF +SET SESSION debug_dbug="+d,crash_commit_after_log"; +--error 2006,2013 +INSERT INTO t1 VALUES (14, NULL); + +--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +restart-group_commit_binlog_pos.test +EOF + +connection default; +--enable_reconnect +--source include/wait_until_connected_again.inc + +# Check that all transactions are recovered. +SELECT a FROM t1 ORDER BY a; + + +--echo *** Check that recovery works if we crashed early during rotate, before +--echo *** binlog checkpoint event could be written. + +SET GLOBAL max_binlog_size= 4096; +SET GLOBAL innodb_flush_log_at_trx_commit= 1; +RESET MASTER; + +# We need some initial data to reach binlog master-bin.000004. Otherwise +# crash recovery fails due to the error insert used for previous test. +INSERT INTO t1 VALUES (21, REPEAT("x", 4100)); +INSERT INTO t1 VALUES (22, REPEAT("x", 4100)); +# Wait for the master-bin.000003 binlog checkpoint to appear. +--let $wait_for_all= 0 +--let $show_statement= SHOW BINLOG EVENTS IN "master-bin.000003" +--let $field= Info +--let $condition= = "master-bin.000003" +--source include/wait_show_condition.inc +INSERT INTO t1 VALUES (23, REPEAT("x", 4100)); +# Wait for the last (master-bin.000004) binlog checkpoint to appear. +--let $wait_for_all= 0 +--let $show_statement= SHOW BINLOG EVENTS IN "master-bin.000004" +--let $field= Info +--let $condition= = "master-bin.000004" +--source include/wait_show_condition.inc + +--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +wait-binlog_xa_recover.test +EOF +SET SESSION debug_dbug="+d,crash_before_write_checkpoint_event"; +--error 2006,2013 +INSERT INTO t1 VALUES (24, REPEAT("x", 4100)); + +--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +restart-group_commit_binlog_pos.test +EOF + +--enable_reconnect +--source include/wait_until_connected_again.inc + +# Check that all transactions are recovered. +SELECT a FROM t1 ORDER BY a; + +--source include/show_binary_logs.inc +--let $binlog_file= master-bin.000004 +--let $binlog_start= 4 +--source include/show_binlog_events.inc + +# Cleanup +connection default; +DROP TABLE t1; diff --git a/mysql-test/suite/binlog/t/flashback-largebinlog.test b/mysql-test/suite/binlog/t/flashback-largebinlog.test new file mode 100644 index 00000000..fb2703df --- /dev/null +++ b/mysql-test/suite/binlog/t/flashback-largebinlog.test @@ -0,0 +1,114 @@ +# mysqlbinlog_big.test +# +# Show that mysqlbinlog can handle big rows. +# + +# +# The *huge* output of mysqlbinlog will be redirected to +# $MYSQLTEST_VARDIR/$mysqlbinlog_output +# +--let $mysqlbinlog_output= tmp/mysqlbinlog_big_1.out + +--source include/have_binlog_format_row.inc + +--source include/have_log_bin.inc + +# This is a big test. +--source include/big_test.inc +# Test needs more than 4G of memory +--source include/have_64bit.inc + +--echo # +--echo # Preparatory cleanup. +--echo # +--disable_warnings +drop database if exists mysqltest; +create database mysqltest; +use mysqltest; +DROP TABLE IF EXISTS t1; +--enable_warnings + +--echo # +--echo # We need a fixed timestamp to avoid varying results. +--echo # +SET timestamp=1000000000; + +--echo # +--echo # We need big packets. +--echo # +--echo # Capture initial value to reset at the end of the test +# use let $<var> = query_get_value as FLUSH statements +# in the test will set @<var> values to NULL +let $orig_max_allowed_packet = +query_get_value(SELECT @@global.max_allowed_packet, @@global.max_allowed_packet, 1); + +--echo # Now adjust max_allowed_packet +SET @@global.max_allowed_packet= 10*1024*1024*1024; + +--echo max_allowed_packet is a global variable. +--echo In order for the preceding change in max_allowed_packets' value +--echo to be seen and used, we must start a new connection. +--echo The change does not take effect with the current one. +--echo For simplicity, we just disconnect / reconnect connection default here. +disconnect default; +connect (default, localhost,root,,); + +--echo # +--echo # Delete all existing binary logs. +--echo # +RESET MASTER; + +--echo # +--echo # Create a test table. +--echo # +use mysqltest; +eval CREATE TABLE t1 ( + c1 LONGTEXT + ) DEFAULT CHARSET latin1; + +--echo # +--echo # Show how many rows are affected by each statement. +--echo # +--enable_info + +--echo # +--echo # Insert some big rows. +--echo # + +--echo insert 1024MB data twice +INSERT INTO t1 VALUES (REPEAT('ManyMegaByteBlck', 67108864)); +INSERT INTO t1 VALUES (REPEAT('MegaByteBlckMany', 67108864)); + +--echo # +--echo # Flush all log buffers to the log file. +--echo # +FLUSH LOGS; + +--echo # +--echo # Call mysqlbinlog to display the log file contents. +--echo # NOTE: The output of mysqlbinlog is redirected to +--echo # \$MYSQLTEST_VARDIR/$mysqlbinlog_output +--echo # If you want to examine it, disable remove_file +--echo # at the bottom of the test script. +--echo # +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR> +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ +--exec $MYSQL_BINLOG -B -v -v $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/$mysqlbinlog_output + +--echo # +--echo # Cleanup. +--echo # +--echo # reset variable value to pass testcase checks +--disable_query_log +eval SET @@global.max_allowed_packet = $orig_max_allowed_packet; +--enable_query_log +DROP TABLE t1; +drop database if exists mysqltest; + +--echo remove_file \$MYSQLTEST_VARDIR/$mysqlbinlog_output +# +# NOTE: If you want to see the *huge* mysqlbinlog output, disable next line: +# +--remove_file $MYSQLTEST_VARDIR/$mysqlbinlog_output + diff --git a/mysql-test/suite/binlog/t/flashback-master.opt b/mysql-test/suite/binlog/t/flashback-master.opt new file mode 100644 index 00000000..476efbe2 --- /dev/null +++ b/mysql-test/suite/binlog/t/flashback-master.opt @@ -0,0 +1,2 @@ +--flashback +--timezone=GMT-8 diff --git a/mysql-test/suite/binlog/t/flashback.test b/mysql-test/suite/binlog/t/flashback.test new file mode 100644 index 00000000..abe054e4 --- /dev/null +++ b/mysql-test/suite/binlog/t/flashback.test @@ -0,0 +1,370 @@ +--source include/have_log_bin.inc +--source include/have_innodb.inc + +--echo # +--echo # Preparatory cleanup. +--echo # +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +--echo # +--echo # We need a fixed timestamp to avoid varying results. +--echo # +SET timestamp=1000000000; + +--echo # < CASE 1 > +--echo # Delete all existing binary logs. +--echo # +RESET MASTER; + +CREATE TABLE t1 ( + c01 tinyint, + c02 smallint, + c03 mediumint, + c04 int, + c05 bigint, + c06 char(10), + c07 varchar(20), + c08 TEXT +) ENGINE=InnoDB; + +--echo # < CASE 1 > +--echo # Insert data to t1 +--echo # +INSERT INTO t1 VALUES(0,0,0,0,0,'','',''); +INSERT INTO t1 VALUES(1,2,3,4,5, "abc", "abcdefg", "abcedfghijklmnopqrstuvwxyz"); +INSERT INTO t1 VALUES(127, 32767, 8388607, 2147483647, 9223372036854775807, repeat('a', 10), repeat('a', 20), repeat('a', 255)); + + +--echo # < CASE 1 > +--echo # Update t1 +--echo # +UPDATE t1 SET c01=100 WHERE c02=0 OR c03=3; + +--echo # < CASE 1 > +--echo # Clear t1 +--echo # +DELETE FROM t1; + +FLUSH LOGS; + +--echo # < CASE 1 > +--echo # Show mysqlbinlog result without -B +--echo # + +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 + +--echo # < CASE 1 > +--echo # Show mysqlbinlog result with -B +--echo # + +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ +--exec $MYSQL_BINLOG -B --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 + +--echo # < CASE 1 > +--echo # Insert data to t1 +--echo # +TRUNCATE TABLE t1; +INSERT INTO t1 VALUES(0,0,0,0,0,'','',''); +INSERT INTO t1 VALUES(1,2,3,4,5, "abc", "abcdefg", "abcedfghijklmnopqrstuvwxyz"); +INSERT INTO t1 VALUES(127, 32767, 8388607, 2147483647, 9223372036854775807, repeat('a', 10), repeat('a', 20), repeat('a', 60)); + +--echo # < CASE 1 > +--echo # Delete all existing binary logs. +--echo # +RESET MASTER; +SELECT * FROM t1; + +--echo # < CASE 1 > +--echo # Operate some data +--echo # + +UPDATE t1 SET c01=20; +UPDATE t1 SET c02=200; +UPDATE t1 SET c03=2000; + +DELETE FROM t1; + +FLUSH LOGS; + +--echo # < CASE 1 > +--echo # Flashback & Check the result +--echo # + +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--exec $MYSQL_BINLOG -vv $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_original_1.sql +--exec $MYSQL_BINLOG -B -vv $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_1.sql +--exec $MYSQL -e "SET binlog_format= ROW; source $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_1.sql;" + +SELECT * FROM t1; + +RESET MASTER; + +--echo # < CASE 2 > +--echo # UPDATE multi-rows in one event +--echo # + +BEGIN; +UPDATE t1 SET c01=10 WHERE c01=0; +UPDATE t1 SET c01=20 WHERE c01=10; +COMMIT; + +FLUSH LOGS; + +--echo # < CASE 2 > +--echo # Flashback & Check the result +--echo # + +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--exec $MYSQL_BINLOG -vv $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_original_2.sql +--exec $MYSQL_BINLOG -B -vv $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_2.sql +--exec $MYSQL -e "SET binlog_format= ROW; source $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_2.sql;" + +SELECT * FROM t1; + +DROP TABLE t1; + +--echo # < CASE 3 > +--echo # Self-referencing foreign keys +--echo # + +CREATE TABLE t1 (a INT PRIMARY KEY, b INT, FOREIGN KEY my_fk(b) REFERENCES t1(a)) ENGINE=InnoDB; + +BEGIN; +INSERT INTO t1 VALUES (1, NULL); +INSERT INTO t1 VALUES (2, 1), (3, 2), (4, 3); +COMMIT; + +SELECT * FROM t1; + +# New binlog +RESET MASTER; + +DELETE FROM t1 ORDER BY a DESC; + +FLUSH LOGS; + +--echo # < CASE 3 > +--echo # Flashback & Check the result +--echo # + +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--exec $MYSQL_BINLOG -vv $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_original_3.sql +--exec $MYSQL_BINLOG -B -vv $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_3.sql +--exec $MYSQL -e "SET binlog_format= ROW; source $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_3.sql;" + +SELECT * FROM t1; + +DROP TABLE t1; + +--echo # < CASE 4 > +--echo # Trigger +--echo # + +CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; +CREATE TABLE t2 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; + +BEGIN; +INSERT INTO t1 VALUES (1, NULL); +INSERT INTO t1 VALUES (2, 1), (3, 2), (4, 3); +INSERT INTO t2 VALUES (6, 7), (7, 8), (8, 9); +COMMIT; + +SELECT * FROM t1; +SELECT * FROM t2; + +CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW DELETE FROM t2 WHERE a = NEW.b; + +# New binlog +RESET MASTER; + +INSERT INTO t1 VALUES (5, 6), (7, 8); + +SELECT * FROM t1; +SELECT * FROM t2; + +FLUSH LOGS; + +--echo # < CASE 4 > +--echo # Flashback & Check the result +--echo # + +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--exec $MYSQL_BINLOG -vv $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_original_4.sql +--exec $MYSQL_BINLOG -B $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_4.sql +--exec $MYSQL -e "SET binlog_format= ROW; source $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_4.sql;" + +SELECT * FROM t1; +SELECT * FROM t2; + +DROP TRIGGER trg1; +DROP TABLE t1; +DROP TABLE t2; + +--echo # < CASE 5 > +--echo # REPLCAE Queries +--echo # + +CREATE TABLE t1 (a INT PRIMARY KEY, b INT, UNIQUE uk(b)) ENGINE=InnoDB; + +BEGIN; +INSERT INTO t1 VALUES (1, NULL); +INSERT INTO t1 VALUES (2, 1), (3, 2), (4, 3); +INSERT INTO t1 VALUES (5, 4), (6, 5), (7, 6); +COMMIT; + +SELECT * FROM t1; + +# New binlog +RESET MASTER; + +REPLACE INTO t1 VALUES (3, 100); +REPLACE INTO t1 SET a=4, b=200; + +SELECT * FROM t1; + +REPLACE INTO t1 VALUES (5,5); + +SELECT * FROM t1; + +FLUSH LOGS; + +--echo # < CASE 5 > +--echo # Flashback & Check the result +--echo # + +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--exec $MYSQL_BINLOG -vv $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_original_5.sql +--exec $MYSQL_BINLOG -B $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_5.sql +--exec $MYSQL -e "SET binlog_format= ROW; source $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_5.sql;" + +SELECT * FROM t1; + +DROP TABLE t1; + + +--echo # < CASE 6 > +--echo # Test Case from MDEV-21067 +--echo # + +# Init Structure +CREATE DATABASE world; +CREATE TABLE world.city ( + ID INT AUTO_INCREMENT PRIMARY KEY, + Name VARCHAR(64), + CountryCode VARCHAR(64), + District VARCHAR(64), + Population INT +) ENGINE=InnoDB; +CREATE TABLE test.test ( + ID INT AUTO_INCREMENT PRIMARY KEY, + REC VARCHAR(64), + ts TIMESTAMP +) ENGINE=InnoDB; + +INSERT INTO world.city VALUES (NULL, 'Davenport', 'USA', 'Iowa', 100); +INSERT INTO world.city VALUES (NULL, 'Boulder', 'USA', 'Colorado', 1000); +INSERT INTO world.city VALUES (NULL, 'Gweru', 'ZWE', 'Midlands', 10000); + +RESET MASTER; + +CHECKSUM TABLE world.city; + +# Insert test data +INSERT INTO test.test VALUES (NULL, 'Good record 1', CURRENT_TIMESTAMP()); + +INSERT INTO world.city VALUES (NULL, 'Wrong value 1', '000', 'Wrong', 0); +INSERT INTO world.city VALUES (NULL, 'Wrong value 2', '000', 'Wrong', 0) , (NULL, 'Wrong value 3', '000', 'Wrong', 0); + +INSERT INTO test.test VALUES (NULL, 'Good record 2', CURRENT_TIMESTAMP()); + +UPDATE world.city SET Population = 99999999 WHERE ID IN (1, 2, 3); + +INSERT INTO test.test VALUES (NULL, 'Good record 3', CURRENT_TIMESTAMP()); + +DELETE FROM world.city WHERE ID BETWEEN 1 AND 2; + +INSERT INTO test.test VALUES (NULL, 'Good record 5', CURRENT_TIMESTAMP()); + +REPLACE INTO world.city VALUES (4074, 'Wrong value 4', '000', 'Wrong', 0); +REPLACE INTO world.city VALUES (4078, 'Wrong value 5', '000', 'Wrong', 0), (NULL, 'Wrong value 6', '000', 'Wrong', 0); + +INSERT INTO test.test VALUES (NULL, 'Good record 6', CURRENT_TIMESTAMP()); + +INSERT INTO world.city +SELECT NULL, Name, CountryCode, District, Population FROM world.city WHERE ID BETWEEN 2 AND 10; + +INSERT INTO test.test VALUES (NULL, 'Good record 7', CURRENT_TIMESTAMP()); + +INSERT INTO test.test VALUES (NULL, 'Good record 8', CURRENT_TIMESTAMP()); + +DELETE FROM world.city; + +INSERT INTO test.test VALUES (NULL, 'Good record 9', CURRENT_TIMESTAMP()); + +FLUSH LOGS; + +--echo # < CASE 6 > +--echo # Flashback & Check the result +--echo # + +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--exec $MYSQL_BINLOG --database=world --table=city -vv $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_original_6.sql +--exec $MYSQL_BINLOG --database=world --table=city -B $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_6.sql +--exec $MYSQL -e "SET binlog_format= ROW; source $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_6.sql;" + +SELECT * FROM world.city; + +SELECT * FROM test.test; + +CHECKSUM TABLE world.city; + +DROP TABLE test.test; +DROP TABLE world.city; +DROP DATABASE world; + +--echo # < CASE 7 > +--echo # Test Case for MDEV-17260 +--echo # + +RESET MASTER; + +CREATE TABLE t1 ( f INT PRIMARY KEY ) ENGINE=innodb; +INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6); +--echo # 6- Rows must be present +SELECT COUNT(*) FROM t1; +FLUSH LOGS; +DELETE FROM t1; +FLUSH LOGS; + +--echo # 0- Rows must be present +--let $assert_cond= COUNT(*) = 0 FROM t1 +--let $assert_text= Table t1 should have 0 rows. +--source include/assert.inc + +--exec $MYSQL_BINLOG -vv -B --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002> $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_7.sql +--exec $MYSQL -e "SET binlog_format= ROW; source $MYSQLTEST_VARDIR/tmp/mysqlbinlog_row_flashback_7.sql;" + +--echo # 6- Rows must be present upon restoring from flashback +--let $assert_cond= COUNT(*) = 6 FROM t1 +--let $assert_text= Table t1 should have six rows. +--source include/assert.inc + +DROP TABLE t1; + +## Clear +SET binlog_format=statement; +--error ER_FLASHBACK_NOT_SUPPORTED +SET GLOBAL binlog_format=statement; diff --git a/mysql-test/suite/binlog/t/foreign_key.test b/mysql-test/suite/binlog/t/foreign_key.test new file mode 100644 index 00000000..87c719e4 --- /dev/null +++ b/mysql-test/suite/binlog/t/foreign_key.test @@ -0,0 +1,22 @@ +--source include/have_innodb.inc +--source include/have_binlog_format_row.inc + +reset master; + +CREATE TABLE t1 ( + id INT, + k INT, + c CHAR(8), + KEY (k), + PRIMARY KEY (id), + FOREIGN KEY (id) REFERENCES t1 (k) +) ENGINE=InnoDB; +LOCK TABLES t1 WRITE; +SET SESSION FOREIGN_KEY_CHECKS= OFF; +SET AUTOCOMMIT=OFF; +INSERT INTO t1 VALUES (1,1,'foo'); +DROP TABLE t1; +SET SESSION FOREIGN_KEY_CHECKS= ON; +SET AUTOCOMMIT=ON; + +source include/show_binlog_events.inc; diff --git a/mysql-test/suite/binlog/t/load_data_stm_view.test b/mysql-test/suite/binlog/t/load_data_stm_view.test new file mode 100644 index 00000000..9f64b813 --- /dev/null +++ b/mysql-test/suite/binlog/t/load_data_stm_view.test @@ -0,0 +1,24 @@ +# +# MDEV-3940 Server crash or assertion `item->type() == Item::STRING_ITEM' failure on LOAD DATA through a view with statement binary logging +# + +--source include/have_binlog_format_statement.inc + +--write_file $MYSQLTEST_VARDIR/3940.data +1 +EOF + +reset master; + +create table t1 (i int, j int); +create view v1 as select i from t1; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval LOAD DATA LOCAL INFILE '$MYSQLTEST_VARDIR/3940.data' INTO TABLE v1 (i) +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval LOAD DATA LOCAL INFILE '$MYSQLTEST_VARDIR/3940.data' INTO TABLE v1 +select * from v1; +--let $binlog_file = LAST +--source include/show_binlog_events.inc +drop view v1; +drop table t1; +--remove_file $MYSQLTEST_VARDIR/3940.data diff --git a/mysql-test/suite/binlog/t/mysqladmin.test b/mysql-test/suite/binlog/t/mysqladmin.test new file mode 100644 index 00000000..3c2fbc0a --- /dev/null +++ b/mysql-test/suite/binlog/t/mysqladmin.test @@ -0,0 +1,12 @@ +source include/have_binlog_format_statement.inc; +# +# MDEV-12612 mysqladmin --local flush... to use FLUSH LOCAL +# +create user adm@localhost identified by 'foobar'; +grant reload on *.* to adm@localhost; +reset master; +exec $MYSQLADMIN -uadm -pfoobar flush-status; +source include/show_binlog_events.inc; +exec $MYSQLADMIN --local -uadm -pfoobar flush-status; +source include/show_binlog_events.inc; +drop user adm@localhost; diff --git a/mysql-test/suite/binlog/t/read_only.inc b/mysql-test/suite/binlog/t/read_only.inc new file mode 100644 index 00000000..37f1cb3b --- /dev/null +++ b/mysql-test/suite/binlog/t/read_only.inc @@ -0,0 +1,79 @@ +--echo # +--echo # MDEV-17863 DROP TEMPORARY TABLE creates a transaction in +--echo # binary log on read only server +--echo # MDEV-19074 Improved read_only mode for slaves with +--echo # gtid_strict_mode enabled +--echo # + +create user test@localhost; +grant CREATE, DROP, INSERT, SELECT on *.* to test@localhost; +create table t1 (a int) engine=myisam; +insert into t1 values (1),(2); +reset master; + +set global read_only=1; +--echo # Ensure that optimize and analyze doesn't log to binary log +connect (con1,localhost,test,,test); +--error ER_OPTION_PREVENTS_STATEMENT +insert into t1 values(3); +analyze table t1; +check table t1; +repair table t1; +--error ER_OPTION_PREVENTS_STATEMENT +optimize table t1; + +--echo # Ensure that using temporary tables is not logged +create temporary table tmp1 (a int) engine=myisam; +insert into tmp1 values (1),(2); +update tmp1 set a=10 where a=2; +delete from tmp1 where a=1; +create temporary table tmp2 select * from t1; +select * from tmp1; +select * from tmp2; +create temporary table tmp3 like t1; +create or replace temporary table tmp3 like t1; +alter table tmp2 add column (b int); +select * from tmp2; +--error ER_OPTION_PREVENTS_STATEMENT +insert into t1 select a+100 from tmp2; +drop table tmp1,tmp2,tmp3; + +--echo # Clean up test connection +disconnect con1; +connection default; + +--echo # Execute some commands as root that should not be logged +optimize table t1; +repair table t1; + +--echo # Changes to temporary tables created under readonly should not +--echo # be logged +create temporary table tmp4 (a int) engine=myisam; +insert into tmp4 values (1),(2); +create temporary table tmp5 (a int) engine=myisam; +insert into tmp5 select * from tmp4; +alter table tmp5 add column (b int); + +set global read_only=0; + +insert into tmp4 values (3),(4); +insert into tmp5 values (10,3),(11,4); +select * from tmp4; +select * from tmp5; +update tmp4 set a=10 where a=2; +delete from tmp4 where a=1; +create table t2 select * from tmp4; +alter table tmp5 add column (c int); +insert into tmp5 values (20,5,1),(21,5,2); +select * from tmp5; +insert into t1 select a+200 from tmp5; +select * from t1; +drop table tmp4,tmp5; + +--echo # Check what is logged. Only last create select and the insert...select's should be +--echo # row-logged +source include/show_binlog_events.inc; + +--echo # Clean up +drop user test@localhost; +drop table t1,t2; diff --git a/mysql-test/suite/binlog/t/read_only.test b/mysql-test/suite/binlog/t/read_only.test new file mode 100644 index 00000000..14a4650b --- /dev/null +++ b/mysql-test/suite/binlog/t/read_only.test @@ -0,0 +1,2 @@ +--source include/have_binlog_format_mixed_or_row.inc +--source read_only.inc diff --git a/mysql-test/suite/binlog/t/read_only_statement.test b/mysql-test/suite/binlog/t/read_only_statement.test new file mode 100644 index 00000000..a976854f --- /dev/null +++ b/mysql-test/suite/binlog/t/read_only_statement.test @@ -0,0 +1,2 @@ +--source include/have_binlog_format_statement.inc +--source read_only.inc diff --git a/mysql-test/suite/binlog/t/show_concurrent_rotate.test b/mysql-test/suite/binlog/t/show_concurrent_rotate.test new file mode 100644 index 00000000..79d36c30 --- /dev/null +++ b/mysql-test/suite/binlog/t/show_concurrent_rotate.test @@ -0,0 +1,24 @@ +--source include/have_debug.inc +--source include/have_debug_sync.inc +# mere to limit it run rate +--source include/have_binlog_format_row.inc + +connect(con1,localhost,root,,); +FLUSH LOGS; +FLUSH LOGS; +FLUSH LOGS; + +SET DEBUG_SYNC= "at_after_lock_index WAIT_FOR con1_go"; +--send SHOW BINARY LOGS + +connect(con2,localhost,root,,); +RESET MASTER; +FLUSH LOGS; +SET DEBUG_SYNC= "now SIGNAL con1_go"; + +--connection con1 +--echo # The correct result must consists of two records +--replace_column 2 # +--reap + +SET debug_sync = 'reset'; diff --git a/mysql-test/suite/binlog/t/temptable_uservar_disconnect-7938.test b/mysql-test/suite/binlog/t/temptable_uservar_disconnect-7938.test new file mode 100644 index 00000000..a1d91e2f --- /dev/null +++ b/mysql-test/suite/binlog/t/temptable_uservar_disconnect-7938.test @@ -0,0 +1,17 @@ +# +# MDEV-7938 MariaDB Crashes Suddenly while writing binlogs +# +--source include/have_log_bin.inc +--source include/have_binlog_format_mixed.inc + +--connect(con1,localhost,root,,) +create table t1 (i int); +create trigger tr after insert on t1 for each row set @b=@a; + +create temporary table tmp like t1; +insert into t1 values (1); +--disconnect con1 + +--connection default +select * from t1; +drop table t1; |