mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 02:30:06 +01:00
e913f4e11e
Problem was that total order isolation (TOI) is started before we know sequence implementing storage engine. This led to situation where table implementing persistent storate for sequence in case of MyISAM was created on applier causing errors later in test execution. Therefore, in both CREATE SEQUENCE and ALTER TABLE to implementing persistent storage we need to check implementing storage engine after open_tables and this check must be done in both master and applier, because if implementing storage engine is MyISAM it does not support rollback. Added tests to make sure that if sequence implementing storage engine is MyISAM or we try to alter it to MyISAM user gets error and changes are not replicated. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
30 lines
1,002 B
Text
30 lines
1,002 B
Text
connection node_2;
|
|
connection node_1;
|
|
connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2;
|
|
connection node_1;
|
|
SET DEBUG_SYNC = 'wsrep_create_table_as_select WAIT_FOR continue';
|
|
CREATE table t1 as SELECT SLEEP(0.1);;
|
|
connection node_1a;
|
|
# Wait until CTAS is on debug sync point
|
|
connection node_1b;
|
|
SET SESSION wsrep_sync_wait = 0;
|
|
SET GLOBAL debug_dbug = '+d,sync.wsrep_apply_cb';
|
|
connection node_2;
|
|
CREATE table t1 as SELECT SLEEP(0.2);;
|
|
connection node_1b;
|
|
SET SESSION debug_sync = 'now WAIT_FOR sync.wsrep_apply_cb_reached';
|
|
# Signal first CTAS to continue and wait until CTAS has executed
|
|
SET DEBUG_SYNC= 'now SIGNAL continue';
|
|
SET GLOBAL debug_dbug= '';
|
|
SET DEBUG_SYNC = 'now SIGNAL signal.wsrep_apply_cb';
|
|
connection node_2a;
|
|
connection node_1b;
|
|
SET DEBUG_SYNC= 'RESET';
|
|
connection node_2;
|
|
connection node_1;
|
|
DROP TABLE t1;
|
|
disconnect node_2;
|
|
disconnect node_1;
|
|
# End of test
|