mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
e0b6294338
The code in convert_charset_partition_constant() did not take into account that the call for item->safe_charset_converter() can return NULL when conversion is not safe. Note, 10.2 was not affected. The test for NULL presents in 10.2, but it disappeared in 10.3 in a mistake. Restoring the test.
69 lines
2.2 KiB
Text
69 lines
2.2 KiB
Text
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
|
|
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
|
|
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
|
|
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;
|
|
#
|
|
# Start of 10.3 tests
|
|
#
|
|
#
|
|
# MDEV-20855 Crash with PARTITION BY LIST and extended characters
|
|
#
|
|
SET NAMES utf8;
|
|
CREATE OR REPLACE TABLE t1 (a CHAR(10)) CHARACTER SET latin1
|
|
PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN ('Б'));
|
|
ERROR HY000: This partition function is not allowed
|
|
CREATE OR REPLACE TABLE t1 (a TIME)
|
|
PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN ('Б'));
|
|
ERROR HY000: This partition function is not allowed
|
|
#
|
|
# End of 10.3 tests
|
|
#
|