| distribute result [$$21] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1] |
| -- DISTRIBUTE_RESULT |PARTITIONED| |
| exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1] |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| project ([$$21]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1] |
| -- STREAM_PROJECT |PARTITIONED| |
| assign [$$21] <- [{"display_url": $$25}] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1] |
| -- ASSIGN |PARTITIONED| |
| project ([$$25]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1] |
| -- STREAM_PROJECT |PARTITIONED| |
| exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1] |
| -- SORT_MERGE_EXCHANGE [$$24(ASC) ] |PARTITIONED| |
| order (ASC, $$24) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1] |
| -- STABLE_SORT [$$24(ASC)] |PARTITIONED| |
| exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1] |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| project ([$$25, $$24]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1] |
| -- STREAM_PROJECT |PARTITIONED| |
| assign [$$25] <- [array-star($$23).getField("display_url")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1] |
| -- ASSIGN |PARTITIONED| |
| select (not(is-missing($$23))) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1] |
| -- STREAM_SELECT |PARTITIONED| |
| project ([$$23, $$24]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 2.1] |
| -- STREAM_PROJECT |PARTITIONED| |
| assign [$$23, $$24] <- [$$p.getField("entities").getField("urls"), $$p.getField("id")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 2.1] |
| -- ASSIGN |PARTITIONED| |
| exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 2.1] |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| data-scan []<-[$$p] <- test.ParquetDataset [cardinality: 1000000.0, op-cost: 2.1, total-cost: 2.1] |
| -- 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| |