summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVasil Dimov <vd@FreeBSD.org>2017-12-05 10:33:48 +0200
committerVasil Dimov <vd@FreeBSD.org>2017-12-05 10:36:42 +0200
commit937d265ac224470966ecc6053540f6982e0707fb (patch)
tree019b8e99d7af5f904fade03139cb52dc90007168
parentaab99857c1ef7ada6b1dcff9350646551fc2ea41 (diff)
downloadmariadb-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.result39
-rw-r--r--sql/wsrep_mysqld.cc2
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;