[Enhancement] add sv cbo_max_reorder_node_use_greedy and skip DP and greedy reorder without unknown stats (backport #54593) (backport #54605) #54612
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why I'm doing:
Add Session Variable
cbo_max_reorder_node_use_greedy
When there are approximately 20 join nodes, the greedy join reorder can also consume significant time. For instance, in TPC-DS Q64,
JoinReorderGreedy
takes 600ms. Additionally,cbo_push_down_aggregate_on_broadcast_join
triggers an extra join reorder during the RBO stage, increasing query latency by 600ms.Therefore, introduce a session variable
cbo_max_reorder_node_use_greedy
(16 by default) .skip DP and greedy reorder without unknown stats for
cbo_push_down_aggregate_on_broadcast_join
The
ReorderJoinRule::rewrite
method lacks a critical piece of logic compared toReorderJoinRule::transform
: skipping DP and greedy reorder when certain column statistics areunknown
. This omission causeshive_tpcds.query17.sql
to regress.What I'm doing:
Fixes https://github.com/StarRocks/StarRocksTest/issues/8933
Test
Environment
There is not query degression, and Q64 from 9911ms to 6188ms.
What type of PR is this:
Does this PR entail a change in behavior?
If yes, please specify the type of change:
Checklist:
This is an automatic backport of pull request #54605 done by [Mergify](https://mergify.com).