| distribute result [$$44] |
| -- DISTRIBUTE_RESULT |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| assign [$$44] <- [{"id": $$51, "matches": $$41}] project: [$$44] |
| -- ASSIGN |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| group by ([$$51 := $$45]) decor ([]) { |
| aggregate [$$41] <- [listify($$40)] |
| -- AGGREGATE |LOCAL| |
| select (not(is-missing($$50))) |
| -- STREAM_SELECT |LOCAL| |
| nested tuple source |
| -- NESTED_TUPLE_SOURCE |LOCAL| |
| } |
| -- PRE_CLUSTERED_GROUP_BY[$$45] |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| order (ASC, $$45) |
| -- STABLE_SORT [$$45(ASC)] |PARTITIONED| |
| exchange |
| -- HASH_PARTITION_EXCHANGE [$$45] |PARTITIONED| |
| project ([$$40, $$50, $$45]) |
| -- STREAM_PROJECT |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| left outer join (eq($$47, $$48)) |
| -- HYBRID_HASH_JOIN [$$48][$$47] |PARTITIONED| |
| exchange |
| -- HASH_PARTITION_EXCHANGE [$$48] |PARTITIONED| |
| assign [$$48] <- [$$paperDBLP.getField(3)] project: [$$45, $$48] |
| -- ASSIGN |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| data-scan []<-[$$45, $$paperDBLP] <- fuzzyjoin_080.DBLP |
| -- DATASOURCE_SCAN |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| empty-tuple-source |
| -- EMPTY_TUPLE_SOURCE |PARTITIONED| |
| exchange |
| -- HASH_PARTITION_EXCHANGE [$$47] |PARTITIONED| |
| assign [$$50, $$40, $$47] <- [true, $$paper.getField(2), $$paper.getField(3)] project: [$$40, $$50, $$47] |
| -- ASSIGN |PARTITIONED| |
| project ([$$paper]) |
| -- STREAM_PROJECT |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| data-scan []<-[$$46, $$paper] <- fuzzyjoin_080.DBLP |
| -- DATASOURCE_SCAN |PARTITIONED| |
| exchange |
| -- ONE_TO_ONE_EXCHANGE |PARTITIONED| |
| empty-tuple-source |
| -- EMPTY_TUPLE_SOURCE |PARTITIONED| |