| distribute result [$$p] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0] |
| -- DISTRIBUTE_RESULT |PARTITIONED| |
| exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0] |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| project ([$$p]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0] |
| -- STREAM_PROJECT |PARTITIONED| |
| exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0] |
| -- SORT_MERGE_EXCHANGE [$$13(ASC) ] |PARTITIONED| |
| order (ASC, $$13) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0] |
| -- STABLE_SORT [$$13(ASC)] |PARTITIONED| |
| exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0] |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| assign [$$13] <- [$$p.getField("id")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0] |
| -- ASSIGN |PARTITIONED| |
| exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0] |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| data-scan []<-[$$p] <- test.ParquetDataset [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0] |
| -- DATASOURCE_SCAN |PARTITIONED| |
| exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] |
| -- EMPTY_TUPLE_SOURCE |PARTITIONED| |