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

- moved used_partitions initialization
This commit is contained in:
unknown 2006-02-28 14:29:48 +01:00
parent b203771eab
commit 50ce511bdb
2 changed files with 6 additions and 3 deletions

View file

@ -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"));

View file

@ -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)