PATCH bugfix to opensource branch

This commit is contained in:
obdev
2021-07-19 22:33:13 +08:00
committed by wangzelin.wzl
parent 5b5c04ff49
commit e03cb03357
34 changed files with 1471 additions and 1150 deletions

View File

@ -558,23 +558,26 @@ Outputs & filters:
SQL: select t1.c1 from t1, (select * from t2 where c2>1 order by c1 limit 10) as t where t1.c1=t.c1;
================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------------
|0 |PX COORDINATOR | |10 |412 |
|1 | EXCHANGE OUT DISTR |:EX10002|10 |411 |
|2 | NESTED-LOOP JOIN | |10 |411 |
|3 | EXCHANGE IN DISTR | |10 |44 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|10 |44 |
|5 | SUBPLAN SCAN |t |10 |44 |
|6 | LIMIT | |10 |42 |
|7 | EXCHANGE IN MERGE SORT DISTR| |10 |41 |
|8 | EXCHANGE OUT DISTR |:EX10000|10 |40 |
|9 | PX PARTITION ITERATOR | |10 |40 |
|10| TABLE SCAN |t2 |10 |40 |
|11| PX PARTITION ITERATOR | |1 |36 |
|12| TABLE GET |t1 |1 |36 |
================================================================
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |10 |425 |
|1 | EXCHANGE OUT DISTR |:EX10002|10 |424 |
|2 | NESTED-LOOP JOIN | |10 |424 |
|3 | EXCHANGE IN DISTR | |10 |57 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|10 |57 |
|5 | MATERIAL | |10 |57 |
|6 | SUBPLAN SCAN |t |10 |55 |
|7 | LIMIT | |10 |54 |
|8 | EXCHANGE IN MERGE SORT DISTR| |10 |52 |
|9 | EXCHANGE OUT DISTR |:EX10000|10 |51 |
|10| LIMIT | |10 |51 |
|11| TOP-N SORT | |10 |50 |
|12| PX PARTITION ITERATOR | |10 |40 |
|13| TABLE SCAN |t2 |10 |40 |
|14| PX PARTITION ITERATOR | |1 |36 |
|15| TABLE GET |t1 |1 |36 |
=================================================================
Outputs & filters:
-------------------------------------
@ -584,21 +587,24 @@ Outputs & filters:
conds(nil), nl_params_([t.c1]), batch_join=false
3 - output([t.c1], [PARTITION_ID]), filter(nil)
4 - (#keys=1, [t.c1]), output([t.c1], [PARTITION_ID]), filter(nil), is_single, dop=1
5 - output([t.c1]), filter(nil),
5 - output([t.c1]), filter(nil)
6 - output([t.c1]), filter(nil),
access([t.c1])
6 - output([t2.c1]), filter(nil), limit(10), offset(nil)
7 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
8 - output([t2.c1]), filter(nil), dop=1
9 - output([t2.c1]), filter(nil),
7 - output([t2.c1]), filter(nil), limit(10), offset(nil)
8 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC])
9 - output([t2.c1]), filter(nil), dop=1
10 - output([t2.c1]), filter(nil), limit(10), offset(nil)
11 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), topn(10), local merge sort
12 - output([t2.c1]), filter(nil),
force partition granule, asc.
10 - output([t2.c1]), filter([t2.c2 > ?]),
13 - output([t2.c1]), filter([t2.c2 > ?]),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
limit(10), offset(nil),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range(MIN ; MAX)always true
11 - output([t1.c1]), filter(nil),
14 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
12 - output([t1.c1]), filter(nil),
15 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX),
@ -2555,20 +2561,21 @@ Outputs & filters:
SQL: select t1.c1 from t1 left join t2 on t1.c1 = t2.c1 where exists (select c1 from t3 limit 1);
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SUBPLAN FILTER | |250 |460 |
|1 | PX COORDINATOR | |500 |354 |
|2 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|3 | PX PARTITION ITERATOR | |500 |331 |
|4 | TABLE SCAN |t1 |500 |331 |
|5 | LIMIT | |1 |37 |
|6 | PX COORDINATOR | |1 |36 |
|7 | EXCHANGE OUT DISTR |:EX20000|1 |36 |
|8 | PX PARTITION ITERATOR| |1 |36 |
|9 | TABLE SCAN |t3 |1 |36 |
======================================================
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |SUBPLAN FILTER | |250 |460 |
|1 | PX COORDINATOR | |500 |354 |
|2 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|3 | PX PARTITION ITERATOR | |500 |331 |
|4 | TABLE SCAN |t1 |500 |331 |
|5 | LIMIT | |1 |37 |
|6 | PX COORDINATOR | |1 |37 |
|7 | EXCHANGE OUT DISTR |:EX20000|1 |37 |
|8 | LIMIT | |1 |37 |
|9 | PX PARTITION ITERATOR| |1 |36 |
|10| TABLE SCAN |t3 |1 |36 |
=======================================================
Outputs & filters:
-------------------------------------
@ -2585,9 +2592,10 @@ Outputs & filters:
5 - output([1]), filter(nil), limit(1), offset(nil)
6 - output([1]), filter(nil)
7 - output([1]), filter(nil), dop=1
8 - output([1]), filter(nil),
force partition granule, asc.
8 - output([1]), filter(nil), limit(1), offset(nil)
9 - output([1]), filter(nil),
force partition granule, asc.
10 - output([1]), filter(nil),
access([t3.c1]), partitions(p[0-1]),
limit(1), offset(nil),
is_index_back=false,

View File

