== Physical Plan ==
* HashAggregate (4)
+- Exchange (3)
   +- * HashAggregate (2)
      +- * LocalTableScan (1)


(1) LocalTableScan [codegen id : 1]
Output [2]: [l_extendedprice#1, l_discount#2]
Arguments: <empty>, [l_extendedprice#1, l_discount#2]

(2) HashAggregate [codegen id : 1]
Input [2]: [l_extendedprice#1, l_discount#2]
Keys: []
Functions [1]: [partial_sum(CheckOverflow((promote_precision(l_extendedprice#1) * promote_precision(l_discount#2)), DecimalType(21,0)))]
Aggregate Attributes [2]: [sum#3, isEmpty#4]
Results [2]: [sum#5, isEmpty#6]

(3) Exchange
Input [2]: [sum#5, isEmpty#6]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [id=#7]

(4) HashAggregate [codegen id : 2]
Input [2]: [sum#5, isEmpty#6]
Keys: []
Functions [1]: [sum(CheckOverflow((promote_precision(l_extendedprice#1) * promote_precision(l_discount#2)), DecimalType(21,0)))]
Aggregate Attributes [1]: [sum(CheckOverflow((promote_precision(l_extendedprice#1) * promote_precision(l_discount#2)), DecimalType(21,0)))#8]
Results [1]: [sum(CheckOverflow((promote_precision(l_extendedprice#1) * promote_precision(l_discount#2)), DecimalType(21,0)))#8 AS revenue#9]

