1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

BUG20733: Bug in partition pruning with zerofill field

Problem was with handling NULL values in ranges
This commit is contained in:
mikael/pappa@dator5.(none)
2006-07-20 05:28:16 -04:00
parent bae61f209d
commit cef004845c
10 changed files with 521 additions and 1 deletions

View File

@ -2415,6 +2415,10 @@ uint32 get_list_array_idx_for_endpoint(partition_info *part_info,
bool unsigned_flag= part_info->part_expr->unsigned_flag;
DBUG_ENTER("get_list_array_idx_for_endpoint");
if (part_info->part_expr->null_value)
{
DBUG_RETURN(0);
}
if (unsigned_flag)
part_func_value-= 0x8000000000000000ULL;
DBUG_ASSERT(part_info->no_list_values);
@ -2539,6 +2543,13 @@ uint32 get_partition_id_range_for_endpoint(partition_info *part_info,
bool unsigned_flag= part_info->part_expr->unsigned_flag;
DBUG_ENTER("get_partition_id_range_for_endpoint");
if (part_info->part_expr->null_value)
{
uint32 ret_part_id= 0;
if (!left_endpoint && include_endpoint)
ret_part_id= 1;
DBUG_RETURN(ret_part_id);
}
if (unsigned_flag)
part_func_value-= 0x8000000000000000ULL;
while (max_part_id > min_part_id)