@ -162,24 +162,26 @@ Outputs & filters:
SQL: select c1 from t1 limit 100;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |LIMIT | |100 |107 |
|1 | PX COORDINATOR | |100 |93 |
|2 | EXCHANGE OUT DISTR |:EX10000|100 |88 |
|3 | PX PARTITION ITERATOR| |100 |88 |
|4 | TABLE SCAN |t1 |100 |88 |
=====================================================
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |LIMIT | |100 |120 |
|1 | PX COORDINATOR | |100 |107 |
|2 | EXCHANGE OUT DISTR |:EX10000|100 |102 |
|3 | LIMIT | |100 |102 |
|4 | PX PARTITION ITERATOR| |100 |88 |
|5 | TABLE SCAN |t1 |100 |88 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
1 - output([t1.c1]), filter(nil)
2 - output([t1.c1]), filter(nil), dop=1
3 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil), limit(100), offset(nil)
4 - output([t1.c1]), filter(nil),
force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
limit(100), offset(nil),
is_index_back=false,
@ -191,24 +193,26 @@ Outputs & filters:
SQL: select * from t1 limit 100;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |LIMIT | |100 |113 |
|1 | PX COORDINATOR | |100 |100 |
|2 | EXCHANGE OUT DISTR |:EX10000|100 |90 |
|3 | PX PARTITION ITERATOR| |100 |90 |
|4 | TABLE SCAN |t1 |100 |90 |
=====================================================
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |LIMIT | |100 |127 |
|1 | PX COORDINATOR | |100 |113 |
|2 | EXCHANGE OUT DISTR |:EX10000|100 |104 |
|3 | LIMIT | |100 |104 |
|4 | PX PARTITION ITERATOR| |100 |90 |
|5 | TABLE SCAN |t1 |100 |90 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
1 - output([t1.c1], [t1.c2]), filter(nil)
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
4 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
5 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
limit(100), offset(nil),
is_index_back=false,
@ -223,12 +227,13 @@ SQL: select * from t1 order by c1,c2 limit 100;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |LIMIT | |100 |241 |
|1 | PX COORDINATOR MERGE SORT | |100 |227 |
|2 | EXCHANGE OUT DISTR |:EX10000|100 |217 |
|3 | SORT | |100 |217 |
|4 | PX PARTITION ITERATOR | |100 |90 |
|5 | TABLE SCAN |t1 |100 |90 |
|0 |LIMIT | |100 |254 |
|1 | PX COORDINATOR MERGE SORT | |100 |241 |
|2 | EXCHANGE OUT DISTR |:EX10000|100 |231 |
|3 | LIMIT | |100 |231 |
|4 | TOP-N SORT | |100 |217 |
|5 | PX PARTITION ITERATOR | |100 |90 |
|6 | TABLE SCAN |t1 |100 |90 |
========================================================
Outputs & filters:
@ -236,10 +241,11 @@ Outputs & filters:
0 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC])
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), topn(100), local merge sort
5 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
6 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
limit(100), offset(nil),
is_index_back=false,
@ -254,12 +260,13 @@ SQL: select c1 from t1 order by c1 limit 100;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |LIMIT | |100 |214 |
|1 | PX COORDINATOR MERGE SORT | |100 |200 |
|2 | EXCHANGE OUT DISTR |:EX10000|100 |196 |
|3 | SORT | |100 |196 |
|4 | PX PARTITION ITERATOR | |100 |88 |
|5 | TABLE SCAN |t1 |100 |88 |
|0 |LIMIT | |100 |228 |
|1 | PX COORDINATOR MERGE SORT | |100 |214 |
|2 | EXCHANGE OUT DISTR |:EX10000|100 |209 |
|3 | LIMIT | |100 |209 |
|4 | TOP-N SORT | |100 |196 |
|5 | PX PARTITION ITERATOR | |100 |88 |
|6 | TABLE SCAN |t1 |100 |88 |
========================================================
Outputs & filters:
@ -267,10 +274,11 @@ Outputs & filters:
0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
1 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
2 - output([t1.c1]), filter(nil), dop=1
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil), limit(100), offset(nil)
4 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), topn(100), local merge sort
5 - output([t1.c1]), filter(nil),
force partition granule, asc.
6 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
limit(100), offset(nil),
is_index_back=false,
@ -285,12 +293,13 @@ SQL: select c1 from t1 order by c2 limit 100;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |LIMIT | |100 |241 |
|1 | PX COORDINATOR MERGE SORT | |100 |227 |
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |217 |
|3 | SORT | |100 |217 |
|4 | PX PARTITION ITERATOR | |100 |90 |
|5 | TABLE SCAN |t1(idx_t1_c2)|100 |90 |
|0 |LIMIT | |100 |254 |
|1 | PX COORDINATOR MERGE SORT | |100 |241 |
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |231 |
|3 | LIMIT | |100 |231 |
|4 | TOP-N SORT | |100 |217 |
|5 | PX PARTITION ITERATOR | |100 |90 |
|6 | TABLE SCAN |t1(idx_t1_c2)|100 |90 |
=============================================================
Outputs & filters:
@ -298,10 +307,11 @@ Outputs & filters:
0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
4 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(100), local merge sort
5 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
6 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
limit(100), offset(nil),
is_index_back=false,
@ -316,12 +326,13 @@ SQL: select c1 from t1 where c1 > 0 order by c2 limit 100;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |LIMIT | |100 |965 |
|1 | PX COORDINATOR MERGE SORT | |100 |951 |
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |942 |
|3 | SORT | |100 |942 |
|4 | PX PARTITION ITERATOR | |100 |815 |
|5 | TABLE SCAN |t1(idx_t1_c2)|100 |815 |
|0 |LIMIT | |100 |979 |
|1 | PX COORDINATOR MERGE SORT | |100 |965 |
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |956 |
|3 | LIMIT | |100 |956 |
|4 | TOP-N SORT | |100 |942 |
|5 | PX PARTITION ITERATOR | |100 |815 |
|6 | TABLE SCAN |t1(idx_t1_c2)|100 |815 |
=============================================================
Outputs & filters:
@ -329,10 +340,11 @@ Outputs & filters:
0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
4 - output([t1.c1], [t1.c2]), filter(nil),
3 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(100), local merge sort
5 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
5 - output([t1.c1], [t1.c2]), filter([t1.c1 > ?]),
6 - output([t1.c1], [t1.c2]), filter([t1.c1 > ?]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
limit(100), offset(nil),
is_index_back=false, filter_before_indexback[false],
@ -347,12 +359,13 @@ SQL: select c1 from t1 where c1 > 0 and c2 < 0 order by c2 limit 100;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |LIMIT | |100 |965 |
|1 | PX COORDINATOR MERGE SORT | |100 |951 |
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |942 |
|3 | SORT | |100 |942 |
|4 | PX PARTITION ITERATOR | |100 |815 |
|5 | TABLE SCAN |t1(idx_t1_c2)|100 |815 |
|0 |LIMIT | |100 |979 |
|1 | PX COORDINATOR MERGE SORT | |100 |965 |
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |956 |
|3 | LIMIT | |100 |956 |
|4 | TOP-N SORT | |100 |942 |
|5 | PX PARTITION ITERATOR | |100 |815 |
|6 | TABLE SCAN |t1(idx_t1_c2)|100 |815 |
=============================================================
Outputs & filters:
@ -360,10 +373,11 @@ Outputs & filters:
0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
4 - output([t1.c1], [t1.c2]), filter(nil),
3 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(100), local merge sort
5 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
5 - output([t1.c1], [t1.c2]), filter([t1.c1 > ?]),
6 - output([t1.c1], [t1.c2]), filter([t1.c1 > ?]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
limit(100), offset(nil),
is_index_back=false, filter_before_indexback[false],
@ -474,24 +488,26 @@ Outputs & filters:
SQL: select c1, c1 + c2 from t1 where c1 > 0 limit 100;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |LIMIT | |100 |113 |
|1 | PX COORDINATOR | |100 |100 |
|2 | EXCHANGE OUT DISTR |:EX10000|100 |90 |
|3 | PX PARTITION ITERATOR| |100 |90 |
|4 | TABLE SCAN |t1 |100 |90 |
=====================================================
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |LIMIT | |100 |127 |
|1 | PX COORDINATOR | |100 |113 |
|2 | EXCHANGE OUT DISTR |:EX10000|100 |104 |
|3 | LIMIT | |100 |104 |
|4 | PX PARTITION ITERATOR| |100 |90 |
|5 | TABLE SCAN |t1 |100 |90 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c1 + t1.c2]), filter(nil), limit(100), offset(nil)
1 - output([t1.c1], [t1.c2]), filter(nil)
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
4 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
5 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
limit(100), offset(nil),
is_index_back=false,
@ -1258,23 +1274,26 @@ Outputs & filters:
SQL: select t1.c1 from t1, (select * from t2 where c2>1 order by c1 limit 10) as t where t1.c1=t.c1;
================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------------
|0 |PX COORDINATOR | |10 |479 |
|1 | EXCHANGE OUT DISTR |:EX10002|10 |478 |
|2 | NESTED-LOOP JOIN | |10 |478 |
|3 | EXCHANGE IN DISTR | |10 |111 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|10 |111 |
|5 | SUBPLAN SCAN |t |10 |111 |
|6 | LIMIT | |10 |109 |
|7 | EXCHANGE IN MERGE SORT DISTR| |10 |108 |
|8 | EXCHANGE OUT DISTR |:EX10000|10 |107 |
|9 | PX PARTITION ITERATOR | |10 |107 |
|10| TABLE SCAN |t2 |10 |107 |
|11| PX PARTITION ITERATOR | |1 |36 |
|12| TABLE GET |t1 |1 |36 |
================================================================
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |10 |492 |
|1 | EXCHANGE OUT DISTR |:EX10002|10 |491 |
|2 | NESTED-LOOP JOIN | |10 |491 |
|3 | EXCHANGE IN DISTR | |10 |124 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|10 |124 |
|5 | MATERIAL | |10 |124 |
|6 | SUBPLAN SCAN |t |10 |122 |
|7 | LIMIT | |10 |121 |
|8 | EXCHANGE IN MERGE SORT DISTR| |10 |119 |
|9 | EXCHANGE OUT DISTR |:EX10000|10 |118 |
|10| LIMIT | |10 |118 |
|11| TOP-N SORT | |10 |117 |
|12| PX PARTITION ITERATOR | |10 |107 |
|13| TABLE SCAN |t2 |10 |107 |
|14| PX PARTITION ITERATOR | |1 |36 |
|15| TABLE GET |t1 |1 |36 |
=================================================================
Outputs & filters:
-------------------------------------
@ -1284,21 +1303,24 @@ Outputs & filters:
conds(nil), nl_params_([t.c1]), batch_join=false
3 - output([t.c1], [PARTITION_ID]), filter(nil)
4 - (#keys=1, [t.c1]), output([t.c1], [PARTITION_ID]), filter(nil), is_single, dop=1
5 - output([t.c1]), filter(nil),
5 - output([t.c1]), filter(nil)
6 - output([t.c1]), filter(nil),
access([t.c1])
6 - output([t2.c1]), filter(nil), limit(10), offset(nil)
7 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
8 - output([t2.c1]), filter(nil), dop=1
9 - output([t2.c1]), filter(nil),
7 - output([t2.c1]), filter(nil), limit(10), offset(nil)
8 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC])
9 - output([t2.c1]), filter(nil), dop=1
10 - output([t2.c1]), filter(nil), limit(10), offset(nil)
11 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), topn(10), local merge sort
12 - output([t2.c1]), filter(nil),
force partition granule, asc.
10 - output([t2.c1]), filter([t2.c2 > ?]),
13 - output([t2.c1]), filter([t2.c2 > ?]),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
limit(10), offset(nil),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range(MIN ; MAX)always true
11 - output([t1.c1]), filter(nil),
14 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
12 - output([t1.c1]), filter(nil),
15 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX),
@ -1552,24 +1574,26 @@ Outputs & filters:
SQL: select c1, c1+c2 from t1 where c1 > 100 limit 1, 10;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |LIMIT | |10 |41 |
|1 | PX COORDINATOR | |11 |39 |
|2 | EXCHANGE OUT DISTR |:EX10000|11 |38 |
|3 | PX PARTITION ITERATOR| |11 |38 |
|4 | TABLE SCAN |t1 |11 |38 |
=====================================================
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |LIMIT | |10 |42 |
|1 | PX COORDINATOR | |10 |41 |
|2 | EXCHANGE OUT DISTR |:EX10000|10 |40 |
|3 | LIMIT | |10 |40 |
|4 | PX PARTITION ITERATOR| |11 |38 |
|5 | TABLE SCAN |t1 |11 |38 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c1 + t1.c2]), filter(nil), limit(10), offset(?)
1 - output([t1.c1], [t1.c2]), filter(nil)
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil), limit(10 + ?), offset(nil)
4 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
5 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
limit(10 + ?), offset(nil),
is_index_back=false,
@ -2269,12 +2293,13 @@ SQL: select c1, repeat('ob', 2) as db_name from t1 order by c2 limit 100;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |LIMIT | |100 |241 |
|1 | PX COORDINATOR MERGE SORT | |100 |227 |
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |217 |
|3 | SORT | |100 |217 |
|4 | PX PARTITION ITERATOR | |100 |90 |
|5 | TABLE SCAN |t1(idx_t1_c2)|100 |90 |
|0 |LIMIT | |100 |254 |
|1 | PX COORDINATOR MERGE SORT | |100 |241 |
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |231 |
|3 | LIMIT | |100 |231 |
|4 | TOP-N SORT | |100 |217 |
|5 | PX PARTITION ITERATOR | |100 |90 |
|6 | TABLE SCAN |t1(idx_t1_c2)|100 |90 |
=============================================================
Outputs & filters:
@ -2282,10 +2307,11 @@ Outputs & filters:
0 - output([t1.c1], [?]), filter(nil), limit(100), offset(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
4 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(100), local merge sort
5 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
6 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
limit(100), offset(nil),
is_index_back=false,
@ -2381,12 +2407,13 @@ SQL: select c1, 1 + 1 from t1 order by c1 limit 100;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |LIMIT | |100 |214 |
|1 | PX COORDINATOR MERGE SORT | |100 |200 |
|2 | EXCHANGE OUT DISTR |:EX10000|100 |196 |
|3 | SORT | |100 |196 |
|4 | PX PARTITION ITERATOR | |100 |88 |
|5 | TABLE SCAN |t1 |100 |88 |
|0 |LIMIT | |100 |228 |
|1 | PX COORDINATOR MERGE SORT | |100 |214 |
|2 | EXCHANGE OUT DISTR |:EX10000|100 |209 |
|3 | LIMIT | |100 |209 |
|4 | TOP-N SORT | |100 |196 |
|5 | PX PARTITION ITERATOR | |100 |88 |
|6 | TABLE SCAN |t1 |100 |88 |
========================================================
Outputs & filters:
@ -2394,10 +2421,11 @@ Outputs & filters:
0 - output([t1.c1], [?]), filter(nil), limit(100), offset(nil)
1 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
2 - output([t1.c1]), filter(nil), dop=1
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil), limit(100), offset(nil)
4 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), topn(100), local merge sort
5 - output([t1.c1]), filter(nil),
force partition granule, asc.
6 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
limit(100), offset(nil),
is_index_back=false,
@ -2644,37 +2672,38 @@ SQL: (select /*+no_use_px*/ c1 from t1) union (select c2 from t1) union (select
=========================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
-------------------------------------------------------------------------
|0 |LIMIT | |100 |914254|
|1 | MERGE UNION DISTINCT | |100 |914241|
|2 | LIMIT | |100 |531348|
|3 | MERGE UNION DISTINCT | |100 |531335|
|4 | LIMIT | |100 |214 |
|5 | PX COORDINATOR MERGE SORT | |100 |200 |
|6 | EXCHANGE OUT DISTR |:EX10000 |100 |196 |
|7 | SORT | |100 |196 |
|8 | PX PARTITION ITERATOR | |100 |88 |
|9 | TABLE SCAN |t1 |100 |88 |
|10| LIMIT | |100 |531055|
|11| PX COORDINATOR MERGE SORT | |100 |531041|
|12| EXCHANGE OUT DISTR |:EX20001 |100 |531032|
|13| LIMIT | |100 |531032|
|14| MERGE DISTINCT | |100 |531018|
|15| EXCHANGE IN MERGE SORT DISTR| |100 |420145|
|16| EXCHANGE OUT DISTR (HASH) |:EX20000 |100 |420135|
|17| PX PARTITION ITERATOR | |100 |420135|
|18| MERGE DISTINCT | |100 |420135|
|19| TABLE SCAN |t1(idx_t1_c2)|500000 |309262|
|20| LIMIT | |100 |382827|
|21| PX COORDINATOR MERGE SORT | |100 |382813|
|22| EXCHANGE OUT DISTR |:EX30001 |100 |382804|
|23| LIMIT | |100 |382804|
|24| TOP-N SORT | |100 |382790|
|25| HASH DISTINCT | |101 |382684|
|26| EXCHANGE IN DISTR | |101 |284136|
|27| EXCHANGE OUT DISTR (HASH) |:EX30000 |101 |284127|
|28| HASH DISTINCT | |101 |284127|
|29| PX PARTITION ITERATOR | |300000 |185579|
|30| TABLE SCAN |t2 |300000 |185579|
|0 |LIMIT | |100 |914268|
|1 | MERGE UNION DISTINCT | |100 |914254|
|2 | LIMIT | |100 |531362|
|3 | MERGE UNION DISTINCT | |100 |531348|
|4 | LIMIT | |100 |228 |
|5 | PX COORDINATOR MERGE SORT | |100 |214 |
|6 | EXCHANGE OUT DISTR |:EX10000 |100 |209 |
|7 | LIMIT | |100 |209 |
|8 | TOP-N SORT | |100 |196 |
|9 | PX PARTITION ITERATOR | |100 |88 |
|10| TABLE SCAN |t1 |100 |88 |
|11| LIMIT | |100 |531055|
|12| PX COORDINATOR MERGE SORT | |100 |531041|
|13| EXCHANGE OUT DISTR |:EX20001 |100 |531032|
|14| LIMIT | |100 |531032|
|15| MERGE DISTINCT | |100 |531018|
|16| EXCHANGE IN MERGE SORT DISTR| |100 |420145|
|17| EXCHANGE OUT DISTR (HASH) |:EX20000 |100 |420135|
|18| PX PARTITION ITERATOR | |100 |420135|
|19| MERGE DISTINCT | |100 |420135|
|20| TABLE SCAN |t1(idx_t1_c2)|500000 |309262|
|21| LIMIT | |100 |382827|
|22| PX COORDINATOR MERGE SORT | |100 |382813|
|23| EXCHANGE OUT DISTR |:EX30001 |100 |382804|
|24| LIMIT | |100 |382804|
|25| TOP-N SORT | |100 |382790|
|26| HASH DISTINCT | |101 |382684|
|27| EXCHANGE IN DISTR | |101 |284136|
|28| EXCHANGE OUT DISTR (HASH) |:EX30000 |101 |284127|
|29| HASH DISTINCT | |101 |284127|
|30| PX PARTITION ITERATOR | |300000 |185579|
|31| TABLE SCAN |t2 |300000 |185579|
=========================================================================
Outputs & filters:
@ -2686,44 +2715,45 @@ Outputs & filters:
4 - output([t1.c1]), filter(nil), limit(100), offset(nil)
5 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
6 - output([t1.c1]), filter(nil), dop=1
7 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
8 - output([t1.c1]), filter(nil),
force partition granule, asc.
7 - output([t1.c1]), filter(nil), limit(100), offset(nil)
8 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), topn(100), local merge sort
9 - output([t1.c1]), filter(nil),
force partition granule, asc.
10 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
limit(100), offset(nil),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
10 - output([t1.c2]), filter(nil), limit(100), offset(nil)
11 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
12 - output([t1.c2]), filter(nil), dop=1
13 - output([t1.c2]), filter(nil), limit(100), offset(nil)
14 - output([t1.c2]), filter(nil),
11 - output([t1.c2]), filter(nil), limit(100), offset(nil)
12 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
13 - output([t1.c2]), filter(nil), dop=1
14 - output([t1.c2]), filter(nil), limit(100), offset(nil)
15 - output([t1.c2]), filter(nil),
distinct([t1.c2])
15 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
16 - (#keys=1, [t1.c2]), output([t1.c2]), filter(nil), dop=1
17 - output([t1.c2]), filter(nil),
force partition granule, asc.
16 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
17 - (#keys=1, [t1.c2]), output([t1.c2]), filter(nil), dop=1
18 - output([t1.c2]), filter(nil),
distinct([t1.c2])
force partition granule, asc.
19 - output([t1.c2]), filter(nil),
distinct([t1.c2])
20 - output([t1.c2]), filter(nil),
access([t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
20 - output([t2.c2]), filter(nil), limit(100), offset(nil)
21 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
22 - output([t2.c2]), filter(nil), dop=1
23 - output([t2.c2]), filter(nil), limit(100), offset(nil)
24 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC]), topn(100)
25 - output([t2.c2]), filter(nil),
distinct([t2.c2])
26 - output([t2.c2]), filter(nil)
27 - (#keys=1, [t2.c2]), output([t2.c2]), filter(nil), dop=1
28 - output([t2.c2]), filter(nil),
21 - output([t2.c2]), filter(nil), limit(100), offset(nil)
22 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
23 - output([t2.c2]), filter(nil), dop=1
24 - output([t2.c2]), filter(nil), limit(100), offset(nil)
25 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC]), topn(100)
26 - output([t2.c2]), filter(nil),
distinct([t2.c2])
27 - output([t2.c2]), filter(nil)
28 - (#keys=1, [t2.c2]), output([t2.c2]), filter(nil), dop=1
29 - output([t2.c2]), filter(nil),
force partition granule, asc.
distinct([t2.c2])
30 - output([t2.c2]), filter(nil),
force partition granule, asc.
31 - output([t2.c2]), filter(nil),
access([t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
@ -3130,24 +3160,26 @@ Outputs & filters:
SQL: select distinct 1, 2 from t1;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |LIMIT | |1 |37 |
|1 | PX COORDINATOR | |1 |36 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |36 |
|3 | PX PARTITION ITERATOR| |1 |36 |
|4 | TABLE SCAN |t1 |1 |36 |
=====================================================
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |LIMIT | |1 |37 |
|1 | PX COORDINATOR | |1 |37 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|3 | LIMIT | |1 |37 |
|4 | PX PARTITION ITERATOR| |1 |36 |
|5 | TABLE SCAN |t1 |1 |36 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([?], [?]), filter(nil), limit(1), offset(nil)
1 - output([1]), filter(nil)
2 - output([1]), filter(nil), dop=1
3 - output([1]), filter(nil),
force partition granule, asc.
3 - output([1]), filter(nil), limit(1), offset(nil)
4 - output([1]), filter(nil),
force partition granule, asc.
5 - output([1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
limit(1), offset(nil),
is_index_back=false,
@ -4845,24 +4877,26 @@ Outputs & filters:
SQL: select @@sql_mode, c1 from t1 limit 1;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |LIMIT | |1 |37 |
|1 | PX COORDINATOR | |1 |36 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |36 |
|3 | PX PARTITION ITERATOR| |1 |36 |
|4 | TABLE SCAN |t1 |1 |36 |
=====================================================
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |LIMIT | |1 |37 |
|1 | PX COORDINATOR | |1 |37 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|3 | LIMIT | |1 |37 |
|4 | PX PARTITION ITERATOR| |1 |36 |
|5 | TABLE SCAN |t1 |1 |36 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([?], [t1.c1]), filter(nil), limit(1), offset(nil)
1 - output([t1.c1]), filter(nil)
2 - output([t1.c1]), filter(nil), dop=1
3 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil), limit(1), offset(nil)
4 - output([t1.c1]), filter(nil),
force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
limit(1), offset(nil),
is_index_back=false,
@ -5705,20 +5739,21 @@ Outputs & filters:
SQL: select * from t1 where exists (select * from t2 limit 0);
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
--------------------------------------------------------
|0 |SUBPLAN FILTER | |250000 |425603|
|1 | PX COORDINATOR | |500000 |356592|
|2 | EXCHANGE OUT DISTR |:EX10000|500000 |309262|
|3 | PX PARTITION ITERATOR | |500000 |309262|
|4 | TABLE SCAN |t1 |500000 |309262|
|5 | LIMIT | |0 |0 |
|6 | PX COORDINATOR | |0 |0 |
|7 | EXCHANGE OUT DISTR |:EX20000|0 |0 |
|8 | PX PARTITION ITERATOR| |0 |0 |
|9 | TABLE SCAN |t2 |0 |0 |
========================================================
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
---------------------------------------------------------
|0 |SUBPLAN FILTER | |250000 |425603|
|1 | PX COORDINATOR | |500000 |356592|
|2 | EXCHANGE OUT DISTR |:EX10000|500000 |309262|
|3 | PX PARTITION ITERATOR | |500000 |309262|
|4 | TABLE SCAN |t1 |500000 |309262|
|5 | LIMIT | |0 |0 |
|6 | PX COORDINATOR | |0 |0 |
|7 | EXCHANGE OUT DISTR |:EX20000|0 |0 |
|8 | LIMIT | |0 |0 |
|9 | PX PARTITION ITERATOR| |0 |0 |
|10| TABLE SCAN |t2 |0 |0 |
=========================================================
Outputs & filters:
-------------------------------------
@ -5735,9 +5770,10 @@ Outputs & filters:
5 - output([1]), filter(nil), limit(0), offset(nil)
6 - output([1]), filter(nil)
7 - output([1]), filter(nil), dop=1
8 - output([1]), filter(nil),
force partition granule, asc.
8 - output([1]), filter(nil), limit(0), offset(nil)
9 - output([1]), filter(nil),
force partition granule, asc.
10 - output([1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
limit(0), offset(nil),
is_index_back=false,
@ -6329,24 +6365,26 @@ Outputs & filters:
SQL: select c1 from (select c1, c2 from t1 limit 1) t;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |LIMIT | |1 |37 |
|1 | PX COORDINATOR | |1 |36 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |36 |
|3 | PX PARTITION ITERATOR| |1 |36 |
|4 | TABLE SCAN |t1 |1 |36 |
=====================================================
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |LIMIT | |1 |37 |
|1 | PX COORDINATOR | |1 |37 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|3 | LIMIT | |1 |37 |
|4 | PX PARTITION ITERATOR| |1 |36 |
|5 | TABLE SCAN |t1 |1 |36 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil), limit(1), offset(nil)
1 - output([t1.c1]), filter(nil)
2 - output([t1.c1]), filter(nil), dop=1
3 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil), limit(1), offset(nil)
4 - output([t1.c1]), filter(nil),
force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
limit(1), offset(nil),
is_index_back=false,
@ -7980,18 +8018,19 @@ SQL: SELECT (select max(t1.c1) from t1) as field from t1 group by field;
|0 |HASH GROUP BY | |1 |809753|
|1 | NESTED-LOOP JOIN CARTESIAN | |500000 |645625|
|2 | SUBPLAN SCAN |VIEW4 |1 |38 |
|3 | SCALAR GROUP BY | |1 |37 |
|3 | SCALAR GROUP BY | |1 |38 |
|4 | SUBPLAN SCAN |VIEW5 |1 |37 |
|5 | LIMIT | |1 |37 |
|6 | PX COORDINATOR MERGE SORT | |1 |37 |
|7 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|8 | SORT | |1 |37 |
|9 | PX PARTITION ITERATOR | |1 |36 |
|10| TABLE SCAN |t1(Reverse)|1 |36 |
|11| PX COORDINATOR | |500000 |321898|
|12| EXCHANGE OUT DISTR |:EX20000 |500000 |298233|
|13| PX PARTITION ITERATOR | |500000 |298233|
|14| TABLE SCAN |t1 |500000 |298233|
|8 | LIMIT | |1 |37 |
|9 | TOP-N SORT | |1 |37 |
|10| PX PARTITION ITERATOR | |1 |36 |
|11| TABLE SCAN |t1(Reverse)|1 |36 |
|12| PX COORDINATOR | |500000 |321898|
|13| EXCHANGE OUT DISTR |:EX20000 |500000 |298233|
|14| PX PARTITION ITERATOR | |500000 |298233|
|15| TABLE SCAN |t1 |500000 |298233|
==================================================================
Outputs & filters:
@ -8009,19 +8048,20 @@ Outputs & filters:
5 - output([t1.c1]), filter(nil), limit(1), offset(nil)
6 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC])
7 - output([t1.c1]), filter(nil), dop=1
8 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), local merge sort
9 - output([t1.c1]), filter(nil),
force partition granule, asc.
8 - output([t1.c1]), filter(nil), limit(1), offset(nil)
9 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), topn(1), local merge sort
10 - output([t1.c1]), filter(nil),
force partition granule, asc.
11 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
limit(1), offset(nil),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
11 - output([1]), filter(nil)
12 - output([1]), filter(nil), dop=1
13 - output([1]), filter(nil),
force partition granule, asc.
12 - output([1]), filter(nil)
13 - output([1]), filter(nil), dop=1
14 - output([1]), filter(nil),
force partition granule, asc.
15 - output([1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
@ -8827,20 +8867,21 @@ Outputs & filters:
SQL: select c1 from t1 where (1, 2) in (select distinct t1.c1, t1.c2 from t2 where t1.c1);
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |1 |53 |
|1 | PX COORDINATOR | |1 |53 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |53 |
|3 | TABLE GET |t1 |1 |53 |
|4 | SUBPLAN SCAN |VIEW2 |1 |37 |
|5 | LIMIT | |1 |37 |
|6 | PX COORDINATOR | |1 |36 |
|7 | EXCHANGE OUT DISTR |:EX20000|1 |36 |
|8 | PX PARTITION ITERATOR| |1 |36 |
|9 | TABLE SCAN |t2 |1 |36 |
=======================================================
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |1 |53 |
|1 | PX COORDINATOR | |1 |53 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |53 |
|3 | TABLE GET |t1 |1 |53 |
|4 | SUBPLAN SCAN |VIEW2 |1 |37 |
|5 | LIMIT | |1 |37 |
|6 | PX COORDINATOR | |1 |37 |
|7 | EXCHANGE OUT DISTR |:EX20000|1 |37 |
|8 | LIMIT | |1 |37 |
|9 | PX PARTITION ITERATOR| |1 |36 |
|10| TABLE SCAN |t2 |1 |36 |
========================================================
Outputs & filters:
-------------------------------------
@ -8858,9 +8899,10 @@ Outputs & filters:
5 - output([1]), filter(nil), limit(1), offset(nil)
6 - output([1]), filter(nil)
7 - output([1]), filter(nil), dop=1
8 - output([1]), filter(nil),
force partition granule, asc.
8 - output([1]), filter(nil), limit(1), offset(nil)
9 - output([1]), filter(nil),
force partition granule, asc.
10 - output([1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
limit(1), offset(nil),
is_index_back=false,
@ -8872,22 +8914,23 @@ Outputs & filters:
SQL: select c2 from t1 where exists (select * from t2 where t1.c1 and t1.c2 limit 1);
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
----------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |490050 |786189|
|1 | PX COORDINATOR | |490050 |439375|
|2 | EXCHANGE OUT DISTR |:EX10000|490050 |392987|
|3 | PX PARTITION ITERATOR | |490050 |392987|
|4 | TABLE SCAN |t1 |490050 |392987|
|5 | MATERIAL | |1 |37 |
|6 | SUBPLAN SCAN |VIEW2 |1 |37 |
|7 | LIMIT | |1 |37 |
|8 | PX COORDINATOR | |1 |36 |
|9 | EXCHANGE OUT DISTR |:EX20000|1 |36 |
|10| PX PARTITION ITERATOR| |1 |36 |
|11| TABLE SCAN |t2 |1 |36 |
==========================================================
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
-----------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |490050 |786189|
|1 | PX COORDINATOR | |490050 |439375|
|2 | EXCHANGE OUT DISTR |:EX10000|490050 |392987|
|3 | PX PARTITION ITERATOR | |490050 |392987|
|4 | TABLE SCAN |t1 |490050 |392987|
|5 | MATERIAL | |1 |37 |
|6 | SUBPLAN SCAN |VIEW2 |1 |37 |
|7 | LIMIT | |1 |37 |
|8 | PX COORDINATOR | |1 |37 |
|9 | EXCHANGE OUT DISTR |:EX20000|1 |37 |
|10| LIMIT | |1 |37 |
|11| PX PARTITION ITERATOR| |1 |36 |
|12| TABLE SCAN |t2 |1 |36 |
===========================================================
Outputs & filters:
-------------------------------------
@ -8907,9 +8950,10 @@ Outputs & filters:
7 - output([1]), filter(nil), limit(1), offset(nil)
8 - output([1]), filter(nil)
9 - output([1]), filter(nil), dop=1
10 - output([1]), filter(nil),
force partition granule, asc.
10 - output([1]), filter(nil), limit(1), offset(nil)
11 - output([1]), filter(nil),
force partition granule, asc.
12 - output([1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
limit(1), offset(nil),
is_index_back=false,
@ -9313,15 +9357,15 @@ SQL: select * from t1, t2 where t1.c1 > any(select t3.c2 from t2,t3 where t2.c1
|8 | EXCHANGE OUT DISTR |:EX20000 |500000 |309262 |
|9 | PX PARTITION ITERATOR | |500000 |309262 |
|10| TABLE SCAN |t1 |500000 |309262 |
|11| MATERIAL | |20000000000|28633829101 |
|12| SUBPLAN SCAN |VIEW2 |20000000000|24958754009 |
|13| NESTED-LOOP JOIN CARTESIAN | |20000000000|22198315287 |
|11| MATERIAL | |20000000000|28633870508 |
|12| SUBPLAN SCAN |VIEW2 |20000000000|24958795416 |
|13| NESTED-LOOP JOIN CARTESIAN | |20000000000|22198356694 |
|14| PX COORDINATOR | |200000 |142652 |
|15| EXCHANGE OUT DISTR |:EX30000 |200000 |123720 |
|16| PX PARTITION ITERATOR | |200000 |123720 |
|17| TABLE SCAN |t3 |200000 |123720 |
|18| MATERIAL | |100000 |8045386168 |
|19| NESTED-LOOP SEMI JOIN | |100000 |8045367793 |
|18| MATERIAL | |100000 |8045427575 |
|19| NESTED-LOOP SEMI JOIN | |100000 |8045409199 |
|20| PX COORDINATOR | |300000 |193161 |
|21| EXCHANGE OUT DISTR |:EX40000 |300000 |178962 |
|22| PX PARTITION ITERATOR | |300000 |178962 |
@ -9336,10 +9380,11 @@ SQL: select * from t1, t2 where t1.c1 > any(select t3.c2 from t2,t3 where t2.c1
|31| MATERIAL | |33334 |26745 |
|32| TABLE SCAN |t4 |33334 |20620 |
|33| LIMIT | |1 |37 |
|34| PX COORDINATOR | |1 |36 |
|35| EXCHANGE OUT DISTR |:EX60000 |1 |36 |
|36| PX PARTITION ITERATOR | |1 |36 |
|37| TABLE SCAN |t2 |1 |36 |
|34| PX COORDINATOR | |1 |37 |
|35| EXCHANGE OUT DISTR |:EX60000 |1 |37 |
|36| LIMIT | |1 |37 |
|37| PX PARTITION ITERATOR | |1 |36 |
|38| TABLE SCAN |t2 |1 |36 |
====================================================================================
Outputs & filters:
@ -9412,9 +9457,10 @@ Outputs & filters:
33 - output([1]), filter(nil), limit(1), offset(nil)
34 - output([1]), filter(nil)
35 - output([1]), filter(nil), dop=1
36 - output([1]), filter(nil),
force partition granule, asc.
36 - output([1]), filter(nil), limit(1), offset(nil)
37 - output([1]), filter(nil),
force partition granule, asc.
38 - output([1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
limit(1), offset(nil),
is_index_back=false,

View File

@ -206,15 +206,16 @@ SQL: select * from t4 where c1 in (select max(c1) from t1);
---------------------------------------------------------------
|0 |NESTED-LOOP JOIN | |1 |74 |
|1 | SUBPLAN SCAN |VIEW1 |1 |38 |
|2 | SCALAR GROUP BY | |1 |37 |
|2 | SCALAR GROUP BY | |1 |38 |
|3 | SUBPLAN SCAN |VIEW2 |1 |37 |
|4 | LIMIT | |1 |37 |
|5 | PX COORDINATOR MERGE SORT | |1 |37 |
|6 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|7 | SORT | |1 |37 |
|8 | PX PARTITION ITERATOR | |1 |36 |
|9 | TABLE SCAN |t1(Reverse)|1 |36 |
|10| TABLE SCAN |t4 |1 |36 |
|7 | LIMIT | |1 |37 |
|8 | TOP-N SORT | |1 |37 |
|9 | PX PARTITION ITERATOR | |1 |36 |
|10| TABLE SCAN |t1(Reverse)|1 |36 |
|11| TABLE SCAN |t4 |1 |36 |
===============================================================
Outputs & filters:
@ -230,12 +231,13 @@ Outputs & filters:
4 - output([t1.c1]), filter(nil), limit(1), offset(nil)
5 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC])
6 - output([t1.c1]), filter(nil), dop=1
7 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), local merge sort
8 - output([t1.c1]), filter(nil)
9 - output([t1.c1]), filter(nil),
7 - output([t1.c1]), filter(nil), limit(1), offset(nil)
8 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), topn(1), local merge sort
9 - output([t1.c1]), filter(nil)
10 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
limit(1), offset(nil)
10 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
11 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
Outline Data:
@ -971,25 +973,27 @@ SQL: select * from t8, (select count(*) from t1 where t1.c1 > any (select t2.c1
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |100 |498 |
|1 | SUBPLAN SCAN |tt |1 |343 |
|1 | SUBPLAN SCAN |tt |1 |344 |
|2 | SCALAR GROUP BY | |1 |343 |
|3 | PX COORDINATOR | |1 |311 |
|4 | EXCHANGE OUT DISTR |:EX10002|1 |311 |
|5 | MERGE GROUP BY | |1 |311 |
|6 | NESTED-LOOP JOIN | |167 |279 |
|7 | EXCHANGE IN DISTR | |1 |37 |
|8 | EXCHANGE OUT DISTR (BC2HOST) |:EX10001|1 |37 |
|9 | SUBPLAN SCAN |VIEW1 |1 |37 |
|10| SCALAR GROUP BY | |1 |37 |
|3 | PX COORDINATOR | |1 |312 |
|4 | EXCHANGE OUT DISTR |:EX10002|1 |312 |
|5 | MERGE GROUP BY | |1 |312 |
|6 | NESTED-LOOP JOIN | |167 |280 |
|7 | EXCHANGE IN DISTR | |1 |38 |
|8 | EXCHANGE OUT DISTR (BC2HOST) |:EX10001|1 |38 |
|9 | SUBPLAN SCAN |VIEW1 |1 |38 |
|10| SCALAR GROUP BY | |1 |38 |
|11| SUBPLAN SCAN |VIEW2 |1 |37 |
|12| LIMIT | |1 |37 |
|13| EXCHANGE IN MERGE SORT DISTR| |1 |36 |
|14| EXCHANGE OUT DISTR |:EX10000|1 |36 |
|15| PX PARTITION ITERATOR | |1 |36 |
|16| TABLE SCAN |t2 |1 |36 |
|17| PX PARTITION ITERATOR | |167 |134 |
|18| TABLE SCAN |t1 |167 |134 |
|19| TABLE SCAN |t8 |100 |90 |
|13| EXCHANGE IN MERGE SORT DISTR| |1 |37 |
|14| EXCHANGE OUT DISTR |:EX10000|1 |37 |
|15| LIMIT | |1 |37 |
|16| TOP-N SORT | |1 |37 |
|17| PX PARTITION ITERATOR | |1 |36 |
|18| TABLE SCAN |t2 |1 |36 |
|19| PX PARTITION ITERATOR | |167 |134 |
|20| TABLE SCAN |t1 |167 |134 |
|21| TABLE SCAN |t8 |100 |90 |
======================================================================
Outputs & filters:
@ -1015,16 +1019,18 @@ Outputs & filters:
11 - output([VIEW2.c1]), filter(nil),
access([VIEW2.c1])
12 - output([t2.c1]), filter(nil), limit(1), offset(nil)
13 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
13 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC])
14 - output([t2.c1]), filter(nil), dop=1
15 - output([t2.c1]), filter(nil)
16 - output([t2.c1]), filter(nil),
15 - output([t2.c1]), filter(nil), limit(1), offset(nil)
16 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), topn(1), local merge sort
17 - output([t2.c1]), filter(nil)
18 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
limit(1), offset(nil)
17 - output([1]), filter(nil)
18 - output([1]), filter(nil),
19 - output([1]), filter(nil)
20 - output([1]), filter(nil),
access([t1.c1]), partitions(p[0-4])
19 - output([t8.c1], [t8.c2]), filter(nil),
21 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0)
Outline Data:

File diff suppressed because it is too large Load Diff

View File

@ -2195,18 +2195,19 @@ SQL: select /*+leading(tt t5) use_nl(t5)*/* from (select max(c1) from t1) tt, t5
---------------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |300 |479 |
|1 | SUBPLAN SCAN |tt |1 |38 |
|2 | SCALAR GROUP BY | |1 |37 |
|2 | SCALAR GROUP BY | |1 |38 |
|3 | SUBPLAN SCAN |VIEW1 |1 |37 |
|4 | LIMIT | |1 |37 |
|5 | PX COORDINATOR MERGE SORT | |1 |37 |
|6 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|7 | SORT | |1 |37 |
|8 | PX PARTITION ITERATOR | |1 |36 |
|9 | TABLE SCAN |t1(Reverse)|1 |36 |
|10| PX COORDINATOR | |300 |247 |
|11| EXCHANGE OUT DISTR |:EX20000 |300 |205 |
|12| PX PARTITION ITERATOR | |300 |205 |
|13| TABLE SCAN |t5 |300 |205 |
|7 | LIMIT | |1 |37 |
|8 | TOP-N SORT | |1 |37 |
|9 | PX PARTITION ITERATOR | |1 |36 |
|10| TABLE SCAN |t1(Reverse)|1 |36 |
|11| PX COORDINATOR | |300 |247 |
|12| EXCHANGE OUT DISTR |:EX20000 |300 |205 |
|13| PX PARTITION ITERATOR | |300 |205 |
|14| TABLE SCAN |t5 |300 |205 |
===============================================================
Outputs & filters:
@ -2222,19 +2223,20 @@ Outputs & filters:
4 - output([t1.c1]), filter(nil), limit(1), offset(nil)
5 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC])
6 - output([t1.c1]), filter(nil), dop=1
7 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), local merge sort
8 - output([t1.c1]), filter(nil),
force partition granule, asc.
7 - output([t1.c1]), filter(nil), limit(1), offset(nil)
8 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), topn(1), local merge sort
9 - output([t1.c1]), filter(nil),
force partition granule, asc.
10 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
limit(1), offset(nil),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
10 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil)
11 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
12 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
force partition granule, asc.
11 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil)
12 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
13 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
force partition granule, asc.
14 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
access([t5.c2], [t5.c3], [t5.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
@ -2274,6 +2276,7 @@ Optimization Info:
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t1], pruned_index_name[idx_t1_c2]
@ -2299,14 +2302,15 @@ SQL: select /*+leading(t5 tt) use_nl(tt)*/* from (select max(c1) from t1) tt, t5
|4 | TABLE SCAN |t5 |300 |205 |
|5 | MATERIAL | |1 |38 |
|6 | SUBPLAN SCAN |tt |1 |38 |
|7 | SCALAR GROUP BY | |1 |37 |
|7 | SCALAR GROUP BY | |1 |38 |
|8 | SUBPLAN SCAN |VIEW1 |1 |37 |
|9 | LIMIT | |1 |37 |
|10| PX COORDINATOR MERGE SORT | |1 |37 |
|11| EXCHANGE OUT DISTR |:EX20000 |1 |37 |
|12| SORT | |1 |37 |
|13| PX PARTITION ITERATOR | |1 |36 |
|14| TABLE SCAN |t1(Reverse)|1 |36 |
|12| LIMIT | |1 |37 |
|13| TOP-N SORT | |1 |37 |
|14| PX PARTITION ITERATOR | |1 |36 |
|15| TABLE SCAN |t1(Reverse)|1 |36 |
================================================================
Outputs & filters:
@ -2331,10 +2335,11 @@ Outputs & filters:
9 - output([t1.c1]), filter(nil), limit(1), offset(nil)
10 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC])
11 - output([t1.c1]), filter(nil), dop=1
12 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), local merge sort
13 - output([t1.c1]), filter(nil),
force partition granule, asc.
12 - output([t1.c1]), filter(nil), limit(1), offset(nil)
13 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), topn(1), local merge sort
14 - output([t1.c1]), filter(nil),
force partition granule, asc.
15 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
limit(1), offset(nil),
is_index_back=false,
@ -2381,6 +2386,7 @@ t5:table_rows:300, physical_range_rows:300, logical_range_rows:300, index_back_r
t1:table_rows:500, physical_range_rows:500, logical_range_rows:500, index_back_rows:0, output_rows:500, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[t1], pruned_index_name[idx_t1_c2]
Parameters
-------------------------------------

