chore: Fix no-op Transformed flags#21964
Conversation
|
run benchmark sql_planner |
|
🤖 Criterion benchmark running (GKE) | trigger CPU Details (lscpu)Comparing fix-transformed-noop-flags (ec28734) to 702f479 (merge-base) diff File an issue against this benchmark runner |
ec28734 to
264bc37
Compare
|
🤖 Criterion benchmark completed (GKE) | trigger Instance: CPU Details (lscpu)Details
Resource Usagebase (merge-base)
branch
File an issue against this benchmark runner |
Tests ported from apache#21964
Tests ported from apache#21964
Tests ported from apache#21964
| .cloned() | ||
| .collect(); | ||
|
|
||
| let scan_filters_changed = new_scan_filters != scan.filters; |
There was a problem hiding this comment.
I think that check is not enough because some predicates that were already in the scan can be eliminated from the filter when the support is exact (not partial)
Tests ported from apache#21964
Tests ported from apache#21964
Which issue does this PR close?
Just some cleanup.
Rationale for this change
Some optimizer paths were returning
Transformed::yeseven when they preserved the original plan or expression. That can cause unnecessary follow-up optimizer work and makes the transformed flag less useful as a fixed-point signal.What changes are included in this PR?
Transformed::nowhen filter pushdown through joins, aggregates, windows, or table scans does not actually change the plan.Transformed::nowhen constant simplification preserves an expression after a runtime simplification error.Transformed::noinAggregateStatisticsrecursive child optimization when the optimized child is the same plan handle.Are these changes tested?
Are there any user-facing changes?
No.