mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug #17499 Alter table of ndb partitioned tables causes mysqld to core
- moved used_partitions initialization
This commit is contained in:
@ -3381,8 +3381,13 @@ int ha_ndbcluster::extra(enum ha_extra_function operation)
|
|||||||
DBUG_PRINT("info", ("HA_EXTRA_RESET"));
|
DBUG_PRINT("info", ("HA_EXTRA_RESET"));
|
||||||
DBUG_PRINT("info", ("Clearing condition stack"));
|
DBUG_PRINT("info", ("Clearing condition stack"));
|
||||||
cond_clear();
|
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)
|
if (m_part_info)
|
||||||
bitmap_clear_all(&m_part_info->used_partitions);
|
bitmap_set_all(&m_part_info->used_partitions);
|
||||||
break;
|
break;
|
||||||
case HA_EXTRA_IGNORE_DUP_KEY: /* Dup keys don't rollback everything*/
|
case HA_EXTRA_IGNORE_DUP_KEY: /* Dup keys don't rollback everything*/
|
||||||
DBUG_PRINT("info", ("HA_EXTRA_IGNORE_DUP_KEY"));
|
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();
|
to->file->ha_set_all_bits_in_write_set();
|
||||||
from->file->ha_retrieve_all_cols();
|
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);
|
init_read_record(&info, thd, from, (SQL_SELECT *) 0, 1,1);
|
||||||
if (ignore ||
|
if (ignore ||
|
||||||
handle_duplicates == DUP_REPLACE)
|
handle_duplicates == DUP_REPLACE)
|
||||||
|
Reference in New Issue
Block a user