| distribute result [$$43] |
| -- DISTRIBUTE_RESULT |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| assign [$$43] <- [{"name": $$51, "orders": $$40}] project: [$$43] |
| -- ASSIGN |PARTITIONED| |
| project ([$$51, $$40]) |
| -- STREAM_PROJECT |PARTITIONED| |
| exchange |
| -- SORT_MERGE_EXCHANGE [$$48(ASC) ] |PARTITIONED| |
| order (ASC, $$48) |
| -- STABLE_SORT [$$48(ASC)] |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| project ([$$51, $$40, $$48]) |
| -- STREAM_PROJECT |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| group by ([$$53 := $$46]) decor ([$$51]) { |
| aggregate [$$40, $$48] <- [listify($$47), agg-sql-count($$47)] |
| -- AGGREGATE |LOCAL| |
| select (not(is-missing($$52))) |
| -- STREAM_SELECT |LOCAL| |
| nested tuple source |
| -- NESTED_TUPLE_SOURCE |LOCAL| |
| } |
| -- PRE_CLUSTERED_GROUP_BY[$$46] |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| order (ASC, $$46) |
| -- STABLE_SORT [$$46(ASC)] |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| project ([$$51, $$47, $$52, $$46]) |
| -- STREAM_PROJECT |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| left outer join (eq($$49, $$46)) |
| -- HYBRID_HASH_JOIN [$$46][$$49] |PARTITIONED| |
| exchange |
| -- HASH_PARTITION_EXCHANGE [$$46] |PARTITIONED| |
| assign [$$51] <- [$$c.getField("name")] project: [$$51, $$46] |
| -- ASSIGN |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| data-scan []<-[$$46, $$c] <- test.customers |
| -- DATASOURCE_SCAN |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| empty-tuple-source |
| -- EMPTY_TUPLE_SOURCE |PARTITIONED| |
| exchange |
| -- HASH_PARTITION_EXCHANGE [$$49] |PARTITIONED| |
| assign [$$52, $$49] <- [true, $$o.getField("customer_id")] project: [$$47, $$52, $$49] |
| -- ASSIGN |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| data-scan []<-[$$47, $$o] <- test.orders |
| -- DATASOURCE_SCAN |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| empty-tuple-source |
| -- EMPTY_TUPLE_SOURCE |PARTITIONED| |