Bug #17499 Alter table of ndb partitioned tables causes mysqld to core

- moved used_partitions initialization
parent a9ad4c2e
......@@ -3381,8 +3381,13 @@ int ha_ndbcluster::extra(enum ha_extra_function operation)
DBUG_PRINT("info", ("HA_EXTRA_RESET"));
DBUG_PRINT("info", ("Clearing condition stack"));
cond_clear();
/*
* Regular partition pruning will set the bitmap appropriately.
* Some queries like ALTER TABLE doesn't use partition pruning and
* thus the 'used_partitions' bitmap needs to be initialized
*/
if (m_part_info)
bitmap_clear_all(&m_part_info->used_partitions);
bitmap_set_all(&m_part_info->used_partitions);
break;
case HA_EXTRA_IGNORE_DUP_KEY: /* Dup keys don't rollback everything*/
DBUG_PRINT("info", ("HA_EXTRA_IGNORE_DUP_KEY"));
......
......@@ -5200,8 +5200,6 @@ copy_data_between_tables(TABLE *from,TABLE *to,
*/
to->file->ha_set_all_bits_in_write_set();
from->file->ha_retrieve_all_cols();
if (from->part_info)
bitmap_set_all(&(from->part_info->used_partitions));
init_read_record(&info, thd, from, (SQL_SELECT *) 0, 1,1);
if (ignore ||
handle_duplicates == DUP_REPLACE)
......
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