Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
5.5(EOL), 10.0(EOL), 10.1(EOL), 10.2(EOL), 10.3(EOL), 10.4(EOL)
Description
InnoDB internally stores the indexes of a table in SYS_INDEXES, ordered by the internal hidden key dict_index_t::id. Ever since InnoDB started to support ADD INDEX without rebuilding the whole table (first, in the InnoDB Plugin for MySQL 5.1), it became possible for the internal ordering of InnoDB dict_table_t::indexes to differ from the ordering of TABLE::key_info[]. To solve this inconsistency, an additional data structure INNOBASE_SHARE::idx_trans_tbl was added to map SQL key numbers to InnoDB indexes. But, as reported in MDEV-6443, there appear to be some glitches when it comes to updating this mapping.
We should remove the INNOBASE_SHARE::idx_trans_tbl, and instead change the dict_table_t::indexes to be sorted not by dict_index_t::id but according to the same rules as TABLE::keys[].
Attachments
Issue Links
- relates to
-
MDEV-13671 InnoDB should use case-insensitive column name comparisons like the rest of the server
- Closed
-
MDEV-6443 Server crashed with assertaion failure in file ha_innodb.cc line 8473
- Closed
-
MDEV-13425 Signal 11 on get_share() inside HASH_SEARCH and strcmp
- Closed
-
MDEV-13564 TRUNCATE TABLE and undo tablespace truncation are not compatible with Mariabackup
- Closed
-
MDEV-18933 Hang on shutdown in rec_get_next_offs or Failing assertion: share->idx_trans_tbl.index_count == mysql_num_index in innobase_build_index_translation
- Closed