Improve TableScan with filters pushdown unparsing (multiple filters) #13131
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.
Which issue does this PR close?
With filters pushdown optimization, the LogicalPlan can have filters defined as part of
TableScan
andFilter
nodes.To avoid overwriting one of the filters, we combine the existing filter with the additional filter.
Example query
Logical Plan
W/o this change it will be unparsed as
What changes are included in this PR?
Improves QueryBuilder
pub fn selection
to combine filters ifselect
is called multiple times (select
corresponds to query filter /WHERE
clause).Are these changes tested?
Added unit test, tested as part of TPC-H and TPC-DS queries unparsing by https://github.com/spiceai/spiceai (running benchmarks with some filters pushdown optimizations enabled)
Are there any user-facing changes?
Fixes some unparsing issues related to missing
WHERE
clauses when running TPC-H and TPC-DS queries with filters pushdown optimization enabled