mirror of
https://github.com/MariaDB/server.git
synced 2025-07-19 09:48:14 +02:00

For running the Galera tests, the variable my_disable_leak_check
was set to true in order to avoid assertions due to memory leaks
at shutdown.
Some adjustments due to MDEV-13625 (merge InnoDB tests from MySQL 5.6)
were performed. The most notable behaviour changes from 10.0 and 10.1
are the following:
* innodb.innodb-table-online: adjustments for the DROP COLUMN
behaviour change (MDEV-11114, MDEV-13613)
* innodb.innodb-index-online-fk: the removal of a (1,NULL) record
from the result; originally removed in MySQL 5.7 in the
Oracle Bug #16244691 fix
377774689b
* innodb.create-index-debug: disabled due to MDEV-13680
(the MySQL Bug #77497 fix was not merged from 5.6 to 5.7.10)
* innodb.innodb-alter-autoinc: MariaDB 10.2 behaves like MySQL 5.6/5.7,
while MariaDB 10.0 and 10.1 assign different values when
auto_increment_increment or auto_increment_offset are used.
Also MySQL 5.6/5.7 exhibit different behaviour between
LGORITHM=INPLACE and ALGORITHM=COPY, so something needs to be tested
and fixed in both MariaDB 10.0 and 10.2.
* innodb.innodb-wl5980-alter: disabled because it would trigger an
InnoDB assertion failure (MDEV-13668 may need additional effort in 10.2)
157 lines
3.7 KiB
Text
157 lines
3.7 KiB
Text
#
|
|
# MDEV#4953 Galera: DELETE from a partitioned table is not replicated
|
|
#
|
|
USE test;
|
|
CREATE TABLE t1 (pk INT PRIMARY KEY, i INT) ENGINE=INNODB PARTITION BY HASH(pk) PARTITIONS 2;
|
|
INSERT INTO t1 VALUES (1,100), (2,200);
|
|
SELECT * FROM t1;
|
|
pk i
|
|
2 200
|
|
1 100
|
|
DELETE FROM t1;
|
|
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;
|
|
#
|
|
# MDEV#7501 : alter table exchange partition is not replicated in
|
|
# galera cluster
|
|
#
|
|
|
|
# On node_1
|
|
connection node_1;
|
|
CREATE TABLE test.t1 (
|
|
i INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
PRIMARY KEY (i)
|
|
) 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);
|
|
INSERT INTO test.t1 (i) VALUE (9),(19);
|
|
CREATE TABLE test.p1 LIKE test.t1;
|
|
ALTER TABLE test.p1 REMOVE PARTITIONING;
|
|
ALTER TABLE test.t1 EXCHANGE PARTITION p1 WITH TABLE test.p1;
|
|
SELECT * FROM test.t1;
|
|
i
|
|
19
|
|
SELECT * FROM test.p1;
|
|
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
|
|
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` (
|
|
`i` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
PRIMARY KEY (`i`)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1
|
|
SELECT * FROM test.t1;
|
|
i
|
|
19
|
|
SELECT * FROM test.p1;
|
|
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
|
|
t1 CREATE TABLE `t1` (
|
|
`i` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
PRIMARY KEY (`i`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
|
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
|
|
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
|
|
wsrep_last_committed_diff
|
|
1
|
|
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
|
|
wsrep_last_committed_diff
|
|
1
|
|
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
|
|
1
|
|
DROP TABLE t1;
|
|
connection node_1;
|
|
SET GLOBAL wsrep_load_data_splitting = 1;;
|
|
disconnect node_2;
|
|
disconnect node_1;
|
|
# End of test
|