MySQL 8.0.39
Source Code Documentation
|
Class which handles the partition of the state PART_TO_BE_ADDED. More...
Public Member Functions | |
alter_part_add (uint part_id, partition_state state, const char *table_name, const char *tablespace, trx_t *trx, const Alter_inplace_info *ha_alter_info, bool file_per_table, uint64_t autoinc, bool conflict) | |
Constructor. More... | |
~alter_part_add () override=default | |
Destructor. More... | |
int | prepare (TABLE *altered_table, const dd::Partition *old_part, dd::Partition *new_part) override |
Prepare. More... | |
int | try_commit (const TABLE *table, TABLE *altered_table, const dd::Partition *old_part, dd::Partition *new_part) override |
Try to commit. More... | |
void | rollback () override |
Rollback. More... | |
Public Member Functions inherited from alter_part | |
virtual | ~alter_part ()=default |
Virtual destructor. More... | |
virtual uint | part_id () const |
Return the partition id. More... | |
virtual partition_state | state () const |
Return the partition state. More... | |
dict_table_t * | new_table () |
Get the InnoDB table object for newly created partition if applicable. More... | |
void | free_old_part (bool check_in_cache, const char *part_name) |
Set the freed old partition to nullptr to avoid dangling pointer. More... | |
Private Member Functions | |
bool | need_rename () const |
Check if the new partition file needs a temporary name and should be renamed at last. More... | |
void | inherit_instant_metadata (const dd::Table *source, dd::Table *dest) |
Inherit instant metadata of dd::Table and dd::Columns belonging to it. More... | |
Private Attributes | |
const Alter_inplace_info * | m_ha_alter_info |
ALTER information. More... | |
const bool | m_file_per_table |
Current value of innodb_file_per_table. More... | |
const uint64_t | m_autoinc |
Next AUTOINC value to use. More... | |
const bool | m_conflict |
True if there is already a partition table with the same name. More... | |
char | m_tablespace [FN_REFLEN+1] |
Tablespace of this partition. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from alter_part | |
alter_part (trx_t *trx, uint part_id, partition_state state, const char *table_name, dict_table_t **old) | |
Constructor. More... | |
bool | build_partition_name (const dd::Partition *dd_part, bool temp, char *name) |
Build the partition name for specified partition. More... | |
int | create (const dd::Table *part_table, const char *part_name, dd::Partition *dd_part, TABLE *table, const char *tablespace, bool file_per_table, uint64_t autoinc, uint64_t autoextend_size) |
Create a new partition. More... | |
Protected Attributes inherited from alter_part | |
trx_t *const | m_trx |
InnoDB transaction, nullptr if not used. More... | |
uint | m_part_id |
Partition id in the table. More... | |
partition_state | m_state |
Partition state of the partition on which this class will do operations. More... | |
const char * | m_table_name |
Partitioned table name, in form of . More... | |
dict_table_t ** | m_old |
The InnoDB table object for old partition. More... | |
dict_table_t * | m_new |
The InnoDB table object for newly created partition. More... | |
Class which handles the partition of the state PART_TO_BE_ADDED.
See comments for alter_part_factory::create_for_reorg and alter_part_factory::create_for_non_reorg.
|
inline |
Constructor.
[in] | part_id | Partition id in the table. This could be partition id for either old table or new table, callers should remember which one is applicable |
[in] | state | Partition state of the partition on which this class will do operations. If this is for one partition in new table, the partition state is the same for both the new partition and the corresponding old partition |
[in] | table_name | Partitioned table name, in the form of db/table, which already considers the charset |
[in] | tablespace | Tablespace specified explicitly |
[in,out] | trx | InnoDB transaction |
[in] | ha_alter_info | ALTER information |
[in] | file_per_table | Current value of innodb_file_per_table |
[in] | autoinc | Next autoinc value to use |
[in] | conflict | True if there is already a partition table with the same name |
|
overridedefault |
Destructor.
|
private |
Inherit instant metadata of dd::Table and dd::Columns belonging to it.
This is used when a new partition is added as part of REORGANIZE partition.
[in] | source | Source dd table |
[in,out] | dest | Destination dd table |
|
inlineprivate |
Check if the new partition file needs a temporary name and should be renamed at last.
|
inlineoverridevirtual |
Prepare.
[in,out] | altered_table | Table definition after the ALTER |
[in] | old_part | the stored old partition or nullptr if no corresponding one exists |
[in,out] | new_part | the stored new partition or nullptr if no corresponding one exists |
Reimplemented from alter_part.
|
inlineoverridevirtual |
Rollback.
Reimplemented from alter_part.
|
inlineoverridevirtual |
Try to commit.
[in] | table | Table definition before the ALTER |
[in,out] | altered_table | Table definition after the ALTER |
[in] | old_part | the stored old partition or nullptr if no corresponding one exists |
[in,out] | new_part | the stored new partition or nullptr if no corresponding one exists |
Reimplemented from alter_part.
|
private |
Next AUTOINC value to use.
|
private |
True if there is already a partition table with the same name.
|
private |
Current value of innodb_file_per_table.
|
private |
ALTER information.
|
private |
Tablespace of this partition.