maria:nm/versioning-combinatoin

Last commit made on 2020-02-26
Get this branch:
git clone -b nm/versioning-combinatoin https://git.launchpad.net/maria

Branch merges

Branch information

Name:
nm/versioning-combinatoin
Repository:
lp:maria

Recent commits

8483e85... by Nikita Malyavin

Period: add versioning combination

8973c46... by Nikita Malyavin

MDEV-16983 Application-time periods: foreign key PART 3/3

Support self-referencing foreign keys

389b15d... by Nikita Malyavin

MDEV-16983 Application-time periods: foreign key PART 2/3

Add correct update check, which preserves referential integrity on not-updated part of period

d5c2655... by Nikita Malyavin

MDEV-16983 Application-time periods: foreign key PART 1/3

This work adds support for FOREIGN KEYS for SQL:2011 Application-time periods feature.
* Two hidden keys are added in key matching a referred foreign key;
* Referential integrity check is done completely on sql layer, in handler;
* A new struct FOREIGN_KEY is introduced to store a prelocked referential metadata in TABLE

Limitations:
* Only versionde-to-versioned and plain-to-plain references are supported at this moment
* innodb: a flag denoting a period is added to FK flags,
  see dict_create_add_foreign_to_dictionary() and dict_load_foreign().
  In this way only one period per table is supported, and it's quite poorly scalable.

In this commit:
 * Update is treated as delete + insert which causes false-positives. (will bi fixed in PART 2)
 * Self-referencing tables have false-negatives during deletes, since the same row could be
 fetched during lookup (will be fixed in PART 3)

704e8d6... by Nikita Malyavin

Add referenced table to prelocking list during CREATE TABLE with FK

3e2731a... by Nikita Malyavin

Prelock child tables in addition to parent ones

57e534b... by Nikita Malyavin

invert period columns order in key

6d82b46... by Nikita Malyavin

Revert "handler: remove store/restore record from check_duplicate_long_entry_key"

This reverts commit 3efcc746

dfbb7cd... by Nikita Malyavin

handler: remove store/restore record from check_duplicate_long_entry_key

after key_copy is fixed to use data from any record, not just table->record[0], wrapping store/restore is not required anymore, when for example using handler::position(buff) (which internally can call key_copy from buff)

fcbfe9d... by Nikita Malyavin

move the code under err label to a function in TABLE_SHARE::init_from_binary_frm_image