Bug#16860588:CRASH WITH CREATE TABLE ... LIKE ..

AND PARTITION VALUES IN (NULL)

The code assumed there was at least one list element
in LIST partitioned table.

Fixed by checking the number of list elements.
This commit is contained in:
Mattias Jonsson 2013-08-12 11:09:33 +02:00
parent 343f74b90f
commit 9a132fa76c

View File

@ -2214,11 +2214,10 @@ int partition_info::fix_parser_data(THD *thd)
{
part_elem= it++;
List_iterator<part_elem_value> list_val_it(part_elem->list_val_list);
j= 0;
num_elements= part_elem->list_val_list.elements;
DBUG_ASSERT(part_type == RANGE_PARTITION ?
num_elements == 1U : TRUE);
do
for (j= 0; j < num_elements; j++)
{
part_elem_value *val= list_val_it++;
if (column_list)
@ -2253,7 +2252,7 @@ int partition_info::fix_parser_data(THD *thd)
list_val_it.remove();
}
}
} while (++j < num_elements);
}
} while (++i < num_parts);
DBUG_RETURN(FALSE);
}