# # SAVEPOINT ROLLBACK can introduce inconsistency in cluster. # --source include/galera_cluster.inc CREATE TABLE t1 (f1 INTEGER PRIMARY KEY); START TRANSACTION; INSERT INTO t1 VALUES (1); SAVEPOINT sp1; INSERT INTO t1 VALUES (2); ROLLBACK TO SAVEPOINT sp1; COMMIT; SELECT COUNT(*) = 1 FROM t1; --connection node_2 SELECT COUNT(*) = 1 FROM t1; --connection node_1 DELETE FROM t1; START TRANSACTION; SAVEPOINT sp1; INSERT INTO t1 VALUES (1); SAVEPOINT sp2; INSERT INTO t1 VALUES (2); ROLLBACK TO SAVEPOINT sp2; ROLLBACK TO SAVEPOINT sp1; COMMIT; SELECT COUNT(*) = 0 FROM t1; --connection node_2 SELECT COUNT(*) = 0 FROM t1; --connection node_1 DELETE FROM t1; START TRANSACTION; SAVEPOINT sp1; INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (2); INSERT INTO t1 VALUES (3); INSERT INTO t1 VALUES (4); SAVEPOINT sp2; INSERT INTO t1 VALUES (5); ROLLBACK TO SAVEPOINT sp2; INSERT INTO t1 VALUES (6); INSERT INTO t1 VALUES (7); ROLLBACK TO SAVEPOINT sp1; INSERT INTO t1 VALUES (8); COMMIT; SELECT COUNT(*) = 1 FROM t1; --connection node_2 SELECT COUNT(*) = 1 FROM t1; DROP TABLE t1;