maria:bb-10.11-ddl-nikita

Last commit made on 2023-02-16
Get this branch:
git clone -b bb-10.11-ddl-nikita https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.11-ddl-nikita
Repository:
lp:maria

Recent commits

4b758fd... by Nikita Malyavin

MDEV-29068 Cascade foreign key updates do not apply in online alter

c82d7a5... by Nikita Malyavin

fix main.query_cache_innodb and main.alter_table_lock

3389fb1... by Nikita Malyavin

MDEV-29069 follow-up: improve DEFAULT rules

previously, fields with DEFAULTs were allowed just when expression is
deterministic. In case of replication, we should recursively check that
underlying fields of expression also either have explicit values, or
have DEFAULT following this validity rule.

4a4111d... by Nikita Malyavin

few rgi assertions. this can proof that rgi is always present

9d04b70... by Nikita Malyavin

MDEV-29069 follow-up optimize find_key

1. Avoid traversion of all key_parts for all keys for every event.
The key is enough to be determined only once per table open, so
RPL_TABLE_LIST can be used to store designated key.
We suppose here that no key can be deleted on the replica node.
The algorithm "choose PRIMARY KEY first, then if none, any other key" will
work for any ROW_FORMAT.
Proof:
For FULL any key is good. If PK is available, it'll be chosen.
For MINIMAL PK is always sent. If there's no PK, then a full image is sent.
So either it has PK, and it's chosen, or ROW_FORMAT fallbacks to FULL.
NOBLOB works same as MINIMAL.

2. Move optimization for avoiding m_key allocation inside find_key,
so now it is used by UPDATE events too.

3. Together with unpack_row, do_before_row_operations is now same for
Update_rows_log_event and Delete_rows_log_event, except for a few bits.
It's all moved to a common function
Rows_log_event::do_before_lookup_row_operations

6ecdaeb... by Nikita Malyavin

MDEV-29069 follow-up: fix replication with extra fields + tests

1. Set all extra fields in read_set, so that defaults calculation wouldn't
fail.

2. Allowing PK removal/change means that field_index <= master_columns
doesn't guarantee having a value. Master field should have explicit value.

ab65b99... by Nikita Malyavin

SHOW CREATE collations

c918d34... by Nikita Malyavin

rpl: check should go after defaults and vcols update

150f874... by Nikita Malyavin

MDEV-29069 follow-up: support partially usable keys

bc70105... by Nikita Malyavin

MDEV-29069 follow-up: allow deterministic DEFAULTs