mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-22165 CONVERT TABLE: move in partition from existing table
Syntax for CONVERT TABLE ALTER TABLE tbl_name CONVERT TABLE tbl_name TO PARTITION partition_name partition_spec Examples: ALTER TABLE t1 CONVERT TABLE tp2 TO PARTITION p2 VALUES LESS THAN MAX_VALUE(); New ALTER_PARTITION_CONVERT_IN command for fast_alter_partition_table() is done in alter_partition_convert_in() function which basically does ha_rename_table(). Table structure and data check is basically the same as in EXCHANGE PARTITION command. And these are done by compare_table_with_partition() and check_table_data(). Atomic DDL is done by the scheme from MDEV-22166 (see the corresponding commit message). The only differnce is that it also has to drop source table frm and that is done by WFRM_DROP_CONVERTED_FROM. Initial patch was done by Dmitry Shulga <dmitry.shulga@mariadb.com>
This commit is contained in:
committed by
Sergei Golubchik
parent
7da721be31
commit
69724805bc
@ -279,11 +279,16 @@ bool verify_data_with_partition(TABLE *table, TABLE *part_table,
|
||||
uint32 part_id);
|
||||
bool compare_partition_options(HA_CREATE_INFO *table_create_info,
|
||||
partition_element *part_elem);
|
||||
bool compare_table_with_partition(THD *thd, TABLE *table,
|
||||
TABLE *part_table,
|
||||
partition_element *part_elem,
|
||||
uint part_id);
|
||||
bool partition_key_modified(TABLE *table, const MY_BITMAP *fields);
|
||||
bool write_log_replace_frm(ALTER_PARTITION_PARAM_TYPE *lpt,
|
||||
uint next_entry,
|
||||
const char *from_path,
|
||||
const char *to_path);
|
||||
|
||||
#else
|
||||
#define partition_key_modified(X,Y) 0
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user