mariadb/mysql-test/suite
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
..
archive Merge remote-tracking branch 'github/bb-11.4-release' into bb-11.8-serg 2025-04-27 19:40:00 +02:00
atomic Fix the test: changing charset should be dome when we can not skip the test. 2025-05-09 07:36:15 +02:00
binlog Merge branch '12.0' into 12.1 2025-08-03 15:01:09 +02:00
binlog_encryption Merge branch '10.11' into 11.4 2025-07-28 19:40:10 +02:00
client Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
compat MDEV-36055 Allow left join reordering 2025-08-14 18:00:53 +10:00
csv mariadb-test: wait on disconnect 2025-07-16 09:14:33 +07:00
encryption fix tests for --view 2025-08-03 14:59:18 +02:00
engines Merge branch '12.0' into 12.1 2025-08-03 15:01:09 +02:00
events MDEV-35617: DROP USER should leave no active session for that user 2025-07-16 09:14:33 +07:00
federated Merge branch '12.0' into 12.1 2025-08-03 15:01:09 +02:00
funcs_1 Merge branch '10.11' into 11.4 2025-07-28 19:40:10 +02:00
funcs_2 Merge 11.4 into 11.8 2025-04-02 14:07:01 +03:00
galera MDEV-36554: Assertion `is_wsrep() == wsrep_on(mysql_thd)' failed in void trx_t::commit_in_memory(const mtr_t*) 2025-08-04 14:58:18 +02:00
galera_3nodes Merge branch '11.8' into 12.0 2025-07-31 20:55:47 +02:00
galera_3nodes_sr Merge 11.4 into 11.8 2025-04-02 14:07:01 +03:00
galera_sr Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
gcol Merge branch '10.11' into 11.4 2025-07-28 19:40:10 +02:00
handler mariadb-test: wait on disconnect 2025-07-16 09:14:33 +07:00
heap Merge branch '11.4' into 11.7 2025-02-06 16:46:36 +01:00
innodb MDEV-36055 Allow left join reordering 2025-08-14 18:00:53 +10:00
innodb_fts MDEV-36055 Allow left join reordering 2025-08-14 18:00:53 +10:00
innodb_gis mariadb-test: wait on disconnect 2025-07-16 09:14:33 +07:00
innodb_i_s
innodb_zip Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
jp Fix typos in mysql-test/ 2025-04-29 13:53:16 +10:00
json Merge branch '11.8' into 12.0 2025-05-22 09:22:55 +02:00
large_tests
maria MDEV-36055 Allow left join reordering 2025-08-14 18:00:53 +10:00
mariabackup Merge branch '12.0' into 12.1 2025-08-03 15:01:09 +02:00
merge mariadb-test: wait on disconnect 2025-07-16 09:14:33 +07:00
mtr/t
mtr2
multi_source Merge branch '12.0' into 12.1 2025-08-03 15:01:09 +02:00
optimizer_unfixed_bugs
parts Merge branch '11.8' into 12.0 2025-07-31 20:55:47 +02:00
perfschema Merge branch '12.0' into 12.1 2025-08-03 15:01:09 +02:00
perfschema_stress remove features that were deprecated in 10.5 2025-04-29 16:53:02 +02:00
period Merge branch '11.8' into 12.0 2025-07-31 20:55:47 +02:00
plugins Merge branch '12.0' into 12.1 2025-08-03 15:01:09 +02:00
roles Merge branch '12.0' into 12.1 2025-08-03 15:01:09 +02:00
rpl Merge branch '12.0' into 12.1 2025-08-03 15:01:09 +02:00
s3 Merge branch '11.8' into 12.0 2025-06-18 07:50:39 +02:00
sql_sequence Merge branch '12.0' into 12.1 2025-08-03 15:01:09 +02:00
storage_engine mariadb-test: wait on disconnect 2025-07-16 09:14:33 +07:00
stress
sys_vars MDEV-36055 Allow left join reordering 2025-08-14 18:00:53 +10:00
sysschema MDEV-36055 Allow left join reordering 2025-08-14 18:00:53 +10:00
unit
vcol Merge branch '12.0' into 12.1 2025-08-03 15:01:09 +02:00
versioning MDEV-36055 Allow left join reordering 2025-08-14 18:00:53 +10:00
wsrep Merge branch '12.0' into 12.1 2025-08-03 15:01:09 +02:00