summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/r/partition_column.result162
-rw-r--r--mysql-test/r/partition_column_prune.result6
-rw-r--r--mysql-test/r/partition_innodb.result6
-rw-r--r--mysql-test/r/partition_range.result4
-rw-r--r--mysql-test/t/partition_column.test74
-rw-r--r--mysql-test/t/partition_column_prune.test6
-rw-r--r--mysql-test/t/partition_innodb.test6
-rw-r--r--mysql-test/t/partition_range.test4
-rw-r--r--sql/lex.h1
-rw-r--r--sql/opt_range.cc2
-rw-r--r--sql/sql_partition.cc6
-rw-r--r--sql/sql_yacc.yy3
12 files changed, 139 insertions, 141 deletions
diff --git a/mysql-test/r/partition_column.result b/mysql-test/r/partition_column.result
index 784d4d08a25..21d3a0aa3eb 100644
--- a/mysql-test/r/partition_column.result
+++ b/mysql-test/r/partition_column.result
@@ -1,10 +1,10 @@
drop table if exists t1;
create table t1 (a varchar(1500), b varchar(1570))
-partition by list column_list(a,b)
+partition by list columns(a,b)
( partition p0 values in (('a','b')));
ERROR HY000: The total length of the partitioning fields is too large
create table t1 (a varchar(1023) character set utf8 collate utf8_spanish2_ci)
-partition by range column_list(a)
+partition by range columns(a)
( partition p0 values less than ('CZ'),
partition p1 values less than ('CH'),
partition p2 values less than ('D'));
@@ -16,16 +16,16 @@ cg
drop table t1;
set @@sql_mode=allow_invalid_dates;
create table t1 (a char, b char, c date)
-partition by range column_list (a,b,c)
+partition by range columns (a,b,c)
( partition p0 values less than (0,0,to_days('3000-11-31')));
ERROR HY000: Partition column values of incorrect type
create table t1 (a char, b char, c date)
-partition by range column_list (a,b,c)
+partition by range columns (a,b,c)
( partition p0 values less than (0,0,'3000-11-31'));
ERROR HY000: Partition column values of incorrect type
set @@sql_mode='';
create table t1 (a varchar(2) character set ucs2)
-partition by list column_list (a)
+partition by list columns (a)
(partition p0 values in (0x2020),
partition p1 values in (''));
show create table t1;
@@ -33,14 +33,14 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` varchar(2) CHARACTER SET ucs2 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
-/*!50100 PARTITION BY LIST COLUMN_LIST(a)
+/*!50100 PARTITION BY LIST COLUMNS(a)
(PARTITION p0 VALUES IN (_ucs2' ') ENGINE = MyISAM,
PARTITION p1 VALUES IN (_ucs2'') ENGINE = MyISAM) */
insert into t1 values ('');
insert into t1 values (_ucs2 0x2020);
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)
+partition by range columns(a,b,c,d)
subpartition by hash (to_seconds(d))
subpartitions 4
( partition p0 values less than (1, 0, MAXVALUE, '1900-01-01'),
@@ -50,22 +50,22 @@ partition p3 values less than (1, MAXVALUE, MAXVALUE, MAXVALUE));
select partition_method, partition_expression, partition_description
from information_schema.partitions where table_name = "t1";
partition_method partition_expression partition_description
-RANGE COLUMN_LIST a,b,c,d 1,'0',MAXVALUE,'1900-01-01'
-RANGE COLUMN_LIST a,b,c,d 1,'0',MAXVALUE,'1900-01-01'
-RANGE COLUMN_LIST a,b,c,d 1,'0',MAXVALUE,'1900-01-01'
-RANGE COLUMN_LIST a,b,c,d 1,'0',MAXVALUE,'1900-01-01'
-RANGE COLUMN_LIST a,b,c,d 1,'a',MAXVALUE,'1999-01-01'
-RANGE COLUMN_LIST a,b,c,d 1,'a',MAXVALUE,'1999-01-01'
-RANGE COLUMN_LIST a,b,c,d 1,'a',MAXVALUE,'1999-01-01'
-RANGE COLUMN_LIST a,b,c,d 1,'a',MAXVALUE,'1999-01-01'
-RANGE COLUMN_LIST a,b,c,d 1,'a',MAXVALUE,MAXVALUE
-RANGE COLUMN_LIST a,b,c,d 1,'a',MAXVALUE,MAXVALUE
-RANGE COLUMN_LIST a,b,c,d 1,'a',MAXVALUE,MAXVALUE
-RANGE COLUMN_LIST a,b,c,d 1,'a',MAXVALUE,MAXVALUE
-RANGE COLUMN_LIST a,b,c,d 1,MAXVALUE,MAXVALUE,MAXVALUE
-RANGE COLUMN_LIST a,b,c,d 1,MAXVALUE,MAXVALUE,MAXVALUE
-RANGE COLUMN_LIST a,b,c,d 1,MAXVALUE,MAXVALUE,MAXVALUE
-RANGE COLUMN_LIST a,b,c,d 1,MAXVALUE,MAXVALUE,MAXVALUE
+RANGE COLUMNS a,b,c,d 1,'0',MAXVALUE,'1900-01-01'
+RANGE COLUMNS a,b,c,d 1,'0',MAXVALUE,'1900-01-01'
+RANGE COLUMNS a,b,c,d 1,'0',MAXVALUE,'1900-01-01'
+RANGE COLUMNS a,b,c,d 1,'0',MAXVALUE,'1900-01-01'
+RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,'1999-01-01'
+RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,'1999-01-01'
+RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,'1999-01-01'
+RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,'1999-01-01'
+RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,MAXVALUE
+RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,MAXVALUE
+RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,MAXVALUE
+RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,MAXVALUE
+RANGE COLUMNS a,b,c,d 1,MAXVALUE,MAXVALUE,MAXVALUE
+RANGE COLUMNS a,b,c,d 1,MAXVALUE,MAXVALUE,MAXVALUE
+RANGE COLUMNS a,b,c,d 1,MAXVALUE,MAXVALUE,MAXVALUE
+RANGE COLUMNS a,b,c,d 1,MAXVALUE,MAXVALUE,MAXVALUE
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -74,7 +74,7 @@ t1 CREATE TABLE `t1` (
`c` varchar(25) DEFAULT NULL,
`d` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
-/*!50100 PARTITION BY RANGE COLUMN_LIST(a,b,c,d)
+/*!50100 PARTITION BY RANGE COLUMNS(a,b,c,d)
SUBPARTITION BY HASH (to_seconds(d))
SUBPARTITIONS 4
(PARTITION p0 VALUES LESS THAN (1,_latin1'0',MAXVALUE,'1900-01-01') ENGINE = MyISAM,
@@ -83,15 +83,15 @@ SUBPARTITIONS 4
PARTITION p3 VALUES LESS THAN (1,MAXVALUE,MAXVALUE,MAXVALUE) ENGINE = MyISAM) */
drop table t1;
create table t1 (a int, b int)
-partition by range column_list (a,b)
+partition by range columns (a,b)
(partition p0 values less than (NULL, maxvalue));
ERROR HY000: Not allowed to use NULL value in VALUES LESS THAN
create table t1 (a int, b int)
-partition by list column_list(a,b)
+partition by list columns(a,b)
( partition p0 values in ((maxvalue, 0)));
Got one of the listed errors
create table t1 (a int, b int)
-partition by list column_list (a,b)
+partition by list columns (a,b)
( partition p0 values in ((0,0)));
alter table t1 add partition
(partition p1 values in (maxvalue, maxvalue));
@@ -101,7 +101,7 @@ create table t1 (a int, b int)
partition by key (a,a);
ERROR HY000: Duplicate partition field name 'a'
create table t1 (a int, b int)
-partition by list column_list(a,a)
+partition by list columns(a,a)
( partition p values in ((1,1)));
ERROR HY000: Duplicate partition field name 'a'
create table t1 (a int signed)
@@ -123,7 +123,7 @@ a
0
drop table t1;
create table t1 (a int signed)
-partition by list column_list(a)
+partition by list columns(a)
( partition p0 values in (1, 3, 5, 7, 9, NULL),
partition p1 values in (2, 4, 6, 8, 0));
insert into t1 values (NULL),(0),(1),(2),(2),(4),(4),(4),(8),(8);
@@ -141,23 +141,23 @@ a
0
drop table t1;
create table t1 (a int, b int)
-partition by list column_list(a,b)
+partition by list columns(a,b)
( partition p0 values in ((1, NULL), (2, NULL), (NULL, NULL)),
partition p1 values in ((1,1), (2,2)),
partition p2 values in ((3, NULL), (NULL, 1)));
select partition_method, partition_expression, partition_description
from information_schema.partitions where table_name = "t1";
partition_method partition_expression partition_description
-LIST COLUMN_LIST a,b (1,NULL),(2,NULL),(NULL,NULL)
-LIST COLUMN_LIST a,b (1,1),(2,2)
-LIST COLUMN_LIST a,b (3,NULL),(NULL,1)
+LIST COLUMNS a,b (1,NULL),(2,NULL),(NULL,NULL)
+LIST COLUMNS a,b (1,1),(2,2)
+LIST COLUMNS a,b (3,NULL),(NULL,1)
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)
+/*!50100 PARTITION BY LIST COLUMNS(a,b)
(PARTITION p0 VALUES IN ((1,NULL),(2,NULL),(NULL,NULL)) ENGINE = MyISAM,
PARTITION p1 VALUES IN ((1,1),(2,2)) ENGINE = MyISAM,
PARTITION p2 VALUES IN ((3,NULL),(NULL,1)) ENGINE = MyISAM) */
@@ -191,7 +191,7 @@ 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)
+/*!50100 PARTITION BY LIST COLUMNS(a,b)
(PARTITION p0 VALUES IN ((1,NULL),(2,NULL),(NULL,NULL)) ENGINE = MyISAM,
PARTITION p1 VALUES IN ((1,1),(2,2)) ENGINE = MyISAM,
PARTITION p2 VALUES IN ((3,NULL),(NULL,1)) ENGINE = MyISAM) */
@@ -227,25 +227,25 @@ insert into t1 values (5);
ERROR HY000: Table has no partition for value 5
drop table t1;
create table t1 (a int)
-partition by list column_list(a)
+partition by list columns(a)
( partition p0 values in (2, 1),
partition p1 values in ((4), (NULL), (3)));
ERROR 42000: Row expressions in VALUES IN only allowed for multi-field column partitioning near '))' at line 4
create table t1 (a int)
-partition by list column_list(a)
+partition by list columns(a)
( partition p0 values in (2, 1),
partition p1 values in (4, NULL, 3));
select partition_method, partition_expression, partition_description
from information_schema.partitions where table_name = "t1";
partition_method partition_expression partition_description
-LIST COLUMN_LIST a 2,1
-LIST COLUMN_LIST a 4,NULL,3
+LIST COLUMNS a 2,1
+LIST COLUMNS a 4,NULL,3
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)
+/*!50100 PARTITION BY LIST COLUMNS(a)
(PARTITION p0 VALUES IN (2,1) ENGINE = MyISAM,
PARTITION p1 VALUES IN (4,NULL,3) ENGINE = MyISAM) */
insert into t1 values (1);
@@ -260,12 +260,12 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
-/*!50100 PARTITION BY LIST COLUMN_LIST(a)
+/*!50100 PARTITION BY LIST COLUMNS(a)
(PARTITION p0 VALUES IN (2,1) ENGINE = MyISAM,
PARTITION p1 VALUES IN (4,NULL,3) ENGINE = MyISAM) */
drop table t1;
create table t1 (a int, b char(10), c varchar(5), d int)
-partition by range column_list(a,b,c)
+partition by range columns(a,b,c)
subpartition by key (c,d)
subpartitions 3
( partition p0 values less than (1,'abc','abc'),
@@ -275,18 +275,18 @@ partition p3 values less than (4,'abc','abc'));
select partition_method, partition_expression, partition_description
from information_schema.partitions where table_name = "t1";
partition_method partition_expression partition_description
-RANGE COLUMN_LIST a,b,c 1,'abc','abc'
-RANGE COLUMN_LIST a,b,c 1,'abc','abc'
-RANGE COLUMN_LIST a,b,c 1,'abc','abc'
-RANGE COLUMN_LIST a,b,c 2,'abc','abc'
-RANGE COLUMN_LIST a,b,c 2,'abc','abc'
-RANGE COLUMN_LIST a,b,c 2,'abc','abc'
-RANGE COLUMN_LIST a,b,c 3,'abc','abc'
-RANGE COLUMN_LIST a,b,c 3,'abc','abc'
-RANGE COLUMN_LIST a,b,c 3,'abc','abc'
-RANGE COLUMN_LIST a,b,c 4,'abc','abc'
-RANGE COLUMN_LIST a,b,c 4,'abc','abc'
-RANGE COLUMN_LIST a,b,c 4,'abc','abc'
+RANGE COLUMNS a,b,c 1,'abc','abc'
+RANGE COLUMNS a,b,c 1,'abc','abc'
+RANGE COLUMNS a,b,c 1,'abc','abc'
+RANGE COLUMNS a,b,c 2,'abc','abc'
+RANGE COLUMNS a,b,c 2,'abc','abc'
+RANGE COLUMNS a,b,c 2,'abc','abc'
+RANGE COLUMNS a,b,c 3,'abc','abc'
+RANGE COLUMNS a,b,c 3,'abc','abc'
+RANGE COLUMNS a,b,c 3,'abc','abc'
+RANGE COLUMNS a,b,c 4,'abc','abc'
+RANGE COLUMNS a,b,c 4,'abc','abc'
+RANGE COLUMNS a,b,c 4,'abc','abc'
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -295,7 +295,7 @@ t1 CREATE TABLE `t1` (
`c` varchar(5) DEFAULT NULL,
`d` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
-/*!50100 PARTITION BY RANGE COLUMN_LIST(a,b,c)
+/*!50100 PARTITION BY RANGE COLUMNS(a,b,c)
SUBPARTITION BY KEY (c,d)
SUBPARTITIONS 3
(PARTITION p0 VALUES LESS THAN (1,_latin1'abc',_latin1'abc') ENGINE = MyISAM,
@@ -313,14 +313,14 @@ a b c d
1 b c 1
drop table t1;
create table t1 (a int, b varchar(2), c int)
-partition by range column_list (a, b, c)
+partition by range columns (a, b, c)
(partition p0 values less than (1, 'A', 1),
partition p1 values less than (1, 'B', 1));
select partition_method, partition_expression, partition_description
from information_schema.partitions where table_name = "t1";
partition_method partition_expression partition_description
-RANGE COLUMN_LIST a,b,c 1,'A',1
-RANGE COLUMN_LIST a,b,c 1,'B',1
+RANGE COLUMNS a,b,c 1,'A',1
+RANGE COLUMNS a,b,c 1,'B',1
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -328,7 +328,7 @@ t1 CREATE TABLE `t1` (
`b` varchar(2) DEFAULT NULL,
`c` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
-/*!50100 PARTITION BY RANGE COLUMN_LIST(a,b,c)
+/*!50100 PARTITION BY RANGE COLUMNS(a,b,c)
(PARTITION p0 VALUES LESS THAN (1,_latin1'A',1) ENGINE = MyISAM,
PARTITION p1 VALUES LESS THAN (1,_latin1'B',1) ENGINE = MyISAM) */
insert into t1 values (1, 'A', 1);
@@ -340,7 +340,7 @@ a b c
1 A 1
drop table t1;
create table t1 (a char, b char, c char)
-partition by list column_list(a)
+partition by list columns(a)
( partition p0 values in ('a'));
insert into t1 (a) values ('a');
select * from t1 where a = 'a';
@@ -348,41 +348,41 @@ a b c
a NULL NULL
drop table t1;
create table t1 (d time)
-partition by range column_list(d)
+partition by range columns(d)
( partition p0 values less than ('2000-01-01'),
partition p1 values less than ('2040-01-01'));
ERROR HY000: Partition column values of incorrect type
create table t1 (d timestamp)
-partition by range column_list(d)
+partition by range columns(d)
( partition p0 values less than ('2000-01-01'),
partition p1 values less than ('2040-01-01'));
ERROR HY000: Field 'd' is of a not allowed type for this type of partitioning
create table t1 (d bit(1))
-partition by range column_list(d)
+partition by range columns(d)
( partition p0 values less than (0),
partition p1 values less than (1));
ERROR HY000: Field 'd' is of a not allowed type for this type of partitioning
create table t1 (a int, b int)
-partition by range column_list(a,b)
+partition by range columns(a,b)
(partition p0 values less than (maxvalue, 10));
drop table t1;
create table t1 (d date)
-partition by range column_list(d)
+partition by range columns(d)
( partition p0 values less than ('2000-01-01'),
partition p1 values less than ('2009-01-01'));
drop table t1;
create table t1 (d date)
-partition by range column_list(d)
+partition by range columns(d)
( partition p0 values less than ('1999-01-01'),
partition p1 values less than ('2000-01-01'));
drop table t1;
create table t1 (d date)
-partition by range column_list(d)
+partition by range columns(d)
( partition p0 values less than ('2000-01-01'),
partition p1 values less than ('3000-01-01'));
drop table t1;
create table t1 (a int, b int)
-partition by range column_list(a,b)
+partition by range columns(a,b)
(partition p2 values less than (99,99),
partition p1 values less than (99,999));
insert into t1 values (99,998);
@@ -397,22 +397,22 @@ data_type
int
drop table t1;
create table t1 (a int, b int)
-partition by list column_list(a,b)
+partition by list columns(a,b)
(partition p0 values in ((maxvalue,maxvalue)));
ERROR 42000: Cannot use MAXVALUE as value in VALUES IN near 'maxvalue,maxvalue)))' at line 3
create table t1 (a int, b int)
-partition by range column_list(a,b)
+partition by range columns(a,b)
(partition p0 values less than (maxvalue,maxvalue));
drop table t1;
create table t1 (a int)
-partition by list column_list(a)
+partition by list columns(a)
(partition p0 values in (0));
select partition_method from information_schema.partitions where table_name='t1';
partition_method
-LIST COLUMN_LIST
+LIST COLUMNS
drop table t1;
create table t1 (a char(6))
-partition by range column_list(a)
+partition by range columns(a)
(partition p0 values less than ('H23456'),
partition p1 values less than ('M23456'));
insert into t1 values ('F23456');
@@ -421,25 +421,25 @@ a
F23456
drop table t1;
create table t1 (a char(6))
-partition by range column_list(a)
+partition by range columns(a)
(partition p0 values less than (H23456),
partition p1 values less than (M23456));
ERROR 42S22: Unknown column 'H23456' in 'field list'
create table t1 (a char(6))
-partition by range column_list(a)
+partition by range columns(a)
(partition p0 values less than (23456),
partition p1 values less than (23456));
ERROR HY000: VALUES LESS THAN value must be strictly increasing for each partition
create table t1 (a int, b int)
-partition by range column_list(a,b)
+partition by range columns(a,b)
(partition p0 values less than (10));
ERROR 42000: Inconsistency in usage of column lists for partitioning near '))' at line 3
create table t1 (a int, b int)
-partition by range column_list(a,b)
+partition by range columns(a,b)
(partition p0 values less than (1,1,1);
ERROR HY000: Inconsistency in usage of column lists for partitioning
create table t1 (a int, b int)
-partition by range column_list(a,b)
+partition by range columns(a,b)
(partition p0 values less than (1, 0),
partition p1 values less than (2, maxvalue),
partition p2 values less than (3, 3),
@@ -457,7 +457,7 @@ a b
4 9
9 1
alter table t1
-partition by range column_list(b,a)
+partition by range columns(b,a)
(partition p0 values less than (1,2),
partition p1 values less than (3,3),
partition p2 values less than (9,5));
@@ -509,7 +509,7 @@ a b
9 1
drop table t1;
create table t1 (a int, b int)
-partition by list column_list(a,b)
+partition by list columns(a,b)
subpartition by hash (b)
subpartitions 2
(partition p0 values in ((0,0), (1,1)),
@@ -517,7 +517,7 @@ partition p1 values in ((1000,1000)));
insert into t1 values (1000,1000);
drop table t1;
create table t1 (a char, b char, c char)
-partition by range column_list(a,b,c)
+partition by range columns(a,b,c)
( partition p0 values less than ('a','b','c'));
alter table t1 add partition
(partition p1 values less than ('b','c','d'));
diff --git a/mysql-test/r/partition_column_prune.result b/mysql-test/r/partition_column_prune.result
index 5699582a0dc..82c49453d43 100644
--- a/mysql-test/r/partition_column_prune.result
+++ b/mysql-test/r/partition_column_prune.result
@@ -1,6 +1,6 @@
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
create table t1 (a char, b char, c char)
-partition by range column_list(a,b,c)
+partition by range columns(a,b,c)
( partition p0 values less than ('a','b','c'));
insert into t1 values ('a', NULL, 'd');
explain partitions select * from t1 where a = 'a' AND c = 'd';
@@ -10,7 +10,7 @@ select * from t1 where a = 'a' AND c = 'd';
a b c
a NULL d
drop table t1;
-create table t1 (a int not null) partition by range column_list(a) (
+create table t1 (a int not null) partition by range columns(a) (
partition p0 values less than (10),
partition p1 values less than (20),
partition p2 values less than (30),
@@ -40,7 +40,7 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t2 p3,p4 ALL NULL NULL NULL NULL 4 Using where
drop table t1, t2;
create table t1 (a int not null, b int not null )
-partition by range column_list(a,b) (
+partition by range columns(a,b) (
partition p01 values less than (2,10),
partition p02 values less than (2,20),
partition p03 values less than (2,30),
diff --git a/mysql-test/r/partition_innodb.result b/mysql-test/r/partition_innodb.result
index 49d96c86645..53e0d88f3f8 100644
--- a/mysql-test/r/partition_innodb.result
+++ b/mysql-test/r/partition_innodb.result
@@ -1,7 +1,7 @@
drop table if exists t1;
create table t1 (a varchar(5))
engine=memory
-partition by range column_list(a)
+partition by range columns(a)
( partition p0 values less than ('m'),
partition p1 values less than ('za'));
insert into t1 values ('j');
@@ -9,7 +9,7 @@ update t1 set a = 'z' where (a >= 'j');
drop table t1;
create table t1 (a varchar(5))
engine=myisam
-partition by range column_list(a)
+partition by range columns(a)
( partition p0 values less than ('m'),
partition p1 values less than ('za'));
insert into t1 values ('j');
@@ -17,7 +17,7 @@ update t1 set a = 'z' where (a >= 'j');
drop table t1;
create table t1 (a varchar(5))
engine=innodb
-partition by range column_list(a)
+partition by range columns(a)
( partition p0 values less than ('m'),
partition p1 values less than ('za'));
insert into t1 values ('j');
diff --git a/mysql-test/r/partition_range.result b/mysql-test/r/partition_range.result
index cfc8bb0b7a4..87cb4fba306 100644
--- a/mysql-test/r/partition_range.result
+++ b/mysql-test/r/partition_range.result
@@ -77,7 +77,7 @@ a
2004-01-01 11:59:29
drop table t1;
create table t1 (a int, b char(20))
-partition by range column_list(a,b)
+partition by range columns(a,b)
(partition p0 values less than (1));
ERROR 42000: Inconsistency in usage of column lists for partitioning near '))' at line 3
create table t1 (a int, b char(20))
@@ -89,7 +89,7 @@ partition by range(a)
(partition p0 values less than (1,"b"));
ERROR HY000: Cannot have more than one value for this type of RANGE partitioning
create table t1 (a int, b char(20))
-partition by range column_list(b)
+partition by range columns(b)
(partition p0 values less than ("b"));
drop table t1;
create table t1 (a int)
diff --git a/mysql-test/t/partition_column.test b/mysql-test/t/partition_column.test
index b46c65b9cb0..3891610d12d 100644
--- a/mysql-test/t/partition_column.test
+++ b/mysql-test/t/partition_column.test
@@ -13,11 +13,11 @@ drop table if exists t1;
#
--error ER_PARTITION_FIELDS_TOO_LONG
create table t1 (a varchar(1500), b varchar(1570))
-partition by list column_list(a,b)
+partition by list columns(a,b)
( partition p0 values in (('a','b')));
create table t1 (a varchar(1023) character set utf8 collate utf8_spanish2_ci)
-partition by range column_list(a)
+partition by range columns(a)
( partition p0 values less than ('CZ'),
partition p1 values less than ('CH'),
partition p2 values less than ('D'));
@@ -31,12 +31,12 @@ drop table t1;
set @@sql_mode=allow_invalid_dates;
--error ER_WRONG_TYPE_COLUMN_VALUE_ERROR
create table t1 (a char, b char, c date)
-partition by range column_list (a,b,c)
+partition by range columns (a,b,c)
( partition p0 values less than (0,0,to_days('3000-11-31')));
--error ER_WRONG_TYPE_COLUMN_VALUE_ERROR
create table t1 (a char, b char, c date)
-partition by range column_list (a,b,c)
+partition by range columns (a,b,c)
( partition p0 values less than (0,0,'3000-11-31'));
set @@sql_mode='';
@@ -44,7 +44,7 @@ set @@sql_mode='';
# BUG#48163, Dagger in UCS2 not working as partition value
#
create table t1 (a varchar(2) character set ucs2)
-partition by list column_list (a)
+partition by list columns (a)
(partition p0 values in (0x2020),
partition p1 values in (''));
show create table t1;
@@ -53,7 +53,7 @@ insert into t1 values (_ucs2 0x2020);
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)
+partition by range columns(a,b,c,d)
subpartition by hash (to_seconds(d))
subpartitions 4
( partition p0 values less than (1, 0, MAXVALUE, '1900-01-01'),
@@ -67,16 +67,16 @@ drop table t1;
--error ER_NULL_IN_VALUES_LESS_THAN
create table t1 (a int, b int)
-partition by range column_list (a,b)
+partition by range columns (a,b)
(partition p0 values less than (NULL, maxvalue));
--error ER_MAXVALUE_IN_VALUES_IN, ER_PARSE_ERROR
create table t1 (a int, b int)
-partition by list column_list(a,b)
+partition by list columns(a,b)
( partition p0 values in ((maxvalue, 0)));
create table t1 (a int, b int)
-partition by list column_list (a,b)
+partition by list columns (a,b)
( partition p0 values in ((0,0)));
--error ER_MAXVALUE_IN_VALUES_IN, ER_PARSE_ERROR
alter table t1 add partition
@@ -90,7 +90,7 @@ create table t1 (a int, b int)
partition by key (a,a);
--error ER_SAME_NAME_PARTITION_FIELD
create table t1 (a int, b int)
-partition by list column_list(a,a)
+partition by list columns(a,a)
( partition p values in ((1,1)));
#
@@ -108,7 +108,7 @@ select * from t1 where a <= 1;
drop table t1;
create table t1 (a int signed)
-partition by list column_list(a)
+partition by list columns(a)
( partition p0 values in (1, 3, 5, 7, 9, NULL),
partition p1 values in (2, 4, 6, 8, 0));
insert into t1 values (NULL),(0),(1),(2),(2),(4),(4),(4),(8),(8);
@@ -119,7 +119,7 @@ select * from t1 where a <= 1;
drop table t1;
create table t1 (a int, b int)
-partition by list column_list(a,b)
+partition by list columns(a,b)
( partition p0 values in ((1, NULL), (2, NULL), (NULL, NULL)),
partition p1 values in ((1,1), (2,2)),
partition p2 values in ((3, NULL), (NULL, 1)));
@@ -167,12 +167,12 @@ drop table t1;
--error ER_PARSE_ERROR
create table t1 (a int)
-partition by list column_list(a)
+partition by list columns(a)
( partition p0 values in (2, 1),
partition p1 values in ((4), (NULL), (3)));
create table t1 (a int)
-partition by list column_list(a)
+partition by list columns(a)
( partition p0 values in (2, 1),
partition p1 values in (4, NULL, 3));
select partition_method, partition_expression, partition_description
@@ -189,7 +189,7 @@ show create table t1;
drop table t1;
create table t1 (a int, b char(10), c varchar(5), d int)
-partition by range column_list(a,b,c)
+partition by range columns(a,b,c)
subpartition by key (c,d)
subpartitions 3
( partition p0 values less than (1,'abc','abc'),
@@ -209,7 +209,7 @@ select * from t1 where (a = 1 AND b < 'd' AND (c = 'b' OR (c = 'c' AND d = 1)) O
drop table t1;
create table t1 (a int, b varchar(2), c int)
-partition by range column_list (a, b, c)
+partition by range columns (a, b, c)
(partition p0 values less than (1, 'A', 1),
partition p1 values less than (1, 'B', 1));
select partition_method, partition_expression, partition_description
@@ -221,7 +221,7 @@ select * from t1 where a = 1 AND b <= 'A' and c = 1;
drop table t1;
create table t1 (a char, b char, c char)
-partition by list column_list(a)
+partition by list columns(a)
( partition p0 values in ('a'));
insert into t1 (a) values ('a');
select * from t1 where a = 'a';
@@ -229,47 +229,47 @@ drop table t1;
--error ER_WRONG_TYPE_COLUMN_VALUE_ERROR
create table t1 (d time)
-partition by range column_list(d)
+partition by range columns(d)
( partition p0 values less than ('2000-01-01'),
partition p1 values less than ('2040-01-01'));
--error ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD
create table t1 (d timestamp)
-partition by range column_list(d)
+partition by range columns(d)
( partition p0 values less than ('2000-01-01'),
partition p1 values less than ('2040-01-01'));
--error ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD
create table t1 (d bit(1))
-partition by range column_list(d)
+partition by range columns(d)
( partition p0 values less than (0),
partition p1 values less than (1));
create table t1 (a int, b int)
-partition by range column_list(a,b)
+partition by range columns(a,b)
(partition p0 values less than (maxvalue, 10));
drop table t1;
create table t1 (d date)
-partition by range column_list(d)
+partition by range columns(d)
( partition p0 values less than ('2000-01-01'),
partition p1 values less than ('2009-01-01'));
drop table t1;
create table t1 (d date)
-partition by range column_list(d)
+partition by range columns(d)
( partition p0 values less than ('1999-01-01'),
partition p1 values less than ('2000-01-01'));
drop table t1;
create table t1 (d date)
-partition by range column_list(d)
+partition by range columns(d)
( partition p0 values less than ('2000-01-01'),
partition p1 values less than ('3000-01-01'));
drop table t1;
create table t1 (a int, b int)
-partition by range column_list(a,b)
+partition by range columns(a,b)
(partition p2 values less than (99,99),
partition p1 values less than (99,999));
@@ -284,21 +284,21 @@ drop table t1;
--error ER_PARSE_ERROR
create table t1 (a int, b int)
-partition by list column_list(a,b)
+partition by list columns(a,b)
(partition p0 values in ((maxvalue,maxvalue)));
create table t1 (a int, b int)
-partition by range column_list(a,b)
+partition by range columns(a,b)
(partition p0 values less than (maxvalue,maxvalue));
drop table t1;
create table t1 (a int)
-partition by list column_list(a)
+partition by list columns(a)
(partition p0 values in (0));
select partition_method from information_schema.partitions where table_name='t1';
drop table t1;
create table t1 (a char(6))
-partition by range column_list(a)
+partition by range columns(a)
(partition p0 values less than ('H23456'),
partition p1 values less than ('M23456'));
insert into t1 values ('F23456');
@@ -307,28 +307,28 @@ drop table t1;
-- error 1054
create table t1 (a char(6))
-partition by range column_list(a)
+partition by range columns(a)
(partition p0 values less than (H23456),
partition p1 values less than (M23456));
-- error ER_RANGE_NOT_INCREASING_ERROR
create table t1 (a char(6))
-partition by range column_list(a)
+partition by range columns(a)
(partition p0 values less than (23456),
partition p1 values less than (23456));
-- error 1064
create table t1 (a int, b int)
-partition by range column_list(a,b)
+partition by range columns(a,b)
(partition p0 values less than (10));
-- error ER_PARTITION_COLUMN_LIST_ERROR
create table t1 (a int, b int)
-partition by range column_list(a,b)
+partition by range columns(a,b)
(partition p0 values less than (1,1,1);
create table t1 (a int, b int)
-partition by range column_list(a,b)
+partition by range columns(a,b)
(partition p0 values less than (1, 0),
partition p1 values less than (2, maxvalue),
partition p2 values less than (3, 3),
@@ -340,7 +340,7 @@ insert into t1 values (0,1),(1,1),(2,1),(3,1),(3,4),(4,9),(9,1);
select * from t1;
alter table t1
-partition by range column_list(b,a)
+partition by range columns(b,a)
(partition p0 values less than (1,2),
partition p1 values less than (3,3),
partition p2 values less than (9,5));
@@ -374,7 +374,7 @@ select * from t1 where b < 4;
drop table t1;
create table t1 (a int, b int)
-partition by list column_list(a,b)
+partition by list columns(a,b)
subpartition by hash (b)
subpartitions 2
(partition p0 values in ((0,0), (1,1)),
@@ -384,7 +384,7 @@ insert into t1 values (1000,1000);
drop table t1;
create table t1 (a char, b char, c char)
-partition by range column_list(a,b,c)
+partition by range columns(a,b,c)
( partition p0 values less than ('a','b','c'));
alter table t1 add partition
(partition p1 values less than ('b','c','d'));
diff --git a/mysql-test/t/partition_column_prune.test b/mysql-test/t/partition_column_prune.test
index ec8ce725b34..848825ba71b 100644
--- a/mysql-test/t/partition_column_prune.test
+++ b/mysql-test/t/partition_column_prune.test
@@ -8,7 +8,7 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
--enable_warnings
create table t1 (a char, b char, c char)
-partition by range column_list(a,b,c)
+partition by range columns(a,b,c)
( partition p0 values less than ('a','b','c'));
insert into t1 values ('a', NULL, 'd');
explain partitions select * from t1 where a = 'a' AND c = 'd';
@@ -16,7 +16,7 @@ select * from t1 where a = 'a' AND c = 'd';
drop table t1;
## COLUMN_LIST partition pruning tests
-create table t1 (a int not null) partition by range column_list(a) (
+create table t1 (a int not null) partition by range columns(a) (
partition p0 values less than (10),
partition p1 values less than (20),
partition p2 values less than (30),
@@ -46,7 +46,7 @@ explain partitions select * from t2 where a > 35 and a < 45;
drop table t1, t2;
create table t1 (a int not null, b int not null )
-partition by range column_list(a,b) (
+partition by range columns(a,b) (
partition p01 values less than (2,10),
partition p02 values less than (2,20),
partition p03 values less than (2,30),
diff --git a/mysql-test/t/partition_innodb.test b/mysql-test/t/partition_innodb.test
index eadf4876540..5aef5dcaa18 100644
--- a/mysql-test/t/partition_innodb.test
+++ b/mysql-test/t/partition_innodb.test
@@ -10,7 +10,7 @@ drop table if exists t1;
#
create table t1 (a varchar(5))
engine=memory
-partition by range column_list(a)
+partition by range columns(a)
( partition p0 values less than ('m'),
partition p1 values less than ('za'));
insert into t1 values ('j');
@@ -19,7 +19,7 @@ drop table t1;
create table t1 (a varchar(5))
engine=myisam
-partition by range column_list(a)
+partition by range columns(a)
( partition p0 values less than ('m'),
partition p1 values less than ('za'));
insert into t1 values ('j');
@@ -28,7 +28,7 @@ drop table t1;
create table t1 (a varchar(5))
engine=innodb
-partition by range column_list(a)
+partition by range columns(a)
( partition p0 values less than ('m'),
partition p1 values less than ('za'));
insert into t1 values ('j');
diff --git a/mysql-test/t/partition_range.test b/mysql-test/t/partition_range.test
index b4de6f1e5f6..07c345faed5 100644
--- a/mysql-test/t/partition_range.test
+++ b/mysql-test/t/partition_range.test
@@ -63,7 +63,7 @@ drop table t1;
#
--error 1064
create table t1 (a int, b char(20))
-partition by range column_list(a,b)
+partition by range columns(a,b)
(partition p0 values less than (1));
--error ER_TOO_MANY_VALUES_ERROR
@@ -77,7 +77,7 @@ partition by range(a)
(partition p0 values less than (1,"b"));
create table t1 (a int, b char(20))
-partition by range column_list(b)
+partition by range columns(b)
(partition p0 values less than ("b"));
drop table t1;
diff --git a/sql/lex.h b/sql/lex.h
index 1a119d2a30b..cd0c042159f 100644
--- a/sql/lex.h
+++ b/sql/lex.h
@@ -119,7 +119,6 @@ static SYMBOL symbols[] = {
{ "COLUMN", SYM(COLUMN_SYM)},
{ "COLUMN_NAME", SYM(COLUMN_NAME_SYM)},
{ "COLUMNS", SYM(COLUMNS)},
- { "COLUMN_LIST", SYM(COLUMN_LIST_SYM)},
{ "COMMENT", SYM(COMMENT_SYM)},
{ "COMMIT", SYM(COMMIT_SYM)},
{ "COMMITTED", SYM(COMMITTED_SYM)},
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index fb342359c5f..ce86fa535fe 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -3251,7 +3251,7 @@ int find_used_partitions(PART_PRUNE_PARAM *ppar, SEL_ARG *key_tree)
/*
We need to call the interval mapper if we have a condition which
- makes sense to prune on. In the example of a COLUMN_LIST on a and
+ makes sense to prune on. In the example of COLUMNS on a and
b it makes sense if we have a condition on a, or conditions on
both a and b. If we only have conditions on b it might make sense
but this is a harder case we will solve later. For the harder case
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc
index ec16ff29eaa..ba99d8b45b4 100644
--- a/sql/sql_partition.cc
+++ b/sql/sql_partition.cc
@@ -68,7 +68,7 @@ const LEX_STRING partition_keywords[]=
{ C_STRING_WITH_LEN("KEY") },
{ C_STRING_WITH_LEN("MAXVALUE") },
{ C_STRING_WITH_LEN("LINEAR ") },
- { C_STRING_WITH_LEN(" COLUMN_LIST") }
+ { C_STRING_WITH_LEN(" COLUMNS") }
};
static const char *part_str= "PARTITION";
static const char *subpart_str= "SUBPARTITION";
@@ -6925,7 +6925,7 @@ void make_used_partitions_str(partition_info *part_info, String *parts_str)
(1) is applicable for "PARTITION BY <RANGE|LIST>(func(t.field))", where
func is a monotonic function.
- (2) is applicable for "PARTITION BY <RANGE|LIST> COLUMN_LIST (field_list)
+ (2) is applicable for "PARTITION BY <RANGE|LIST> COLUMNS (field_list)
(3) is applicable for
"[SUB]PARTITION BY <any-partitioning-type>(any_func(t.integer_field))"
@@ -7624,7 +7624,7 @@ uint32 get_next_partition_id_range(PARTITION_ITERATOR* part_iter)
DESCRIPTION
This implementation of PARTITION_ITERATOR::get_next() is special for
LIST partitioning: it enumerates partition ids in
- part_info->list_array[i] (list_col_array[i] for COLUMN_LIST LIST
+ part_info->list_array[i] (list_col_array[i] for COLUMNS LIST
partitioning) where i runs over [min_idx, max_idx] interval.
The function conforms to partition_iter_func type.
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index a8813fedd27..b6e3bfa4fb5 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -611,7 +611,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%token COLLATE_SYM /* SQL-2003-R */
%token COLLATION_SYM /* SQL-2003-N */
%token COLUMNS
-%token COLUMN_LIST_SYM
%token COLUMN_SYM /* SQL-2003-R */
%token COLUMN_NAME_SYM /* SQL-2003-N */
%token COMMENT_SYM
@@ -4121,7 +4120,7 @@ part_field_item:
;
part_column_list:
- COLUMN_LIST_SYM '(' part_field_list ')'
+ COLUMNS '(' part_field_list ')'
{
partition_info *part_info= Lex->part_info;
part_info->column_list= TRUE;