shishir-kuet opened a new pull request, #45:
URL: https://github.com/apache/asterixdb/pull/45
This change improves filter pushdown behavior for Iceberg datasets when
handling conjunctive (AND) predicates.
Previously, if a WHERE clause contained multiple predicates and at least one
of them was not eligible for pushdown (e.g., due to multiple array paths or
unsupported expressions), the entire filter would be skipped. This resulted in
missed opportunities for pushdown and unnecessary data scanning.
With this update:
- Each conjunct (AND argument) is evaluated independently for pushdown
eligibility
- Pushdown-compatible predicates are selected and pushed down
- Non-compatible predicates are safely ignored for pushdown and remain in
the query plan
- Existing constraints such as avoiding multiple array paths are preserved
For example:
f1 = 'a' AND f2 LIKE 'a%'
Previously:
- No predicates were pushed down
Now:
- "f1 = 'a'" is pushed down
- "f2 LIKE 'a%'" remains in the plan
Implementation details:
- Decomposes AND expressions into individual arguments
- Tracks selected paths and ensures no violation of array path constraints
- Reconstructs a new AND expression from eligible predicates when multiple
are valid
- Falls back to a single predicate when only one is pushdown-compatible
This results in improved query performance by enabling partial pushdown
while maintaining correctness.
Tested with mixed pushdown/non-pushdown predicates to verify:
- Correct partial pushdown behavior
- No change in query results
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]