-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: run logical optimizer rules for TableScan
expressions
#4614
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice find @crepererum 👍
@@ -398,7 +398,7 @@ order by cntrycode;"#; | |||
\n Projection: AVG(customer.c_acctbal) AS __value\ | |||
\n Aggregate: groupBy=[[]], aggr=[[AVG(customer.c_acctbal)]]\ | |||
\n Filter: customer.c_acctbal > Decimal128(Some(0),15,2) AND substr(customer.c_phone, Int64(1), Int64(2)) IN ([Utf8(\"13\"), Utf8(\"31\"), Utf8(\"23\"), Utf8(\"29\"), Utf8(\"30\"), Utf8(\"18\"), Utf8(\"17\")])\ | |||
\n TableScan: customer projection=[c_phone, c_acctbal], partial_filters=[CAST(customer.c_acctbal AS Decimal128(30, 15)) > Decimal128(Some(0),30,15), substr(customer.c_phone, Int64(1), Int64(2)) IN ([Utf8(\"13\"), Utf8(\"31\"), Utf8(\"23\"), Utf8(\"29\"), Utf8(\"30\"), Utf8(\"18\"), Utf8(\"17\")]), customer.c_acctbal > Decimal128(Some(0),15,2)]"; | |||
\n TableScan: customer projection=[c_phone, c_acctbal], partial_filters=[customer.c_acctbal > Decimal128(Some(0),15,2) AS customer.c_acctbal > Decimal128(Some(0),30,15), substr(customer.c_phone, Int64(1), Int64(2)) IN ([Utf8(\"13\"), Utf8(\"31\"), Utf8(\"23\"), Utf8(\"29\"), Utf8(\"30\"), Utf8(\"18\"), Utf8(\"17\")]), customer.c_acctbal > Decimal128(Some(0),15,2)]"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
I am merging this in as I don't think it is controversial -- instead it is a fix for an oversight |
Benchmark runs are scheduled for baseline = 508ba80 and contender = 40e6a67. 40e6a67 is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
Which issue does this PR close?
Doesn't close any, but is related to #4370.
Rationale for this change
While working on #4370 I've discovered that we don't optimize expressions within
TableScan
nodes.What changes are included in this PR?
Include
TableScan
expressions within the logical optimization.Are these changes tested?
See plan change in
tpch_q22_correlated
.Are there any user-facing changes?
Better optimized plans.