mariadb/mysql-test/suite/galera/t/galera_update_limit.test
Jan Lindström d7b37de936 Fix bad galera tests
* galera_kill_applier : we should make sure that node has
  correct number of wsrep appliers
* galera_bad_wsrep_new_cluster: This test restarts both nodes,
so it is bad on mtr. Make sure it is run alone
* galera_update_limit : Make sure we have PK when needed
galera_as_slave_replay : bf abort was not consistent
* galera_unicode_pk : Add wait_conditions so that all nodes
are part of cluster and DDL and INSERT has replicated before
any further operations are done.
* galera_bf_abort_at_after_statement : Add wait_conditions
to make sure all nodes are part of cluster and that DDL
and INSERT has replicated. Make sure we reset DEBUG_SYNC.
2021-12-01 08:27:08 +02:00

54 lines
1.4 KiB
Text

#
# UPDATE LIMIT should not cause any issues with row-based Galera replication
# regardless of the order in which the rows were updated
#
--source include/galera_cluster.inc
#
# With a PK
#
--connection node_1
CREATE TABLE ten (f1 INTEGER not null primary key) Engine=InnoDB;
INSERT INTO ten VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
CREATE TABLE t1 (f1 INTEGER NOT NULL PRIMARY KEY) Engine=InnoDB;
INSERT INTO t1 SELECT f1 FROM ten ORDER BY RAND();
--connection node_2
UPDATE IGNORE t1 SET f1 = FLOOR(1 + (RAND() * 10)) ORDER BY RAND() LIMIT 5;
# Check that the sum of all elements and the max element are identical across nodes
# as this will indicate that the same UPDATE was applied to both nodes
--let $sum_rows = `SELECT SUM(f1) FROM t1`
--let $max_row = `SELECT MAX(f1) FROM t1`
--connection node_1
--disable_query_log
--eval SELECT (SELECT SUM(f1) FROM t1) = $sum_rows AS sum_matches;
--eval SELECT f1 = $max_row AS max_matches FROM t1 WHERE f1 = $max_row;
--enable_query_log
DROP TABLE t1;
#
# Without a PK
#
CREATE TABLE t2 (f1 INTEGER) Engine=InnoDB;
INSERT INTO t2 SELECT f1 FROM ten ORDER BY RAND();
--connection node_2
UPDATE IGNORE t2 SET f1 = FLOOR(1 + (RAND() * 10)) ORDER BY RAND() LIMIT 5;
--let $sum_rows = `SELECT SUM(f1) FROM t2`
--connection node_1
--disable_query_log
--eval SELECT (SELECT SUM(f1) FROM t2) = $sum_rows AS sum_matches;
--enable_query_log
DROP TABLE t2;
DROP TABLE ten;