60template <
typename Table>
77 const TABLE *altered_table,
const Table *old_dd_tab,
78 Table *new_dd_tab, uint64_t *autoinc)
Class describing changes to be done by ALTER TABLE.
Definition: handler.h:3196
Definition: dict0inst.h:61
Instant_ddl_impl(Alter_inplace_info *alter_info, THD *thd, trx_t *trx, dict_table_t *dict_table, const TABLE *old_table, const TABLE *altered_table, const Table *old_dd_tab, Table *new_dd_tab, uint64_t *autoinc)
Constructor.
Definition: dict0inst.h:75
dict_table_t * m_dict_table
Definition: dict0inst.h:153
trx_t * m_trx
Definition: dict0inst.h:150
bool commit_instant_drop_col_low()
Add column instantly.
Definition: dict0inst.cc:157
Columns m_cols_to_drop
Definition: dict0inst.h:141
Columns m_cols_to_add
Definition: dict0inst.h:138
Instant_ddl_impl()=delete
bool commit_instant_add_col()
Add columns instantly.
bool commit_instant_add_col_low()
Add column instantly.
Definition: dict0inst.cc:119
Table * m_new_dd_tab
Definition: dict0inst.h:165
const TABLE * m_altered_table
Definition: dict0inst.h:159
THD * m_thd
Definition: dict0inst.h:147
void populate_to_be_instant_columns()
Fetch columns which are to be added or dropped instantly.
Definition: dict0inst.cc:423
~Instant_ddl_impl()
Destructor.
Definition: dict0inst.h:90
bool commit_instant_ddl()
Commit instant DDL.
Definition: dict0inst.cc:194
Alter_inplace_info * m_ha_alter_info
Definition: dict0inst.h:144
bool commit_instant_drop_col()
Drop columns instantly.
void dd_commit_inplace_no_change(bool ignore_fts)
Update metadata in commit phase when the alter table does no change to the table.
Definition: dict0inst.cc:430
uint64_t * m_autoinc
Definition: dict0inst.h:167
const TABLE * m_old_table
Definition: dict0inst.h:156
const Table * m_old_dd_tab
Definition: dict0inst.h:162
static bool is_instant_add_drop_possible(const Alter_inplace_info *ha_alter_info, const TABLE *table, const TABLE *altered_table, const dict_table_t *dict_table)
Check if INSTANT ADD/DROP can be done.
Definition: dict0inst.cc:42
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:34
Data dictionary interface.
std::vector< Field * > Columns
Definition: dict0dd.h:785
Instant_Type
Flags indicating if current operation can be done instantly.
Definition: dict0inst.h:40
@ INSTANT_VIRTUAL_ONLY
Adding or dropping virtual columns only.
@ INSTANT_NO_CHANGE
Can be instant without any change.
@ INSTANT_ADD_DROP_COLUMN
ADD/DROP COLUMN which can be done instantly, including adding/dropping stored column only (or along w...
@ INSTANT_COLUMN_RENAME
Column rename.
@ INSTANT_IMPOSSIBLE
Impossible to alter instantly.
Data structure for a database table.
Definition: dict0mem.h:1909
Definition: trx0trx.h:675