diff --git a/mysql-test/r/partition_column.result b/mysql-test/r/partition_column.result index 0aaa4e78f68c2610d40b04b462e65a7430da56ee..66308321a95725d21233bda72e3c97d2b91d60ac 100644 --- a/mysql-test/r/partition_column.result +++ b/mysql-test/r/partition_column.result @@ -1,4 +1,36 @@ drop table if exists t1; +create table t1 (a int, b int) +partition by list column_list(a,b) +( partition p0 values in (column_list(1, NULL), column_list(2, NULL), +column_list(NULL, NULL)), +partition p1 values in (column_list(1,1), column_list(2,2)), +partition p2 values in (column_list(3, NULL), column_list(NULL, 1))); +insert into t1 values (3, NULL); +insert into t1 values (NULL, 1); +insert into t1 values (NULL, NULL); +insert into t1 values (1, NULL); +insert into t1 values (2, NULL); +insert into t1 values (1,1); +insert into t1 values (2,2); +select * from t1 where a = 1; +a b +1 NULL +1 1 +select * from t1 where a = 2; +a b +2 NULL +2 2 +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +/*!50100 PARTITION BY LIST COLUMN_LIST(a,b) +(PARTITION p0 VALUES IN ( COLUMN_LIST(1,NULL), COLUMN_LIST(2,NULL), COLUMN_LIST(NULL,NULL)) ENGINE = MyISAM, + PARTITION p1 VALUES IN ( COLUMN_LIST(1,1), COLUMN_LIST(2,2)) ENGINE = MyISAM, + PARTITION p2 VALUES IN ( COLUMN_LIST(3,NULL), COLUMN_LIST(NULL,1)) ENGINE = MyISAM) */ +drop table t1; create table t1 (a int) partition by list (a) ( partition p0 values in (1), @@ -27,6 +59,14 @@ insert into t1 values (4); insert into t1 values (NULL); insert into t1 values (5); ERROR HY000: Table has no partition for value from column_list +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +/*!50100 PARTITION BY LIST COLUMN_LIST(a) +(PARTITION p0 VALUES IN ( COLUMN_LIST(2), COLUMN_LIST(1)) ENGINE = MyISAM, + PARTITION p1 VALUES IN ( COLUMN_LIST(4), COLUMN_LIST(NULL), COLUMN_LIST(3)) ENGINE = MyISAM) */ drop table t1; create table t1 (a int, b char(10), c varchar(25), d datetime) partition by range column_list(a,b,c,d) diff --git a/mysql-test/t/partition_column.test b/mysql-test/t/partition_column.test index f551b58119ee7dc096c1321f9ea5bc39ca5b2c51..ff625acdb1d2d2ee6f1fe4e7595d62a7dab5be3f 100644 --- a/mysql-test/t/partition_column.test +++ b/mysql-test/t/partition_column.test @@ -8,6 +8,24 @@ drop table if exists t1; --enable_warnings +create table t1 (a int, b int) +partition by list column_list(a,b) +( partition p0 values in (column_list(1, NULL), column_list(2, NULL), + column_list(NULL, NULL)), + partition p1 values in (column_list(1,1), column_list(2,2)), + partition p2 values in (column_list(3, NULL), column_list(NULL, 1))); +insert into t1 values (3, NULL); +insert into t1 values (NULL, 1); +insert into t1 values (NULL, NULL); +insert into t1 values (1, NULL); +insert into t1 values (2, NULL); +insert into t1 values (1,1); +insert into t1 values (2,2); +select * from t1 where a = 1; +select * from t1 where a = 2; +show create table t1; +drop table t1; + --error ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR create table t1 (a int) partition by list (a) @@ -38,6 +56,7 @@ insert into t1 values (4); insert into t1 values (NULL); --error ER_NO_PARTITION_FOR_GIVEN_VALUE insert into t1 values (5); +show create table t1; drop table t1; create table t1 (a int, b char(10), c varchar(25), d datetime)