diff options
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/partition_column.result | 44 | ||||
-rw-r--r-- | mysql-test/r/partition_utf8.result | 53 | ||||
-rw-r--r-- | mysql-test/t/partition_column.test | 34 | ||||
-rw-r--r-- | mysql-test/t/partition_utf8.test | 42 |
4 files changed, 115 insertions, 58 deletions
diff --git a/mysql-test/r/partition_column.result b/mysql-test/r/partition_column.result index 71d159c2f51..8c7d5b4ff77 100644 --- a/mysql-test/r/partition_column.result +++ b/mysql-test/r/partition_column.result @@ -1,18 +1,18 @@ drop table if exists t1; -create table t1 (a varchar(1500), b varchar(1570)) -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 columns(a) -( partition p0 values less than ('CZ'), -partition p1 values less than ('CH'), -partition p2 values less than ('D')); -insert into t1 values ('czz'),('chi'),('ci'),('cg'); -select * from t1 where a between 'cg' AND 'ci'; -a -ci -cg +create table t1 (a varchar(5)) +partition by list columns(a) +( partition p0 values in ('\''), + partition p1 values in ('\\'), + partition p2 values in ('\0')); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` varchar(5) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +/*!50100 PARTITION BY LIST COLUMNS(a) +(PARTITION p0 VALUES IN ('''') ENGINE = MyISAM, + PARTITION p1 VALUES IN ('\\') ENGINE = MyISAM, + PARTITION p2 VALUES IN ('\0') ENGINE = MyISAM) */ drop table t1; set @@sql_mode=allow_invalid_dates; create table t1 (a char, b char, c date) @@ -24,22 +24,6 @@ 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 columns (a) -(partition p0 values in (0x2020), -partition p1 values in ('')); -set names utf8; -show create table t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `a` varchar(2) CHARACTER SET ucs2 DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LIST COLUMNS(a) -(PARTITION p0 VALUES IN ('†') ENGINE = MyISAM, - PARTITION p1 VALUES IN ('') 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 columns(a,b,c,d) subpartition by hash (to_seconds(d)) diff --git a/mysql-test/r/partition_utf8.result b/mysql-test/r/partition_utf8.result new file mode 100644 index 00000000000..0fae7bb16b6 --- /dev/null +++ b/mysql-test/r/partition_utf8.result @@ -0,0 +1,53 @@ +set names utf8; +create table t1 (a varchar(2) character set cp1250) +partition by list columns (a) +( partition p0 values in (0x81)); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` varchar(2) CHARACTER SET cp1250 DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +/*!50100 PARTITION BY LIST COLUMNS(a) +(PARTITION p0 VALUES IN (_cp1250 0x81) ENGINE = MyISAM) */ +drop table t1; +create table t1 (a varchar(2) character set cp1250) +partition by list columns (a) +( partition p0 values in (0x80)); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` varchar(2) CHARACTER SET cp1250 DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +/*!50100 PARTITION BY LIST COLUMNS(a) +(PARTITION p0 VALUES IN ('€') ENGINE = MyISAM) */ +drop table t1; +create table t1 (a varchar(1500), b varchar(1570)) +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 columns(a) +( partition p0 values less than ('CZ'), +partition p1 values less than ('CH'), +partition p2 values less than ('D')); +insert into t1 values ('czz'),('chi'),('ci'),('cg'); +select * from t1 where a between 'cg' AND 'ci'; +a +ci +cg +drop table t1; +create table t1 (a varchar(2) character set ucs2) +partition by list columns (a) +(partition p0 values in (0x2020), +partition p1 values in ('')); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` varchar(2) CHARACTER SET ucs2 DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +/*!50100 PARTITION BY LIST COLUMNS(a) +(PARTITION p0 VALUES IN ('†') ENGINE = MyISAM, + PARTITION p1 VALUES IN ('') ENGINE = MyISAM) */ +insert into t1 values (''); +insert into t1 values (_ucs2 0x2020); +drop table t1; diff --git a/mysql-test/t/partition_column.test b/mysql-test/t/partition_column.test index b5aea873654..6b62e3576b4 100644 --- a/mysql-test/t/partition_column.test +++ b/mysql-test/t/partition_column.test @@ -8,21 +8,12 @@ drop table if exists t1; --enable_warnings -# -# BUG#48164, too long partition fields causes crash -# ---error ER_PARTITION_FIELDS_TOO_LONG -create table t1 (a varchar(1500), b varchar(1570)) -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 columns(a) -( partition p0 values less than ('CZ'), - partition p1 values less than ('CH'), - partition p2 values less than ('D')); -insert into t1 values ('czz'),('chi'),('ci'),('cg'); -select * from t1 where a between 'cg' AND 'ci'; +create table t1 (a varchar(5)) +partition by list columns(a) +( partition p0 values in ('\''), + partition p1 values in ('\\'), + partition p2 values in ('\0')); +show create table t1; drop table t1; # @@ -40,19 +31,6 @@ partition by range columns (a,b,c) ( partition p0 values less than (0,0,'3000-11-31')); 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 columns (a) -(partition p0 values in (0x2020), - partition p1 values in ('')); -set names utf8; -show create table t1; -insert into t1 values (''); -insert into t1 values (_ucs2 0x2020); -drop table t1; - --error ER_WRONG_TYPE_COLUMN_VALUE_ERROR create table t1 (a int, b char(10), c varchar(25), d datetime) partition by range columns(a,b,c,d) diff --git a/mysql-test/t/partition_utf8.test b/mysql-test/t/partition_utf8.test new file mode 100644 index 00000000000..d3ad7ba671e --- /dev/null +++ b/mysql-test/t/partition_utf8.test @@ -0,0 +1,42 @@ +# Tests for Column list which requires utf8 output +--source include/have_partition.inc +set names utf8; +create table t1 (a varchar(2) character set cp1250) +partition by list columns (a) +( partition p0 values in (0x81)); +show create table t1; +drop table t1; +create table t1 (a varchar(2) character set cp1250) +partition by list columns (a) +( partition p0 values in (0x80)); +show create table t1; +drop table t1; + +# +# BUG#48164, too long partition fields causes crash +# +--error ER_PARTITION_FIELDS_TOO_LONG +create table t1 (a varchar(1500), b varchar(1570)) +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 columns(a) +( partition p0 values less than ('CZ'), + partition p1 values less than ('CH'), + partition p2 values less than ('D')); +insert into t1 values ('czz'),('chi'),('ci'),('cg'); +select * from t1 where a between 'cg' AND 'ci'; +drop table t1; + +# +# BUG#48163, Dagger in UCS2 not working as partition value +# +create table t1 (a varchar(2) character set ucs2) +partition by list columns (a) +(partition p0 values in (0x2020), + partition p1 values in ('')); +show create table t1; +insert into t1 values (''); +insert into t1 values (_ucs2 0x2020); +drop table t1; |