drop table if exists t1;
CREATE TABLE t1 (
a int not null,
b int not null,
c int not null)
partition by list(a)
partitions 2
(partition x123 values in (1,5,6),
partition x234 values in (4,7,8));
INSERT into t1 VALUES (1,1,1);
INSERT into t1 VALUES (2,1,1);
ERROR HY000: Table has no partition for value 2
INSERT into t1 VALUES (3,1,1);
ERROR HY000: Table has no partition for value 3
INSERT into t1 VALUES (4,1,1);
INSERT into t1 VALUES (5,1,1);
INSERT into t1 VALUES (6,1,1);
INSERT into t1 VALUES (7,1,1);
INSERT into t1 VALUES (8,1,1);
INSERT into t1 VALUES (9,1,1);
ERROR HY000: Table has no partition for value 9
INSERT into t1 VALUES (1,2,1);
INSERT into t1 VALUES (1,3,1);
INSERT into t1 VALUES (1,4,1);
INSERT into t1 VALUES (7,2,1);
INSERT into t1 VALUES (7,3,1);
INSERT into t1 VALUES (7,4,1);
SELECT * from t1;
a	b	c
1	1	1
5	1	1
6	1	1
1	2	1
1	3	1
1	4	1
4	1	1
7	1	1
8	1	1
7	2	1
7	3	1
7	4	1
SELECT * from t1 WHERE a=1;
a	b	c
1	1	1
1	2	1
1	3	1
1	4	1
SELECT * from t1 WHERE a=7;
a	b	c
7	1	1
7	2	1
7	3	1
7	4	1
SELECT * from t1 WHERE b=2;
a	b	c
1	2	1
7	2	1
UPDATE t1 SET a=8 WHERE a=7 AND b=3;
SELECT * from t1;
a	b	c
1	1	1
5	1	1
6	1	1
1	2	1
1	3	1
1	4	1
4	1	1
7	1	1
8	1	1
7	2	1
8	3	1
7	4	1
UPDATE t1 SET a=8 WHERE a=5 AND b=1;
SELECT * from t1;
a	b	c
1	1	1
6	1	1
1	2	1
1	3	1
1	4	1
4	1	1
7	1	1
8	1	1
7	2	1
8	3	1
7	4	1
8	1	1
DELETE from t1 WHERE a=8;
SELECT * from t1;
a	b	c
1	1	1
6	1	1
1	2	1
1	3	1
1	4	1
4	1	1
7	1	1
7	2	1
7	4	1
DELETE from t1 WHERE a=2;
SELECT * from t1;
a	b	c
1	1	1
6	1	1
1	2	1
1	3	1
1	4	1
4	1	1
7	1	1
7	2	1
7	4	1
DELETE from t1 WHERE a=5 OR a=6;
SELECT * from t1;
a	b	c
1	1	1
1	2	1
1	3	1
1	4	1
4	1	1
7	1	1
7	2	1
7	4	1
ALTER TABLE t1
partition by list(a)
partitions 2
(partition x123 values in (1,5,6),
partition x234 values in (4,7,8));
SELECT * from t1;
a	b	c
1	1	1
1	2	1
1	3	1
1	4	1
4	1	1
7	1	1
7	2	1
7	4	1
INSERT into t1 VALUES (6,2,1);
INSERT into t1 VALUES (2,2,1);
ERROR HY000: Table has no partition for value 2
drop table t1;
CREATE TABLE t1 (
a int not null,
b int not null,
c int not null,
primary key (a,b))
partition by list (a)
subpartition by hash (a+b)
( partition x1 values in (1,2,3)
( subpartition x11 nodegroup 0,
subpartition x12 nodegroup 1),
partition x2 values in (4,5,6)
( subpartition x21 nodegroup 0,
subpartition x22 nodegroup 1)
);
INSERT into t1 VALUES (1,1,1);
INSERT into t1 VALUES (4,1,1);
INSERT into t1 VALUES (7,1,1);
ERROR HY000: Table has no partition for value 7
UPDATE t1 SET a=5 WHERE a=1;
SELECT * from t1;
a	b	c
5	1	1
4	1	1
UPDATE t1 SET a=6 WHERE a=4;
SELECT * from t1;
a	b	c
5	1	1
6	1	1
DELETE from t1 WHERE a=6;
SELECT * from t1;
a	b	c
5	1	1
drop table t1;
CREATE TABLE t1 ( 
a int not null,
b int not null,
c int not null,
primary key(a,b))
partition by list (a)
(partition x1 values in (1,2,9,4) tablespace ts1);
drop table t1;
