yukkit opened a new issue, #6001:
URL: https://github.com/apache/arrow-datafusion/issues/6001

   ### Describe the bug
   
   As the title
   
   ### To Reproduce
   
   ```sql
   ❯ explain  select sum(case when latitude < 50.0 then latitude else 0 end) 
over (partition by name) from readings;
   
+---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | plan_type     | plan                                                       
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                   |
   
+---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | logical_plan  | Projection: SUM(CASE WHEN readings.latitude < Float64(50) 
THEN readings.latitude ELSE Int64(0) END) PARTITION BY [readings.name] ROWS 
BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING                             
                                                                                
                                                                                
                                                                                
                                                                                
                                                        |
   |               |   WindowAggr: windowExpr=[[SUM(CASE WHEN readings.latitude 
< Float64(50) THEN readings.latitude ELSE Float64(0) END) PARTITION BY 
[readings.name] ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING AS 
SUM(CASE WHEN readings.latitude < Float64(50) THEN readings.latitude ELSE 
Int64(0) END) PARTITION BY [readings.name] ROWS BETWEEN UNBOUNDED PRECEDING AND 
UNBOUNDED FOLLOWING]]                                                           
                                                                                
                                                                      |
   |               |     TableScan: readings projection=[time, name, fleet, 
driver, model, device_version, latitude, longitude, elevation, velocity, 
heading, grade, fuel_consumption, load_capacity, fuel_capacity, 
nominal_fuel_consumption]                                                       
                                                                                
                                                                                
                                                                                
                                                                              |
   | physical_plan | ProjectionExec: expr=[SUM(CASE WHEN readings.latitude < 
Float64(50) THEN readings.latitude ELSE Int64(0) END) PARTITION BY 
[readings.name] ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING@16 as 
SUM(CASE WHEN readings.latitude < Float64(50) THEN readings.latitude ELSE 
Int64(0) END) PARTITION BY [readings.name] ROWS BETWEEN UNBOUNDED PRECEDING AND 
UNBOUNDED FOLLOWING]                                                            
                                                                                
                                                                          |
   |               |   WindowAggExec: wdw=[SUM(CASE WHEN readings.latitude < 
Float64(50) THEN readings.latitude ELSE Int64(0) END) PARTITION BY 
[readings.name] ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING: 
Ok(Field { name: "SUM(CASE WHEN readings.latitude < Float64(50) THEN 
readings.latitude ELSE Int64(0) END) PARTITION BY [readings.name] ROWS BETWEEN 
UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING", data_type: Float64, nullable: 
true, dict_id: 0, dict_is_ordered: false, metadata: {} }), frame: WindowFrame { 
units: Rows, start_bound: Preceding(UInt64(NULL)), end_bound: 
Following(UInt64(NULL)) }] |
   |               |     SortExec: expr=[name@1 ASC NULLS LAST]                 
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                   |
   |               |       CoalesceBatchesExec: target_batch_size=8192          
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                   |
   |               |         RepartitionExec: partitioning=Hash([Column { name: 
"name", index: 1 }], 8), input_partitions=1                                     
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                   |
   |               |           ParquetExec: limit=None, partitions={1 group: 
[[Users/yukkit/Documents/tmp/data/parquet/part-297.parquet]]}, 
projection=[time, name, fleet, driver, model, device_version, latitude, 
longitude, elevation, velocity, heading, grade, fuel_consumption, 
load_capacity, fuel_capacity, nominal_fuel_consumption]                         
                                                                                
                                                                                
                                                                                
             |
   |               |                                                            
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                   |
   
+---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   2 rows in set. Query took 0.026 seconds.
   ```
   
   ### Expected behavior
   
   Push down only `latitude` and `name`  to TableScan.
   
   ### Additional context
   
   _No response_


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