blob: aefdd776fb5ccc9cf039a35d65c796bdf6ff4ab2 [file] [log] [blame]
== Abstract Syntax Tree ==
LogicalAggregate(group=[{0}], frequency=[COUNT($1)])
+- LogicalProject(cnt=[$1], num=[$0])
+- LogicalProject(num=[$0], cnt=[$1])
+- LogicalFilter(condition=[<($0, 4)])
+- LogicalTableScan(table=[[builtin, default, T1]])
LogicalProject(num=[$0], cnt=[$1])
+- LogicalFilter(condition=[AND(>=($0, 4), <($0, 6))])
+- LogicalTableScan(table=[[builtin, default, T1]])
== Optimized Logical Plan ==
StreamExecGroupAggregate(groupBy=[num], select=[num, COUNT(id) AS cnt], retract=[true], accMode=[AccRetract], reuse_id=[1])
+- StreamExecExchange(distribution=[hash[num]], retract=[true], accMode=[Acc])
+- StreamExecCalc(select=[num, id], retract=[true], accMode=[Acc])
+- StreamExecDataStreamScan(table=[[builtin, default, T]], retract=[true], accMode=[Acc])
StreamExecSink(fields=[cnt, frequency], retract=[false], accMode=[Acc])
+- StreamExecGroupAggregate(groupBy=[cnt], select=[cnt, COUNT_RETRACT(num) AS frequency], retract=[false], accMode=[Acc])
+- StreamExecExchange(distribution=[hash[cnt]], retract=[true], accMode=[AccRetract])
+- StreamExecCalc(select=[num, cnt], where=[<(num, 4)], retract=[true], accMode=[AccRetract])
+- Reused(reference_id=[1])
StreamExecSink(fields=[num, cnt], retract=[false], accMode=[AccRetract])
+- StreamExecCalc(select=[num, cnt], where=[AND(>=(num, 4), <(num, 6))], retract=[false], accMode=[AccRetract])
+- Reused(reference_id=[1])
== Physical Execution Plan ==
: Data Source
content : collect elements with CollectionInputFormat
: Operator
content : SourceConversion(table:[builtin, default, T], fields:(id, num, text))
ship_strategy : FORWARD
: Operator
content : Calc(select: (num, id))
ship_strategy : FORWARD
: Operator
content : GroupAggregate(groupBy: (num), select: (num, COUNT(id) AS cnt))
ship_strategy : HASH
: Operator
content : Calc(where: (num < 4), select: (num, cnt))
ship_strategy : FORWARD
: Operator
content : GroupAggregate(groupBy: (cnt), select: (cnt, COUNT_RETRACT(num) AS frequency))
ship_strategy : HASH
: Operator
content : Calc(where: ((num >= 4) AND (num < 6)), select: (num, cnt))
ship_strategy : FORWARD
: Data Sink
content : Sink: TestingUpsertTableSink(keys=(0))
ship_strategy : REBALANCE
: Data Sink
content : Sink: TestingUpsertTableSink(keys=())
ship_strategy : REBALANCE