mariadb/mysql-test/suite/versioning
Yuchen Pei b3e70bde38
MDEV-36055 Allow left join reordering
This is done by no longer merging inner table dep with outer
nested_join ones.

This expands the search space of outer joins and introduces suboptimal
join order choices already existing in inner joins (e.g. MDEV-36331,
MDEV-37346) to outer joins, caused by heuristic pruning.

To mitigate this issue, we add a switch that turns on heuristic
pruning always (existing behaviour), and make is so that when the
switch is off (default) joins with limited number of tables or limited
search space* do not perform heuristic pruning. This improves join
order optimization for these joins, where otherwise heuristic pruning
may remove good joins - see added test cases in the test
main.greedy_optimizer.

*: about the same as 10 tables with default search depth (7) when
optimizer_search_depth=0.

If we completely disable heuristic pruning, or use the upper bound
10!, the test main.greedy_optimizer will grind to almost hanging for
optimizer_search_depth=0 when more than 20 tables are involved.

If we only compare the number of tables with 10, then it will prune
when search space is low due to a low search depth when we can afford
not to prune.
2025-08-14 18:00:53 +10:00
..
r MDEV-36055 Allow left join reordering 2025-08-14 18:00:53 +10:00
t Merge branch '12.0' into 12.1 2025-08-03 15:01:09 +02:00
common.inc Merge 11.4 into 11.6 2024-10-03 16:09:56 +03:00
common.opt Tests: versioning suite fix when no test_versioning plugin 2019-07-09 10:01:54 +03:00
common_finish.inc Merge branch '10.6' into 10.9 2023-08-04 08:01:06 +02:00
disabled.def
engines.combinations MDEV-16937 Strict SQL with system versioned tables causes issues (10.4) 2020-05-29 11:45:19 +03:00
engines.inc
innodb.combinations
innodb.inc
key_type.combinations versioning test suite fixes 2019-10-10 00:20:34 +03:00
key_type.inc versioning test suite fixes 2019-10-10 00:20:34 +03:00
sys_time.inc MDEV-32188 make TIMESTAMP use whole 32-bit unsigned range 2024-05-27 12:39:02 +02:00
wait_system_clock.inc