Skip to content

Commit

Permalink
fix test physical plan that currently doesn't consist leaf boundary e…
Browse files Browse the repository at this point in the history
…xchange
  • Loading branch information
Rong Rong committed Nov 14, 2023
1 parent 5194231 commit 32be85a
Showing 1 changed file with 57 additions and 71 deletions.
Expand Up @@ -82,7 +82,6 @@
{
"description": "explain plan with semi-join + group-by with colocated tables",
"sql": "EXPLAIN IMPLEMENTATION PLAN FOR SELECT a.col1, COUNT(*) FROM a /*+ tableOptions(partition_key='col2', partition_size='4') */ WHERE a.col2 IN ( SELECT b.col1 FROM b /*+ tableOptions(partition_key='col1', partition_size='4') */ WHERE b.col1 = 'z' ) GROUP BY a.col1",
"comment": "TODO: exchange on top of SEMI-JOIN should be removed, now it is guaranteed to be partitioned",
"output": [
"[0]@localhost:3|[0] MAIL_RECEIVE(BROADCAST_DISTRIBUTED)\n",
"├── [1]@localhost:1|[1] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[0]@localhost:3|[0]} (Subtree Omitted)\n",
Expand All @@ -94,22 +93,17 @@
" ├── [2]@localhost:1|[0] MAIL_SEND(HASH_DISTRIBUTED)->{[1]@localhost:1|[1],[1]@localhost:2|[0]} (Subtree Omitted)\n",
" └── [2]@localhost:1|[1] MAIL_SEND(HASH_DISTRIBUTED)->{[1]@localhost:1|[1],[1]@localhost:2|[0]}\n",
" └── [2]@localhost:1|[1] AGGREGATE_LEAF\n",
" └── [2]@localhost:1|[1] MAIL_RECEIVE(HASH_DISTRIBUTED)\n",
" ├── [3]@localhost:2|[2] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[2]@localhost:2|[2]} (Subtree Omitted)\n",
" ├── [3]@localhost:2|[3] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[2]@localhost:2|[3]} (Subtree Omitted)\n",
" ├── [3]@localhost:1|[0] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[2]@localhost:1|[0]} (Subtree Omitted)\n",
" └── [3]@localhost:1|[1] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[2]@localhost:1|[1]}\n",
" └── [3]@localhost:1|[1] JOIN\n",
" ├── [3]@localhost:1|[1] PROJECT\n",
" │ └── [3]@localhost:1|[1] TABLE SCAN (a) null\n",
" └── [3]@localhost:1|[1] MAIL_RECEIVE(BROADCAST_DISTRIBUTED)\n",
" ├── [4]@localhost:2|[2] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[3]@localhost:1|[0, 1],[3]@localhost:2|[2, 3]} (Subtree Omitted)\n",
" ├── [4]@localhost:2|[3] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[3]@localhost:1|[0, 1],[3]@localhost:2|[2, 3]} (Subtree Omitted)\n",
" ├── [4]@localhost:1|[0] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[3]@localhost:1|[0, 1],[3]@localhost:2|[2, 3]} (Subtree Omitted)\n",
" └── [4]@localhost:1|[1] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[3]@localhost:1|[0, 1],[3]@localhost:2|[2, 3]}\n",
" └── [4]@localhost:1|[1] PROJECT\n",
" └── [4]@localhost:1|[1] FILTER\n",
" └── [4]@localhost:1|[1] TABLE SCAN (b) null\n",
" └── [2]@localhost:1|[1] JOIN\n",
" ├── [2]@localhost:1|[1] PROJECT\n",
" │ └── [2]@localhost:1|[1] TABLE SCAN (a) null\n",
" └── [2]@localhost:1|[1] MAIL_RECEIVE(BROADCAST_DISTRIBUTED)\n",
" ├── [3]@localhost:2|[2] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[2]@localhost:1|[0, 1],[2]@localhost:2|[2, 3]} (Subtree Omitted)\n",
" ├── [3]@localhost:2|[3] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[2]@localhost:1|[0, 1],[2]@localhost:2|[2, 3]} (Subtree Omitted)\n",
" ├── [3]@localhost:1|[0] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[2]@localhost:1|[0, 1],[2]@localhost:2|[2, 3]} (Subtree Omitted)\n",
" └── [3]@localhost:1|[1] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[2]@localhost:1|[0, 1],[2]@localhost:2|[2, 3]}\n",
" └── [3]@localhost:1|[1] PROJECT\n",
" └── [3]@localhost:1|[1] FILTER\n",
" └── [3]@localhost:1|[1] TABLE SCAN (b) null\n",
""
]
},
Expand Down Expand Up @@ -205,37 +199,34 @@
"comment": "TODO: exchange on top of SEMI-JOIN should be removed, now it is guaranteed to be partitioned",
"output": [
"[0]@localhost:3|[0] MAIL_RECEIVE(BROADCAST_DISTRIBUTED)\n",
"├── [1]@localhost:1|[1] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[0]@localhost:3|[0]} (Subtree Omitted)\n",
"└── [1]@localhost:2|[0] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[0]@localhost:3|[0]}\n",
" └── [1]@localhost:2|[0] AGGREGATE_FINAL\n",
" └── [1]@localhost:2|[0] MAIL_RECEIVE(HASH_DISTRIBUTED)\n",
" ├── [2]@localhost:2|[2] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[1]@localhost:1|[1],[1]@localhost:2|[0]} (Subtree Omitted)\n",
" ├── [2]@localhost:2|[3] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[1]@localhost:1|[1],[1]@localhost:2|[0]} (Subtree Omitted)\n",
" ├── [2]@localhost:1|[0] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[1]@localhost:1|[1],[1]@localhost:2|[0]} (Subtree Omitted)\n",
" └── [2]@localhost:1|[1] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[1]@localhost:1|[1],[1]@localhost:2|[0]}\n",
"├── [1]@localhost:2|[2] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[0]@localhost:3|[0]} (Subtree Omitted)\n",
"├── [1]@localhost:2|[3] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[0]@localhost:3|[0]} (Subtree Omitted)\n",
"├── [1]@localhost:1|[0] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[0]@localhost:3|[0]} (Subtree Omitted)\n",
"└── [1]@localhost:1|[1] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[0]@localhost:3|[0]}\n",
" └── [1]@localhost:1|[1] AGGREGATE_FINAL\n",
" └── [1]@localhost:1|[1] MAIL_RECEIVE(HASH_DISTRIBUTED)\n",
" ├── [2]@localhost:2|[2] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[1]@localhost:2|[2]} (Subtree Omitted)\n",
" ├── [2]@localhost:2|[3] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[1]@localhost:2|[3]} (Subtree Omitted)\n",
" ├── [2]@localhost:1|[0] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[1]@localhost:1|[0]} (Subtree Omitted)\n",
" └── [2]@localhost:1|[1] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[1]@localhost:1|[1]}\n",
" └── [2]@localhost:1|[1] AGGREGATE_LEAF\n",
" └── [2]@localhost:1|[1] MAIL_RECEIVE(HASH_DISTRIBUTED)\n",
" ├── [3]@localhost:2|[2] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[2]@localhost:2|[2]} (Subtree Omitted)\n",
" ├── [3]@localhost:2|[3] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[2]@localhost:2|[3]} (Subtree Omitted)\n",
" ├── [3]@localhost:1|[0] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[2]@localhost:1|[0]} (Subtree Omitted)\n",
" └── [3]@localhost:1|[1] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[2]@localhost:1|[1]}\n",
" └── [3]@localhost:1|[1] JOIN\n",
" ├── [3]@localhost:1|[1] PROJECT\n",
" │ └── [3]@localhost:1|[1] TABLE SCAN (a) null\n",
" └── [3]@localhost:1|[1] MAIL_RECEIVE(BROADCAST_DISTRIBUTED)\n",
" ├── [4]@localhost:1|[1] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[3]@localhost:1|[0, 1],[3]@localhost:2|[2, 3]} (Subtree Omitted)\n",
" └── [4]@localhost:2|[0] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[3]@localhost:1|[0, 1],[3]@localhost:2|[2, 3]}\n",
" └── [4]@localhost:2|[0] FILTER\n",
" └── [4]@localhost:2|[0] AGGREGATE_FINAL\n",
" └── [4]@localhost:2|[0] MAIL_RECEIVE(HASH_DISTRIBUTED)\n",
" ├── [5]@localhost:2|[2] MAIL_SEND(HASH_DISTRIBUTED)->{[4]@localhost:1|[1],[4]@localhost:2|[0]} (Subtree Omitted)\n",
" ├── [5]@localhost:2|[3] MAIL_SEND(HASH_DISTRIBUTED)->{[4]@localhost:1|[1],[4]@localhost:2|[0]} (Subtree Omitted)\n",
" ├── [5]@localhost:1|[0] MAIL_SEND(HASH_DISTRIBUTED)->{[4]@localhost:1|[1],[4]@localhost:2|[0]} (Subtree Omitted)\n",
" └── [5]@localhost:1|[1] MAIL_SEND(HASH_DISTRIBUTED)->{[4]@localhost:1|[1],[4]@localhost:2|[0]}\n",
" └── [5]@localhost:1|[1] AGGREGATE_LEAF\n",
" └── [5]@localhost:1|[1] PROJECT\n",
" └── [5]@localhost:1|[1] FILTER\n",
" └── [5]@localhost:1|[1] TABLE SCAN (b) null\n",
" └── [2]@localhost:1|[1] JOIN\n",
" ├── [2]@localhost:1|[1] PROJECT\n",
" │ └── [2]@localhost:1|[1] TABLE SCAN (a) null\n",
" └── [2]@localhost:1|[1] MAIL_RECEIVE(BROADCAST_DISTRIBUTED)\n",
" ├── [3]@localhost:1|[1] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[2]@localhost:1|[0, 1],[2]@localhost:2|[2, 3]} (Subtree Omitted)\n",
" └── [3]@localhost:2|[0] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[2]@localhost:1|[0, 1],[2]@localhost:2|[2, 3]}\n",
" └── [3]@localhost:2|[0] FILTER\n",
" └── [3]@localhost:2|[0] AGGREGATE_FINAL\n",
" └── [3]@localhost:2|[0] MAIL_RECEIVE(HASH_DISTRIBUTED)\n",
" ├── [4]@localhost:2|[2] MAIL_SEND(HASH_DISTRIBUTED)->{[3]@localhost:1|[1],[3]@localhost:2|[0]} (Subtree Omitted)\n",
" ├── [4]@localhost:2|[3] MAIL_SEND(HASH_DISTRIBUTED)->{[3]@localhost:1|[1],[3]@localhost:2|[0]} (Subtree Omitted)\n",
" ├── [4]@localhost:1|[0] MAIL_SEND(HASH_DISTRIBUTED)->{[3]@localhost:1|[1],[3]@localhost:2|[0]} (Subtree Omitted)\n",
" └── [4]@localhost:1|[1] MAIL_SEND(HASH_DISTRIBUTED)->{[3]@localhost:1|[1],[3]@localhost:2|[0]}\n",
" └── [4]@localhost:1|[1] AGGREGATE_LEAF\n",
" └── [4]@localhost:1|[1] PROJECT\n",
" └── [4]@localhost:1|[1] FILTER\n",
" └── [4]@localhost:1|[1] TABLE SCAN (b) null\n",
""
]
},
Expand All @@ -254,30 +245,25 @@
" ├── [2]@localhost:1|[0] MAIL_SEND(HASH_DISTRIBUTED)->{[1]@localhost:1|[1],[1]@localhost:2|[0]} (Subtree Omitted)\n",
" └── [2]@localhost:1|[1] MAIL_SEND(HASH_DISTRIBUTED)->{[1]@localhost:1|[1],[1]@localhost:2|[0]}\n",
" └── [2]@localhost:1|[1] AGGREGATE_LEAF\n",
" └── [2]@localhost:1|[1] MAIL_RECEIVE(HASH_DISTRIBUTED)\n",
" ├── [3]@localhost:2|[2] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[2]@localhost:2|[2]} (Subtree Omitted)\n",
" ├── [3]@localhost:2|[3] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[2]@localhost:2|[3]} (Subtree Omitted)\n",
" ├── [3]@localhost:1|[0] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[2]@localhost:1|[0]} (Subtree Omitted)\n",
" └── [3]@localhost:1|[1] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[2]@localhost:1|[1]}\n",
" └── [3]@localhost:1|[1] JOIN\n",
" ├── [3]@localhost:1|[1] PROJECT\n",
" │ └── [3]@localhost:1|[1] TABLE SCAN (a) null\n",
" └── [3]@localhost:1|[1] MAIL_RECEIVE(BROADCAST_DISTRIBUTED)\n",
" ├── [4]@localhost:2|[2] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[3]@localhost:1|[0, 1],[3]@localhost:2|[2, 3]} (Subtree Omitted)\n",
" ├── [4]@localhost:2|[3] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[3]@localhost:1|[0, 1],[3]@localhost:2|[2, 3]} (Subtree Omitted)\n",
" ├── [4]@localhost:1|[0] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[3]@localhost:1|[0, 1],[3]@localhost:2|[2, 3]} (Subtree Omitted)\n",
" └── [4]@localhost:1|[1] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[3]@localhost:1|[0, 1],[3]@localhost:2|[2, 3]}\n",
" └── [4]@localhost:1|[1] FILTER\n",
" └── [4]@localhost:1|[1] AGGREGATE_FINAL\n",
" └── [4]@localhost:1|[1] MAIL_RECEIVE(HASH_DISTRIBUTED)\n",
" ├── [5]@localhost:2|[2] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[4]@localhost:2|[2]} (Subtree Omitted)\n",
" ├── [5]@localhost:2|[3] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[4]@localhost:2|[3]} (Subtree Omitted)\n",
" ├── [5]@localhost:1|[0] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[4]@localhost:1|[0]} (Subtree Omitted)\n",
" └── [5]@localhost:1|[1] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[4]@localhost:1|[1]}\n",
" └── [5]@localhost:1|[1] AGGREGATE_LEAF\n",
" └── [5]@localhost:1|[1] PROJECT\n",
" └── [5]@localhost:1|[1] FILTER\n",
" └── [5]@localhost:1|[1] TABLE SCAN (b) null\n",
" └── [2]@localhost:1|[1] JOIN\n",
" ├── [2]@localhost:1|[1] PROJECT\n",
" │ └── [2]@localhost:1|[1] TABLE SCAN (a) null\n",
" └── [2]@localhost:1|[1] MAIL_RECEIVE(BROADCAST_DISTRIBUTED)\n",
" ├── [3]@localhost:2|[2] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[2]@localhost:1|[0, 1],[2]@localhost:2|[2, 3]} (Subtree Omitted)\n",
" ├── [3]@localhost:2|[3] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[2]@localhost:1|[0, 1],[2]@localhost:2|[2, 3]} (Subtree Omitted)\n",
" ├── [3]@localhost:1|[0] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[2]@localhost:1|[0, 1],[2]@localhost:2|[2, 3]} (Subtree Omitted)\n",
" └── [3]@localhost:1|[1] MAIL_SEND(BROADCAST_DISTRIBUTED)->{[2]@localhost:1|[0, 1],[2]@localhost:2|[2, 3]}\n",
" └── [3]@localhost:1|[1] FILTER\n",
" └── [3]@localhost:1|[1] AGGREGATE_FINAL\n",
" └── [3]@localhost:1|[1] MAIL_RECEIVE(HASH_DISTRIBUTED)\n",
" ├── [4]@localhost:2|[2] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[3]@localhost:2|[2]} (Subtree Omitted)\n",
" ├── [4]@localhost:2|[3] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[3]@localhost:2|[3]} (Subtree Omitted)\n",
" ├── [4]@localhost:1|[0] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[3]@localhost:1|[0]} (Subtree Omitted)\n",
" └── [4]@localhost:1|[1] MAIL_SEND(HASH_DISTRIBUTED)[PARTITIONED]->{[3]@localhost:1|[1]}\n",
" └── [4]@localhost:1|[1] AGGREGATE_LEAF\n",
" └── [4]@localhost:1|[1] PROJECT\n",
" └── [4]@localhost:1|[1] FILTER\n",
" └── [4]@localhost:1|[1] TABLE SCAN (b) null\n",
""
]
}
Expand Down

0 comments on commit 32be85a

Please sign in to comment.