--disable_abort_on_error --disable_warnings DROP TABLE IF EXISTS t1_first; DROP TABLE IF EXISTS t1_second; DROP TABLE IF EXISTS t1; --enable_warnings --echo # Test without partitioning of MERGE or "base" tables for comparison let $partitioning= ; eval CREATE TABLE t1_first (f1 INTEGER, f2 CHAR(3)) $partitioning; eval CREATE TABLE t1_second (f1 INTEGER, f2 CHAR(3)) $partitioning; CREATE TABLE t1 (f1 INTEGER, f2 CHAR(3)) ENGINE = MERGE UNION=(t1_first,t1_second) INSERT_METHOD=FIRST; SHOW CREATE TABLE t1_first; SHOW CREATE TABLE t1_second; SHOW CREATE TABLE t1; INSERT INTO t1 VALUES(1,'A'); SELECT * FROM t1; DELETE FROM t1 WHERE f1 = 1; let $partitioning= PARTITION BY HASH(f1) PARTITIONS 2; --echo # Nonsense test, where the MERGE table is partitioned DROP TABLE t1; eval CREATE TABLE t1 (f1 INTEGER, f2 CHAR(3)) ENGINE = MERGE UNION=(t1_first,t1_second) INSERT_METHOD=FIRST $partitioning; SHOW CREATE TABLE t1; SELECT * FROM t1; INSERT INTO t1 VALUES(1,'A'); SELECT * FROM t1; DELETE FROM t1 WHERE f1 = 1; --echo # Test where the "base" tables are partitioned DROP TABLE t1; DROP TABLE t1_first; DROP TABLE t1_second; eval CREATE TABLE t1_first (f1 INTEGER, f2 CHAR(3)) $partitioning; eval CREATE TABLE t1_second (f1 INTEGER, f2 CHAR(3)) $partitioning; CREATE TABLE t1 (f1 INTEGER, f2 CHAR(3)) ENGINE = MERGE UNION=(t1_first,t1_second) INSERT_METHOD=FIRST; SHOW CREATE TABLE t1; SHOW CREATE TABLE t1_first; SHOW CREATE TABLE t1_second; INSERT INTO t1 VALUES(1,'A'); SELECT * FROM t1; SELECT * FROM t1_first; SELECT * FROM t1_second; DELETE FROM t1 WHERE f1 = 1; # Cleanup DROP TABLE t1; DROP TABLE t1_first; DROP TABLE t1_second;