diff options
author | Vasil Dimov <vd@FreeBSD.org> | 2017-12-05 10:33:48 +0200 |
---|---|---|
committer | Vasil Dimov <vd@FreeBSD.org> | 2017-12-05 10:36:42 +0200 |
commit | 937d265ac224470966ecc6053540f6982e0707fb (patch) | |
tree | 019b8e99d7af5f904fade03139cb52dc90007168 | |
parent | aab99857c1ef7ada6b1dcff9350646551fc2ea41 (diff) | |
download | mariadb-git-bb-10.3-galera4.tar.gz |
Fix galera.partitionbb-10.3-galera4
TC_LOG::log_and_order() returns 0 on failure and != 0 cookie number on
success. The caller at wsrep_tc_log_commit() was expecting != 0 on
failure. In addition to that, --record the test to account for
differences between MySQL and MariaDB.
-rw-r--r-- | mysql-test/suite/galera/r/partition.result | 39 | ||||
-rw-r--r-- | sql/wsrep_mysqld.cc | 2 |
2 files changed, 30 insertions, 11 deletions
diff --git a/mysql-test/suite/galera/r/partition.result b/mysql-test/suite/galera/r/partition.result index 3895e623f33..774d5ce8f83 100644 --- a/mysql-test/suite/galera/r/partition.result +++ b/mysql-test/suite/galera/r/partition.result @@ -1,3 +1,5 @@ +connection node_2; +connection node_1; # # MDEV#4953 Galera: DELETE from a partitioned table is not replicated # @@ -13,10 +15,12 @@ SELECT * FROM t1; pk i # On node_1 +connection node_1; SELECT * FROM t1; pk i # On node_2 +connection node_2; SELECT * FROM t1; pk i DROP TABLE t1; @@ -26,6 +30,7 @@ DROP TABLE t1; # # On node_1 +connection node_1; CREATE TABLE test.t1 ( i INT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (i) @@ -46,16 +51,17 @@ i 9 # On node_2 +connection node_2; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `i` int(10) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`i`) ) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (i) -(PARTITION p1 VALUES LESS THAN (10) ENGINE = InnoDB, - PARTITION p2 VALUES LESS THAN (20) ENGINE = InnoDB, - PARTITION pMax VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */ + PARTITION BY RANGE (`i`) +(PARTITION `p1` VALUES LESS THAN (10) ENGINE = InnoDB, + PARTITION `p2` VALUES LESS THAN (20) ENGINE = InnoDB, + PARTITION `pMax` VALUES LESS THAN MAXVALUE ENGINE = InnoDB) SHOW CREATE TABLE p1; Table Create Table p1 CREATE TABLE `p1` ( @@ -70,15 +76,18 @@ i 9 # On node_1 +connection node_1; ALTER TABLE t1 TRUNCATE PARTITION p2; SELECT * FROM test.t1; i # On node_2 +connection node_2; SELECT * FROM test.t1; i # On node_1 +connection node_1; ALTER TABLE t1 DROP PARTITION p2; SHOW CREATE TABLE t1; Table Create Table @@ -86,29 +95,32 @@ t1 CREATE TABLE `t1` ( `i` int(10) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`i`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (i) -(PARTITION p1 VALUES LESS THAN (10) ENGINE = InnoDB, - PARTITION pMax VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */ + PARTITION BY RANGE (`i`) +(PARTITION `p1` VALUES LESS THAN (10) ENGINE = InnoDB, + PARTITION `pMax` VALUES LESS THAN MAXVALUE ENGINE = InnoDB) # On node_2 +connection node_2; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `i` int(10) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`i`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY RANGE (i) -(PARTITION p1 VALUES LESS THAN (10) ENGINE = InnoDB, - PARTITION pMax VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */ + PARTITION BY RANGE (`i`) +(PARTITION `p1` VALUES LESS THAN (10) ENGINE = InnoDB, + PARTITION `pMax` VALUES LESS THAN MAXVALUE ENGINE = InnoDB) DROP TABLE t1, p1; # # MDEV-5146: Bulk loads into partitioned table not working # +connection node_1; # Case 1: wsrep_load_data_splitting = ON & LOAD DATA with 20002 # entries. SET GLOBAL wsrep_load_data_splitting = ON; CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=INNODB PARTITION BY HASH(pk) PARTITIONS 2; +connection node_2; SELECT COUNT(*) = 20002 FROM t1; COUNT(*) = 20002 1 @@ -116,9 +128,11 @@ wsrep_last_committed_diff AS_EXPECTED_3_or_5 DROP TABLE t1; # Case 2: wsrep_load_data_splitting = ON & LOAD DATA with 101 entries. +connection node_1; SET GLOBAL wsrep_load_data_splitting = ON; CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=INNODB PARTITION BY HASH(pk) PARTITIONS 2; +connection node_2; SELECT COUNT(*) = 101 FROM t1; COUNT(*) = 101 1 @@ -127,14 +141,19 @@ wsrep_last_committed_diff DROP TABLE t1; # Case 3: wsrep_load_data_splitting = OFF & LOAD DATA with 20002 # entries. +connection node_1; SET GLOBAL wsrep_load_data_splitting = OFF; CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=INNODB PARTITION BY HASH(pk) PARTITIONS 2; +connection node_2; SELECT COUNT(*) = 20002 FROM t1; COUNT(*) = 20002 1 wsrep_last_committed_diff AS_EXPECTED_1_or_2 DROP TABLE t1; +connection node_1; SET GLOBAL wsrep_load_data_splitting = 1;; +disconnect node_2; +disconnect node_1; # End of test diff --git a/sql/wsrep_mysqld.cc b/sql/wsrep_mysqld.cc index 69174074fed..5497ebbb40b 100644 --- a/sql/wsrep_mysqld.cc +++ b/sql/wsrep_mysqld.cc @@ -3896,7 +3896,7 @@ wsrep_status_t wsrep_tc_log_commit(THD* thd) return WSREP_TRX_FAIL; } - if(tc_log->log_and_order(thd, thd->transaction.xid_state.xid.get_my_xid(), + if(!tc_log->log_and_order(thd, thd->transaction.xid_state.xid.get_my_xid(), true, false, false)) { return WSREP_TRX_FAIL; |