mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
68 lines
2.3 KiB
Text
68 lines
2.3 KiB
Text
--source include/have_ndb.inc
|
|
#
|
|
# Simple test for the partition storage engine
|
|
# Focuses on range partitioning tests
|
|
#
|
|
#-- source include/have_partition.inc
|
|
|
|
--disable_query_log
|
|
set new=on;
|
|
--enable_query_log
|
|
|
|
--disable_warnings
|
|
drop table if exists t1;
|
|
--enable_warnings
|
|
|
|
#
|
|
# Partition by list, basic
|
|
#
|
|
|
|
CREATE TABLE t1 ( f_int1 INTEGER NOT NULL, f_int2 INTEGER NOT NULL,
|
|
f_char1 CHAR(10),
|
|
f_char2 CHAR(10), f_charbig VARCHAR(1000),
|
|
PRIMARY KEY (f_int1,f_int2))
|
|
ENGINE = NDB
|
|
PARTITION BY LIST(MOD(f_int1 + f_int2,4))
|
|
(PARTITION part_3 VALUES IN (-3),
|
|
PARTITION part_2 VALUES IN (-2),
|
|
PARTITION part_1 VALUES IN (-1),
|
|
PARTITION part0 VALUES IN (0),
|
|
PARTITION part1 VALUES IN (1),
|
|
PARTITION part2 VALUES IN (2),
|
|
PARTITION part3 VALUES IN (3,4,5));
|
|
|
|
INSERT INTO t1 SET f_int1 = -2, f_int2 = 20, f_char1 = '20', f_char2 = '20', f_charbig = '===20===';
|
|
INSERT INTO t1 SET f_int1 = 1, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
|
|
INSERT INTO t1 SET f_int1 = 2, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
|
|
INSERT INTO t1 SET f_int1 = 3, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
|
|
INSERT INTO t1 SET f_int1 = 4, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
|
|
INSERT INTO t1 SET f_int1 = 5, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
|
|
INSERT INTO t1 SET f_int1 = 20, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
|
|
|
|
SELECT * FROM t1 ORDER BY f_int1;
|
|
|
|
DROP TABLE t1;
|
|
|
|
#
|
|
# Partition by list, no pk
|
|
#
|
|
|
|
CREATE TABLE t1 ( f_int1 INTEGER, f_int2 INTEGER, f_char1 CHAR(10),
|
|
f_char2 CHAR(10), f_charbig VARCHAR(1000))
|
|
ENGINE = NDB
|
|
PARTITION BY LIST(f_int1)
|
|
(PARTITION part_1 VALUES IN (-1),
|
|
PARTITION part0 VALUES IN (0,1),
|
|
PARTITION part1 VALUES IN (2));
|
|
|
|
INSERT INTO t1 SET f_int1 = -1, f_int2 = 20, f_char1 = '20', f_char2 = '20', f_charbig = '===20===';
|
|
INSERT INTO t1 SET f_int1 = 0, f_int2 = 20, f_char1 = '20', f_char2 = '20', f_charbig = '===20===';
|
|
INSERT INTO t1 SET f_int1 = 1, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
|
|
INSERT INTO t1 SET f_int1 = 2, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
|
|
--error ER_NO_PARTITION_FOR_GIVEN_VALUE
|
|
INSERT INTO t1 SET f_int1 = 20, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
|
|
|
|
SELECT * FROM t1 ORDER BY f_int1;
|
|
|
|
DROP TABLE t1;
|
|
|