Commit a75633b5 authored by Oleksandr Byelkin's avatar Oleksandr Byelkin

MDEV-11681: PARTITION BY LIST COLUMNS with default partition: Assertion...

MDEV-11681: PARTITION BY LIST COLUMNS with default partition: Assertion `part_info->num_list_values' failed in get_part_iter_for_interval_cols_via_map

process adge case with only default partition
parent 7b27465e
......@@ -310,3 +310,27 @@ create table t1 (a char(1))
partition by list (ascii(ucase(a)))
(partition p1 values in (2));
ERROR HY000: This partition function is not allowed
#
# MDEV-11681: PARTITION BY LIST COLUMNS with default partition:
# Assertion `part_info->num_list_values' failed in
# get_part_iter_for_interval_cols_via_map
#
CREATE TABLE t1 (f int) PARTITION BY LIST COLUMNS (f) (PARTITION pdef DEFAULT);
insert into t1 values (1),(2);
select * from t1 where f = 1;
f
1
drop table t1;
CREATE TABLE t1 (f int, d int) PARTITION BY LIST COLUMNS (f,d) (PARTITION pdef DEFAULT);
insert into t1 values (1,1),(2,2);
select * from t1 where f = 1 and d = 1 ;
f d
1 1
drop table t1;
CREATE TABLE t1 (f int) PARTITION BY LIST (f) (PARTITION pdef DEFAULT);
insert into t1 values (1),(2);
select * from t1 where f = 1;
f
1
drop table t1;
#end of 10.2 tests
......@@ -186,3 +186,26 @@ create table t1 (a char(1))
partition by list (ascii(ucase(a)))
(partition p1 values in (2));
--echo #
--echo # MDEV-11681: PARTITION BY LIST COLUMNS with default partition:
--echo # Assertion `part_info->num_list_values' failed in
--echo # get_part_iter_for_interval_cols_via_map
--echo #
CREATE TABLE t1 (f int) PARTITION BY LIST COLUMNS (f) (PARTITION pdef DEFAULT);
insert into t1 values (1),(2);
select * from t1 where f = 1;
drop table t1;
CREATE TABLE t1 (f int, d int) PARTITION BY LIST COLUMNS (f,d) (PARTITION pdef DEFAULT);
insert into t1 values (1,1),(2,2);
select * from t1 where f = 1 and d = 1 ;
drop table t1;
CREATE TABLE t1 (f int) PARTITION BY LIST (f) (PARTITION pdef DEFAULT);
insert into t1 values (1),(2);
select * from t1 where f = 1;
drop table t1;
--echo #end of 10.2 tests
......@@ -7703,6 +7703,9 @@ int get_part_iter_for_interval_cols_via_map(partition_info *part_info,
}
else if (part_info->part_type == LIST_PARTITION)
{
if (part_info->has_default_partititon() &&
part_info->num_parts == 1)
DBUG_RETURN(-1); //only DEFAULT partition
get_col_endpoint= get_partition_id_cols_list_for_endpoint;
part_iter->get_next= get_next_partition_id_list;
part_iter->part_info= part_info;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment