maria:nm/period-fk-linear

Last commit made on 2020-01-21
Get this branch:
git clone -b nm/period-fk-linear https://git.launchpad.net/maria

Branch merges

Branch information

Name:
nm/period-fk-linear
Repository:
lp:maria

Recent commits

0b348fc... by Nikita Malyavin

Period: add versioning combination

7975dd1... by Nikita Malyavin

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

extra SHOW CREATE patch with ad-hoc table prelocking specific exclusively to SHOW CREATE

this will be rewritten after MDEV-21052 and after FK's will be stored in frm/frk

6918b68... by Nikita Malyavin

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

Support self-referencing foreign keys

d6b24b7... 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

18fad2d... 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)

17a8b01... by Nikita Malyavin

Add referenced table to prelocking list during CREATE TABLE with FK

d823652... by Nikita Malyavin

Prelock child tables in addition to parent ones

0e86b4a... by Nikita Malyavin

bootstrap

d59c892... by Nikita Malyavin

key_copy: use from_record argument to copy the data from

2434d85... by Nikita Malyavin

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