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]

Reply via email to