summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/partition_column.result44
-rw-r--r--mysql-test/r/partition_utf8.result53
-rw-r--r--mysql-test/t/partition_column.test34
-rw-r--r--mysql-test/t/partition_utf8.test42
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;