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)
56 lines
1.8 KiB
YAML
56 lines
1.8 KiB
YAML
name: Build on Windows ARM64
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'main'
|
|
- 'bb-*'
|
|
- '[0-9]+.[0-9]+'
|
|
- '*wlad*'
|
|
pull_request:
|
|
|
|
jobs:
|
|
build:
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
runs-on: windows-11-arm
|
|
|
|
steps:
|
|
- name: Configure git
|
|
run: |
|
|
# We won't be able to successfully run mtr
|
|
# unless we configure autocrlf.
|
|
git config --global core.autocrlf input
|
|
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Install prerequisites
|
|
run: |
|
|
# Install bison to compile
|
|
choco install winflexbison3
|
|
|
|
- name: Build
|
|
run: |
|
|
# speedup checkout by excluding uninteresting modules
|
|
git config submodule.storage/columnstore/columnstore.update none
|
|
git config submodule.storage/maria/libmarias3.update none
|
|
git config submodule.storage/rocksdb/rocksdb.update none
|
|
git config submodule.wsrep-lib.update none
|
|
mkdir bld
|
|
cd bld
|
|
cmake .. -DWITH_SSL=bundled
|
|
cmake --build . --config RelWithDebinfo --verbose -- -m
|
|
|
|
- name: Test MTR
|
|
run: |
|
|
$env:PATH = "C:\Strawberry\perl\bin;$env:PATH;C:\Program Files (x86)\Windows Kits\10\Debuggers\arm64"
|
|
$parallel = 2
|
|
# create case-sensitive directory to run tests in
|
|
$tmp = (Get-Item $env:TEMP).FullName
|
|
$tmp = $tmp -replace '\\','/'
|
|
$cidir = "$tmp/ci"
|
|
mkdir $cidir
|
|
fsutil file setCaseSensitiveInfo $cidir enable
|
|
perl bld\mysql-test\mysql-test-run.pl --force --parallel=$parallel --suite=main,innodb,parts --vardir=$cidir/var --skip-rpl --mysqld=--lower-case-table-names=0 --mysqld=--loose-innodb-flush-log-at-trx-commit=2 --mysqld=--debug-no-sync --skip-test=innodb-virtual-columns |