kosiew opened a new pull request, #15648:
URL: https://github.com/apache/datafusion/pull/15648

   ## Which issue does this PR close?
   
   - Closes #15636.
   
   ## Rationale for this change
   
   This change enhances the performance of logical expressions (`AND` / `OR`) 
by introducing lazy evaluation of the right-hand side (RHS) expression only 
when necessary. By delaying RHS computation and adding precise short-circuit 
logic, we reduce unnecessary computation and improve query 
efficiency—especially for large datasets with predictable Boolean patterns.
   
   ## What changes are included in this PR?
   
   - Replaced `check_short_circuit` with a new `get_short_circuit_result` 
utility that supports both LHS-only and LHS+RHS based short-circuit decisions.
   - Delayed RHS evaluation using a closure, evaluating it only when 
short-circuiting cannot resolve the result.
   - Enhanced short-circuit logic to:
     - Consider scalar values (true/false/null)
     - Handle arrays with/without nulls accurately
   - Expanded test coverage in `test_get_short_circuit_result`:
     - Added scalar, array, and null edge cases for both `AND` and `OR`
     - Validated behavior with nullable schemas and full-null arrays
   
   ## Are these changes tested?
   
   ✅ Yes, comprehensive tests were added under `test_get_short_circuit_result`:
   - Validates behavior with non-nullable arrays
   - Confirms expected logic when nulls are present
   - Tests short-circuit outcomes for scalar values
   - Covers all combinations of Boolean input edge cases
   
   ## Are there any user-facing changes?
   
   No user-facing changes. The optimization is internal to logical expression 
evaluation and does not impact public APIs.
   
   


-- 
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: github-unsubscr...@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org
For additional commands, e-mail: github-h...@datafusion.apache.org

Reply via email to