MySQL 8.0.39
Source Code Documentation
|
Functions | |
enum_alter_inplace_result | ha_innopart::check_if_supported_inplace_alter (TABLE *altered_table, Alter_inplace_info *ha_alter_info) override |
Check if InnoDB supports a particular alter table in-place. More... | |
bool | ha_innopart::prepare_inplace_alter_table (TABLE *altered_table, Alter_inplace_info *ha_alter_info, const dd::Table *old_table_def, dd::Table *new_table_def) override |
Prepare in-place ALTER for table. More... | |
bool | ha_innopart::inplace_alter_table (TABLE *altered_table, Alter_inplace_info *ha_alter_info, const dd::Table *old_table_def, dd::Table *new_table_def) override |
Alter the table structure in-place. More... | |
bool | ha_innopart::commit_inplace_alter_table (TABLE *altered_table, Alter_inplace_info *ha_alter_info, bool commit, const dd::Table *old_table_def, dd::Table *new_table_def) override |
Commit or rollback. More... | |
|
overridevirtual |
Check if InnoDB supports a particular alter table in-place.
[in] | altered_table | TABLE object for new version of table. |
[in,out] | ha_alter_info | Structure describing changes to be done by ALTER TABLE and holding data used during in-place alter. |
HA_ALTER_INPLACE_NOT_SUPPORTED | Not supported |
HA_ALTER_INPLACE_NO_LOCK | Supported |
HA_ALTER_INPLACE_SHARED_LOCK_AFTER_PREPARE | Supported, but requires lock during main phase and exclusive lock during prepare phase. |
HA_ALTER_INPLACE_NO_LOCK_AFTER_PREPARE | Supported, prepare phase requires exclusive lock. |
Reimplemented from ha_innobase.
|
overridevirtual |
Commit or rollback.
Commit or rollback the changes made during prepare_inplace_alter_table() and inplace_alter_table() inside the storage engine. Note that the allowed level of concurrency during this operation will be the same as for inplace_alter_table() and thus might be higher than during prepare_inplace_alter_table(). (E.g concurrent writes were blocked during prepare, but might not be during commit).
[in] | altered_table | TABLE object for new version of table. |
[in,out] | ha_alter_info | Structure describing changes to be done by ALTER TABLE and holding data used during in-place alter. |
[in] | commit | true => Commit, false => Rollback. |
[in] | old_table_def | dd::Table object describing old version of the table. |
[in,out] | new_table_def | dd::Table object for the new version of the table. Can be adjusted by this call. Changes to the table definition will be persisted in the data-dictionary at statement commit time. |
true | Failure. |
false | Success. |
Reimplemented from ha_innobase.
|
overridevirtual |
Alter the table structure in-place.
Alter the table structure in-place with operations specified using HA_ALTER_FLAGS and Alter_inplace_information. The level of concurrency allowed during this operation depends on the return value from check_if_supported_inplace_alter().
[in] | altered_table | TABLE object for new version of table. |
[in,out] | ha_alter_info | Structure describing changes to be done by ALTER TABLE and holding data used during in-place alter. |
[in] | old_table_def | dd::Table object describing old version of the table. |
[in,out] | new_table_def | dd::Table object for the new version of the table. Can be adjusted by this call. Changes to the table definition will be persisted in the data-dictionary at statement commit time. |
true | Failure. |
false | Success. |
Reimplemented from ha_innobase.
|
overridevirtual |
Prepare in-place ALTER for table.
Allows InnoDB to update internal structures with concurrent writes blocked (provided that check_if_supported_inplace_alter() did not return HA_ALTER_INPLACE_NO_LOCK). This will be invoked before inplace_alter_table().
[in] | altered_table | TABLE object for new version of table. |
[in,out] | ha_alter_info | Structure describing changes to be done by ALTER TABLE and holding data used during in-place alter. |
[in] | old_table_def | dd::Table object describing old version of the table. |
[in,out] | new_table_def | dd::Table object for the new version of the table. Can be adjusted by this call. Changes to the table definition will be persisted in the data-dictionary at statement commit time. |
true | Failure. |
false | Success. |
Reimplemented from ha_innobase.