mirror of
https://github.com/MariaDB/server.git
synced 2026-10-23 18:49:29 +03:00
1. Relax InnoDB rename assertion for partitions
row_rename_table_for_mysql() asserted that RENAME_IGNORE_FK is never
used to rename a table to a temporary name:
ut_ad(fk != RENAME_IGNORE_FK || !new_is_tmp);
But EXCHANGE PARTITION renames a partition to a temporary #sql-exchange
name, and during DDL-log recovery with lower_case_table_names=1 this
reaches the partition retry in innobase_rename_table(), which passes
RENAME_IGNORE_FK. So relax the assertion for partition names.
This fixes an assertion failure in parts.partition_debug_innodb during
crash recovery; debug-only change.
2. Fix diff in parts.alter_table
Guard the lower_case_table_names combinations in include/lcase_names.inc
with the matching include/have_lowercaseN.inc,
so each is skipped unless the server actually ended up in that mode.
mtr can be run (and on one CI machine is run) with a forced
--mysqld=--lower_case_table_names, and the server does not always
honour the request (=2 is reset to 0 on a case-sensitive filesystem).
The "def" combination assumed lower_case_table_names=0; make that
explicit and rename it to lcase0 for symmetry with lcase1/lcase2. It
stays an empty combination, since an explicit =0 would make the server
refuse to start on a case-insensitive filesystem.
3. Make sure the parts suite is actually tested on CI on case-insensitive
filesystem
add it to buildbot_suites.bat. In addition, test on case-sensitive NTFS
directory (Github Actions builder)