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

   ## Summary
   
   Adds an optimization rule to simplify CASE expressions where the first 
condition is always true (literal `true`), reducing them to just the THEN 
expression.
   
   This fixes the issue where expressions like:
   ```sql
   CASE WHEN true THEN 1 ELSE x END
   ```
   were not being simplified to just `1`.
   
   ## Changes
   
   - Added new simplification rule in `expr_simplifier.rs` that detects `CASE 
WHEN true THEN expr` patterns
   - Added comprehensive tests covering various scenarios including:
     - Simple literal values
     - Column references  
     - Multiple WHEN clauses (only first is simplified)
     - Cases with and without ELSE clauses
   
   ## Test Plan
   
   - [x] Added unit tests for the new simplification rule
   - [x] Verified existing CASE tests still pass
   - [x] Tested with the exact example from the issue
   - [x] Confirmed logical and physical plans now show simplified expressions
   
   ## Before/After
   
   **Before:**
   ```
   logical_plan  | Projection: CASE WHEN Boolean(true) THEN Int64(1) ELSE 
CAST(foo.x AS Int64) END
   physical_plan | ProjectionExec: expr=[CASE WHEN true THEN 1 ELSE CAST(x@0 AS 
Int64) END as ...]
   ```
   
   **After:**
   ```
   logical_plan  | Projection: Int64(1) AS CASE WHEN Boolean(true) THEN 
Int64(1) ELSE foo.x END
   physical_plan | ProjectionExec: expr=[1 as CASE WHEN Boolean(true) THEN 
Int64(1) ELSE foo.x END]
   ```
   
   Fixes #17448


-- 
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