maria:bb-10.10-release-spider-fix

Last commit made on 2023-08-04
Get this branch:
git clone -b bb-10.10-release-spider-fix https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.10-release-spider-fix
Repository:
lp:maria

Recent commits

9ecd6c3... by Yuchen Pei <email address hidden>

Spider: fix 10.9->10.10 merge

394de7c... by Oleksandr "Sanja" Byelkin

Merge branch '10.9' into 10.10

34a8e78... by Oleksandr "Sanja" Byelkin

Merge branch '10.6' into 10.9

5ea5291... by Oleksandr "Sanja" Byelkin

Merge branch '10.5' into 10.6

a89527e... by Marko Mäkelä

MDEV-31827 InnoDB multi-batch recovery stops prematurely

recv_scan_log(): On recv_sys_t::PREMATURE_EOF, keep reading more log
if recv_sys.lsn < recv_sys.scanned_lsn.

recv_recovery_from_checkpoint_start(): Add a safety check to abort
crash recovery if recv_sys.lsn is not recv_sys.scanned_lsn.

This fixes a serious database corruption bug that was introduced by
commit 2f9e264781f702b8da1ed418ac9f4f5e8f8aa843 (MDEV-29911).

61acb43... by Sergei Golubchik

MDEV-31822 ALTER TABLE ENGINE=x started failing instead of producing warning on unsupported TRANSACTIONAL=1

make TRANSACTIONAL table option behave similar to other engine-defined
table options. If the engine doesn't suport it:
* if specified expicitly in CREATE or ALTER - it's ER_UNKNOWN_OPTION
* an error or a warning depending on sql_mode IGNORE_BAD_TABLE_OPTIONS
* in ALTER TABLE from the engine that suppors it to the engine that
  doesn't - silently preserved (no warning)
* it is commented out in SHOW CREATE unless IGNORE_BAD_TABLE_OPTIONS

da09ae0... by Sergei Golubchik

MDEV-18114 Foreign Key Constraint actions don't affect Virtual Column

* invoke check_expression() for all vcol_info's in
  mysql_prepare_create_table() to check for FK CASCADE
* also check for SET NULL and SET DEFAULT
* to check against existing FKs when a vcol is added in ALTER TABLE,
  old FKs must be added to the new_key_list just like other indexes are
* check columns recursively, if vcol1 references vcol2,
  flags of vcol2 must be taken into account
* remove check_table_name_processor(), put that logic under
  check_vcol_func_processor() to avoid walking the tree twice

8760fe1... by Marko Mäkelä

MDEV-31791: Recovery on memory-mapped log occasionally fails

recv_ring::copy_if_needed(): If the record wraps around the
memory-mapped ib_logfile0, do copy it also if len==0
(the record consists only of a header, like FREE_PAGE and INIT_PAGE
records do).

recv_sys_t::parse(): Invoke recv_ring::copy_if_needed() for INIT_PAGE
and FREE_PAGE records, so that if these records wrap around the
memory-mapped ib_logfile0, they will be correctly copied to
recv_sys.pages.

Together with commit 0d175968d1181a0308ce6caccc2e4fbc972ca6c6 (MDEV-31354)
this fixes occasional failures of the test innodb.recovery_memory.

ab1191c... by Sergei Golubchik

cleanup: key->key_create_info.check_for_duplicate_indexes -> key->old

mark old keys in the ALTER TABLE with the `old` flag, not with
the `key_create_info.check_for_duplicate_indexes`.

This allows to mark old foreign keys too.

0c9794d... by Sergei Golubchik

cleanup: Item_field::check_vcol_func_processor()

to declutter Item_field::check_vcol_func_processor(), move alter_info
specific part of it into Alter_info::check_vcol_field()