maria:bb-10.4-check-toku-ci-failure

Last commit made on 2023-07-25
Get this branch:
git clone -b bb-10.4-check-toku-ci-failure https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.4-check-toku-ci-failure
Repository:
lp:maria

Recent commits

f2b9a6f... by Yuchen Pei <email address hidden>

MDEV-31400 [test] a dummy commit to check toku ci failure

toku tests fail amd64-ubuntu-2004-fulltest at
93eb87f895449a89e51bed03bd324b11c9efb20c

it also fails say tokudb.simple_join_tokudb_innodb at its parent
commit (7d968f8c8aaca01614dfb462d9bbf4e667316265) locally with the
same error message, but for some reason the builder
amd64-ubuntu-2004-fulltest was not run on that commit.

This is a no-op commit that hopefully triggers the builder.

7d968f8... by Georg Richter

Merge branch '10.4' of https://github.com/MariaDB/server into 10.4

1c9002c... by Georg Richter

Remove CLIENT_SSL_VERIFY_SERVER_CERT

Since TLS server certificate verification is a client
only option, this flag is removed in both client (C/C)
and MariaDB server capability flags.

This patch reverts commit 89d759b93e3975e5d5e1c5cf9b901c01b9e80ff7
(MySQL Bug #21543) and stores the server certificate validation
option in mysql->options.extensions.

8b01c29... by Georg Richter

Remove CLIENT_SSL_VERIFY_SERVER_CERT

Since TLS server certificate verification is a client
only option, this flag is removed in both client (C/C)
and MariaDB server capability flags.

This patch reverts commit 89d759b93e3975e5d5e1c5cf9b901c01b9e80ff7
(MySQL Bug #21543) and stores the server certificate validation
option in mysql->options.extensions.

73c9415... by Daniel Black

MDEV-31727: pcre stack size not functioning on clang-16

noinline attribute was being ignored by clang-16 and reporting
32 stack size on Gentoo, 16 locally on Fedora 38.

Based on https://stackoverflow.com/questions/54481855/clang-ignoring-attribute-noinline
appended noopt in addition to the gcc recognised attributes.

After that the -pcre_exec(NULL, NULL, NULL, -999, -999, 0, NULL, 0)
returned 1056, simlar to gcc.

From https://bugs.gentoo.org/910188.

Thanks Zhixu Liu for the great bug report.

3e7561c... by midenok

MDEV-29357 Assertion (fixed) in Item_func_dayname on INSERT

Restrict vcol_cleanup_expr() in close_thread_tables() to only simple
locked tables mode. Prelocked is cleaned up like normal statement: in
close_thread_table().

14cc7e7... by midenok

MDEV-25644 UPDATE not working properly on transaction precise system versioned table

First UPDATE under START TRANSACTION does nothing (nstate= nstate),
but anyway generates history. Since update vector is empty we get into
(!uvect->n_fields) branch which only adds history row, but does not do
update. After that we get current row with wrong (old) row_start value
and because of that second UPDATE tries to insert history row again
because it sees trx->id != row_start which is the guard to avoid
inserting multiple trx_id-based history rows under same transaction
(because we have same trx_id and we get duplicate error and this bug
demostrates that). But this try anyway fails because PK is based on
row_end which is constant under same transaction, so PK didn't change.

The fix moves vers_make_update() to an earlier stage of
calc_row_difference(). Therefore it prepares update vector before
(!uvect->n_fields) check and never gets into that branch, hence no
need to handle versioning inside that condition anymore.

Now trx->id and row_start are equal after first UPDATE and we don't
try to insert second history row.

== Cleanups and improvements ==

ha_innobase::update_row():

vers_set_fields and vers_ins_row are cleaned up into direct condition
check. SQLCOM_ALTER_TABLE check now is not used as this is dead code,
assertion is done instead.

upd_node->is_delete is set in calc_row_difference() just to keep
versioning code as much in one place as possible. vers_make_delete()
is still located in row_update_for_mysql() as this is required for
ha_innodbase::delete_row() as well.

row_ins_duplicate_error_in_clust():

Restrict DB_FOREIGN_DUPLICATE_KEY to the better conditions.
VERSIONED_DELETE is used specifically to help lower stack to
understand what caused current insert. Related to MDEV-29813.

21a8d2c... by midenok

MDEV-31319 Assertion const_item_cache == true failed in Item_func::fix_fields

On create table tmp as select ... we exited Item_func::fix_fields()
with error. fix_fields_if_needed('foo' or 'bar') failed and we
returned true, but already changed const_item_cache. So the item is in
inconsistent state: fixed == false and const_item_cache == false.

Now we cleanup the item before the return if Item_func::fix_fields()
fails to process.

c5a8341... by midenok

MDEV-23100 ODKU of non-versioning column inserts history row

Use vers_check_update() to avoid inserting history row for ODKU if now
versioned fields specified in update_fields.

fe618de... by midenok

MDEV-31313 SYSTEM VERSIONING and FOREIGN KEY CASCADE create orphan rows on replica

Constraints processing row_ins_check_foreign_constraint() was not
called because row_upd_check_references_constraints() didn't see
update as delete: node->is_delete was false.

Since MDEV-30378 we check for TRG_EVENT_DELETE to detect versioned
delete in ha_innobase::update_row().

Now we can use TRG_EVENT_DELETE to set upd_node->is_delete, so
constraints processing is triggered correctly.