mirror of
https://github.com/MariaDB/server.git
synced 2026-05-10 17:14:30 +02:00
We now reset the THD members related to auto_increment+binlog in MYSQL_LOG::write(). This is better than in THD::cleanup_after_query(), which was not able to distinguish between SELECT myfunc1(),myfunc2() and INSERT INTO t SELECT myfunc1(),myfunc2() from a binlogging point of view. Rows_log_event::exec_event() now calls lex_start() instead of mysql_init_query() because the latter now does too much (it resets the binlog format). mysql-test/extra/rpl_tests/rpl_insert_id.test: fix after merge mysql-test/mysql-test-run.pl: -v does not bring useful information when running valgrind; I remove it; if you think it's useful add it back. mysql-test/r/binlog_stm_mix_innodb_myisam.result: Position columns of SHOW BINLOG EVENTS are replaced by # (more robust if the size of an event changes). mysql-test/r/rpl_insert_id.result: fix after merge mysql-test/r/rpl_loaddata.result: The binlog positions change, because one event disappeared; indeed there was this in the binlog (in the current 5.1!): SET INSERT_ID=2; SET INSERT_ID=1; SET TIMESTAMP=1152540671; load data LOCAL INFILE '/tmp/SQL_LOAD_MB-1-2' INTO table t1; Two INSERT_ID events, useless and a bug. Goes away afer cleaning up auto_increment handling. mysql-test/r/rpl_switch_stm_row_mixed.result: INSERT_ID=5 appears, it's a consequence of having merged the fix for BUG#20341 "stored function inserting into one auto_increment puts bad data in slave". In mixed mode, if one substatement of a stored procedure requires row-based, the entire procedure uses row-based (was already true for stored functions); this is a consequence of not doing the resetting of binlog format inside lock_tables() (which didn't work with how the slave thread executes row-based binlog events). mysql-test/t/rpl_switch_stm_row_mixed.test: removing the multi-row delayed insert because in RBR the number of events which it generates, is not repeatable (probably depends on how the delayed thread groups rows, i.e. dependent on timing). sql/ha_partition.cc: update to new prototype sql/ha_partition.h: update to new prototype of the handler:: method. sql/handler.cc: after-merge fixes (manually merging part which was hard to merge in fmtool) sql/log.cc: When we write to the binary log, THD's parameters which influenced this write are reset: stmt_depends_on_first_successful_insert_id_in_prev_stmt and auto_inc_intervals_in_cur_stmt_for_binlog. This is so that future writes are not influenced by those and can write their own values. As a consequence, when we don't write to the binlog we do not reset. This is to abide by the rule that in a complex statement (using triggers etc), the first top- or substatement to generate auto_increment ids wins their writing to the binlog (that writing may be done by the statement itself or by the caller); so for example for INSERT INTO t SELECT myfunc() where myfunc() inserts into auto_increment and INSERT INTO t does not, myfunc() will fill auto_inc_intervals_in_cur_stmt_for_binlog, which will not be reset when myfunc() ends, then INSERT INTO t will write to the binlog and thus write the preserved auto_inc_intervals_in_cur_stmt_for_binlog. sql/log_event.cc: mysql_init_query() does too much now to be called in Rows_log_event::exec_event (it call mysql_reset_thd_for_next_command() which may switch the binlog format now). It's ok to call it in Table_map_log_event::exec_event() but its call must be before setting the binlog format to "row". sql/sql_base.cc: Resetting the binlog format in lock_tables() was a bad idea of mine; it causes problems in execution of row-based binlog events, where the thread sets the binlog format by itself and does not want a next lock_tables() to reset the binlog format. It is also misleading, for a function named lock_tables(), to reset the binlog format. As a consequence of this change, in mixed binlogging mode, a routine is logged either entirely statement-based or entirely row-based, we don't switch in the middle (this was already true for prelocked routines, now it's also true for stored procedures). sql/sql_class.cc: resetting of auto_increment variables used for binlogging is now done when writing to the binary log, no need to do the resetting at the end of the statement. It is also more correct this way; consider SELECT myfunc1(),myfunc2(); where both functions insert into the same auto_increment column. Binlogging is done in 2 events: "SELECT myfunc1()" and "SELECT myfunc2()". So each of those needs to have, in binlog, the INSERT_ID which it inserted. But as the 2 function calls are executed under prelocked mode, the old code didn't reset auto_inc_intervals_in_cur_stmt_for_binlog after the first SELECT was binlogged, and so the INSERT_ID of the first SELECT was binlogged for the first SELECT and (wrong) also for the 2nd SELECT event. stmt_depends_on_first_... has the same logic. sql/sql_class.h: clearer comment sql/sql_delete.cc: unneeded #ifdef. As we temporarily change the binlog format to "statement" before calling mysql_delete(), we must restore it afterwards. sql/sql_insert.cc: after-merge fixes. No need to reset auto_inc_intervals_in_cur_stmt_for_binlog for every row in the delayed insert system thread, because we already reset it when writing to the binlog. sql/sql_parse.cc: unneeded #ifdef
665 lines
28 KiB
Text
665 lines
28 KiB
Text
stop slave;
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
reset master;
|
|
reset slave;
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
start slave;
|
|
drop database if exists mysqltest1;
|
|
create database mysqltest1;
|
|
use mysqltest1;
|
|
show global variables like "binlog_format%";
|
|
Variable_name Value
|
|
binlog_format ROW
|
|
show session variables like "binlog_format%";
|
|
Variable_name Value
|
|
binlog_format ROW
|
|
select @@global.binlog_format, @@session.binlog_format;
|
|
@@global.binlog_format @@session.binlog_format
|
|
ROW ROW
|
|
CREATE TABLE t1 (a varchar(100));
|
|
prepare stmt1 from 'insert into t1 select concat(UUID(),?)';
|
|
set @string="emergency_1_";
|
|
insert into t1 values("work_2_");
|
|
execute stmt1 using @string;
|
|
deallocate prepare stmt1;
|
|
prepare stmt1 from 'insert into t1 select ?';
|
|
insert into t1 values(concat(UUID(),"work_3_"));
|
|
execute stmt1 using @string;
|
|
deallocate prepare stmt1;
|
|
insert into t1 values(concat("for_4_",UUID()));
|
|
insert into t1 select "yesterday_5_";
|
|
create temporary table tmp(a char(100));
|
|
insert into tmp values("see_6_");
|
|
set binlog_format=statement;
|
|
ERROR HY000: Cannot switch out of the row-based binary log format when the session has open temporary tables
|
|
insert into t1 select * from tmp;
|
|
drop temporary table tmp;
|
|
set binlog_format=statement;
|
|
show global variables like "binlog_format%";
|
|
Variable_name Value
|
|
binlog_format ROW
|
|
show session variables like "binlog_format%";
|
|
Variable_name Value
|
|
binlog_format STATEMENT
|
|
select @@global.binlog_format, @@session.binlog_format;
|
|
@@global.binlog_format @@session.binlog_format
|
|
ROW STATEMENT
|
|
set global binlog_format=statement;
|
|
show global variables like "binlog_format%";
|
|
Variable_name Value
|
|
binlog_format STATEMENT
|
|
show session variables like "binlog_format%";
|
|
Variable_name Value
|
|
binlog_format STATEMENT
|
|
select @@global.binlog_format, @@session.binlog_format;
|
|
@@global.binlog_format @@session.binlog_format
|
|
STATEMENT STATEMENT
|
|
prepare stmt1 from 'insert into t1 select ?';
|
|
set @string="emergency_7_";
|
|
insert into t1 values("work_8_");
|
|
execute stmt1 using @string;
|
|
deallocate prepare stmt1;
|
|
prepare stmt1 from 'insert into t1 select ?';
|
|
insert into t1 values("work_9_");
|
|
execute stmt1 using @string;
|
|
deallocate prepare stmt1;
|
|
insert into t1 values("for_10_");
|
|
insert into t1 select "yesterday_11_";
|
|
set binlog_format=default;
|
|
select @@global.binlog_format, @@session.binlog_format;
|
|
@@global.binlog_format @@session.binlog_format
|
|
STATEMENT STATEMENT
|
|
set global binlog_format=default;
|
|
ERROR 42000: Variable 'binlog_format' doesn't have a default value
|
|
select @@global.binlog_format, @@session.binlog_format;
|
|
@@global.binlog_format @@session.binlog_format
|
|
STATEMENT STATEMENT
|
|
prepare stmt1 from 'insert into t1 select ?';
|
|
set @string="emergency_12_";
|
|
insert into t1 values("work_13_");
|
|
execute stmt1 using @string;
|
|
deallocate prepare stmt1;
|
|
prepare stmt1 from 'insert into t1 select ?';
|
|
insert into t1 values("work_14_");
|
|
execute stmt1 using @string;
|
|
deallocate prepare stmt1;
|
|
insert into t1 values("for_15_");
|
|
insert into t1 select "yesterday_16_";
|
|
set binlog_format=mixed;
|
|
select @@global.binlog_format, @@session.binlog_format;
|
|
@@global.binlog_format @@session.binlog_format
|
|
STATEMENT MIXED
|
|
set global binlog_format=mixed;
|
|
select @@global.binlog_format, @@session.binlog_format;
|
|
@@global.binlog_format @@session.binlog_format
|
|
MIXED MIXED
|
|
prepare stmt1 from 'insert into t1 select concat(UUID(),?)';
|
|
set @string="emergency_17_";
|
|
insert into t1 values("work_18_");
|
|
execute stmt1 using @string;
|
|
deallocate prepare stmt1;
|
|
prepare stmt1 from 'insert into t1 select ?';
|
|
insert into t1 values(concat(UUID(),"work_19_"));
|
|
execute stmt1 using @string;
|
|
deallocate prepare stmt1;
|
|
insert into t1 values(concat("for_20_",UUID()));
|
|
insert into t1 select "yesterday_21_";
|
|
prepare stmt1 from 'insert into t1 select ?';
|
|
insert into t1 values(concat(UUID(),"work_22_"));
|
|
execute stmt1 using @string;
|
|
deallocate prepare stmt1;
|
|
insert into t1 values(concat("for_23_",UUID()));
|
|
insert into t1 select "yesterday_24_";
|
|
create table t2 select rpad(UUID(),100,' ');
|
|
create table t3 select 1 union select UUID();
|
|
create table t4 select * from t1 where 3 in (select 1 union select 2 union select UUID() union select 3);
|
|
create table t5 select * from t1 where 3 in (select 1 union select 2 union select curdate() union select 3);
|
|
insert into t5 select UUID() from t1 where 3 in (select 1 union select 2 union select 3 union select * from t4);
|
|
create procedure foo()
|
|
begin
|
|
insert into t1 values("work_25_");
|
|
insert into t1 values(concat("for_26_",UUID()));
|
|
insert into t1 select "yesterday_27_";
|
|
end|
|
|
create procedure foo2()
|
|
begin
|
|
insert into t1 values(concat("emergency_28_",UUID()));
|
|
insert into t1 values("work_29_");
|
|
insert into t1 values(concat("for_30_",UUID()));
|
|
set session binlog_format=row; # accepted for stored procs
|
|
insert into t1 values("more work_31_");
|
|
set session binlog_format=mixed;
|
|
end|
|
|
create function foo3() returns bigint unsigned
|
|
begin
|
|
set session binlog_format=row; # rejected for stored funcs
|
|
insert into t1 values("alarm");
|
|
return 100;
|
|
end|
|
|
create procedure foo4(x varchar(100))
|
|
begin
|
|
insert into t1 values(concat("work_250_",x));
|
|
insert into t1 select "yesterday_270_";
|
|
end|
|
|
call foo();
|
|
call foo2();
|
|
call foo4("hello");
|
|
call foo4(UUID());
|
|
call foo4("world");
|
|
select foo3();
|
|
ERROR HY000: Cannot change the binary logging format inside a stored function or trigger
|
|
select * from t1 where a="alarm";
|
|
a
|
|
drop function foo3;
|
|
create function foo3() returns bigint unsigned
|
|
begin
|
|
insert into t1 values("foo3_32_");
|
|
call foo();
|
|
return 100;
|
|
end|
|
|
insert into t2 select foo3();
|
|
prepare stmt1 from 'insert into t2 select foo3()';
|
|
execute stmt1;
|
|
execute stmt1;
|
|
deallocate prepare stmt1;
|
|
create function foo4() returns bigint unsigned
|
|
begin
|
|
insert into t2 select foo3();
|
|
return 100;
|
|
end|
|
|
select foo4();
|
|
foo4()
|
|
100
|
|
prepare stmt1 from 'select foo4()';
|
|
execute stmt1;
|
|
foo4()
|
|
100
|
|
execute stmt1;
|
|
foo4()
|
|
100
|
|
deallocate prepare stmt1;
|
|
create function foo5() returns bigint unsigned
|
|
begin
|
|
insert into t2 select UUID();
|
|
return 100;
|
|
end|
|
|
select foo5();
|
|
foo5()
|
|
100
|
|
prepare stmt1 from 'select foo5()';
|
|
execute stmt1;
|
|
foo5()
|
|
100
|
|
execute stmt1;
|
|
foo5()
|
|
100
|
|
deallocate prepare stmt1;
|
|
create function foo6(x varchar(100)) returns bigint unsigned
|
|
begin
|
|
insert into t2 select x;
|
|
return 100;
|
|
end|
|
|
select foo6("foo6_1_");
|
|
foo6("foo6_1_")
|
|
100
|
|
select foo6(concat("foo6_2_",UUID()));
|
|
foo6(concat("foo6_2_",UUID()))
|
|
100
|
|
prepare stmt1 from 'select foo6(concat("foo6_3_",UUID()))';
|
|
execute stmt1;
|
|
foo6(concat("foo6_3_",UUID()))
|
|
100
|
|
execute stmt1;
|
|
foo6(concat("foo6_3_",UUID()))
|
|
100
|
|
deallocate prepare stmt1;
|
|
create view v1 as select uuid();
|
|
create table t11 (data varchar(255));
|
|
insert into t11 select * from v1;
|
|
insert into t11 select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='mysqltest1' and TABLE_NAME IN ('v1','t11');
|
|
prepare stmt1 from "insert into t11 select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='mysqltest1' and TABLE_NAME IN ('v1','t11')";
|
|
execute stmt1;
|
|
execute stmt1;
|
|
deallocate prepare stmt1;
|
|
create trigger t11_bi before insert on t11 for each row
|
|
begin
|
|
set NEW.data = concat(NEW.data,UUID());
|
|
end|
|
|
insert into t11 values("try_560_");
|
|
insert delayed into t2 values("delay_1_");
|
|
insert delayed into t2 values(concat("delay_2_",UUID()));
|
|
insert delayed into t2 values("delay_6_");
|
|
insert delayed into t2 values(rand());
|
|
set @a=2.345;
|
|
insert delayed into t2 values(@a);
|
|
create table t20 select * from t1;
|
|
create table t21 select * from t2;
|
|
create table t22 select * from t3;
|
|
drop table t1,t2,t3;
|
|
create table t1 (a int primary key auto_increment, b varchar(100));
|
|
create table t2 (a int primary key auto_increment, b varchar(100));
|
|
create table t3 (b varchar(100));
|
|
create function f (x varchar(100)) returns int deterministic
|
|
begin
|
|
insert into t1 values(null,x);
|
|
insert into t2 values(null,x);
|
|
return 1;
|
|
end|
|
|
select f("try_41_");
|
|
f("try_41_")
|
|
1
|
|
use mysqltest1;
|
|
insert into t2 values(2,null),(3,null),(4,null);
|
|
delete from t2 where a>=2;
|
|
select f("try_42_");
|
|
f("try_42_")
|
|
1
|
|
insert into t2 values(3,null),(4,null);
|
|
delete from t2 where a>=3;
|
|
prepare stmt1 from 'select f(?)';
|
|
set @string="try_43_";
|
|
insert into t1 values(null,"try_44_");
|
|
execute stmt1 using @string;
|
|
f(?)
|
|
1
|
|
deallocate prepare stmt1;
|
|
create table t12 select * from t1;
|
|
drop table t1;
|
|
create table t1 (a int, b varchar(100), key(a));
|
|
select f("try_45_");
|
|
f("try_45_")
|
|
1
|
|
create table t13 select * from t1;
|
|
drop table t1;
|
|
create table t1 (a int primary key auto_increment, b varchar(100));
|
|
drop function f;
|
|
create table t14 (unique (a)) select * from t2;
|
|
truncate table t2;
|
|
create function f1 (x varchar(100)) returns int deterministic
|
|
begin
|
|
insert into t1 values(null,x);
|
|
return 1;
|
|
end|
|
|
create function f2 (x varchar(100)) returns int deterministic
|
|
begin
|
|
insert into t2 values(null,x);
|
|
return 1;
|
|
end|
|
|
select f1("try_46_"),f2("try_47_");
|
|
f1("try_46_") f2("try_47_")
|
|
1 1
|
|
insert into t2 values(2,null),(3,null),(4,null);
|
|
delete from t2 where a>=2;
|
|
select f1("try_48_"),f2("try_49_");
|
|
f1("try_48_") f2("try_49_")
|
|
1 1
|
|
insert into t3 values(concat("try_50_",f1("try_51_"),f2("try_52_")));
|
|
drop function f2;
|
|
create function f2 (x varchar(100)) returns int deterministic
|
|
begin
|
|
declare y int;
|
|
insert into t1 values(null,x);
|
|
set y = (select count(*) from t2);
|
|
return y;
|
|
end|
|
|
select f1("try_53_"),f2("try_54_");
|
|
f1("try_53_") f2("try_54_")
|
|
1 3
|
|
drop function f2;
|
|
create trigger t1_bi before insert on t1 for each row
|
|
begin
|
|
insert into t2 values(null,"try_55_");
|
|
end|
|
|
insert into t1 values(null,"try_56_");
|
|
alter table t1 modify a int, drop primary key;
|
|
insert into t1 values(null,"try_57_");
|
|
CREATE TEMPORARY TABLE t15 SELECT UUID();
|
|
create table t16 like t15;
|
|
INSERT INTO t16 SELECT * FROM t15;
|
|
insert into t16 values("try_65_");
|
|
drop table t15;
|
|
insert into t16 values("try_66_");
|
|
select count(*) from t1;
|
|
count(*)
|
|
7
|
|
select count(*) from t2;
|
|
count(*)
|
|
5
|
|
select count(*) from t3;
|
|
count(*)
|
|
1
|
|
select count(*) from t4;
|
|
count(*)
|
|
29
|
|
select count(*) from t5;
|
|
count(*)
|
|
58
|
|
select count(*) from t11;
|
|
count(*)
|
|
8
|
|
select count(*) from t20;
|
|
count(*)
|
|
66
|
|
select count(*) from t21;
|
|
count(*)
|
|
19
|
|
select count(*) from t22;
|
|
count(*)
|
|
2
|
|
select count(*) from t12;
|
|
count(*)
|
|
4
|
|
select count(*) from t13;
|
|
count(*)
|
|
1
|
|
select count(*) from t14;
|
|
count(*)
|
|
4
|
|
select count(*) from t16;
|
|
count(*)
|
|
3
|
|
show binlog events from 102;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query 1 # drop database if exists mysqltest1
|
|
master-bin.000001 # Query 1 # create database mysqltest1
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE TABLE t1 (a varchar(100))
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values("work_8_")
|
|
master-bin.000001 # User var 1 # @`string`=_latin1 0x656D657267656E63795F375F COLLATE latin1_swedish_ci
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 select @'string'
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values("work_9_")
|
|
master-bin.000001 # User var 1 # @`string`=_latin1 0x656D657267656E63795F375F COLLATE latin1_swedish_ci
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 select @'string'
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values("for_10_")
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 select "yesterday_11_"
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values("work_13_")
|
|
master-bin.000001 # User var 1 # @`string`=_latin1 0x656D657267656E63795F31325F COLLATE latin1_swedish_ci
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 select @'string'
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values("work_14_")
|
|
master-bin.000001 # User var 1 # @`string`=_latin1 0x656D657267656E63795F31325F COLLATE latin1_swedish_ci
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 select @'string'
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values("for_15_")
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 select "yesterday_16_"
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values("work_18_")
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # User var 1 # @`string`=_latin1 0x656D657267656E63795F31375F COLLATE latin1_swedish_ci
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 select @'string'
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 select "yesterday_21_"
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # User var 1 # @`string`=_latin1 0x656D657267656E63795F31375F COLLATE latin1_swedish_ci
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 select @'string'
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 select "yesterday_24_"
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE TABLE `t2` (
|
|
`rpad(UUID(),100,' ')` varchar(100) CHARACTER SET utf8 NOT NULL DEFAULT ''
|
|
)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; COMMIT
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE TABLE `t3` (
|
|
`1` varbinary(108) NOT NULL DEFAULT ''
|
|
)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t3)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; COMMIT
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE TABLE `t4` (
|
|
`a` varchar(100) DEFAULT NULL
|
|
)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t4)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; COMMIT
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; create table t5 select * from t1 where 3 in (select 1 union select 2 union select curdate() union select 3)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t5)
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo()
|
|
begin
|
|
insert into t1 values("work_25_");
|
|
insert into t1 values(concat("for_26_",UUID()));
|
|
insert into t1 select "yesterday_27_";
|
|
end
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo2()
|
|
begin
|
|
insert into t1 values(concat("emergency_28_",UUID()));
|
|
insert into t1 values("work_29_");
|
|
insert into t1 values(concat("for_30_",UUID()));
|
|
set session binlog_format=row; # accepted for stored procs
|
|
insert into t1 values("more work_31_");
|
|
set session binlog_format=mixed;
|
|
end
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function foo3() returns bigint unsigned
|
|
begin
|
|
set session binlog_format=row; # rejected for stored funcs
|
|
insert into t1 values("alarm");
|
|
return 100;
|
|
end
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` procedure foo4(x varchar(100))
|
|
begin
|
|
insert into t1 values(concat("work_250_",x));
|
|
insert into t1 select "yesterday_270_";
|
|
end
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values(concat("work_250_", NAME_CONST('x',_latin1'hello')))
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 select "yesterday_270_"
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values(concat("work_250_", NAME_CONST('x',_latin1'world')))
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 select "yesterday_270_"
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; drop function foo3
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function foo3() returns bigint unsigned
|
|
begin
|
|
insert into t1 values("foo3_32_");
|
|
call foo();
|
|
return 100;
|
|
end
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function foo4() returns bigint unsigned
|
|
begin
|
|
insert into t2 select foo3();
|
|
return 100;
|
|
end
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function foo5() returns bigint unsigned
|
|
begin
|
|
insert into t2 select UUID();
|
|
return 100;
|
|
end
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function foo6(x varchar(100)) returns bigint unsigned
|
|
begin
|
|
insert into t2 select x;
|
|
return 100;
|
|
end
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `foo6`(_latin1'foo6_1_')
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select uuid()
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; create table t11 (data varchar(255))
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t11)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t11 select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='mysqltest1' and TABLE_NAME IN ('v1','t11')
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t11 select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='mysqltest1' and TABLE_NAME IN ('v1','t11')
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t11 select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='mysqltest1' and TABLE_NAME IN ('v1','t11')
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` trigger t11_bi before insert on t11 for each row
|
|
begin
|
|
set NEW.data = concat(NEW.data,UUID());
|
|
end
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t11)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; create table t20 select * from t1
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; create table t21 select * from t2
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; create table t22 select * from t3
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; drop table t1,t2,t3
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; create table t1 (a int primary key auto_increment, b varchar(100))
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; create table t2 (a int primary key auto_increment, b varchar(100))
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; create table t3 (b varchar(100))
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function f (x varchar(100)) returns int deterministic
|
|
begin
|
|
insert into t1 values(null,x);
|
|
insert into t2 values(null,x);
|
|
return 1;
|
|
end
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Intvar 1 # INSERT_ID=3
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values(null,"try_44_")
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; create table t12 select * from t1
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; drop table t1
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; create table t1 (a int, b varchar(100), key(a))
|
|
master-bin.000001 # Intvar 1 # INSERT_ID=4
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `f`(_latin1'try_45_')
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; create table t13 select * from t1
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; drop table t1
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; create table t1 (a int primary key auto_increment, b varchar(100))
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; drop function f
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; create table t14 (unique (a)) select * from t2
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; truncate table t2
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function f1 (x varchar(100)) returns int deterministic
|
|
begin
|
|
insert into t1 values(null,x);
|
|
return 1;
|
|
end
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function f2 (x varchar(100)) returns int deterministic
|
|
begin
|
|
insert into t2 values(null,x);
|
|
return 1;
|
|
end
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t3)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; drop function f2
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` function f2 (x varchar(100)) returns int deterministic
|
|
begin
|
|
declare y int;
|
|
insert into t1 values(null,x);
|
|
set y = (select count(*) from t2);
|
|
return y;
|
|
end
|
|
master-bin.000001 # Intvar 1 # INSERT_ID=4
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `f1`(_latin1'try_53_')
|
|
master-bin.000001 # Intvar 1 # INSERT_ID=5
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; SELECT `f2`(_latin1'try_54_')
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; drop function f2
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` trigger t1_bi before insert on t1 for each row
|
|
begin
|
|
insert into t2 values(null,"try_55_");
|
|
end
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t1)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t2)
|
|
master-bin.000001 # Write_rows 1 # table_id: #
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; alter table t1 modify a int, drop primary key
|
|
master-bin.000001 # Intvar 1 # INSERT_ID=5
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t1 values(null,"try_57_")
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; CREATE TABLE `t16` (
|
|
`UUID()` varchar(36) CHARACTER SET utf8 NOT NULL DEFAULT ''
|
|
)
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t16)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (mysqltest1.t16)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Query 1 # use `mysqltest1`; insert into t16 values("try_66_")
|
|
drop database mysqltest1;
|