BUG#47754, used number of parts instead of number of list values as end part for list partitioning in column list partitioning
This commit is contained in:
parent
c9865cdb90
commit
08b57e5387
@ -20,6 +20,15 @@ select * from t1 where a = 2;
|
||||
a b
|
||||
2 NULL
|
||||
2 2
|
||||
select * from t1 where a > 8;
|
||||
a b
|
||||
select * from t1 where a not between 8 and 8;
|
||||
a b
|
||||
2 NULL
|
||||
2 2
|
||||
3 NULL
|
||||
1 NULL
|
||||
1 1
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
|
@ -14,6 +14,9 @@ partition by list column_list(a,b)
|
||||
column_list(NULL, NULL)),
|
||||
partition p1 values in (column_list(1,1), column_list(2,2)),
|
||||
partition p2 values in (column_list(3, NULL), column_list(NULL, 1)));
|
||||
#
|
||||
# BUG#47754 Crash when selecting using NOT BETWEEN for column list partitioning
|
||||
#
|
||||
insert into t1 values (3, NULL);
|
||||
insert into t1 values (NULL, 1);
|
||||
insert into t1 values (NULL, NULL);
|
||||
@ -23,6 +26,8 @@ insert into t1 values (1,1);
|
||||
insert into t1 values (2,2);
|
||||
select * from t1 where a = 1;
|
||||
select * from t1 where a = 2;
|
||||
select * from t1 where a > 8;
|
||||
select * from t1 where a not between 8 and 8;
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
|
@ -6962,7 +6962,15 @@ int get_part_iter_for_interval_cols_via_map(partition_info *part_info,
|
||||
nparts);
|
||||
}
|
||||
if (flags & NO_MAX_RANGE)
|
||||
part_iter->part_nums.end= part_info->num_parts;
|
||||
{
|
||||
if (part_info->part_type == RANGE_PARTITION)
|
||||
part_iter->part_nums.end= part_info->num_parts;
|
||||
else /* LIST_PARTITION */
|
||||
{
|
||||
DBUG_ASSERT(part_info->part_type == LIST_PARTITION);
|
||||
part_iter->part_nums.end= part_info->num_list_values;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Copy from max_value to record
|
||||
|
Loading…
x
Reference in New Issue
Block a user