View File

@ -301,14 +301,15 @@ SQL: select max(c1) from pt2;
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |37 |
|0 |SCALAR GROUP BY | |1 |38 |
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|2 | LIMIT | |1 |37 |
|3 | PX COORDINATOR MERGE SORT | |1 |37 |
|4 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|5 | SORT | |1 |37 |
|6 | PX PARTITION ITERATOR | |1 |36 |
|7 | TABLE SCAN |pt2(Reverse)|1 |36 |
|5 | LIMIT | |1 |37 |
|6 | TOP-N SORT | |1 |37 |
|7 | PX PARTITION ITERATOR | |1 |36 |
|8 | TABLE SCAN |pt2(Reverse)|1 |36 |
==============================================================
Outputs & filters:
@ -320,9 +321,10 @@ Outputs & filters:
2 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
3 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC])
4 - output([pt2.c1]), filter(nil), dop=1
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), local merge sort
6 - output([pt2.c1]), filter(nil)
7 - output([pt2.c1]), filter(nil),
5 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
6 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), topn(1), local merge sort
7 - output([pt2.c1]), filter(nil)
8 - output([pt2.c1]), filter(nil),
access([pt2.c1]), partitions(p[0-2]),
limit(1), offset(nil)
@ -331,14 +333,15 @@ SQL: select max(c1) as max from pt2;
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |37 |
|0 |SCALAR GROUP BY | |1 |38 |
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|2 | LIMIT | |1 |37 |
|3 | PX COORDINATOR MERGE SORT | |1 |37 |
|4 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|5 | SORT | |1 |37 |
|6 | PX PARTITION ITERATOR | |1 |36 |
|7 | TABLE SCAN |pt2(Reverse)|1 |36 |
|5 | LIMIT | |1 |37 |
|6 | TOP-N SORT | |1 |37 |
|7 | PX PARTITION ITERATOR | |1 |36 |
|8 | TABLE SCAN |pt2(Reverse)|1 |36 |
==============================================================
Outputs & filters:
@ -350,9 +353,10 @@ Outputs & filters:
2 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
3 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC])
4 - output([pt2.c1]), filter(nil), dop=1
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), local merge sort
6 - output([pt2.c1]), filter(nil)
7 - output([pt2.c1]), filter(nil),
5 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
6 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), topn(1), local merge sort
7 - output([pt2.c1]), filter(nil)
8 - output([pt2.c1]), filter(nil),
access([pt2.c1]), partitions(p[0-2]),
limit(1), offset(nil)
@ -361,14 +365,15 @@ SQL: select min(c1) from pt2;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |37 |
|0 |SCALAR GROUP BY | |1 |38 |
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|2 | LIMIT | |1 |37 |
|3 | PX COORDINATOR MERGE SORT | |1 |37 |
|4 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|5 | SORT | |1 |37 |
|6 | PX PARTITION ITERATOR | |1 |36 |
|7 | TABLE SCAN |pt2 |1 |36 |
|5 | LIMIT | |1 |37 |
|6 | TOP-N SORT | |1 |37 |
|7 | PX PARTITION ITERATOR | |1 |36 |
|8 | TABLE SCAN |pt2 |1 |36 |
==========================================================
Outputs & filters:
@ -380,9 +385,10 @@ Outputs & filters:
2 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
3 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC])
4 - output([pt2.c1]), filter(nil), dop=1
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), local merge sort
6 - output([pt2.c1]), filter(nil)
7 - output([pt2.c1]), filter(nil),
5 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
6 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), topn(1), local merge sort
7 - output([pt2.c1]), filter(nil)
8 - output([pt2.c1]), filter(nil),
access([pt2.c1]), partitions(p[0-2]),
limit(1), offset(nil)
@ -391,14 +397,15 @@ SQL: select min(c1) as min from pt2;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |37 |
|0 |SCALAR GROUP BY | |1 |38 |
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|2 | LIMIT | |1 |37 |
|3 | PX COORDINATOR MERGE SORT | |1 |37 |
|4 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|5 | SORT | |1 |37 |
|6 | PX PARTITION ITERATOR | |1 |36 |
|7 | TABLE SCAN |pt2 |1 |36 |
|5 | LIMIT | |1 |37 |
|6 | TOP-N SORT | |1 |37 |
|7 | PX PARTITION ITERATOR | |1 |36 |
|8 | TABLE SCAN |pt2 |1 |36 |
==========================================================
Outputs & filters:
@ -410,9 +417,10 @@ Outputs & filters:
2 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
3 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC])
4 - output([pt2.c1]), filter(nil), dop=1
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), local merge sort
6 - output([pt2.c1]), filter(nil)
7 - output([pt2.c1]), filter(nil),
5 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
6 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), topn(1), local merge sort
7 - output([pt2.c1]), filter(nil)
8 - output([pt2.c1]), filter(nil),
access([pt2.c1]), partitions(p[0-2]),
limit(1), offset(nil)
@ -421,14 +429,15 @@ SQL: select * from (select max(c1) from pt2) as tmp_table;
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |37 |
|0 |SCALAR GROUP BY | |1 |38 |
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|2 | LIMIT | |1 |37 |
|3 | PX COORDINATOR MERGE SORT | |1 |37 |
|4 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|5 | SORT | |1 |37 |
|6 | PX PARTITION ITERATOR | |1 |36 |
|7 | TABLE SCAN |pt2(Reverse)|1 |36 |
|5 | LIMIT | |1 |37 |
|6 | TOP-N SORT | |1 |37 |
|7 | PX PARTITION ITERATOR | |1 |36 |
|8 | TABLE SCAN |pt2(Reverse)|1 |36 |
==============================================================
Outputs & filters:
@ -440,9 +449,10 @@ Outputs & filters:
2 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
3 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC])
4 - output([pt2.c1]), filter(nil), dop=1
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), local merge sort
6 - output([pt2.c1]), filter(nil)
7 - output([pt2.c1]), filter(nil),
5 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
6 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), topn(1), local merge sort
7 - output([pt2.c1]), filter(nil)
8 - output([pt2.c1]), filter(nil),
access([pt2.c1]), partitions(p[0-2]),
limit(1), offset(nil)
@ -453,15 +463,16 @@ SQL: select * from t2 where t2.c1 > (select max(c1) from pt2);
----------------------------------------------------------------
|0 |NESTED-LOOP JOIN | |34 |102 |
|1 | SUBPLAN SCAN |VIEW1 |1 |38 |
|2 | SCALAR GROUP BY | |1 |37 |
|2 | SCALAR GROUP BY | |1 |38 |
|3 | SUBPLAN SCAN |VIEW2 |1 |37 |
|4 | LIMIT | |1 |37 |
|5 | PX COORDINATOR MERGE SORT | |1 |37 |
|6 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|7 | SORT | |1 |37 |
|8 | PX PARTITION ITERATOR | |1 |36 |
|9 | TABLE SCAN |pt2(Reverse)|1 |36 |
|10| TABLE SCAN |t2 |34 |43 |
|7 | LIMIT | |1 |37 |
|8 | TOP-N SORT | |1 |37 |
|9 | PX PARTITION ITERATOR | |1 |36 |
|10| TABLE SCAN |pt2(Reverse)|1 |36 |
|11| TABLE SCAN |t2 |34 |43 |
================================================================
Outputs & filters:
@ -477,12 +488,13 @@ Outputs & filters:
4 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC])
6 - output([pt2.c1]), filter(nil), dop=1
7 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), local merge sort
8 - output([pt2.c1]), filter(nil)
9 - output([pt2.c1]), filter(nil),
7 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
8 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, DESC]), topn(1), local merge sort
9 - output([pt2.c1]), filter(nil)
10 - output([pt2.c1]), filter(nil),
access([pt2.c1]), partitions(p[0-2]),
limit(1), offset(nil)
10 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
11 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p0)
*************** Case 20 ***************
@ -490,14 +502,15 @@ SQL: select * from (select min(c1) as min from pt2) as tmp_table;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |37 |
|0 |SCALAR GROUP BY | |1 |38 |
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|2 | LIMIT | |1 |37 |
|3 | PX COORDINATOR MERGE SORT | |1 |37 |
|4 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|5 | SORT | |1 |37 |
|6 | PX PARTITION ITERATOR | |1 |36 |
|7 | TABLE SCAN |pt2 |1 |36 |
|5 | LIMIT | |1 |37 |
|6 | TOP-N SORT | |1 |37 |
|7 | PX PARTITION ITERATOR | |1 |36 |
|8 | TABLE SCAN |pt2 |1 |36 |
==========================================================
Outputs & filters:
@ -509,9 +522,10 @@ Outputs & filters:
2 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
3 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC])
4 - output([pt2.c1]), filter(nil), dop=1
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), local merge sort
6 - output([pt2.c1]), filter(nil)
7 - output([pt2.c1]), filter(nil),
5 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
6 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), topn(1), local merge sort
7 - output([pt2.c1]), filter(nil)
8 - output([pt2.c1]), filter(nil),
access([pt2.c1]), partitions(p[0-2]),
limit(1), offset(nil)
@ -522,15 +536,16 @@ SQL: select * from t2 where t2.c1 > (select min(c1) as min from pt2);
------------------------------------------------------------
|0 |NESTED-LOOP JOIN | |34 |102 |
|1 | SUBPLAN SCAN |VIEW1 |1 |38 |
|2 | SCALAR GROUP BY | |1 |37 |
|2 | SCALAR GROUP BY | |1 |38 |
|3 | SUBPLAN SCAN |VIEW2 |1 |37 |
|4 | LIMIT | |1 |37 |
|5 | PX COORDINATOR MERGE SORT | |1 |37 |
|6 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|7 | SORT | |1 |37 |
|8 | PX PARTITION ITERATOR | |1 |36 |
|9 | TABLE SCAN |pt2 |1 |36 |
|10| TABLE SCAN |t2 |34 |43 |
|7 | LIMIT | |1 |37 |
|8 | TOP-N SORT | |1 |37 |
|9 | PX PARTITION ITERATOR | |1 |36 |
|10| TABLE SCAN |pt2 |1 |36 |
|11| TABLE SCAN |t2 |34 |43 |
============================================================
Outputs & filters:
@ -546,12 +561,13 @@ Outputs & filters:
4 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
5 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC])
6 - output([pt2.c1]), filter(nil), dop=1
7 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), local merge sort
8 - output([pt2.c1]), filter(nil)
9 - output([pt2.c1]), filter(nil),
7 - output([pt2.c1]), filter(nil), limit(1), offset(nil)
8 - output([pt2.c1]), filter(nil), sort_keys([pt2.c1, ASC]), topn(1), local merge sort
9 - output([pt2.c1]), filter(nil)
10 - output([pt2.c1]), filter(nil),
access([pt2.c1]), partitions(p[0-2]),
limit(1), offset(nil)
10 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
11 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p0)
*************** Case 22 ***************