wangyum commented on pull request #30222:
URL: https://github.com/apache/spark/pull/30222#issuecomment-721474620


   Hive optimized it to `predicate: CASE WHEN ((a = 100)) THEN (false) WHEN ((b 
> 1000)) THEN (true) WHEN (c is not null) THEN (false) ELSE (null) END (type: 
boolean)`. But this condition can not push down. We can optimized it to `b > 
1000` and push down it.
   ```
   hive> explain SELECT *
       > FROM   (SELECT CASE
       >                  WHEN a = 100 THEN 1
       >                  WHEN b > 1000 THEN 2
       >                  WHEN c IS NOT NULL THEN 3
       >                END AS x
       >         FROM   t) tmp
       > WHERE  x = 2;
   OK
   STAGE DEPENDENCIES:
     Stage-0 is a root stage
   
   STAGE PLANS:
     Stage: Stage-0
       Fetch Operator
         limit: -1
         Processor Tree:
           TableScan
             alias: t
             Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column 
stats: NONE
             Filter Operator
               predicate: CASE WHEN ((a = 100)) THEN (false) WHEN ((b > 1000)) 
THEN (true) WHEN (c is not null) THEN (false) ELSE (null) END (type: boolean)
               Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column 
stats: NONE
               Select Operator
                 expressions: CASE WHEN ((a = 100)) THEN (1) WHEN ((b > 1000)) 
THEN (2) WHEN (c is not null) THEN (3) ELSE (null) END (type: int)
                 outputColumnNames: _col0
                 Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL 
Column stats: NONE
                 ListSink
   ```


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

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



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

Reply via email to