@@ -106,9 +106,10 @@ query TT
106106EXPLAIN SELECT SUM(column1 + 1), SUM(column1 + 2) FROM sum_simplify_t;
107107----
108108logical_plan
109- 01)Projection: sum(sum_simplify_t.column1) + count(sum_simplify_t.column1) AS sum(sum_simplify_t.column1 + Int64(1)), sum(sum_simplify_t.column1) + Int64(2) * count(sum_simplify_t.column1) AS sum(sum_simplify_t.column1 + Int64(2))
110- 02)--Aggregate: groupBy=[[]], aggr=[[sum(sum_simplify_t.column1), count(sum_simplify_t.column1)]]
111- 03)----TableScan: sum_simplify_t projection=[column1]
109+ 01)Projection: sum(sum_simplify_t.column1) + __common_expr_1 AS sum(sum_simplify_t.column1 + Int64(1)), sum(sum_simplify_t.column1) + Int64(2) * __common_expr_1 AS sum(sum_simplify_t.column1 + Int64(2))
110+ 02)--Projection: CAST(count(sum_simplify_t.column1) AS Int64) AS __common_expr_1, sum(sum_simplify_t.column1)
111+ 03)----Aggregate: groupBy=[[]], aggr=[[sum(sum_simplify_t.column1), count(sum_simplify_t.column1)]]
112+ 04)------TableScan: sum_simplify_t projection=[column1]
112113physical_plan
11311401)ProjectionExec: expr=[sum(sum_simplify_t.column1)@0 + count(sum_simplify_t.column1)@1 as sum(sum_simplify_t.column1 + Int64(1)), sum(sum_simplify_t.column1)@0 + 2 * count(sum_simplify_t.column1)@1 as sum(sum_simplify_t.column1 + Int64(2))]
11411502)--AggregateExec: mode=Single, gby=[], aggr=[sum(sum_simplify_t.column1), count(sum_simplify_t.column1)]
@@ -124,9 +125,10 @@ query TT
124125EXPLAIN SELECT SUM(1 + column1), SUM(column1 + 2) FROM sum_simplify_t;
125126----
126127logical_plan
127- 01)Projection: sum(sum_simplify_t.column1) + count(sum_simplify_t.column1) AS sum(Int64(1) + sum_simplify_t.column1), sum(sum_simplify_t.column1) + Int64(2) * count(sum_simplify_t.column1) AS sum(sum_simplify_t.column1 + Int64(2))
128- 02)--Aggregate: groupBy=[[]], aggr=[[sum(sum_simplify_t.column1), count(sum_simplify_t.column1)]]
129- 03)----TableScan: sum_simplify_t projection=[column1]
128+ 01)Projection: sum(sum_simplify_t.column1) + __common_expr_1 AS sum(Int64(1) + sum_simplify_t.column1), sum(sum_simplify_t.column1) + Int64(2) * __common_expr_1 AS sum(sum_simplify_t.column1 + Int64(2))
129+ 02)--Projection: CAST(count(sum_simplify_t.column1) AS Int64) AS __common_expr_1, sum(sum_simplify_t.column1)
130+ 03)----Aggregate: groupBy=[[]], aggr=[[sum(sum_simplify_t.column1), count(sum_simplify_t.column1)]]
131+ 04)------TableScan: sum_simplify_t projection=[column1]
130132physical_plan
13113301)ProjectionExec: expr=[sum(sum_simplify_t.column1)@0 + count(sum_simplify_t.column1)@1 as sum(Int64(1) + sum_simplify_t.column1), sum(sum_simplify_t.column1)@0 + 2 * count(sum_simplify_t.column1)@1 as sum(sum_simplify_t.column1 + Int64(2))]
13213402)--AggregateExec: mode=Single, gby=[], aggr=[sum(sum_simplify_t.column1), count(sum_simplify_t.column1)]
@@ -233,20 +235,24 @@ physical_plan
23323503)----DataSourceExec: partitions=1, partition_sizes=[1]
234236
235237# volatile aggregate arguments
236- query error DataFusion error: Arrow error: Invalid argument error: Invalid arithmetic operation: Float64 \* Int64
238+ query B
237239SELECT SUM(random() + 1) < SUM(random() + 2) FROM sum_simplify_t;
240+ ----
241+ true
238242
239243query TT
240244EXPLAIN SELECT SUM(random() + 1) < SUM(random() + 2) FROM sum_simplify_t;
241245----
242246logical_plan
243- 01)Projection: sum(random()) + Float64(2) * count(random()) > sum(random()) + CAST(count(random()) AS Float64) AS sum(random() + Int64(1)) < sum(random() + Int64(2))
244- 02)--Aggregate: groupBy=[[]], aggr=[[sum(random()), count(random())]]
245- 03)----TableScan: sum_simplify_t projection=[]
247+ 01)Projection: sum(random()) + Float64(2) * __common_expr_1 > sum(random()) + __common_expr_1 AS sum(random() + Int64(1)) < sum(random() + Int64(2))
248+ 02)--Projection: CAST(count(random()) AS Float64) AS __common_expr_1, sum(random())
249+ 03)----Aggregate: groupBy=[[]], aggr=[[sum(random()), count(random())]]
250+ 04)------TableScan: sum_simplify_t projection=[]
246251physical_plan
247- 01)ProjectionExec: expr=[sum(random())@0 + 2 * count(random())@1 > sum(random())@0 + CAST(count(random())@1 AS Float64) as sum(random() + Int64(1)) < sum(random() + Int64(2))]
248- 02)--AggregateExec: mode=Single, gby=[], aggr=[sum(random()), count(random())]
249- 03)----DataSourceExec: partitions=1, partition_sizes=[1]
252+ 01)ProjectionExec: expr=[sum(random())@1 + 2 * __common_expr_1@0 > sum(random())@1 + __common_expr_1@0 as sum(random() + Int64(1)) < sum(random() + Int64(2))]
253+ 02)--ProjectionExec: expr=[CAST(count(random())@1 AS Float64) as __common_expr_1, sum(random())@0 as sum(random())]
254+ 03)----AggregateExec: mode=Single, gby=[], aggr=[sum(random()), count(random())]
255+ 04)------DataSourceExec: partitions=1, partition_sizes=[1]
250256
251257# Checks grouped aggregates with explicit ORDER BY return deterministic row order.
252258query III
@@ -261,9 +267,10 @@ EXPLAIN SELECT column2, SUM(column1 + 1), SUM(column1 + 2) FROM sum_simplify_t G
261267----
262268logical_plan
26326901)Sort: sum_simplify_t.column2 DESC NULLS LAST
264- 02)--Projection: sum_simplify_t.column2, sum(sum_simplify_t.column1) + count(sum_simplify_t.column1) AS sum(sum_simplify_t.column1 + Int64(1)), sum(sum_simplify_t.column1) + Int64(2) * count(sum_simplify_t.column1) AS sum(sum_simplify_t.column1 + Int64(2))
265- 03)----Aggregate: groupBy=[[sum_simplify_t.column2]], aggr=[[sum(sum_simplify_t.column1), count(sum_simplify_t.column1)]]
266- 04)------TableScan: sum_simplify_t projection=[column1, column2]
270+ 02)--Projection: sum_simplify_t.column2, sum(sum_simplify_t.column1) + __common_expr_1 AS sum(sum_simplify_t.column1 + Int64(1)), sum(sum_simplify_t.column1) + Int64(2) * __common_expr_1 AS sum(sum_simplify_t.column1 + Int64(2))
271+ 03)----Projection: CAST(count(sum_simplify_t.column1) AS Int64) AS __common_expr_1, sum_simplify_t.column2, sum(sum_simplify_t.column1)
272+ 04)------Aggregate: groupBy=[[sum_simplify_t.column2]], aggr=[[sum(sum_simplify_t.column1), count(sum_simplify_t.column1)]]
273+ 05)--------TableScan: sum_simplify_t projection=[column1, column2]
267274physical_plan
26827501)SortPreservingMergeExec: [column2@0 DESC NULLS LAST]
26927602)--SortExec: expr=[column2@0 DESC NULLS LAST], preserve_partitioning=[true]
@@ -284,7 +291,7 @@ EXPLAIN SELECT SUM(1 + column1), SUM(column1 + 1) FROM sum_simplify_t;
284291----
285292logical_plan
28629301)Projection: __common_expr_1 AS sum(Int64(1) + sum_simplify_t.column1), __common_expr_1 AS sum(sum_simplify_t.column1 + Int64(1))
287- 02)--Projection: sum(sum_simplify_t.column1) + count(sum_simplify_t.column1) AS __common_expr_1
294+ 02)--Projection: sum(sum_simplify_t.column1) + CAST( count(sum_simplify_t.column1) AS Int64 ) AS __common_expr_1
28829503)----Aggregate: groupBy=[[]], aggr=[[sum(sum_simplify_t.column1), count(sum_simplify_t.column1)]]
28929604)------TableScan: sum_simplify_t projection=[column1]
290297physical_plan
@@ -314,15 +321,16 @@ EXPLAIN SELECT arrow_typeof(SUM(val + 1)), SUM(val + 1), SUM(val + 2) FROM tbl;
314321----
315322logical_plan
31632301)Projection: arrow_typeof(sum(tbl.val + Int64(1))), sum(tbl.val + Int64(1)), sum(tbl.val + Int64(2))
317- 02)--Projection: sum(tbl.val) + count(tbl.val) AS sum(tbl.val + Int64(1)), sum(tbl.val) + Int64(2) * count(tbl.val) AS sum(tbl.val + Int64(2))
318- 03)----Aggregate: groupBy=[[]], aggr=[[sum(__common_expr_1 AS tbl.val), count(__common_expr_1 AS tbl.val)]]
319- 04)------Projection: CAST(tbl.val AS Int64) AS __common_expr_1
320- 05)--------TableScan: tbl projection=[val]
324+ 02)--Projection: sum(tbl.val) + __common_expr_1 AS sum(tbl.val + Int64(1)), sum(tbl.val) + Int64(2) * __common_expr_1 AS sum(tbl.val + Int64(2))
325+ 03)----Projection: CAST(count(tbl.val) AS Int64) AS __common_expr_1, sum(tbl.val)
326+ 04)------Aggregate: groupBy=[[]], aggr=[[sum(__common_expr_2 AS tbl.val), count(__common_expr_2 AS tbl.val)]]
327+ 05)--------Projection: CAST(tbl.val AS Int64) AS __common_expr_2
328+ 06)----------TableScan: tbl projection=[val]
321329physical_plan
32233001)ProjectionExec: expr=[arrow_typeof(sum(tbl.val + Int64(1))@0) as arrow_typeof(sum(tbl.val + Int64(1))), sum(tbl.val + Int64(1))@0 as sum(tbl.val + Int64(1)), sum(tbl.val + Int64(2))@1 as sum(tbl.val + Int64(2))]
32333102)--ProjectionExec: expr=[sum(tbl.val)@0 + count(tbl.val)@1 as sum(tbl.val + Int64(1)), sum(tbl.val)@0 + 2 * count(tbl.val)@1 as sum(tbl.val + Int64(2))]
32433203)----AggregateExec: mode=Single, gby=[], aggr=[sum(tbl.val), count(tbl.val)]
325- 04)------ProjectionExec: expr=[CAST(val@0 AS Int64) as __common_expr_1 ]
333+ 04)------ProjectionExec: expr=[CAST(val@0 AS Int64) as __common_expr_2 ]
32633405)--------DataSourceExec: partitions=1, partition_sizes=[2]
327335
328336# Checks equivalent rewritten form (SUM + COUNT terms) matches transformed SUM semantics.
0 commit comments