mirror of
https://github.com/MariaDB/server.git
synced 2026-10-23 18:49:29 +03:00
full_join.test runs once for every point of three crossed axes, the optimizer switch axis in full_join.combinations, the storage engine axis in full_join_engine.combinations and the index axis in full_join_index.combinations, thirty runs in all. The result file in the tree is the run with the default engine, no added indexes and the switches at their defaults. Every other run's expected output is a diff against it, so a run whose output matches it has no file of its own, and a query added to the test shows up in all thirty runs. The index axis gives every column of every base table a non-unique index on itself. The work is decided by what the database holds at the point full_join_add_indexes.inc is sourced, so a section sources it after the tables it creates. A non-unique index is the only kind that can be added without knowing the data, since a primary key or a unique index would fail on the duplicates and the NULLs that many sections put in a join column on purpose. The switch axis holds the four switches at their defaults and each of them off in turn, which is what makes a wrong result attributable to one transformation.
13 lines
708 B
C++
13 lines
708 B
C++
# Storage engine axis for the FULL JOIN tests.
|
|
#
|
|
# The engine is chosen entirely by the default-storage-engine option in
|
|
# full_join_engine.combinations, so nothing has to happen here. The file
|
|
# exists because a combinations file becomes an independent axis only when
|
|
# it is attached to a sourced include. MTR crosses the combinations of
|
|
# each sourced include with those of the test's own combinations file, so
|
|
# sourcing this gives every optimizer switch combination one run per
|
|
# engine. See mtr_cases.pm, get_tags_from_file and collect_one_test_case.
|
|
#
|
|
# A create table that names its own engine is unaffected, which is what
|
|
# keeps the mixed engine section meaningful under every combination here.
|