- 24 Sep, 2018 4 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 21 Sep, 2018 12 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Remove some unnecessary computations and conditions. FIXME: Instant add/drop/reorder operations on stored columns cannot yet be combined with operations on virtual columns.
-
Marko Mäkelä authored
innobase_instant_drop_col(): Remove the parameter for the table name. The InnoDB data dictionary could be out of sync with the .frm file, because renaming columns between upper and lower case may not be reflected by the InnoDB dictionary. innobase_op_instant_try(): Remember the number of the last stored column, and support dropping multiple columns at a time. FIXME: adjust SYS_COLUMNS.POS for the pre-existing (not added) virtual columns.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
dict_col_t::add_to_core(): Convert an instantly added column to a "core column". The old name remove_instant() could be mistaken to refer to "instant DROP COLUMN".
-
Marko Mäkelä authored
dict_col_t::is_added(): The new name for is_instant().
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
- Optimised the remove_instant if there is no dropped column present.
-
Marko Mäkelä authored
Clarify some comments about accessing an externally stored column on which a spatial index has been defined. Add a TODO comment that we should actually write the minimum bounding rectangle (MBR) to the undo log record, so that we can avoid fetching BLOBs and recomputing MBR. row_build_spatial_index_key(): Split from row_build_index_entry_low().
-
- 20 Sep, 2018 11 commits
-
-
Thirunarayanan Balathandayuthapani authored
-
Thirunarayanan Balathandayuthapani authored
can handle for dropped columns too. - Restricted the drop column with FTS_DOC_ID and hidden fts index removal for instant operation.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Do not exclude instantly dropped columns from the size of the record. This has to be handled at the upper level, by row_build() and the to-be-written replacement of row_build_index_entry(), called row_build_clust_index_entry(). Hopefully only a small number of functions will have to directly access those clustered index record fields that can be reordered or instantly dropped.
-
Marko Mäkelä authored
Until row_build() is taking care of reordering the fields in the clustered index record, we cannot really support anything else than instant DROP COLUMN of the last columns of a table.
-
Marko Mäkelä authored
rec_info_bits_valid(): Remove. The only case when this would fail is when the record is the generic ALTER TABLE metadata record. rec_is_alter_metadata(): Check if a record is the metadata record for instant ALTER TABLE (other than ADD COLUMN). NOTE: This function must not be invoked on node pointer records, because the delete-mark flag in those records may be set (it is garbage), and then a debug assertion could fail because index->is_instant() does not necessarily hold. rec_offs_validate(): FIXME: Temporarily disabled an assertion that does not hold if rec_is_alter_metadata(). Because we do not know here if a ROW_FORMAT=REDUNDANT record is for the leaf page, we cannot invoke rec_is_alter_metadata() here.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
- Changed the condition for is_instant() for dict_index_t
-
Thirunarayanan Balathandayuthapani authored
- Changed the metadata row format by adding number of null bytes in the record. - Changed the checking condition for instant alter in check_if_supported_inplace_alter() - Fixed the instant_alter test case
-
- 19 Sep, 2018 12 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Allow combination of non-instant, non-rebuilding operations with changes of table options that do not require a rebuild. For example, DROP INDEX or ADD INDEX can be performed with ALGORITHM=NOCOPY together with changing such table options. Changing the table options alone would be allowed with ALGORITHM=INSTANT. INNOBASE_ALTER_NOCREATE: A new set of flags, for operations that are refused for ALGORITHM=INSTANT and do not involve creating index trees. Move ALTER_RENAME_INDEX to the proper place (INNOBASE_ALTER_INSTANT). innobase_need_rebuild(): Do not require a rebuild if INNOBASE_ALTER_NOREBUILD operations are combined with ALTER_OPTIONS. ha_innobase::prepare_inplace_alter_table(), ha_innobase::inplace_alter_table(): Use the fast path if ALTER_OPTIONS is combined with INNOBASE_ALTER_NOCREATE. In this case, the actual changes would be deferred to ha_innobase::commit_inplace_alter_table().
-
Marko Mäkelä authored
-
Marko Mäkelä authored
On instant DROP COLUMN, there is no point in updating indexes that depended on the dropped column. This avoids a memory access violation in innodb.instant_alter.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Also, clarify terminology: alter_metadata instead of new_default_row.
-
Marko Mäkelä authored
This follows up to commit 755187c8. TRX_UNDO_INSERT_METADATA: Renamed from TRX_UNDO_INSERT_DEFAULT trx_undo_metadata: Renamed from trx_undo_default_rec
-
Marko Mäkelä authored
-
Marko Mäkelä authored
For instant ALTER TABLE, we store a hidden metadata record at the start of the clustered index, to indicate how the format of the records differs from the latest table definition. The term 'default row' is too specific, because it applies to instant ADD COLUMN only, and we will be supporting more classes of instant ALTER TABLE later on. For instant ADD COLUMN, we store the initial default values in the metadata record.
-
- 18 Sep, 2018 1 commit
-
-
Marko Mäkelä authored
-