maria:bb-10.2-mdev-26127

Last commit made on 2021-10-29
Get this branch:
git clone -b bb-10.2-mdev-26127 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.2-mdev-26127
Repository:
lp:maria

Recent commits

7132671... by Nayuta Yanagisawa

MDEV-26127 Assertion `err != DB_DUPLICATE_KEY' failed or InnoDB: Failing assertion: id != 0 on ALTER ... REBUILD PARTITION

42ae765... by Andrei Elkin <email address hidden>

MDEV-26833 Missed statement rollback in case transaction drops or create temporary table

When transaction creates or drops temporary tables and afterward its statement
faces an error even the transactional table statement's cached ROW
format events get involved into binlog and are visible after the transaction's commit.

Fixed with proper analysis of whether the errored-out statement needs
to be rolled back in binlog.
For instance a fact of already cached CREATE or DROP for temporary
tables by previous statements alone
does not cause to retain the being errored-out statement events in the
cache.
Conversely, if the statement creates or drops a temporary table
itself it can't be rolled back - this rule remains.

4e5cf34... by Larysa Sherepa

rpl_get_master_version_and_clock and rpl_row_big_table_id tests are slow, so let's not run them under valgrind

ff3274d... by Vladislav Vaintroub

Fix message severity for "thread pool blocked" messages.

Those messages don't indicate errors, they should be normal warnings.

563daec... by Marko Mäkelä

MDEV-26867: Update the InnoDB version number to 5.7.36

The InnoDB changes in MySQL 5.7.36 that were applicable to MariaDB
were covered by MDEV-26864, MDEV-26865, MDEV-26866.

1f5ca66... by Nikita Malyavin

MDEV-26866 FOREIGN KEY…SET NULL corrupts an index on a virtual column

The initial test case for MySQL Bug #33053297 is based on
mysql/mysql-server@27130e25078864b010d81266f9613d389d4a229b.

innobase_get_field_from_update_vector is not a suitable function to fetch
updated row info, as well as parent table's update vector is not always
suitable. For instance, in case of DELETE it contains undefined data.

castade->update vector seems to be good enough to fetch all base columns
update data, and besides faster, and less error-prone.

3a9967d... by Sergey Petrunia

Fix compile warning:

ha_rocksdb.h:459:15: warning: 'table_type' overrides a member
function but is not marked 'override' [-Winconsistent-missing-override]

2ed148c... by Alexander Barkov

MDEV-25402 Assertion `!str || str != Ptr' failed in String::copy

The assert inside String::copy() prevents copying from from "str"
if its own String::Ptr also points to the same memory.

The idea of the assert is that copy() performs memory reallocation,
and this reallocation can free (and thus invalidate) the memory pointed by Ptr,
which can lead to further copying from a freed memory.

The assert was incomplete: copy() can free the memory pointed by its Ptr
only if String::alloced is true!

If the String is not alloced, it is still safe to copy even from
the location pointed by Ptr.

This scenario demonstrates a safe copy():
  const char *tmp= "123";
  String str1(tmp, 3);
  String str2(tmp, 3);
  // This statement is safe:
  str2.copy(str1->ptr(), str1->length(), str1->charset(), cs_to, &errors);

Inside the copy() the parameter "str" is equal to String::Ptr in this example.
But it's still ok to reallocate the memory for str2, because str2
was a constant before the copy() call. Thus reallocation does not
make the memory pointed by str1->ptr() invalid.

Adjusting the assert condition to allow copying for constant strings.

4b8340d... by Marko Mäkelä

Fix tests for PLUGIN_PARTITION=NO

d062b69... by Diego

MDEV-26868: Session tracking flag in OK_PACKET

Take into account client capabilities.