maria:bb-10.7-mdev-27159

Last commit made on 2022-06-13
Get this branch:
git clone -b bb-10.7-mdev-27159 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.7-mdev-27159
Repository:
lp:maria

Recent commits

67585ab... by Igor Babaev

MDEV-27159 Re-design the upper level of handling DML commands

This is the second commit for the task. This patch allows to execute only
single-table and multi-table DELETE statements using the method
Sql_cmd_dml::execute(). The code that handles INSERT statements has not
been touched.

This patch still does not have the final changes to handle UPDATE/DELETE
statements.
All tests from the main suite passed. With --ps-protocol one test from
opt_trace_security returns not the same result. This will be fixed soon.

31c01a5... by Igor Babaev

MDEV-27159 Re-design the upper level of handling DML commands

This is the first commit for the task. This patch allows to execute only
single-table and multi-table UPDATE statements using the method
Sql_cmd_dml::execute(). The code that handles DELETE and INSERT statements
has not been touched.

Moreover, these are not the final changes to handle UPDATE statements.
All tests from the main suite passed. With --ps-protocol one test from
opt_trace_security returns not the same result. This will be fixed soon.

638afc4... by Marko Mäkelä

Merge 10.6 into 10.7

2c00526... by Marko Mäkelä

MDEV-26753 Assertion state == TRX_STATE_PREPARED ||... failed

dict_stats_save(): Do not attempt to commit an already committed
transaction.

2ca1123... by Marko Mäkelä

MDEV-26217 Failing assertion: list.count > 0 in ut_list_remove or Assertion `lock->trx == this' failed in dberr_t trx_t::drop_table

This follows up the previous fix in
commit c3c53926c467c95386ae98d61ada87294bd61478 (MDEV-26554).

ha_innobase::delete_table(): Work around the insufficient
metadata locking (MDL) during DML operations by acquiring exclusive
InnoDB table locks on all child tables. Previously, this was only
done on TRUNCATE and ALTER.

ibuf_delete_rec(), btr_cur_optimistic_delete(): Do not invoke
lock_update_delete() during change buffer operations.
The revised trx_t::commit(std::vector<pfs_os_file_t>&) will
hold exclusive lock_sys.latch while invoking fil_delete_tablespace(),
which in turn may invoke ibuf_delete_rec().

dict_index_t::has_locking(): A new predicate, replacing the dummy
!dict_table_is_locking_disabled(index->table). Used for skipping lock
operations during ibuf_delete_rec().

trx_t::commit(std::vector<pfs_os_file_t>&): Release the locks
and remove the table from the cache while holding exclusive
lock_sys.latch.

trx_t::commit_in_memory(): Skip release_locks() if dict_operation holds.

trx_t::commit(): Reset dict_operation before invoking commit_in_memory()
via commit_persist().

lock_release_on_drop(): Release locks while lock_sys.latch is
exclusively locked.

lock_table(): Add a parameter for a pointer to the table.
We must not dereference the table before a lock_sys.latch has
been acquired. If the pointer to the table does not match the table
at that point, the table is invalid and DB_DEADLOCK will be returned.

row_ins_foreign_check_on_constraint(): Improve the checks.
Remove a bogus DB_LOCK_WAIT_TIMEOUT return that was needed
before commit c5fd9aa562fb15e8d6ededceccbec0c9792a3243 (MDEV-25919).

row_upd_check_references_constraints(),
wsrep_row_upd_check_foreign_constraints(): Simplify checks.

ec85e7b... by Vladislav Vaintroub

MDEV-28340 Add tests for versioning, sequence, I_S table

489011d... by Federico Razzoli <email address hidden>

MDEV-28340 Don't try to create temptables in system DBs, support table_type='SYSTEM VIEW'

3fe656e... by Federico Razzoli <email address hidden>

MDEV-28340 On table_type='SYSTEM VERSIONED' return 'BASE TABLE' instead of failing

81862db... by Federico Razzoli <email address hidden>

MDEV-28340 sys.table_exists: support table_type=SEQUENCE

e135ede... by Marko Mäkelä

Merge 10.5 into 10.6