61 changed files with 3459 additions and 340 deletions
-
12client/client_priv.h
-
17client/mysql.cc
-
3client/mysqladmin.cc
-
8client/mysqlbinlog.cc
-
11client/mysqldump.c
-
554mysql-test/extra/rpl_tests/rpl_mixing_engines.inc
-
7mysql-test/r/create.result
-
10mysql-test/r/func_time.result
-
3mysql-test/r/mysqlbinlog.result
-
44mysql-test/r/partition_innodb.result
-
612mysql-test/r/partition_pruning.result
-
8mysql-test/r/ps_ddl.result
-
13mysql-test/r/subselect.result
-
2mysql-test/r/variables.result
-
34mysql-test/suite/rpl/r/rpl_create_if_not_exists.result
-
24mysql-test/suite/rpl/r/rpl_myisam_null_values.result
-
2mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result
-
6mysql-test/suite/rpl/r/rpl_sp.result
-
1360mysql-test/suite/rpl/r/rpl_stm_binlog_direct.result
-
53mysql-test/suite/rpl/t/rpl_create_if_not_exists.test
-
53mysql-test/suite/rpl/t/rpl_myisam_null_values.test
-
1mysql-test/suite/rpl/t/rpl_stm_binlog_direct-master.opt
-
230mysql-test/suite/rpl/t/rpl_stm_binlog_direct.test
-
9mysql-test/t/create.test
-
1mysql-test/t/partition_innodb-master.opt
-
45mysql-test/t/partition_innodb.test
-
160mysql-test/t/partition_pruning.test
-
9mysql-test/t/ps_ddl.test
-
15mysql-test/t/subselect.test
-
9mysys/my_getopt.c
-
3scripts/mysqld_multi.sh
-
2sql/event_data_objects.cc
-
14sql/events.cc
-
63sql/ha_partition.cc
-
2sql/item.cc
-
23sql/log.cc
-
39sql/log_event.cc
-
39sql/log_event_old.cc
-
18sql/mysql_priv.h
-
29sql/mysqld.cc
-
4sql/set_var.cc
-
8sql/share/errmsg-utf8.txt
-
11sql/share/errmsg.txt
-
1sql/sql_class.h
-
5sql/sql_db.cc
-
37sql/sql_parse.cc
-
55sql/sql_partition.cc
-
2sql/sql_prepare.cc
-
1sql/sql_select.cc
-
12sql/sql_select.h
-
9sql/sql_show.cc
-
23sql/sql_table.cc
-
4sql/sql_view.cc
-
37sql/sql_yacc.yy
-
5sql/table.cc
-
2storage/archive/ha_archive.cc
-
8storage/ndb/include/ndbapi/NdbEventOperation.hpp
-
4storage/ndb/include/ndbapi/NdbOperation.hpp
-
8storage/ndb/src/ndbapi/NdbEventOperation.cpp
-
8storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp
-
8storage/ndb/src/ndbapi/NdbEventOperationImpl.hpp
@ -0,0 +1,554 @@ |
|||
################################################################################ |
|||
# This is an auxiliary file used by rpl_mixing_engines.test, and that it |
|||
# executes SQL statements according to a format string, as specified in |
|||
# rpl_mixing_engines.test. In addition, it accepts the special format |
|||
# strings 'configure' and 'clean', used before and after everything else. |
|||
################################################################################ |
|||
|
|||
if (`SELECT HEX(@commands) = HEX('configure')`) |
|||
{ |
|||
connection master; |
|||
|
|||
SET SQL_LOG_BIN=0; |
|||
eval CREATE TABLE nt_1 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM; |
|||
eval CREATE TABLE nt_2 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM; |
|||
eval CREATE TABLE nt_3 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM; |
|||
eval CREATE TABLE nt_4 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM; |
|||
eval CREATE TABLE nt_5 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM; |
|||
eval CREATE TABLE nt_6 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM; |
|||
eval CREATE TABLE tt_1 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type; |
|||
eval CREATE TABLE tt_2 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type; |
|||
eval CREATE TABLE tt_3 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type; |
|||
eval CREATE TABLE tt_4 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type; |
|||
eval CREATE TABLE tt_5 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type; |
|||
eval CREATE TABLE tt_6 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type; |
|||
eval SET SQL_LOG_BIN=1; |
|||
|
|||
connection slave; |
|||
|
|||
SET SQL_LOG_BIN=0; |
|||
eval CREATE TABLE nt_1 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM; |
|||
eval CREATE TABLE nt_2 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM; |
|||
eval CREATE TABLE nt_3 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM; |
|||
eval CREATE TABLE nt_4 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM; |
|||
eval CREATE TABLE nt_5 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM; |
|||
eval CREATE TABLE nt_6 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM; |
|||
eval CREATE TABLE tt_1 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type; |
|||
eval CREATE TABLE tt_2 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type; |
|||
eval CREATE TABLE tt_3 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type; |
|||
eval CREATE TABLE tt_4 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type; |
|||
eval CREATE TABLE tt_5 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type; |
|||
eval CREATE TABLE tt_6 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type; |
|||
SET SQL_LOG_BIN=1; |
|||
|
|||
connection master; |
|||
|
|||
INSERT INTO nt_1(trans_id, stmt_id) VALUES(1,1); |
|||
INSERT INTO nt_2(trans_id, stmt_id) VALUES(1,1); |
|||
INSERT INTO nt_3(trans_id, stmt_id) VALUES(1,1); |
|||
INSERT INTO nt_4(trans_id, stmt_id) VALUES(1,1); |
|||
INSERT INTO nt_5(trans_id, stmt_id) VALUES(1,1); |
|||
INSERT INTO nt_6(trans_id, stmt_id) VALUES(1,1); |
|||
|
|||
INSERT INTO tt_1(trans_id, stmt_id) VALUES(1,1); |
|||
INSERT INTO tt_2(trans_id, stmt_id) VALUES(1,1); |
|||
INSERT INTO tt_3(trans_id, stmt_id) VALUES(1,1); |
|||
INSERT INTO tt_4(trans_id, stmt_id) VALUES(1,1); |
|||
INSERT INTO tt_5(trans_id, stmt_id) VALUES(1,1); |
|||
INSERT INTO tt_6(trans_id, stmt_id) VALUES(1,1); |
|||
|
|||
DELIMITER |; |
|||
|
|||
CREATE PROCEDURE pc_i_tt_5_suc (IN p_trans_id INTEGER, IN p_stmt_id INTEGER) |
|||
BEGIN |
|||
DECLARE in_stmt_id INTEGER; |
|||
SELECT max(stmt_id) INTO in_stmt_id FROM tt_5 WHERE trans_id= p_trans_id; |
|||
SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO in_stmt_id; |
|||
INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id); |
|||
INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id + 1); |
|||
END| |
|||
|
|||
CREATE PROCEDURE pc_i_nt_5_suc (IN p_trans_id INTEGER, IN p_stmt_id INTEGER) |
|||
BEGIN |
|||
DECLARE in_stmt_id INTEGER; |
|||
SELECT max(stmt_id) INTO in_stmt_id FROM nt_5 WHERE trans_id= p_trans_id; |
|||
SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO in_stmt_id; |
|||
INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id); |
|||
INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id + 1); |
|||
END| |
|||
|
|||
CREATE FUNCTION fc_i_tt_5_suc (p_trans_id INTEGER, p_stmt_id INTEGER) RETURNS VARCHAR(64) |
|||
BEGIN |
|||
DECLARE in_stmt_id INTEGER; |
|||
SELECT max(stmt_id) INTO in_stmt_id FROM tt_5 WHERE trans_id= p_trans_id; |
|||
SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO in_stmt_id; |
|||
INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id); |
|||
INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id + 1); |
|||
RETURN "fc_i_tt_5_suc"; |
|||
END| |
|||
|
|||
CREATE FUNCTION fc_i_nt_5_suc (p_trans_id INTEGER, p_stmt_id INTEGER) RETURNS VARCHAR(64) |
|||
BEGIN |
|||
DECLARE in_stmt_id INTEGER; |
|||
SELECT max(stmt_id) INTO in_stmt_id FROM nt_5 WHERE trans_id= p_trans_id; |
|||
SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO in_stmt_id; |
|||
INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id); |
|||
INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id + 1); |
|||
RETURN "fc_i_nt_5_suc"; |
|||
END| |
|||
|
|||
CREATE TRIGGER tr_i_tt_3_to_nt_3 AFTER INSERT ON tt_3 FOR EACH ROW |
|||
BEGIN |
|||
DECLARE in_stmt_id INTEGER; |
|||
SELECT max(stmt_id) INTO in_stmt_id FROM nt_3 WHERE trans_id= NEW.trans_id; |
|||
SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id), 1) INTO in_stmt_id; |
|||
INSERT INTO nt_3(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id); |
|||
INSERT INTO nt_3(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id + 1); |
|||
END| |
|||
|
|||
CREATE TRIGGER tr_i_nt_4_to_tt_4 AFTER INSERT ON nt_4 FOR EACH ROW |
|||
BEGIN |
|||
DECLARE in_stmt_id INTEGER; |
|||
SELECT max(stmt_id) INTO in_stmt_id FROM tt_4 WHERE trans_id= NEW.trans_id; |
|||
SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id), 1) INTO in_stmt_id; |
|||
INSERT INTO tt_4(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id); |
|||
INSERT INTO tt_4(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id + 1); |
|||
END| |
|||
|
|||
CREATE TRIGGER tr_i_tt_5_to_tt_6 AFTER INSERT ON tt_5 FOR EACH ROW |
|||
BEGIN |
|||
DECLARE in_stmt_id INTEGER; |
|||
SELECT max(stmt_id) INTO in_stmt_id FROM tt_6 WHERE trans_id= NEW.trans_id; |
|||
SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id, 1), 1) INTO in_stmt_id; |
|||
INSERT INTO tt_6(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id); |
|||
INSERT INTO tt_6(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id + 1); |
|||
END| |
|||
|
|||
CREATE TRIGGER tr_i_nt_5_to_nt_6 AFTER INSERT ON nt_5 FOR EACH ROW |
|||
BEGIN |
|||
DECLARE in_stmt_id INTEGER; |
|||
SELECT max(stmt_id) INTO in_stmt_id FROM nt_6 WHERE trans_id= NEW.trans_id; |
|||
SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id), 1) INTO in_stmt_id; |
|||
INSERT INTO nt_6(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id); |
|||
INSERT INTO nt_6(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id + 1); |
|||
END| |
|||
|
|||
DELIMITER ;| |
|||
|
|||
let $pos_trans_command= query_get_value("SHOW MASTER STATUS", Position, 1); |
|||
|
|||
let $trans_id= 7; |
|||
let $tb_id= 1; |
|||
let $stmt_id= 1; |
|||
let $commands= ''; |
|||
|
|||
SET @commands= ''; |
|||
} |
|||
|
|||
if (`SELECT HEX(@commands) = HEX('clean')`) |
|||
{ |
|||
connection master; |
|||
|
|||
DROP TABLE tt_1; |
|||
DROP TABLE tt_2; |
|||
DROP TABLE tt_3; |
|||
DROP TABLE tt_4; |
|||
DROP TABLE tt_5; |
|||
DROP TABLE tt_6; |
|||
|
|||
DROP TABLE nt_1; |
|||
DROP TABLE nt_2; |
|||
DROP TABLE nt_3; |
|||
DROP TABLE nt_4; |
|||
DROP TABLE nt_5; |
|||
DROP TABLE nt_6; |
|||
|
|||
DROP PROCEDURE pc_i_tt_5_suc; |
|||
DROP PROCEDURE pc_i_nt_5_suc; |
|||
DROP FUNCTION fc_i_tt_5_suc; |
|||
DROP FUNCTION fc_i_nt_5_suc; |
|||
|
|||
sync_slave_with_master; |
|||
|
|||
SET @commands= ''; |
|||
} |
|||
|
|||
while (`SELECT HEX(@commands) != HEX('')`) |
|||
{ |
|||
--disable_query_log |
|||
SET @command= SUBSTRING_INDEX(@commands, ' ', 1); |
|||
let $command= `SELECT @command`; |
|||
--eval SET @check_commands= '$commands' |
|||
if (`SELECT HEX(@check_commands) = HEX('''')`) |
|||
{ |
|||
let $commands= `SELECT @commands`; |
|||
} |
|||
--echo -b-b-b-b-b-b-b-b-b-b-b- >> $command << -b-b-b-b-b-b-b-b-b-b-b- |
|||
let $pos_command= query_get_value("SHOW MASTER STATUS", Position, 1); |
|||
--enable_query_log |
|||
if (`SELECT HEX(@command) = HEX('B')`) |
|||
{ |
|||
eval BEGIN; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('T')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval INSERT INTO tt_1(trans_id, stmt_id) VALUES ($trans_id, $stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('T-trig')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval INSERT INTO tt_5(trans_id, stmt_id) VALUES ($trans_id, $stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('T-func')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval SELECT fc_i_tt_5_suc ($trans_id, $stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('T-proc')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval CALL pc_i_tt_5_suc ($trans_id, $stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('eT')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
let $old_trans_id= `SELECT max(trans_id) from tt_1`; |
|||
let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id= $old_trans_id`; |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
eval INSERT INTO tt_1(trans_id, stmt_id) VALUES ($old_trans_id, $old_stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('Te')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
let $old_trans_id= `SELECT max(trans_id) from tt_1`; |
|||
let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id= $old_trans_id`; |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
eval INSERT INTO tt_1(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('Te-trig')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
let $old_trans_id= `SELECT max(trans_id) from tt_5`; |
|||
let $old_stmt_id= `SELECT max(stmt_id) from tt_5 where trans_id= $old_trans_id`; |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
eval INSERT INTO tt_5(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('Te-func')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
let $old_trans_id= `SELECT max(trans_id) from tt_1`; |
|||
let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id= $old_trans_id`; |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
eval INSERT INTO tt_1(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_tt_5_suc ($trans_id, $stmt_id)); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('N')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval INSERT INTO nt_1(trans_id, stmt_id) VALUES ($trans_id, $stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('N-trig')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval INSERT INTO nt_5(trans_id, stmt_id) VALUES ($trans_id, $stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('N-func')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval SELECT fc_i_nt_5_suc ($trans_id, $stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('N-proc')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval CALL pc_i_nt_5_suc ($trans_id, $stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('eN')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
let $old_trans_id= `SELECT max(trans_id) from nt_1`; |
|||
let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id= $old_trans_id`; |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
eval INSERT INTO nt_1(trans_id, stmt_id) VALUES ($old_trans_id, $old_stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('Ne')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
let $old_trans_id= `SELECT max(trans_id) from nt_1`; |
|||
let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id= $old_trans_id`; |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
eval INSERT INTO nt_1(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('Ne-trig')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
let $old_trans_id= `SELECT max(trans_id) from nt_5`; |
|||
let $old_stmt_id= `SELECT max(stmt_id) from nt_5 where trans_id= $old_trans_id`; |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
eval INSERT INTO nt_5(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('Ne-func')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
let $old_trans_id= `SELECT max(trans_id) from nt_1`; |
|||
let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id= $old_trans_id`; |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
eval INSERT INTO nt_1(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_nt_5_suc ($trans_id, $stmt_id)); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('tN')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval INSERT INTO nt_1(trans_id, stmt_id, info) SELECT $trans_id, $stmt_id, COUNT(*) FROM tt_1; |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('tNe')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
let $old_trans_id= `SELECT max(trans_id) from nt_1`; |
|||
let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id= $old_trans_id`; |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
eval INSERT INTO nt_1(trans_id, stmt_id, info) SELECT $trans_id, $stmt_id, COUNT(*) FROM tt_1 UNION SELECT $old_trans_id, $old_stmt_id, COUNT(*) FROM tt_1; |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('nT')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval INSERT INTO tt_1(trans_id, stmt_id, info) SELECT $trans_id, $stmt_id, COUNT(*) FROM nt_1; |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('nTe')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
let $old_trans_id= `SELECT max(trans_id) from tt_1`; |
|||
let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id= $old_trans_id`; |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
eval INSERT INTO tt_1(trans_id, stmt_id, info) SELECT $trans_id, $stmt_id, COUNT(*) FROM nt_1 UNION SELECT $old_trans_id, $old_stmt_id, COUNT(*) FROM nt_1; |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('NT')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval UPDATE nt_3, tt_3 SET nt_3.info= "new text $trans_id --> $stmt_id", tt_3.info= "new text $trans_id --> $stmt_id" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1; |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('NT-trig')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval INSERT INTO nt_4(trans_id, stmt_id) VALUES ($trans_id, $stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('NT-func')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval INSERT INTO nt_5(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, fc_i_tt_5_suc($trans_id, $stmt_id)); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('NeT-trig')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
let $old_trans_id= `SELECT max(trans_id) from nt_4`; |
|||
let $old_stmt_id= `SELECT max(stmt_id) from nt_4 where trans_id= $old_trans_id`; |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
eval INSERT INTO nt_4(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('NeT-func')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
let $old_trans_id= `SELECT max(trans_id) from nt_5`; |
|||
let $old_stmt_id= `SELECT max(stmt_id) from nt_5 where trans_id= $old_trans_id`; |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
eval INSERT INTO nt_5(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_tt_5_suc ($trans_id, $stmt_id)); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('TN')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval UPDATE tt_4, nt_4 SET tt_4.info= "new text $trans_id --> $stmt_id", nt_4.info= "new text $trans_id --> $stmt_id" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1; |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('TN-trig')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval INSERT INTO tt_3(trans_id, stmt_id) VALUES ($trans_id, $stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('TN-func')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
eval INSERT INTO tt_5(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, fc_i_nt_5_suc($trans_id, $stmt_id)); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('TeN-trig')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
let $old_trans_id= `SELECT max(trans_id) from tt_3`; |
|||
let $old_stmt_id= `SELECT max(stmt_id) from tt_3 where trans_id= $old_trans_id`; |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
eval INSERT INTO tt_3(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('TeN-func')`) |
|||
{ |
|||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id) |
|||
let $old_trans_id= `SELECT max(trans_id) from tt_5`; |
|||
let $old_stmt_id= `SELECT max(stmt_id) from tt_5 where trans_id= $old_trans_id`; |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
eval INSERT INTO tt_5(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_nt_5_suc ($trans_id, $stmt_id)); |
|||
inc $stmt_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('CS-T->T')`) |
|||
{ |
|||
--eval CREATE TABLE tt_xx_$tb_id (PRIMARY KEY(trans_id, stmt_id)) engine=$engine_type SELECT * FROM tt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('CS-N->N')`) |
|||
{ |
|||
--eval CREATE TABLE nt_xx_$tb_id (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('CS-T->N')`) |
|||
{ |
|||
--eval CREATE TABLE tt_xx_$tb_id (PRIMARY KEY(trans_id, stmt_id)) engine=$engine_type SELECT * FROM nt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('CS-N->T')`) |
|||
{ |
|||
--eval CREATE TABLE nt_xx_$tb_id (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('CSe-T->T')`) |
|||
{ |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
--eval CREATE TABLE tt_xx_$tb_id (PRIMARY KEY (stmt_id)) engine=$engine_type SELECT stmt_id FROM tt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('CSe-N->N')`) |
|||
{ |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
--eval CREATE TABLE nt_xx_$tb_id (PRIMARY KEY (stmt_id)) engine=MyIsam SELECT stmt_id FROM nt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('CSe-T->N')`) |
|||
{ |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
--eval CREATE TABLE tt_xx_$tb_id (PRIMARY KEY (stmt_id)) engine=$engine_type SELECT stmt_id FROM nt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('CSe-N->T')`) |
|||
{ |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
--eval CREATE TABLE nt_xx_$tb_id (PRIMARY KEY (stmt_id)) engine=MyIsam SELECT stmt_id FROM tt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('CT')`) |
|||
{ |
|||
--eval CREATE TEMPORARY TABLE tt_xx_$tb_id (a int) engine=$engine_type; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('IS-T<-N')`) |
|||
{ |
|||
--eval INSERT INTO tt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('ISe-T<-N')`) |
|||
{ |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
--eval INSERT INTO tt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('IS-N<-T')`) |
|||
{ |
|||
--eval INSERT INTO nt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('ISe-N<-T')`) |
|||
{ |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
--eval INSERT INTO nt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('IS-T<-T')`) |
|||
{ |
|||
--eval INSERT INTO tt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('ISe-T<-T')`) |
|||
{ |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
--eval INSERT INTO tt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('IS-N<-N')`) |
|||
{ |
|||
--eval INSERT INTO nt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('ISe-N<-N')`) |
|||
{ |
|||
--error ER_DUP_ENTRY, ER_DUP_KEY |
|||
--eval INSERT INTO nt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('trunc-CS-T')`) |
|||
{ |
|||
eval TRUNCATE TABLE tt_xx_$tb_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('trunc-CS-N')`) |
|||
{ |
|||
eval TRUNCATE TABLE nt_xx_$tb_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('trunc-CT')`) |
|||
{ |
|||
eval TRUNCATE TABLE tt_xx_$tb_id; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('drop-CS')`) |
|||
{ |
|||
--disable_warnings |
|||
eval DROP TABLE IF EXISTS tt_xx_$tb_id, nt_xx_$tb_id; |
|||
inc $tb_id; |
|||
--enable_warnings |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('drop-CT')`) |
|||
{ |
|||
--disable_warnings |
|||
eval DROP TEMPORARY TABLE IF EXISTS tt_xx_$tb_id; |
|||
inc $tb_id; |
|||
--enable_warnings |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('C')`) |
|||
{ |
|||
--error 0, ER_GET_ERRMSG |
|||
eval COMMIT; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('R')`) |
|||
{ |
|||
--error 0, ER_GET_ERRMSG |
|||
eval ROLLBACK; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('S1')`) |
|||
{ |
|||
eval SAVEPOINT s1; |
|||
} |
|||
if (`SELECT HEX(@command) = HEX('R1')`) |
|||
{ |
|||
eval ROLLBACK TO s1; |
|||
} |
|||
--disable_query_log |
|||
SET @commands= LTRIM(SUBSTRING(@commands, LENGTH(@command) + 1)); |
|||
inc $stmt_id; |
|||
|
|||
let $binlog_start= $pos_command; |
|||
--source include/show_binlog_events.inc |
|||
--echo -e-e-e-e-e-e-e-e-e-e-e- >> $command << -e-e-e-e-e-e-e-e-e-e-e- |
|||
if (`SELECT HEX(@commands) = HEX('')`) |
|||
{ |
|||
let $binlog_start= $pos_trans_command; |
|||
--echo -b-b-b-b-b-b-b-b-b-b-b- >> $commands << -b-b-b-b-b-b-b-b-b-b-b- |
|||
--source include/show_binlog_events.inc |
|||
--echo -e-e-e-e-e-e-e-e-e-e-e- >> $commands << -e-e-e-e-e-e-e-e-e-e-e- |
|||
--echo |
|||
let $pos_trans_command= query_get_value("SHOW MASTER STATUS", Position, 1); |
|||
let $stmt_id= 1; |
|||
inc $trans_id; |
|||
let $commands= ''; |
|||
} |
|||
} |
@ -1,24 +0,0 @@ |
|||
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; |
|||
CREATE TABLE t1 (c1 BIT, c2 INT); |
|||
INSERT INTO `t1` VALUES ( 1, 1 ); |
|||
UPDATE t1 SET c1=NULL where c2=1; |
|||
Comparing tables master:test.t1 and slave:test.t1 |
|||
DELETE FROM t1 WHERE c2=1 LIMIT 1; |
|||
Comparing tables master:test.t1 and slave:test.t1 |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (c1 CHAR); |
|||
INSERT INTO t1 ( c1 ) VALUES ( 'w' ) ; |
|||
SELECT * FROM t1; |
|||
c1 |
|||
w |
|||
# should trigger switch to row due to LIMIT |
|||
UPDATE t1 SET c1=NULL WHERE c1='w' LIMIT 2; |
|||
Comparing tables master:test.t1 and slave:test.t1 |
|||
DELETE FROM t1 LIMIT 2; |
|||
Comparing tables master:test.t1 and slave:test.t1 |
|||
DROP TABLE t1; |
1360
mysql-test/suite/rpl/r/rpl_stm_binlog_direct.result
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,53 +0,0 @@ |
|||
# BUG#49481: RBR: MyISAM and bit fields may cause slave to stop on delete cant find record |
|||
# BUG#49482: RBR: Replication may break on deletes when MyISAM tables + char field are used |
|||
|
|||
-- source include/master-slave.inc |
|||
-- source include/have_binlog_format_mixed_or_row.inc |
|||
|
|||
-- connection master |
|||
CREATE TABLE t1 (c1 BIT, c2 INT); |
|||
INSERT INTO `t1` VALUES ( 1, 1 ); |
|||
UPDATE t1 SET c1=NULL where c2=1; |
|||
-- sync_slave_with_master |
|||
|
|||
-- let $diff_table_1=master:test.t1 |
|||
-- let $diff_table_2=slave:test.t1 |
|||
-- source include/diff_tables.inc |
|||
|
|||
-- connection master |
|||
DELETE FROM t1 WHERE c2=1 LIMIT 1; |
|||
-- sync_slave_with_master |
|||
|
|||
-- let $diff_table_1=master:test.t1 |
|||
-- let $diff_table_2=slave:test.t1 |
|||
-- source include/diff_tables.inc |
|||
|
|||
-- connection master |
|||
DROP TABLE t1; |
|||
-- sync_slave_with_master |
|||
|
|||
-- connection master |
|||
|
|||
CREATE TABLE t1 (c1 CHAR); |
|||
|
|||
INSERT INTO t1 ( c1 ) VALUES ( 'w' ) ; |
|||
SELECT * FROM t1; |
|||
-- echo # should trigger switch to row due to LIMIT |
|||
UPDATE t1 SET c1=NULL WHERE c1='w' LIMIT 2; |
|||
-- sync_slave_with_master |
|||
|
|||
-- let $diff_table_1=master:test.t1 |
|||
-- let $diff_table_2=slave:test.t1 |
|||
-- source include/diff_tables.inc |
|||
|
|||
-- connection master |
|||
DELETE FROM t1 LIMIT 2; |
|||
-- sync_slave_with_master |
|||
|
|||
-- let $diff_table_1=master:test.t1 |
|||
-- let $diff_table_2=slave:test.t1 |
|||
-- source include/diff_tables.inc |
|||
|
|||
-- connection master |
|||
DROP TABLE t1; |
|||
-- sync_slave_with_master |
@ -0,0 +1 @@ |
|||
--binlog-direct-non-transactional-updates |
@ -0,0 +1,230 @@ |
|||
################################################################################ |
|||
# This test case checks if the option "binlog-direct-non-transactional-updates" |
|||
# makes non-transactional changes in the statement format to be written to the |
|||
# binary log as soon as the statement commits. |
|||
# |
|||
# In what follows, we use the include file rpl_mixing_engines.inc to generate |
|||
# sql commands from a format string. The format string consists of a sequence of |
|||
# 'codes' separated by spaces. Before it set of commands, we paste the expected |
|||
# sequence in the binary log. The following codes exist: |
|||
# |
|||
# - Define the scope of a transaction: |
|||
# B - Begin. |
|||
# C - Commit. |
|||
# R - Rollback. |
|||
# |
|||
# - Change only T-Tables: |
|||
# T - Updates a T-Table. |
|||
# T-trig - Updates T-Tables through a trigger. |
|||
# T-func - Updates T-Tables through a function. |
|||
# T-proc - Updates T-Tables through a procedure. |
|||
# eT - Fails while updating the first tuple in a T-Table. |
|||
# Te - Fails while updating an n-tuple (n > 1) in a T-Table. |
|||
# Te-trig - Fails while updating an n-tuple (n > 1) in a T-Table. |
|||
# Te-func - Fails while updating an n-tuple (n > 1) in a T-Table. |
|||
# |
|||
# - Change only N-Tables |
|||
# N - Updates a N-Table. |
|||
# N-trig - Updates N-Tables through a trigger. |
|||
# N-func - Updates N-Tables through a function. |
|||
# N-proc - Updates N-Tables through a procedure. |
|||
# eN - Fails while updating the first tuple in a N-Table. |
|||
# Ne - Fails while updating an n-tuple (n > 1) in a N-Table. |
|||
# Ne-trig - Fails while updating an n-tuple (n > 1) in a N-Table. |
|||
# Ne-func - Fails while updating an n-tuple (n > 1) in a N-Table. |
|||
################################################################################ |
|||
|
|||
--source include/have_binlog_format_statement.inc |
|||
--source include/master-slave.inc |
|||
--source include/have_innodb.inc |
|||
|
|||
set @@session.binlog_direct_non_transactional_updates= TRUE; |
|||
|
|||
--echo ######################################################################### |
|||
--echo # CONFIGURATION |
|||
--echo ######################################################################### |
|||
|
|||
--let $engine_type= Innodb |
|||
SET @commands= 'configure'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
--echo ######################################################################### |
|||
--echo # 1 - BINLOG ORDER |
|||
--echo ######################################################################### |
|||
connection master; |
|||
|
|||
--echo |
|||
--echo |
|||
--echo |
|||
--echo |
|||
--echo # |
|||
--echo #3) Generates in the binlog what follows: |
|||
--echo # --> STMT "N B T C" entries, format S. |
|||
--echo # |
|||
SET @commands= 'B T N C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T N-trig C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T N-func C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T N-proc C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-trig N C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-trig N-trig C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-trig N-func C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-trig N-proc C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-func N C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-func N-trig C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-func N-func C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-func N-proc C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-proc N C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-proc N-trig C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-proc N-func C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-proc N-proc C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
|
|||
--echo |
|||
--echo |
|||
--echo |
|||
--echo |
|||
--echo # |
|||
--echo #3.e) Generates in the binlog what follows if T-* fails: |
|||
--echo # --> STMT "N" entry, format S. |
|||
--echo # Otherwise, what follows if N-* fails and a N-Table is changed: |
|||
--echo # --> STMT "N B T C" entries, format S. |
|||
--echo # |
|||
SET @commands= 'B eT N C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B Te N C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T eN C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T Ne C'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
|
|||
--echo |
|||
--echo |
|||
--echo |
|||
--echo |
|||
--echo # |
|||
--echo #4) Generates in the binlog what follows: |
|||
--echo # --> STMT "N B T R" entries, format S. |
|||
--echo # |
|||
SET @commands= 'B T N R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T N-trig R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T N-func R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T N-proc R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-trig N R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-trig N-trig R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-trig N-func R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-trig N-proc R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-func N R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-func N-trig R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-func N-func R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-func N-proc R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-proc N R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-proc N-trig R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-proc N-func R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T-proc N-proc R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
|
|||
--echo |
|||
--echo |
|||
--echo |
|||
--echo |
|||
--echo # |
|||
--echo #4.e) Generates in the binlog what follows if T* fails: |
|||
--echo # --> STMT "B N C" entry, format S. |
|||
--echo # Otherwise, what follows if N* fails and a N-Table is changed: |
|||
--echo # --> STMT "N" entries, format S. |
|||
--echo # |
|||
SET @commands= 'B eT N R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B Te N R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T eN R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
SET @commands= 'B T Ne R'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
|||
|
|||
|
|||
--echo ################################################################################### |
|||
--echo # CHECK CONSISTENCY |
|||
--echo ################################################################################### |
|||
connection master; |
|||
sync_slave_with_master; |
|||
|
|||
--exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/test-nmt-master.sql |
|||
--exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info test > $MYSQLTEST_VARDIR/tmp/test-nmt-slave.sql |
|||
--diff_files $MYSQLTEST_VARDIR/tmp/test-nmt-master.sql $MYSQLTEST_VARDIR/tmp/test-nmt-slave.sql |
|||
|
|||
--echo ################################################################################### |
|||
--echo # CLEAN |
|||
--echo ################################################################################### |
|||
SET @commands= 'clean'; |
|||
--source extra/rpl_tests/rpl_mixing_engines.inc |
@ -0,0 +1 @@ |
|||
--innodb_lock_wait_timeout=1 |
Write
Preview
Loading…
Cancel
Save
Reference in new issue