maria:bb-10.8-MDEV-22441-scoped-variable

Last commit made on 2022-01-16
Get this branch:
git clone -b bb-10.8-MDEV-22441-scoped-variable https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.8-MDEV-22441-scoped-variable
Repository:
lp:maria

Recent commits

24a79f0... by Eugene Kosov

MDEV-22441 implement a generic way to change a value of a variable in a scope

Example:
{
  auto _= make_scope_value(var, tmp_value);
}

make_scope_value(): a function which returns RAII object which temporary
changes a value of a variable

detail::Scope_value: actual implementation of such RAII class.
It shouldn't be used directly! That's why it's inside a namespace detail.

347f6d0... by Marko Mäkelä

Merge 10.7 into 10.8

c669e76... by Marko Mäkelä

Merge 10.6 into 10.7

16b87f9... by Marko Mäkelä

Merge 10.5 into 10.6

c104a01... by Marko Mäkelä

MDEV-27500 buf_page_free() fails to drop the adaptive hash index

The function buf_page_free() that was introduced
in commit a35b4ae89871d8184f04abb112c385481d557dbb (MDEV-15528)
failed to remove any adaptive hash index entries for the page
before freeing the page.

This caused an assertion failure on shutdown of 10.6 server of
in the function buf_pool_t::clear_hash_index() with the expression:
(s >= buf_page_t::UNFIXED || s == buf_page_t::REMOVE_HASH).
The assertion would fail for a block that is in the freed state.

The failing assertion was added in
commit aaef2e1d8c843d1e40b1ce0c5199c3abb3c5da28
in the 10.6 branch.

Thanks to Matthias Leich for finding the bug and testing the fix.

e6a0611... by Marko Mäkelä

MDEV-27058 fixup: Bogus assertion !block->page.is_io_fixed()

buf_page_get_gen(): After recv_sys_t::recover_low() returned,
the page must not be read-fixed, but it may be write-fixed,
because the io-fix state is protected by block->page.lock,
which we are not holding yet.

Also, let us copy the block descriptor state to a local variable
for examination, so that in case an assertion would fail again,
we will have the sampled state in the core dump. In a core dump of
the assertion failure, we had block->page.fix() == buf_page_t::UNFIXED,
that is, the assertion expression was holding again.

4b14874... by Marko Mäkelä

Merge 10.7 into 10.8

6831b3f... by midenok

MDEV-26824 Can't add foreign key with empty referenced columns list

create_table_info_t::create_foreign_keys() expects equal number of
iterations through fk->columns and fk->ref_columns. If fk->ref_columns
is empty copy it from fk->columns.

a90e116... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-27312 LeakSanitizer error in trx_mod_table_time_t::start_bulk_insert

  - InnoDB fails to apply the bulk insert operation for the stats
table during DDL. During create table, InnoDB does dict_stats_save()
and freshly insert into innodb_table_stats and innodb_index_stats
table.

03ed2e9... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-27318 Assertion `data_size < srv_sort_buf_size' failed in row_merge_bulk_buf_add

 InnoDB fails to add the tuple size which is greater than
innodb_sort_buffer_size. InnoDB should write the field
which are greater than 2000 bytes into the temporary file
and place the offset, length and make it as a new tuple.
InnoDB should buffer the newly created tuple without any
problem during bulk index