Files
oceanbase/unittest/sql/optimizer/test_optimizer_select.result
2022-04-01 16:52:17 +08:00

27850 lines
1.2 MiB

*************** Case 1 ***************
SQL: select * from t1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 1(end) **************
*************** Case 2 ***************
SQL: select c1 from t1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 2(end) **************
*************** Case 3 ***************
SQL: select c2 from t1 order by c2;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |1122|
|1 | EXCHANGE OUT DISTR |:EX10000 |500 |1074|
|2 | SORT | |500 |1074|
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
1 - output([t1.c2]), filter(nil), dop=1
2 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
3 - output([t1.c2]), filter(nil),
force partition granule, asc.
4 - 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
*************** Case 3(end) **************
*************** Case 4 ***************
SQL: select c1, c2 from t1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 4(end) **************
*************** Case 5 ***************
SQL: select c1 + c2 from t1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1 + t1.c2]), filter(nil)
1 - output([t1.c1 + t1.c2]), filter(nil), dop=1
2 - output([t1.c1 + t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1 + t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 5(end) **************
*************** Case 6 ***************
SQL: select c1 from t1 limit 100;
======================================================
|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), 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,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 6(end) **************
*************** Case 7 ***************
SQL: select * from t1 limit 100;
======================================================
|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), 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,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 7(end) **************
*************** Case 8 ***************
SQL: select * from t1 order by c1,c2 limit 100;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|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:
-------------------------------------
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), 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,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 8(end) **************
*************** Case 9 ***************
SQL: select c1 from t1 order by c1 limit 100;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|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:
-------------------------------------
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), 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,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 9(end) **************
*************** Case 10 ***************
SQL: select c1 from t1 order by c2 limit 100;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|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:
-------------------------------------
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), 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,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 10(end) **************
*************** Case 11 ***************
SQL: select c1 from t1 where c1 > 0 order by c2 limit 100;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |LIMIT | |100 |271 |
|1 | PX COORDINATOR MERGE SORT | |100 |257 |
|2 | EXCHANGE OUT DISTR |:EX10000 |100 |248 |
|3 | LIMIT | |100 |248 |
|4 | TOP-N SORT | |100 |234 |
|5 | PX PARTITION ITERATOR | |100 |107 |
|6 | TABLE SCAN |t1(idx_t1_c2)|100 |107 |
=============================================================
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), 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([t1.c1 > ?]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
limit(100), offset(nil),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 11(end) **************
*************** Case 12 ***************
SQL: select c1 from t1 where c1 > 0 and c2 < 0 order by c2 limit 100;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |LIMIT | |10 |439 |
|1 | PX COORDINATOR MERGE SORT | |10 |437 |
|2 | EXCHANGE OUT DISTR |:EX10000 |10 |437 |
|3 | LIMIT | |10 |437 |
|4 | TOP-N SORT | |10 |435 |
|5 | PX PARTITION ITERATOR | |10 |426 |
|6 | TABLE SCAN |t1(idx_t1_c2)|10 |426 |
=============================================================
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), 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([t1.c1 > ?]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
limit(100), offset(nil),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c2], [t1.c1]), range(NULL,MAX ; 0,MIN),
range_cond([t1.c2 < ?])
*************** Case 12(end) **************
*************** Case 13 ***************
SQL: select c1 from t1 group by c1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 13(end) **************
*************** Case 14 ***************
SQL: select c2, sum(c1) from t1 group by c2;
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |100 |635 |
|1 | EXCHANGE OUT DISTR |:EX10001 |100 |626 |
|2 | MERGE GROUP BY | |100 |626 |
|3 | EXCHANGE IN MERGE SORT DISTR| |100 |489 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |479 |
|5 | PX PARTITION ITERATOR | |100 |479 |
|6 | MERGE GROUP BY | |100 |479 |
|7 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
=================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2], [T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil)
1 - output([t1.c2], [T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil), dop=1
2 - output([t1.c2], [T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))])
3 - output([t1.c2], [T_FUN_SUM(t1.c1)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
4 - (#keys=1, [t1.c2]), output([t1.c2], [T_FUN_SUM(t1.c1)]), filter(nil), dop=1
5 - output([t1.c2], [T_FUN_SUM(t1.c1)]), filter(nil),
force partition granule, asc.
6 - output([t1.c2], [T_FUN_SUM(t1.c1)]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(t1.c1)])
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 14(end) **************
*************** Case 15 ***************
SQL: select c2, avg(c1) from t1 group by c2;
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |100 |688 |
|1 | EXCHANGE OUT DISTR |:EX10001 |100 |679 |
|2 | MERGE GROUP BY | |100 |679 |
|3 | EXCHANGE IN MERGE SORT DISTR| |100 |515 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |506 |
|5 | PX PARTITION ITERATOR | |100 |506 |
|6 | MERGE GROUP BY | |100 |506 |
|7 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
=================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2], [T_FUN_SUM(T_FUN_SUM(t1.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil)
1 - output([t1.c2], [T_FUN_SUM(T_FUN_SUM(t1.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil), dop=1
2 - output([t1.c2], [T_FUN_SUM(T_FUN_SUM(t1.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))])
3 - output([t1.c2], [T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
4 - (#keys=1, [t1.c2]), output([t1.c2], [T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
5 - output([t1.c2], [T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)]), filter(nil),
force partition granule, asc.
6 - output([t1.c2], [T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)])
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 15(end) **************
*************** Case 16 ***************
SQL: select c1, c1 + c2 from t1 where c1 > 0 limit 100;
======================================================
|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), 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,
range_key([t1.c1]), range(0 ; MAX),
range_cond([t1.c1 > ?])
*************** Case 16(end) **************
*************** Case 17 ***************
SQL: select c1 from t1 where c1 > 0;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(0 ; MAX),
range_cond([t1.c1 > ?])
*************** Case 17(end) **************
*************** Case 18 ***************
SQL: select c2 from t1 group by c2 order by c2 limit 100;
===================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------------
|0 |LIMIT | |100 |610 |
|1 | PX COORDINATOR MERGE SORT | |100 |596 |
|2 | EXCHANGE OUT DISTR |:EX10001 |100 |587 |
|3 | LIMIT | |100 |587 |
|4 | MERGE GROUP BY | |100 |573 |
|5 | EXCHANGE IN MERGE SORT DISTR| |100 |462 |
|6 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |453 |
|7 | PX PARTITION ITERATOR | |100 |453 |
|8 | MERGE GROUP BY | |100 |453 |
|9 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
===================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2]), filter(nil), limit(100), offset(nil)
1 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
2 - output([t1.c2]), filter(nil), dop=1
3 - output([t1.c2]), filter(nil), limit(100), offset(nil)
4 - output([t1.c2]), filter(nil),
group([t1.c2]), agg_func(nil)
5 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
6 - (#keys=1, [t1.c2]), output([t1.c2]), filter(nil), dop=1
7 - output([t1.c2]), filter(nil),
force partition granule, asc.
8 - output([t1.c2]), filter(nil),
group([t1.c2]), agg_func(nil)
9 - 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
*************** Case 18(end) **************
*************** Case 19 ***************
SQL: select sum(c1) from t1 group by c2 order by c2 limit 100;
===================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------------
|0 |LIMIT | |100 |663 |
|1 | PX COORDINATOR MERGE SORT | |100 |649 |
|2 | EXCHANGE OUT DISTR |:EX10001 |100 |640 |
|3 | LIMIT | |100 |640 |
|4 | MERGE GROUP BY | |100 |626 |
|5 | EXCHANGE IN MERGE SORT DISTR| |100 |489 |
|6 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |479 |
|7 | PX PARTITION ITERATOR | |100 |479 |
|8 | MERGE GROUP BY | |100 |479 |
|9 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
===================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil), limit(100), offset(nil)
1 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
2 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2]), filter(nil), dop=1
3 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2]), filter(nil), limit(100), offset(nil)
4 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))])
5 - output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
6 - (#keys=1, [t1.c2]), output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil), dop=1
7 - output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil),
force partition granule, asc.
8 - output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(t1.c1)])
9 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 19(end) **************
*************** Case 20 ***************
SQL: select sum(c1) from t1 where c1 > 0 group by c2 order by c2 limit 100;
===================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------------
|0 |LIMIT | |100 |747 |
|1 | PX COORDINATOR MERGE SORT | |100 |733 |
|2 | EXCHANGE OUT DISTR |:EX10001 |100 |724 |
|3 | LIMIT | |100 |724 |
|4 | MERGE GROUP BY | |100 |710 |
|5 | EXCHANGE IN MERGE SORT DISTR| |100 |572 |
|6 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |563 |
|7 | PX PARTITION ITERATOR | |100 |563 |
|8 | MERGE GROUP BY | |100 |563 |
|9 | TABLE SCAN |t1(idx_t1_c2)|500 |426 |
===================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil), limit(100), offset(nil)
1 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
2 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2]), filter(nil), dop=1
3 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2]), filter(nil), limit(100), offset(nil)
4 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))])
5 - output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
6 - (#keys=1, [t1.c2]), output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil), dop=1
7 - output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil),
force partition granule, asc.
8 - output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(t1.c1)])
9 - output([t1.c1], [t1.c2]), filter([t1.c1 > ?]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 20(end) **************
*************** Case 21 ***************
SQL: select count(c1) from t1 group by c2 order by c2 limit 100;
===================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------------
|0 |LIMIT | |100 |663 |
|1 | PX COORDINATOR MERGE SORT | |100 |649 |
|2 | EXCHANGE OUT DISTR |:EX10001 |100 |640 |
|3 | LIMIT | |100 |640 |
|4 | MERGE GROUP BY | |100 |626 |
|5 | EXCHANGE IN MERGE SORT DISTR| |100 |489 |
|6 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |479 |
|7 | PX PARTITION ITERATOR | |100 |479 |
|8 | MERGE GROUP BY | |100 |479 |
|9 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
===================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil), limit(100), offset(nil)
1 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
2 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))], [t1.c2]), filter(nil), dop=1
3 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))], [t1.c2]), filter(nil), limit(100), offset(nil)
4 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))])
5 - output([T_FUN_COUNT(t1.c1)], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
6 - (#keys=1, [t1.c2]), output([T_FUN_COUNT(t1.c1)], [t1.c2]), filter(nil), dop=1
7 - output([T_FUN_COUNT(t1.c1)], [t1.c2]), filter(nil),
force partition granule, asc.
8 - output([T_FUN_COUNT(t1.c1)], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_COUNT(t1.c1)])
9 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 21(end) **************
*************** Case 22 ***************
SQL: select count(distinct c1) from t1 group by c2 order by c2 limit 100;
===================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------------
|0 |LIMIT | |100 |663 |
|1 | PX COORDINATOR MERGE SORT | |100 |649 |
|2 | EXCHANGE OUT DISTR |:EX10001 |100 |640 |
|3 | LIMIT | |100 |640 |
|4 | MERGE GROUP BY | |100 |626 |
|5 | EXCHANGE IN MERGE SORT DISTR| |100 |489 |
|6 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |479 |
|7 | PX PARTITION ITERATOR | |100 |479 |
|8 | MERGE GROUP BY | |100 |479 |
|9 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
===================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil), limit(100), offset(nil)
1 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
2 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))], [t1.c2]), filter(nil), dop=1
3 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))], [t1.c2]), filter(nil), limit(100), offset(nil)
4 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))])
5 - output([T_FUN_COUNT(t1.c1)], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
6 - (#keys=1, [t1.c2]), output([T_FUN_COUNT(t1.c1)], [t1.c2]), filter(nil), dop=1
7 - output([T_FUN_COUNT(t1.c1)], [t1.c2]), filter(nil),
force partition granule, asc.
8 - output([T_FUN_COUNT(t1.c1)], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_COUNT(t1.c1)])
9 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 22(end) **************
*************** Case 23 ***************
SQL: select count(*) from t1 group by c2 order by c2 limit 100;
===================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------------
|0 |LIMIT | |100 |663 |
|1 | PX COORDINATOR MERGE SORT | |100 |649 |
|2 | EXCHANGE OUT DISTR |:EX10001 |100 |640 |
|3 | LIMIT | |100 |640 |
|4 | MERGE GROUP BY | |100 |626 |
|5 | EXCHANGE IN MERGE SORT DISTR| |100 |489 |
|6 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |479 |
|7 | PX PARTITION ITERATOR | |100 |479 |
|8 | MERGE GROUP BY | |100 |479 |
|9 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
===================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil), limit(100), offset(nil)
1 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
2 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [t1.c2]), filter(nil), dop=1
3 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [t1.c2]), filter(nil), limit(100), offset(nil)
4 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
5 - output([T_FUN_COUNT(*)], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
6 - (#keys=1, [t1.c2]), output([T_FUN_COUNT(*)], [t1.c2]), filter(nil), dop=1
7 - output([T_FUN_COUNT(*)], [t1.c2]), filter(nil),
force partition granule, asc.
8 - output([T_FUN_COUNT(*)], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_COUNT(*)])
9 - 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
*************** Case 23(end) **************
*************** Case 24 ***************
SQL: select sum(c1), count(*) from t1 group by c2 order by c2 limit 100;
===================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------------
|0 |LIMIT | |100 |716 |
|1 | PX COORDINATOR MERGE SORT | |100 |702 |
|2 | EXCHANGE OUT DISTR |:EX10001 |100 |693 |
|3 | LIMIT | |100 |693 |
|4 | MERGE GROUP BY | |100 |679 |
|5 | EXCHANGE IN MERGE SORT DISTR| |100 |515 |
|6 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |506 |
|7 | PX PARTITION ITERATOR | |100 |506 |
|8 | MERGE GROUP BY | |100 |506 |
|9 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
===================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil), limit(100), offset(nil)
1 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
2 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [t1.c2]), filter(nil), dop=1
3 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [t1.c2]), filter(nil), limit(100), offset(nil)
4 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
5 - output([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(*)], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
6 - (#keys=1, [t1.c2]), output([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(*)], [t1.c2]), filter(nil), dop=1
7 - output([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(*)], [t1.c2]), filter(nil),
force partition granule, asc.
8 - output([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(*)], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(*)])
9 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 24(end) **************
*************** Case 25 ***************
SQL: select c2, count(c1) from t1 group by c2;
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |100 |635 |
|1 | EXCHANGE OUT DISTR |:EX10001 |100 |626 |
|2 | MERGE GROUP BY | |100 |626 |
|3 | EXCHANGE IN MERGE SORT DISTR| |100 |489 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |479 |
|5 | PX PARTITION ITERATOR | |100 |479 |
|6 | MERGE GROUP BY | |100 |479 |
|7 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
=================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil)
1 - output([t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil), dop=1
2 - output([t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil),
group([t1.c2]), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))])
3 - output([t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
4 - (#keys=1, [t1.c2]), output([t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
5 - output([t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil),
force partition granule, asc.
6 - output([t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil),
group([t1.c2]), agg_func([T_FUN_COUNT(t1.c1)])
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 25(end) **************
*************** Case 26 ***************
SQL: select t1.c1 from t1, t2 limit 100;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |LIMIT | |100 |381 |
|1 | NESTED-LOOP JOIN CARTESIAN| |100 |367 |
|2 | PX COORDINATOR | |1 |36 |
|3 | EXCHANGE OUT DISTR |:EX10000|1 |36 |
|4 | PX PARTITION ITERATOR | |1 |36 |
|5 | TABLE SCAN |t1 |1 |36 |
|6 | MATERIAL | |300 |261 |
|7 | PX COORDINATOR | |300 |206 |
|8 | EXCHANGE OUT DISTR |:EX20000|300 |192 |
|9 | PX PARTITION ITERATOR | |300 |192 |
|10| TABLE SCAN |t2 |300 |192 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
1 - output([t1.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t1.c1]), filter(nil)
3 - output([t1.c1]), filter(nil), dop=1
4 - output([t1.c1]), filter(nil),
force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([1]), filter(nil)
7 - output([1]), filter(nil)
8 - output([1]), filter(nil), dop=1
9 - output([1]), filter(nil),
force partition granule, asc.
10 - output([1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 26(end) **************
*************** Case 27 ***************
SQL: select t1.c1 from t1, t2 where t1.c1=t2.c1 limit 100;
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------
|0 |LIMIT | |100 |841 |
|1 | PX COORDINATOR | |100 |827 |
|2 | EXCHANGE OUT DISTR |:EX10001|100 |817 |
|3 | LIMIT | |100 |817 |
|4 | MERGE JOIN | |100 |804 |
|5 | SORT | |289 |537 |
|6 | PX PARTITION ITERATOR | |289 |190 |
|7 | TABLE SCAN |t1 |289 |190 |
|8 | EXCHANGE IN MERGE SORT DISTR| |174 |144 |
|9 | EXCHANGE OUT DISTR (PKEY) |:EX10000|174 |135 |
|10| PX PARTITION ITERATOR | |174 |135 |
|11| TABLE SCAN |t2 |174 |135 |
==============================================================
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), limit(100), offset(nil)
4 - output([t1.c1]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
5 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
6 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
7 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
8 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
9 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
10 - output([t2.c1]), filter(nil),
force partition granule, asc.
11 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 27(end) **************
*************** Case 28 ***************
SQL: select t1.c1 from t1, t2, t3 where t1.c1=t2.c1 and t1.c2>t2.c2 and t2.c3=t3.c3 and t3.c1>10;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |HASH JOIN | |184 |2290|
|1 | PX COORDINATOR | |100 |1497|
|2 | EXCHANGE OUT DISTR |:EX10001|100 |1459|
|3 | MERGE JOIN | |100 |1459|
|4 | EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|5 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |342 |
|6 | PX PARTITION ITERATOR | |500 |342 |
|7 | TABLE SCAN |t1 |500 |342 |
|8 | SORT | |300 |859 |
|9 | PX PARTITION ITERATOR | |300 |205 |
|10| TABLE SCAN |t2 |300 |205 |
|11| PX COORDINATOR | |200 |191 |
|12| EXCHANGE OUT DISTR |:EX20000|200 |144 |
|13| PX PARTITION ITERATOR | |200 |144 |
|14| TABLE SCAN |t3 |200 |144 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil),
equal_conds([t2.c3 = t3.c3]), other_conds(nil)
1 - output([t1.c1], [t2.c3]), filter(nil)
2 - output([t1.c1], [t2.c3]), filter(nil), dop=1
3 - output([t1.c1], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds([t1.c2 > t2.c2])
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
5 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
6 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
8 - output([t2.c3], [t2.c2], [t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
10 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
11 - output([t3.c3]), filter(nil)
12 - output([t3.c3]), filter(nil), dop=1
13 - output([t3.c3]), filter(nil),
force partition granule, asc.
14 - output([t3.c3]), filter(nil),
access([t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(10 ; MAX),
range_cond([t3.c1 > ?])
*************** Case 28(end) **************
*************** Case 29 ***************
SQL: select opt.t3.c2 from opt.t1,t2,t3 where t1.c1+t2.c1=t3.c1;
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
--------------------------------------------------------------
|0 |PX COORDINATOR | |150000 |304515|
|1 | EXCHANGE OUT DISTR |:EX10003|150000 |276117|
|2 | HASH JOIN | |150000 |276117|
|3 | PX PARTITION ITERATOR | |200 |144 |
|4 | TABLE SCAN |t3 |200 |144 |
|5 | EXCHANGE IN DISTR | |150000 |121052|
|6 | EXCHANGE OUT DISTR (PKEY) |:EX10002|150000 |106853|
|7 | NESTED-LOOP JOIN CARTESIAN| |150000 |106853|
|8 | MATERIAL | |500 |446 |
|9 | EXCHANGE IN DISTR | |500 |354 |
|10| EXCHANGE OUT DISTR |:EX10000|500 |331 |
|11| PX PARTITION ITERATOR | |500 |331 |
|12| TABLE SCAN |t1 |500 |331 |
|13| MATERIAL | |300 |261 |
|14| EXCHANGE IN DISTR | |300 |206 |
|15| EXCHANGE OUT DISTR |:EX10001|300 |192 |
|16| PX PARTITION ITERATOR | |300 |192 |
|17| TABLE SCAN |t2 |300 |192 |
==============================================================
Outputs & filters:
-------------------------------------
0 - output([t3.c2]), filter(nil)
1 - output([t3.c2]), filter(nil), dop=1
2 - output([t3.c2]), filter(nil),
equal_conds([t1.c1 + t2.c1 = t3.c1]), other_conds(nil)
3 - output([t3.c1], [t3.c2]), filter(nil),
affinitize, force partition granule, asc.
4 - output([t3.c1], [t3.c2]), filter(nil),
access([t3.c1], [t3.c2]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
5 - output([t1.c1 + t2.c1]), filter(nil)
6 - (#keys=1, [t1.c1 + t2.c1]), output([t1.c1 + t2.c1]), filter(nil), is_single, dop=1
7 - output([t1.c1 + t2.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
8 - output([t1.c1]), filter(nil)
9 - output([t1.c1]), filter(nil)
10 - output([t1.c1]), filter(nil), dop=1
11 - output([t1.c1]), filter(nil),
force partition granule, asc.
12 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
13 - output([t2.c1]), filter(nil)
14 - output([t2.c1]), filter(nil)
15 - output([t2.c1]), filter(nil), dop=1
16 - output([t2.c1]), filter(nil),
force partition granule, asc.
17 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 29(end) **************
*************** Case 30 ***************
SQL: select t1.c1 from t1,t2,t3 where t1.c1=t3.c1 and t1.c2=t2.c2 and t2.c3=t3.c3;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |HASH JOIN | |6 |2262|
|1 | PX COORDINATOR | |200 |1202|
|2 | EXCHANGE OUT DISTR |:EX10001|200 |1135|
|3 | MERGE JOIN | |200 |1135|
|4 | EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|5 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |342 |
|6 | PX PARTITION ITERATOR | |500 |342 |
|7 | TABLE SCAN |t1 |500 |342 |
|8 | SORT | |200 |532 |
|9 | PX PARTITION ITERATOR | |200 |144 |
|10| TABLE SCAN |t3 |200 |144 |
|11| PX COORDINATOR | |300 |290 |
|12| EXCHANGE OUT DISTR |:EX20000|300 |205 |
|13| PX PARTITION ITERATOR | |300 |205 |
|14| TABLE SCAN |t2 |300 |205 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil),
equal_conds([t1.c2 = t2.c2], [t2.c3 = t3.c3]), other_conds(nil)
1 - output([t1.c1], [t1.c2], [t3.c3]), filter(nil)
2 - output([t1.c1], [t1.c2], [t3.c3]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2], [t3.c3]), filter(nil),
equal_conds([t1.c1 = t3.c1]), other_conds(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
5 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
6 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
8 - output([t3.c3], [t3.c1]), filter(nil), sort_keys([t3.c1, ASC]), local merge sort
9 - output([t3.c1], [t3.c3]), filter(nil),
affinitize, force partition granule, asc.
10 - output([t3.c1], [t3.c3]), filter(nil),
access([t3.c1], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
11 - output([t2.c2], [t2.c3]), filter(nil)
12 - output([t2.c2], [t2.c3]), filter(nil), dop=1
13 - output([t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
14 - output([t2.c2], [t2.c3]), filter(nil),
access([t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 30(end) **************
*************** Case 31 ***************
SQL: select t1.c1 from t1,t2,t3 where t1.c1=t2.c1 and t1.c1+t2.c1=t3.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |300 |2204|
|1 | EXCHANGE OUT DISTR |:EX10002|300 |2161|
|2 | HASH JOIN | |300 |2161|
|3 | PX PARTITION ITERATOR | |200 |140 |
|4 | TABLE SCAN |t3 |200 |140 |
|5 | EXCHANGE IN DISTR | |300 |1488|
|6 | EXCHANGE OUT DISTR (PKEY) |:EX10001|300 |1460|
|7 | MERGE JOIN | |300 |1460|
|8 | SORT | |500 |966 |
|9 | PX PARTITION ITERATOR | |500 |331 |
|10| TABLE SCAN |t1 |500 |331 |
|11| EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|12| EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |192 |
|13| PX PARTITION ITERATOR | |300 |192 |
|14| TABLE SCAN |t2 |300 |192 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
equal_conds([t1.c1 + t2.c1 = t3.c1]), other_conds(nil)
3 - output([t3.c1]), filter(nil),
affinitize, force partition granule, asc.
4 - output([t3.c1]), filter(nil),
access([t3.c1]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
5 - output([t1.c1], [t1.c1 + t2.c1]), filter(nil)
6 - (#keys=1, [t1.c1 + t2.c1]), output([t1.c1], [t1.c1 + t2.c1]), filter(nil), dop=1
7 - output([t1.c1], [t1.c1 + t2.c1]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
8 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
9 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
10 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
11 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
12 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
13 - output([t2.c1]), filter(nil),
force partition granule, asc.
14 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 31(end) **************
*************** Case 32 ***************
SQL: select t1.c1 from t1,t2,t3, t1 tt where t1.c1=t3.c1 and t1.c2=tt.c2 and t1.c1+t2.c1=tt.c1;
======================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
----------------------------------------------------------------------
|0 |NESTED-LOOP JOIN | |577 |109492|
|1 | MERGE JOIN | |961 |3564 |
|2 | PX COORDINATOR MERGE SORT | |200 |1776 |
|3 | EXCHANGE OUT DISTR |:EX10001 |200 |1748 |
|4 | SORT | |200 |1748 |
|5 | MERGE JOIN | |200 |1438 |
|6 | SORT | |500 |1074 |
|7 | PX PARTITION ITERATOR | |500 |342 |
|8 | TABLE SCAN |t1 |500 |342 |
|9 | EXCHANGE IN MERGE SORT DISTR| |200 |149 |
|10| EXCHANGE OUT DISTR (PKEY) |:EX10000 |200 |140 |
|11| PX PARTITION ITERATOR | |200 |140 |
|12| TABLE SCAN |t3 |200 |140 |
|13| PX COORDINATOR MERGE SORT | |500 |1122 |
|14| EXCHANGE OUT DISTR |:EX20000 |500 |1074 |
|15| SORT | |500 |1074 |
|16| PX PARTITION ITERATOR | |500 |342 |
|17| TABLE SCAN |tt(idx_t1_c2)|500 |342 |
|18| MATERIAL | |300 |261 |
|19| PX COORDINATOR | |300 |206 |
|20| EXCHANGE OUT DISTR |:EX30000 |300 |192 |
|21| PX PARTITION ITERATOR | |300 |192 |
|22| TABLE SCAN |t2 |300 |192 |
======================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil),
conds([t1.c1 + t2.c1 = tt.c1]), nl_params_(nil), batch_join=false
1 - output([t1.c1], [tt.c1]), filter(nil),
equal_conds([t1.c2 = tt.c2]), other_conds(nil)
2 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
3 - output([t1.c1], [t1.c2]), filter(nil), dop=1
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
5 - output([t1.c1], [t1.c2]), filter(nil),
equal_conds([t1.c1 = t3.c1]), other_conds(nil)
6 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
7 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
9 - output([t3.c1]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
10 - (#keys=1, [t3.c1]), output([t3.c1]), filter(nil), dop=1
11 - output([t3.c1]), filter(nil),
force partition granule, asc.
12 - output([t3.c1]), filter(nil),
access([t3.c1]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
13 - output([tt.c1], [tt.c2]), filter(nil), sort_keys([tt.c2, ASC])
14 - output([tt.c1], [tt.c2]), filter(nil), dop=1
15 - output([tt.c1], [tt.c2]), filter(nil), sort_keys([tt.c2, ASC]), local merge sort
16 - output([tt.c1], [tt.c2]), filter(nil),
force partition granule, asc.
17 - output([tt.c1], [tt.c2]), filter(nil),
access([tt.c1], [tt.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([tt.c2], [tt.c1]), range(MIN,MIN ; MAX,MAX)always true
18 - output([t2.c1]), filter(nil)
19 - output([t2.c1]), filter(nil)
20 - output([t2.c1]), filter(nil), dop=1
21 - output([t2.c1]), filter(nil),
force partition granule, asc.
22 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 32(end) **************
*************** Case 33 ***************
SQL: select t1.c1 from t1, (select * from t2) as t where t1.c1=t.c1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1488|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1460|
|2 | MERGE JOIN | |300 |1460|
|3 | SORT | |500 |966 |
|4 | PX PARTITION ITERATOR | |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |192 |
|8 | PX PARTITION ITERATOR | |300 |192 |
|9 | TABLE SCAN |t2 |300 |192 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
7 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
8 - output([t2.c1]), filter(nil),
force partition granule, asc.
9 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 33(end) **************
*************** Case 34 ***************
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 |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:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
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)
6 - output([t.c1]), filter(nil),
access([t.c1])
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.
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
14 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
15 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX),
range_cond([t1.c1 = ?])
*************** Case 34(end) **************
*************** Case 35 ***************
SQL: select c1, c1+c2 from t1 where c1 > 100 order by c2 + c1;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |1122|
|1 | EXCHANGE OUT DISTR |:EX10000|500 |1074|
|2 | SORT | |500 |1074|
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c1 + t1.c2]), filter(nil), sort_keys([t1.c2 + t1.c1, ASC])
1 - output([t1.c1], [t1.c1 + t1.c2], [t1.c2 + t1.c1]), filter(nil), dop=1
2 - output([t1.c1], [t1.c1 + t1.c2], [t1.c2 + t1.c1]), filter(nil), sort_keys([t1.c2 + t1.c1, ASC])
3 - output([t1.c1], [t1.c2], [t1.c2 + t1.c1]), filter(nil),
force partition granule, asc.
4 - output([t1.c1], [t1.c2], [t1.c2 + t1.c1]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(100 ; MAX),
range_cond([t1.c1 > ?])
*************** Case 35(end) **************
*************** Case 36 ***************
SQL: select * from t1,t2 where t1.c1 = t2.c1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1649|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1536|
|2 | MERGE JOIN | |300 |1536|
|3 | EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |342 |
|5 | PX PARTITION ITERATOR | |500 |342 |
|6 | TABLE SCAN |t1 |500 |342 |
|7 | SORT | |300 |859 |
|8 | PX PARTITION ITERATOR | |300 |205 |
|9 | TABLE SCAN |t2 |300 |205 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
4 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 36(end) **************
*************** Case 37 ***************
SQL: select t1.c1, t2.c2, t2.c3 from t1,t2 where t1.c1 = t2.c1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1600|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1501|
|2 | MERGE JOIN | |300 |1501|
|3 | EXCHANGE IN MERGE SORT DISTR| |500 |354 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |331 |
|5 | PX PARTITION ITERATOR | |500 |331 |
|6 | TABLE SCAN |t1 |500 |331 |
|7 | SORT | |300 |859 |
|8 | PX PARTITION ITERATOR | |300 |205 |
|9 | TABLE SCAN |t2 |300 |205 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t1.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t1.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
4 - (#keys=1, [t1.c1]), output([t1.c1]), filter(nil), dop=1
5 - output([t1.c1]), filter(nil),
force partition granule, asc.
6 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t2.c2], [t2.c3], [t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 37(end) **************
*************** Case 38 ***************
SQL: select c2 from t1 order by c1;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |1122|
|1 | EXCHANGE OUT DISTR |:EX10000|500 |1074|
|2 | SORT | |500 |1074|
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2]), filter(nil), sort_keys([t1.c1, ASC])
1 - output([t1.c2], [t1.c1]), filter(nil), dop=1
2 - output([t1.c2], [t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
3 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 38(end) **************
*************** Case 39 ***************
SQL: select t1.c1, t2.c2, t2.c3 from t1,t2 where t1.c1 = t2.c1 order by t1.c2;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |300 |2420|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |2306|
|2 | SORT | |300 |2306|
|3 | MERGE JOIN | |300 |1536|
|4 | EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|5 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |342 |
|6 | PX PARTITION ITERATOR | |500 |342 |
|7 | TABLE SCAN |t1 |500 |342 |
|8 | SORT | |300 |859 |
|9 | PX PARTITION ITERATOR | |300 |205 |
|10| TABLE SCAN |t2 |300 |205 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t1.c2, ASC])
1 - output([t1.c1], [t2.c2], [t2.c3], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t2.c2], [t2.c3], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
3 - output([t1.c1], [t2.c2], [t2.c3], [t1.c2]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
5 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
6 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
8 - output([t2.c2], [t2.c3], [t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
10 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 39(end) **************
*************** Case 40 ***************
SQL: select /*+ INDEX(t1 INVALID_INDEX) */ c1 from t1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 40(end) **************
*************** Case 41 ***************
SQL: select c1 from t1 as t order by c1;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |990 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |966 |
|2 | SORT | |500 |966 |
|3 | PX PARTITION ITERATOR | |500 |331 |
|4 | TABLE SCAN |t |500 |331 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t.c1]), filter(nil), sort_keys([t.c1, ASC])
1 - output([t.c1]), filter(nil), dop=1
2 - output([t.c1]), filter(nil), sort_keys([t.c1, ASC]), local merge sort
3 - output([t.c1]), filter(nil),
force partition granule, asc.
4 - output([t.c1]), filter(nil),
access([t.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
*************** Case 41(end) **************
*************** Case 42 ***************
SQL: select c1,c2 from t19 where c1 = 1 order by c1, c2 desc;
===========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------
|0 |TABLE SCAN|t19(Reverse)|100 |95 |
===========================================
Outputs & filters:
-------------------------------------
0 - output([t19.c1], [t19.c2]), filter(nil),
access([t19.c1], [t19.c2]), partitions(p0),
is_index_back=false,
range_key([t19.c1], [t19.c2], [t19.c3], [t19.c4]), range(1,MIN,MIN,MIN ; 1,MAX,MAX,MAX),
range_cond([t19.c1 = ?])
*************** Case 42(end) **************
*************** Case 43 ***************
SQL: select c1,c2 from t19 where c1 = 1 and c2 = 1 order by c2, c3 desc;
===========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------
|0 |TABLE SCAN|t19(Reverse)|100 |95 |
===========================================
Outputs & filters:
-------------------------------------
0 - output([t19.c1], [t19.c2]), filter(nil),
access([t19.c1], [t19.c2]), partitions(p0),
is_index_back=false,
range_key([t19.c1], [t19.c2], [t19.c3], [t19.c4]), range(1,1,MIN,MIN ; 1,1,MAX,MAX),
range_cond([t19.c1 = ?], [t19.c2 = ?])
*************** Case 43(end) **************
*************** Case 44 ***************
SQL: select c1, c1+c2 from t1 where c1 > 100 limit 1, 10;
======================================================
|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), 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,
range_key([t1.c1]), range(100 ; MAX),
range_cond([t1.c1 > ?])
*************** Case 44(end) **************
*************** Case 45 ***************
SQL: select * from t1 where c1 in (3, 4);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |2 |58 |
|1 | EXCHANGE OUT DISTR |:EX10000|2 |57 |
|2 | PX PARTITION ITERATOR| |2 |57 |
|3 | TABLE GET |t1 |2 |57 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[3-4]),
is_index_back=false,
range_key([t1.c1]), range[3 ; 3], [4 ; 4],
range_cond([t1.c1 IN (?, ?)])
*************** Case 45(end) **************
*************** Case 46 ***************
SQL: select * from t1 where c1 in (3);
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |52 |
|2 | TABLE GET |t1 |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil)
2 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p3),
is_index_back=false,
range_key([t1.c1]), range[3 ; 3],
range_cond([t1.c1 = ?])
*************** Case 46(end) **************
*************** Case 47 ***************
SQL: select * from t2 left join t3 on t2.c1=t3.c1 and t2.c2<t3.c2 where t2.c3>t3.c3;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |23 |1284|
|1 | EXCHANGE OUT DISTR |:EX10001|23 |1271|
|2 | MERGE JOIN | |23 |1271|
|3 | SORT | |300 |859 |
|4 | PX PARTITION ITERATOR | |300 |205 |
|5 | TABLE SCAN |t2 |300 |205 |
|6 | EXCHANGE IN MERGE SORT DISTR| |200 |205 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|200 |149 |
|8 | PX PARTITION ITERATOR | |200 |149 |
|9 | TABLE SCAN |t3 |200 |149 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil)
1 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
2 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t2.c1 = t3.c1]), other_conds([t2.c3 > t3.c3], [t2.c2 < t3.c2])
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
6 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
7 - (#keys=1, [t3.c1]), output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
8 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
force partition granule, asc.
9 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
*************** Case 47(end) **************
*************** Case 48 ***************
SQL: select t1.c1 from t1 left join t2 on t1.c1=t2.c1 where t2.c2>1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |279 |1303|
|1 | EXCHANGE OUT DISTR |:EX10001|279 |1263|
|2 | MERGE JOIN | |279 |1263|
|3 | EXCHANGE IN MERGE SORT DISTR| |500 |354 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |331 |
|5 | PX PARTITION ITERATOR | |500 |331 |
|6 | TABLE SCAN |t1 |500 |331 |
|7 | SORT | |279 |636 |
|8 | PX PARTITION ITERATOR | |279 |248 |
|9 | TABLE SCAN |t2 |279 |248 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
4 - (#keys=1, [t1.c1]), output([t1.c1]), filter(nil), dop=1
5 - output([t1.c1]), filter(nil),
force partition granule, asc.
6 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
8 - output([t2.c1]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t2.c1]), filter([t2.c2 > ?]),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 48(end) **************
*************** Case 49 ***************
SQL: select * from t1 left join t2 on t1.c1=t2.c1 and t1.c1>1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |500 |1768|
|1 | EXCHANGE OUT DISTR |:EX10001|500 |1579|
|2 | MERGE OUTER JOIN | |500 |1579|
|3 | EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |342 |
|5 | PX PARTITION ITERATOR | |500 |342 |
|6 | TABLE SCAN |t1 |500 |342 |
|7 | SORT | |300 |859 |
|8 | PX PARTITION ITERATOR | |300 |205 |
|9 | TABLE SCAN |t2 |300 |205 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds([t1.c1 > ?])
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
4 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(1 ; MAX),
range_cond([t2.c1 > ?])
*************** Case 49(end) **************
*************** Case 50 ***************
SQL: select * from t1 left join t2 on t1.c1>1 where t2.c1 is null;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
--------------------------------------------------------
|0 |NESTED-LOOP OUTER JOIN | |25 |136439|
|1 | PX COORDINATOR | |500 |389 |
|2 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
|5 | MATERIAL | |300 |621 |
|6 | PX COORDINATOR | |300 |290 |
|7 | EXCHANGE OUT DISTR |:EX20000|300 |205 |
|8 | PX PARTITION ITERATOR| |300 |205 |
|9 | TABLE SCAN |t2 |300 |205 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter([(T_OP_IS, t2.c1, NULL, 0)]),
conds([t1.c1 > ?]), nl_params_(nil), batch_join=false
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.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 50(end) **************
*************** Case 51 ***************
SQL: select * from t1 left join t2 on t1.c1>1 where t2.c1 is null and t2.c2>1;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
---------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |150000 |108575|
|1 | PX COORDINATOR | |300 |290 |
|2 | EXCHANGE OUT DISTR |:EX10000|300 |205 |
|3 | PX PARTITION ITERATOR | |300 |205 |
|4 | TABLE SCAN |t2 |300 |205 |
|5 | MATERIAL | |500 |573 |
|6 | PX COORDINATOR | |500 |389 |
|7 | EXCHANGE OUT DISTR |:EX20000|500 |342 |
|8 | PX PARTITION ITERATOR | |500 |342 |
|9 | TABLE SCAN |t1 |500 |342 |
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), startup_filter([0]),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
5 - output([t1.c1], [t1.c2]), filter(nil)
6 - output([t1.c1], [t1.c2]), filter(nil)
7 - output([t1.c1], [t1.c2]), filter(nil), dop=1
8 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
9 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 51(end) **************
*************** Case 52 ***************
SQL: select /*+no_use_px*/ t1.c1 from t1 left join t2 t on t1.c1=t.c1,t2 left join t3 on t2.c1=t3.c1 where t1.c1=t3.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |200 |2119|
|1 | EXCHANGE OUT DISTR |:EX10002|200 |2090|
|2 | MERGE JOIN | |200 |2090|
|3 | EXCHANGE IN MERGE SORT DISTR | |200 |1349|
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|200 |1330|
|5 | MERGE JOIN | |200 |1330|
|6 | SORT | |500 |966 |
|7 | PX PARTITION ITERATOR | |500 |331 |
|8 | TABLE SCAN |t1 |500 |331 |
|9 | EXCHANGE IN MERGE SORT DISTR| |200 |149 |
|10| EXCHANGE OUT DISTR (PKEY) |:EX10000|200 |140 |
|11| PX PARTITION ITERATOR | |200 |140 |
|12| TABLE SCAN |t3 |200 |140 |
|13| SORT | |300 |554 |
|14| PX PARTITION ITERATOR | |300 |192 |
|15| TABLE SCAN |t2 |300 |192 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
equal_conds([t2.c1 = t3.c1]), other_conds(nil)
3 - output([t1.c1], [t3.c1]), filter(nil), sort_keys([t3.c1, ASC])
4 - (#keys=1, [t3.c1]), output([t1.c1], [t3.c1]), filter(nil), dop=1
5 - output([t1.c1], [t3.c1]), filter(nil),
equal_conds([t1.c1 = t3.c1]), other_conds(nil)
6 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
7 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
9 - output([t3.c1]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
10 - (#keys=1, [t3.c1]), output([t3.c1]), filter(nil), dop=1
11 - output([t3.c1]), filter(nil),
force partition granule, asc.
12 - output([t3.c1]), filter(nil),
access([t3.c1]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
13 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
14 - output([t2.c1]), filter(nil),
affinitize, force partition granule, asc.
15 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 52(end) **************
*************** Case 53 ***************
SQL: select t1.c1 from t1 left join t2 t on t1.c1=t.c1,t2,t3, t1 tt where t1.c1=t3.c1 and t1.c2=tt.c2 and t1.c1+t2.c1=tt.c1;
======================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
----------------------------------------------------------------------
|0 |NESTED-LOOP JOIN | |577 |109492|
|1 | MERGE JOIN | |961 |3564 |
|2 | PX COORDINATOR MERGE SORT | |200 |1776 |
|3 | EXCHANGE OUT DISTR |:EX10001 |200 |1748 |
|4 | SORT | |200 |1748 |
|5 | MERGE JOIN | |200 |1438 |
|6 | SORT | |500 |1074 |
|7 | PX PARTITION ITERATOR | |500 |342 |
|8 | TABLE SCAN |t1 |500 |342 |
|9 | EXCHANGE IN MERGE SORT DISTR| |200 |149 |
|10| EXCHANGE OUT DISTR (PKEY) |:EX10000 |200 |140 |
|11| PX PARTITION ITERATOR | |200 |140 |
|12| TABLE SCAN |t3 |200 |140 |
|13| PX COORDINATOR MERGE SORT | |500 |1122 |
|14| EXCHANGE OUT DISTR |:EX20000 |500 |1074 |
|15| SORT | |500 |1074 |
|16| PX PARTITION ITERATOR | |500 |342 |
|17| TABLE SCAN |tt(idx_t1_c2)|500 |342 |
|18| MATERIAL | |300 |261 |
|19| PX COORDINATOR | |300 |206 |
|20| EXCHANGE OUT DISTR |:EX30000 |300 |192 |
|21| PX PARTITION ITERATOR | |300 |192 |
|22| TABLE SCAN |t2 |300 |192 |
======================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil),
conds([t1.c1 + t2.c1 = tt.c1]), nl_params_(nil), batch_join=false
1 - output([t1.c1], [tt.c1]), filter(nil),
equal_conds([t1.c2 = tt.c2]), other_conds(nil)
2 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
3 - output([t1.c1], [t1.c2]), filter(nil), dop=1
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
5 - output([t1.c1], [t1.c2]), filter(nil),
equal_conds([t1.c1 = t3.c1]), other_conds(nil)
6 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
7 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
9 - output([t3.c1]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
10 - (#keys=1, [t3.c1]), output([t3.c1]), filter(nil), dop=1
11 - output([t3.c1]), filter(nil),
force partition granule, asc.
12 - output([t3.c1]), filter(nil),
access([t3.c1]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
13 - output([tt.c1], [tt.c2]), filter(nil), sort_keys([tt.c2, ASC])
14 - output([tt.c1], [tt.c2]), filter(nil), dop=1
15 - output([tt.c1], [tt.c2]), filter(nil), sort_keys([tt.c2, ASC]), local merge sort
16 - output([tt.c1], [tt.c2]), filter(nil),
force partition granule, asc.
17 - output([tt.c1], [tt.c2]), filter(nil),
access([tt.c1], [tt.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([tt.c2], [tt.c1]), range(MIN,MIN ; MAX,MAX)always true
18 - output([t2.c1]), filter(nil)
19 - output([t2.c1]), filter(nil)
20 - output([t2.c1]), filter(nil), dop=1
21 - output([t2.c1]), filter(nil),
force partition granule, asc.
22 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 53(end) **************
*************** Case 54 ***************
SQL: select /*+no_use_px*/ t1.c1 from t1 left join t2 t on t1.c1=t.c1,t2 left join t3 on t2.c1=t3.c1, t1 tt where t1.c1=t3.c1 and t1.c2=tt.c2 and t1.c1+t2.c1=tt.c1;
=========================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------------------
|0 |PX COORDINATOR | |2 |3919|
|1 | EXCHANGE OUT DISTR |:EX10003 |2 |3918|
|2 | MERGE JOIN | |2 |3918|
|3 | SORT | |200 |2743|
|4 | EXCHANGE IN DISTR | |200 |2393|
|5 | EXCHANGE OUT DISTR (PKEY) |:EX10002 |200 |2355|
|6 | MATERIAL | |200 |2355|
|7 | MERGE JOIN | |200 |2208|
|8 | EXCHANGE IN MERGE SORT DISTR | |200 |1467|
|9 | EXCHANGE OUT DISTR (PKEY) |:EX10001 |200 |1438|
|10| MERGE JOIN | |200 |1438|
|11| SORT | |500 |1074|
|12| PX PARTITION ITERATOR | |500 |342 |
|13| TABLE SCAN |t1 |500 |342 |
|14| EXCHANGE IN MERGE SORT DISTR| |200 |149 |
|15| EXCHANGE OUT DISTR (PKEY) |:EX10000 |200 |140 |
|16| PX PARTITION ITERATOR | |200 |140 |
|17| TABLE SCAN |t3 |200 |140 |
|18| SORT | |300 |554 |
|19| PX PARTITION ITERATOR | |300 |192 |
|20| TABLE SCAN |t2 |300 |192 |
|21| SORT | |500 |1078|
|22| PX PARTITION ITERATOR | |500 |342 |
|23| TABLE SCAN |tt(idx_t1_c2)|500 |342 |
=========================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
equal_conds([t1.c2 = tt.c2], [t1.c1 + t2.c1 = tt.c1]), other_conds(nil)
3 - output([t1.c1], [t1.c2], [t1.c1 + t2.c1]), filter(nil), sort_keys([t1.c2, ASC], [t1.c1 + t2.c1, ASC])
4 - output([t1.c1], [t1.c2], [t1.c1 + t2.c1]), filter(nil)
5 - (#keys=1, [t1.c1 + t2.c1]), output([t1.c1], [t1.c2], [t1.c1 + t2.c1]), filter(nil), dop=1
6 - output([t1.c1], [t1.c2], [t1.c1 + t2.c1]), filter(nil)
7 - output([t1.c1], [t1.c2], [t2.c1]), filter(nil),
equal_conds([t2.c1 = t3.c1]), other_conds(nil)
8 - output([t1.c1], [t1.c2], [t3.c1]), filter(nil), sort_keys([t3.c1, ASC])
9 - (#keys=1, [t3.c1]), output([t1.c1], [t1.c2], [t3.c1]), filter(nil), dop=1
10 - output([t1.c1], [t1.c2], [t3.c1]), filter(nil),
equal_conds([t1.c1 = t3.c1]), other_conds(nil)
11 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
12 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
13 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
14 - output([t3.c1]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
15 - (#keys=1, [t3.c1]), output([t3.c1]), filter(nil), dop=1
16 - output([t3.c1]), filter(nil),
force partition granule, asc.
17 - output([t3.c1]), filter(nil),
access([t3.c1]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
18 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
19 - output([t2.c1]), filter(nil),
affinitize, force partition granule, asc.
20 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
21 - output([tt.c2], [tt.c1]), filter(nil), sort_keys([tt.c2, ASC], [tt.c1, ASC]), local merge sort
22 - output([tt.c1], [tt.c2]), filter(nil),
affinitize, force partition granule, asc.
23 - output([tt.c1], [tt.c2]), filter(nil),
access([tt.c1], [tt.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([tt.c2], [tt.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 54(end) **************
*************** Case 55 ***************
SQL: select * from t1 where true;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 55(end) **************
*************** Case 56 ***************
SQL: select * from t1 where 1=2;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([0])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 56(end) **************
*************** Case 57 ***************
SQL: select * from t1, t2 where 1+1=2 and t1.c1=t2.c1+1;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |300 |1707|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1593|
|2 | HASH JOIN | |300 |1593|
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
|5 | EXCHANGE IN DISTR | |300 |290 |
|6 | EXCHANGE OUT DISTR (PKEY)|:EX10000|300 |205 |
|7 | PX PARTITION ITERATOR | |300 |205 |
|8 | TABLE SCAN |t2 |300 |205 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1 + ?]), other_conds(nil)
3 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t2.c1], [t2.c2], [t2.c3], [t2.c1 + ?]), filter(nil)
6 - (#keys=1, [t2.c1 + ?]), output([t2.c1], [t2.c2], [t2.c3], [t2.c1 + ?]), filter(nil), dop=1
7 - output([t2.c1], [t2.c2], [t2.c3], [t2.c1 + ?]), filter(nil),
force partition granule, asc.
8 - output([t2.c1], [t2.c2], [t2.c3], [t2.c1 + ?]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 57(end) **************
*************** Case 58 ***************
SQL: select * from t1 left join t2 t on t1.c1=t.c1 where false;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |500 |1725|
|1 | EXCHANGE OUT DISTR |:EX10001|500 |1536|
|2 | MERGE OUTER JOIN | |500 |1536|
|3 | EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |342 |
|5 | PX PARTITION ITERATOR | |500 |342 |
|6 | TABLE SCAN |t1 |500 |342 |
|7 | SORT | |300 |859 |
|8 | PX PARTITION ITERATOR | |300 |205 |
|9 | TABLE SCAN |t |300 |205 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t.c1], [t.c2], [t.c3]), filter(nil), startup_filter([0])
1 - output([t1.c1], [t1.c2], [t.c1], [t.c2], [t.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t.c1], [t.c2], [t.c3]), filter(nil),
equal_conds([t1.c1 = t.c1]), other_conds(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
4 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t.c1], [t.c2], [t.c3]), filter(nil), sort_keys([t.c1, ASC]), local merge sort
8 - output([t.c1], [t.c2], [t.c3]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t.c1], [t.c2], [t.c3]), filter(nil),
access([t.c1], [t.c2], [t.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
*************** Case 58(end) **************
*************** Case 59 ***************
SQL: select * from t1 left join t2 t on 1=1 where false;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
---------------------------------------------------------------
|0 |NESTED-LOOP OUTER JOIN CARTESIAN| |150000 |115014|
|1 | PX COORDINATOR | |500 |389 |
|2 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
|5 | MATERIAL | |300 |646 |
|6 | PX COORDINATOR | |300 |315 |
|7 | EXCHANGE OUT DISTR |:EX20000|300 |230 |
|8 | PX PARTITION ITERATOR | |300 |230 |
|9 | TABLE SCAN |t |300 |230 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t.c1], [t.c2], [t.c3]), filter(nil), startup_filter([0]),
conds(nil), nl_params_(nil), batch_join=false
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.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t.c1], [t.c2], [t.c3]), filter(nil), startup_filter([1])
6 - output([t.c1], [t.c2], [t.c3]), filter(nil)
7 - output([t.c1], [t.c2], [t.c3]), filter(nil), dop=1
8 - output([t.c1], [t.c2], [t.c3]), filter(nil),
force partition granule, asc.
9 - output([t.c1], [t.c2], [t.c3]), filter(nil),
access([t.c1], [t.c2], [t.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
*************** Case 59(end) **************
*************** Case 60 ***************
SQL: select * from t_time where c1 is NULL;
====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------
|0 |TABLE GET|t_time|1 |52 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range[0000-00-00 ; 0000-00-00],
range_cond([(T_OP_IS, t_time.c1, NULL, 1)])
*************** Case 60(end) **************
*************** Case 61 ***************
SQL: select * from t_time where c1 is NULL and c1 < '2017-01-02';
====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------
|0 |TABLE GET|t_time|1 |52 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range[0000-00-00 ; 0000-00-00],
range_cond([t_time.c1 < ?], [(T_OP_IS, t_time.c1, NULL, 1)])
*************** Case 61(end) **************
*************** Case 62 ***************
SQL: select * from t_time where c1 is NULL or c1 < '2017-01-02';
=====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------
|0 |TABLE SCAN|t_time|100 |88 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range(NULL ; 2017-01-02),
range_cond([(T_OP_IS, t_time.c1, NULL, 1) OR t_time.c1 < ?])
*************** Case 62(end) **************
*************** Case 63 ***************
SQL: select * from t_time where c1 is NULL and c1 > '2017-01-02';
====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------
|0 |TABLE GET|t_time|100 |88 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range(MAX ; MIN)always false,
range_cond([t_time.c1 > ?], [(T_OP_IS, t_time.c1, NULL, 1)])
*************** Case 63(end) **************
*************** Case 64 ***************
SQL: select * from t_time where c1 is NULL or c1 > '2017-01-02';
=====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------
|0 |TABLE SCAN|t_time|101 |88 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range[0000-00-00 ; 0000-00-00], (2017-01-02 ; MAX),
range_cond([(T_OP_IS, t_time.c1, NULL, 1) OR t_time.c1 > ?])
*************** Case 64(end) **************
*************** Case 65 ***************
SQL: select * from t_time where c1 <=> '2017-01-02';
====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------
|0 |TABLE GET|t_time|1 |52 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range[2017-01-02 ; 2017-01-02],
range_cond([t_time.c1 <=> ?])
*************** Case 65(end) **************
*************** Case 66 ***************
SQL: select * from t_time where not c1 <=> '2017-01-02';
=====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------
|0 |TABLE SCAN|t_time|99 |96 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter([(T_OP_NOT, t_time.c1 <=> ?)]),
access([t_time.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t_time.c1]), range(MIN ; MAX)always true
*************** Case 66(end) **************
*************** Case 67 ***************
SQL: select * from t_time where c1 > '2017-01-02';
=====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------
|0 |TABLE SCAN|t_time|100 |88 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range(2017-01-02 ; MAX),
range_cond([t_time.c1 > ?])
*************** Case 67(end) **************
*************** Case 68 ***************
SQL: select * from t_time where c1 < '2017-01-02';
=====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------
|0 |TABLE SCAN|t_time|100 |88 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range(NULL ; 2017-01-02),
range_cond([t_time.c1 < ?])
*************** Case 68(end) **************
*************** Case 69 ***************
SQL: select * from t_time where c1 = '2017-01-02';
====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------
|0 |TABLE GET|t_time|1 |52 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range[2017-01-02 ; 2017-01-02],
range_cond([t_time.c1 = ?])
*************** Case 69(end) **************
*************** Case 70 ***************
SQL: select * from t_time where c1 > '2017-01-02' and c1 < '2017-01-03';
=====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------
|0 |TABLE SCAN|t_time|100 |88 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range(2017-01-02 ; 2017-01-03),
range_cond([t_time.c1 > ?], [t_time.c1 < ?])
*************** Case 70(end) **************
*************** Case 71 ***************
SQL: select * from t_time where c1 > '2017-01-02' and c1 < '2017-01-03' and c1 < '2017-01-02';
=====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------
|0 |TABLE SCAN|t_time|100 |88 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range(MAX ; MIN)always false,
range_cond([t_time.c1 > ?], [t_time.c1 < ?], [t_time.c1 < ?])
*************** Case 71(end) **************
*************** Case 72 ***************
SQL: select * from t_time where c1 > '2017-01-01' and c1 < '2017-01-03' and c1 = '2017-01-02';
====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------
|0 |TABLE GET|t_time|1 |52 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range[2017-01-02 ; 2017-01-02],
range_cond([t_time.c1 > ?], [t_time.c1 < ?], [t_time.c1 = ?])
*************** Case 72(end) **************
*************** Case 73 ***************
SQL: select * from t_time where c1 > '2017-01-02' and c1 < '2017-01-03' and c1 = '2017-01-02';
====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------
|0 |TABLE GET|t_time|100 |88 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range(MAX ; MIN)always false,
range_cond([t_time.c1 > ?], [t_time.c1 < ?], [t_time.c1 = ?])
*************** Case 73(end) **************
*************** Case 74 ***************
SQL: select * from t_time where c1 >= '2017-01-02' and c1 <= '2017-01-03';
=====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------
|0 |TABLE SCAN|t_time|100 |88 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range[2017-01-02 ; 2017-01-03],
range_cond([t_time.c1 >= ?], [t_time.c1 <= ?])
*************** Case 74(end) **************
*************** Case 75 ***************
SQL: select * from t_time where c1 >= '2017-01-02' and c1 <= '2017-01-03' and c1 <= '2017-01-02';
=====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------
|0 |TABLE SCAN|t_time|1 |52 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range[2017-01-02 ; 2017-01-02],
range_cond([t_time.c1 >= ?], [t_time.c1 <= ?], [t_time.c1 <= ?])
*************** Case 75(end) **************
*************** Case 76 ***************
SQL: select * from t_time where c1 >= '2017-01-01' and c1 <= '2017-01-03' and c1 = '2017-01-02';
====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------
|0 |TABLE GET|t_time|1 |52 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range[2017-01-02 ; 2017-01-02],
range_cond([t_time.c1 >= ?], [t_time.c1 <= ?], [t_time.c1 = ?])
*************** Case 76(end) **************
*************** Case 77 ***************
SQL: select * from t_time where c1 >= '2017-01-02' and c1 <= '2017-01-03' and c1 = '2017-01-02';
====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------
|0 |TABLE GET|t_time|1 |52 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t_time.c1]), filter(nil),
access([t_time.c1]), partitions(p0),
is_index_back=false,
range_key([t_time.c1]), range[2017-01-02 ; 2017-01-02],
range_cond([t_time.c1 >= ?], [t_time.c1 <= ?], [t_time.c1 = ?])
*************** Case 77(end) **************
*************** Case 78 ***************
SQL: select usec_to_time(c1) as modify_time_us from t1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([usec_to_time(t1.c1)]), filter(nil)
1 - output([usec_to_time(t1.c1)]), filter(nil), dop=1
2 - output([usec_to_time(t1.c1)]), filter(nil),
force partition granule, asc.
3 - output([usec_to_time(t1.c1)]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 78(end) **************
*************** Case 79 ***************
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 |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:
-------------------------------------
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), 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,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 79(end) **************
*************** Case 80 ***************
SQL: select 'ob' from t1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter(nil)
1 - output([?]), filter(nil), dop=1
2 - output([?]), filter(nil),
force partition granule, asc.
3 - output([?]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 80(end) **************
*************** Case 81 ***************
SQL: select c1, 'ob' from t1 where c1 > 100 order by c2;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |1205|
|1 | EXCHANGE OUT DISTR |:EX10000 |500 |1158|
|2 | SORT | |500 |1158|
|3 | PX PARTITION ITERATOR | |500 |426 |
|4 | TABLE SCAN |t1(idx_t1_c2)|500 |426 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [?]), filter(nil), sort_keys([t1.c2, ASC])
1 - output([t1.c1], [?], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [?], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
3 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
4 - output([t1.c1], [t1.c2]), filter([t1.c1 > ?]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 81(end) **************
*************** Case 82 ***************
SQL: select c1, 1 + 1 from t1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [?]), filter(nil)
1 - output([t1.c1], [?]), filter(nil), dop=1
2 - output([t1.c1], [?]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [?]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 82(end) **************
*************** Case 83 ***************
SQL: select c1, 1 + 1 from t1 order by c1 limit 100;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|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:
-------------------------------------
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), 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,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 83(end) **************
*************** Case 84 ***************
SQL: select c1 from t1 union select c2 from t2;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |MERGE UNION DISTINCT | |800 |1900|
|1 | PX COORDINATOR MERGE SORT | |500 |990 |
|2 | EXCHANGE OUT DISTR |:EX10000|500 |966 |
|3 | SORT | |500 |966 |
|4 | PX PARTITION ITERATOR | |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
|6 | PX COORDINATOR MERGE SORT | |300 |647 |
|7 | EXCHANGE OUT DISTR |:EX20000|300 |619 |
|8 | SORT | |300 |619 |
|9 | PX PARTITION ITERATOR | |300 |198 |
|10| TABLE SCAN |t2 |300 |198 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(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.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
7 - output([t2.c2]), filter(nil), dop=1
8 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
9 - output([t2.c2]), filter(nil),
force partition granule, asc.
10 - 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
*************** Case 84(end) **************
*************** Case 85 ***************
SQL: select c1 from t1 union all select c2 from t2;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |UNION ALL | |800 |844 |
|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 | PX COORDINATOR | |300 |227 |
|6 | EXCHANGE OUT DISTR |:EX20000|300 |198 |
|7 | PX PARTITION ITERATOR| |300 |198 |
|8 | TABLE SCAN |t2 |300 |198 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(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.
4 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t2.c2]), filter(nil)
6 - output([t2.c2]), filter(nil), dop=1
7 - output([t2.c2]), filter(nil),
force partition granule, asc.
8 - 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
*************** Case 85(end) **************
*************** Case 86 ***************
SQL: (select c1 from t1) except (select c2 from t2) order by c1;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |1882|
|1 | EXCHANGE OUT DISTR |:EX10001|500 |1835|
|2 | MERGE EXCEPT DISTINCT | |500 |1835|
|3 | SORT | |500 |966 |
|4 | PX PARTITION ITERATOR | |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
|6 | SORT | |300 |647 |
|7 | EXCHANGE IN DISTR | |300 |227 |
|8 | EXCHANGE OUT DISTR (PKEY)|:EX10000|300 |198 |
|9 | PX PARTITION ITERATOR | |300 |198 |
|10| TABLE SCAN |t2 |300 |198 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([EXCEPT([1])]), filter(nil), sort_keys([EXCEPT([1]), ASC])
1 - output([EXCEPT([1])]), filter(nil), dop=1
2 - output([EXCEPT([1])]), filter(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
7 - output([t2.c2]), filter(nil)
8 - (#keys=1, [t2.c2]), output([t2.c2]), filter(nil), dop=1
9 - output([t2.c2]), filter(nil),
force partition granule, asc.
10 - 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
*************** Case 86(end) **************
*************** Case 87 ***************
SQL: (select c1 from t1) intersect (select c2 from t2) order by c1 limit 100;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |LIMIT | |100 |1844|
|1 | PX COORDINATOR MERGE SORT | |100 |1831|
|2 | EXCHANGE OUT DISTR |:EX10001|100 |1821|
|3 | LIMIT | |100 |1821|
|4 | MERGE INTERSECT DISTINCT | |100 |1807|
|5 | SORT | |500 |966 |
|6 | PX PARTITION ITERATOR | |500 |331 |
|7 | TABLE SCAN |t1 |500 |331 |
|8 | SORT | |300 |647 |
|9 | EXCHANGE IN DISTR | |300 |227 |
|10| EXCHANGE OUT DISTR (PKEY)|:EX10000|300 |198 |
|11| PX PARTITION ITERATOR | |300 |198 |
|12| TABLE SCAN |t2 |300 |198 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([INTERSECT([1])]), filter(nil), limit(100), offset(nil)
1 - output([INTERSECT([1])]), filter(nil), sort_keys([INTERSECT([1]), ASC])
2 - output([INTERSECT([1])]), filter(nil), dop=1
3 - output([INTERSECT([1])]), filter(nil), limit(100), offset(nil)
4 - output([INTERSECT([1])]), filter(nil)
5 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
6 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
7 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
8 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
9 - output([t2.c2]), filter(nil)
10 - (#keys=1, [t2.c2]), output([t2.c2]), filter(nil), dop=1
11 - output([t2.c2]), filter(nil),
force partition granule, asc.
12 - 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
*************** Case 87(end) **************
*************** Case 88 ***************
SQL: (select c1 from t1) union (select c1 from t2) order by c1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |800 |1472|
|1 | EXCHANGE OUT DISTR |:EX10001|800 |1435|
|2 | MERGE UNION DISTINCT | |800 |1435|
|3 | SORT | |500 |966 |
|4 | PX PARTITION ITERATOR | |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |192 |
|8 | PX PARTITION ITERATOR | |300 |192 |
|9 | TABLE SCAN |t2 |300 |192 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil), sort_keys([UNION([1]), ASC])
1 - output([UNION([1])]), filter(nil), dop=1
2 - output([UNION([1])]), filter(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
7 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
8 - output([t2.c1]), filter(nil),
force partition granule, asc.
9 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 88(end) **************
*************** Case 89 ***************
SQL: (select c1 from t1) union all (select c1 from t2) order by c1;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SORT | |800 |1885|
|1 | UNION ALL | |800 |823 |
|2 | PX COORDINATOR | |500 |354 |
|3 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|4 | PX PARTITION ITERATOR| |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
|6 | PX COORDINATOR | |300 |206 |
|7 | EXCHANGE OUT DISTR |:EX20000|300 |192 |
|8 | PX PARTITION ITERATOR| |300 |192 |
|9 | TABLE SCAN |t2 |300 |192 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil), sort_keys([UNION([1]), ASC])
1 - output([UNION([1])]), filter(nil)
2 - output([t1.c1]), filter(nil)
3 - output([t1.c1]), filter(nil), dop=1
4 - output([t1.c1]), filter(nil),
force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil)
7 - output([t2.c1]), filter(nil), dop=1
8 - output([t2.c1]), filter(nil),
force partition granule, asc.
9 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 89(end) **************
*************** Case 90 ***************
SQL: (select c2 from t1 order by c1) union (select c1 from t1 order by c2);
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |MERGE UNION DISTINCT | |1000 |2440|
|1 | PX COORDINATOR MERGE SORT | |500 |1122|
|2 | EXCHANGE OUT DISTR |:EX10000 |500 |1074|
|3 | SORT | |500 |1074|
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
|6 | PX COORDINATOR MERGE SORT | |500 |990 |
|7 | EXCHANGE OUT DISTR |:EX20000 |500 |966 |
|8 | SORT | |500 |966 |
|9 | PX PARTITION ITERATOR | |500 |331 |
|10| TABLE SCAN |t1 |500 |331 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
2 - output([t1.c2]), filter(nil), dop=1
3 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
4 - output([t1.c2]), filter(nil),
force partition granule, asc.
5 - 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
6 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
7 - output([t1.c1]), filter(nil), dop=1
8 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), 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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 90(end) **************
*************** Case 91 ***************
SQL: (select c2 from t1 order by c1) union all (select c1 from t1 order by c2);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |1000 |1096|
|1 | EXCHANGE OUT DISTR |:EX10000|1000 |1001|
|2 | PX PARTITION ITERATOR| |1000 |1001|
|3 | UNION ALL | |1000 |1001|
|4 | TABLE SCAN |t1 |500 |342 |
|5 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([UNION([1])]), filter(nil), dop=1
2 - output([UNION([1])]), filter(nil),
partition wise, force partition granule, asc.
3 - output([UNION([1])]), filter(nil)
4 - output([t1.c2]), filter(nil),
access([t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 91(end) **************
*************** Case 92 ***************
SQL: (select c1 from t1 order by c2) union (select c1 from t2 order by c2 limit 2);
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |502 |1502|
|1 | EXCHANGE OUT DISTR |:EX10002|502 |1454|
|2 | MERGE UNION DISTINCT | |502 |1454|
|3 | SORT | |500 |966 |
|4 | PX PARTITION ITERATOR | |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
|6 | SORT | |2 |323 |
|7 | EXCHANGE IN DISTR | |2 |322 |
|8 | EXCHANGE OUT DISTR (PKEY) |:EX10001|2 |322 |
|9 | MATERIAL | |2 |322 |
|10| LIMIT | |2 |321 |
|11| EXCHANGE IN MERGE SORT DISTR| |2 |321 |
|12| EXCHANGE OUT DISTR |:EX10000|2 |320 |
|13| LIMIT | |2 |320 |
|14| TOP-N SORT | |2 |320 |
|15| PX PARTITION ITERATOR | |300 |198 |
|16| TABLE SCAN |t2 |300 |198 |
=================================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([UNION([1])]), filter(nil), dop=1
2 - output([UNION([1])]), filter(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC])
7 - output([t2.c1]), filter(nil)
8 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), is_single, dop=1
9 - output([t2.c1]), filter(nil)
10 - output([t2.c1]), filter(nil), limit(2), offset(nil)
11 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
12 - output([t2.c1], [t2.c2]), filter(nil), dop=1
13 - output([t2.c1], [t2.c2]), filter(nil), limit(2), offset(nil)
14 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC]), topn(2)
15 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
16 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 92(end) **************
*************** Case 93 ***************
SQL: (select c1 from t1 order by c2) union all (select c1 from t2 order by c2 limit 2);
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |UNION ALL | |502 |840 |
|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 | |2 |321 |
|6 | PX COORDINATOR MERGE SORT | |2 |321 |
|7 | EXCHANGE OUT DISTR |:EX20000|2 |320 |
|8 | LIMIT | |2 |320 |
|9 | TOP-N SORT | |2 |320 |
|10| PX PARTITION ITERATOR | |300 |198 |
|11| TABLE SCAN |t2 |300 |198 |
=========================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(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.
4 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t2.c1]), filter(nil), limit(2), offset(nil)
6 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
7 - output([t2.c1], [t2.c2]), filter(nil), dop=1
8 - output([t2.c1], [t2.c2]), filter(nil), limit(2), offset(nil)
9 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC]), topn(2)
10 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
11 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 93(end) **************
*************** Case 94 ***************
SQL: (select c1 from t1 order by c2) union (select c1 from t2 order by c2 limit 2) union (select c1 from t1 order by c1);
====================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------------
|0 |PX COORDINATOR | |1002 |2892|
|1 | EXCHANGE OUT DISTR |:EX10003|1002 |2797|
|2 | MERGE UNION DISTINCT | |1002 |2797|
|3 | EXCHANGE IN MERGE SORT DISTR | |502 |1502|
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10002|502 |1454|
|5 | MERGE UNION DISTINCT | |502 |1454|
|6 | SORT | |500 |966 |
|7 | PX PARTITION ITERATOR | |500 |331 |
|8 | TABLE SCAN |t1 |500 |331 |
|9 | SORT | |2 |323 |
|10| EXCHANGE IN DISTR | |2 |322 |
|11| EXCHANGE OUT DISTR (PKEY) |:EX10001|2 |322 |
|12| MATERIAL | |2 |322 |
|13| LIMIT | |2 |321 |
|14| EXCHANGE IN MERGE SORT DISTR| |2 |321 |
|15| EXCHANGE OUT DISTR |:EX10000|2 |320 |
|16| LIMIT | |2 |320 |
|17| TOP-N SORT | |2 |320 |
|18| PX PARTITION ITERATOR | |300 |198 |
|19| TABLE SCAN |t2 |300 |198 |
|20| SORT | |500 |966 |
|21| PX PARTITION ITERATOR | |500 |331 |
|22| TABLE SCAN |t1 |500 |331 |
====================================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([UNION([1])]), filter(nil), dop=1
2 - output([UNION([1])]), filter(nil)
3 - output([UNION([1])]), filter(nil), sort_keys([UNION([1]), ASC])
4 - (#keys=1, [UNION([1])]), output([UNION([1])]), filter(nil), dop=1
5 - output([UNION([1])]), filter(nil)
6 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
7 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
9 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC])
10 - output([t2.c1]), filter(nil)
11 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), is_single, dop=1
12 - output([t2.c1]), filter(nil)
13 - output([t2.c1]), filter(nil), limit(2), offset(nil)
14 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
15 - output([t2.c1], [t2.c2]), filter(nil), dop=1
16 - output([t2.c1], [t2.c2]), filter(nil), limit(2), offset(nil)
17 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC]), topn(2)
18 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
19 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
20 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
21 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
22 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 94(end) **************
*************** Case 95 ***************
SQL: (select c1 from t1 order by c2) union all (select c1 from t2 order by c2 limit 2) union all (select c1 from t1 order by c1);
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |UNION ALL | |1002 |1524|
|1 | UNION ALL | |502 |840 |
|2 | PX COORDINATOR | |500 |354 |
|3 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|4 | PX PARTITION ITERATOR | |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
|6 | LIMIT | |2 |321 |
|7 | PX COORDINATOR MERGE SORT | |2 |321 |
|8 | EXCHANGE OUT DISTR |:EX20000|2 |320 |
|9 | LIMIT | |2 |320 |
|10| TOP-N SORT | |2 |320 |
|11| PX PARTITION ITERATOR | |300 |198 |
|12| TABLE SCAN |t2 |300 |198 |
|13| PX COORDINATOR | |500 |354 |
|14| EXCHANGE OUT DISTR |:EX30000|500 |331 |
|15| PX PARTITION ITERATOR | |500 |331 |
|16| TABLE SCAN |t1 |500 |331 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([UNION([1])]), filter(nil)
2 - output([t1.c1]), filter(nil)
3 - output([t1.c1]), filter(nil), dop=1
4 - output([t1.c1]), filter(nil),
force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil), limit(2), offset(nil)
7 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
8 - output([t2.c1], [t2.c2]), filter(nil), dop=1
9 - output([t2.c1], [t2.c2]), filter(nil), limit(2), offset(nil)
10 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC]), topn(2)
11 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
12 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
13 - output([t1.c1]), filter(nil)
14 - output([t1.c1]), filter(nil), dop=1
15 - output([t1.c1]), filter(nil),
force partition granule, asc.
16 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 95(end) **************
*************** Case 96 ***************
SQL: (select c1 from t1 order by c2 limit 2) union (select c1 from t2 order by c2 limit 2);
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------
|0 |HASH UNION DISTINCT | |4 |364 |
|1 | LIMIT | |2 |39 |
|2 | PX COORDINATOR MERGE SORT | |2 |39 |
|3 | EXCHANGE OUT DISTR |:EX10000 |2 |38 |
|4 | LIMIT | |2 |38 |
|5 | TOP-N SORT | |2 |38 |
|6 | PX PARTITION ITERATOR | |2 |37 |
|7 | TABLE SCAN |t1(idx_t1_c2)|2 |37 |
|8 | LIMIT | |2 |321 |
|9 | PX COORDINATOR MERGE SORT | |2 |321 |
|10| EXCHANGE OUT DISTR |:EX20000 |2 |320 |
|11| LIMIT | |2 |320 |
|12| TOP-N SORT | |2 |320 |
|13| PX PARTITION ITERATOR | |300 |198 |
|14| TABLE SCAN |t2 |300 |198 |
==============================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([t1.c1]), filter(nil), limit(2), offset(nil)
2 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
3 - output([t1.c1], [t1.c2]), filter(nil), dop=1
4 - output([t1.c1], [t1.c2]), filter(nil), limit(2), offset(nil)
5 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(2), local merge sort
6 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
limit(2), offset(nil),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
8 - output([t2.c1]), filter(nil), limit(2), offset(nil)
9 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
10 - output([t2.c1], [t2.c2]), filter(nil), dop=1
11 - output([t2.c1], [t2.c2]), filter(nil), limit(2), offset(nil)
12 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC]), topn(2)
13 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
14 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 96(end) **************
*************** Case 97 ***************
SQL: (select c1 from t1 order by c2 limit 2) union all (select c1 from t2 order by c2 limit 2);
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------
|0 |UNION ALL | |4 |361 |
|1 | LIMIT | |2 |39 |
|2 | PX COORDINATOR MERGE SORT | |2 |39 |
|3 | EXCHANGE OUT DISTR |:EX10000 |2 |38 |
|4 | LIMIT | |2 |38 |
|5 | TOP-N SORT | |2 |38 |
|6 | PX PARTITION ITERATOR | |2 |37 |
|7 | TABLE SCAN |t1(idx_t1_c2)|2 |37 |
|8 | LIMIT | |2 |321 |
|9 | PX COORDINATOR MERGE SORT | |2 |321 |
|10| EXCHANGE OUT DISTR |:EX20000 |2 |320 |
|11| LIMIT | |2 |320 |
|12| TOP-N SORT | |2 |320 |
|13| PX PARTITION ITERATOR | |300 |198 |
|14| TABLE SCAN |t2 |300 |198 |
==============================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([t1.c1]), filter(nil), limit(2), offset(nil)
2 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
3 - output([t1.c1], [t1.c2]), filter(nil), dop=1
4 - output([t1.c1], [t1.c2]), filter(nil), limit(2), offset(nil)
5 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(2), local merge sort
6 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
limit(2), offset(nil),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
8 - output([t2.c1]), filter(nil), limit(2), offset(nil)
9 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
10 - output([t2.c1], [t2.c2]), filter(nil), dop=1
11 - output([t2.c1], [t2.c2]), filter(nil), limit(2), offset(nil)
12 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC]), topn(2)
13 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
14 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 97(end) **************
*************** Case 98 ***************
SQL: (select c1 from t1) union (select c2 from t1) union (select c2 from t2);
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------
|0 |MERGE UNION DISTINCT | |1300 |3515|
|1 | MERGE UNION DISTINCT | |1000 |2440|
|2 | PX COORDINATOR MERGE SORT | |500 |990 |
|3 | EXCHANGE OUT DISTR |:EX10000 |500 |966 |
|4 | SORT | |500 |966 |
|5 | PX PARTITION ITERATOR | |500 |331 |
|6 | TABLE SCAN |t1 |500 |331 |
|7 | PX COORDINATOR MERGE SORT | |500 |1122|
|8 | EXCHANGE OUT DISTR |:EX20000 |500 |1074|
|9 | SORT | |500 |1074|
|10| PX PARTITION ITERATOR | |500 |342 |
|11| TABLE SCAN |t1(idx_t1_c2)|500 |342 |
|12| PX COORDINATOR MERGE SORT | |300 |647 |
|13| EXCHANGE OUT DISTR |:EX30000 |300 |619 |
|14| SORT | |300 |619 |
|15| PX PARTITION ITERATOR | |300 |198 |
|16| TABLE SCAN |t2 |300 |198 |
==============================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([UNION([1])]), filter(nil)
2 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
3 - output([t1.c1]), filter(nil), dop=1
4 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), 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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
8 - output([t1.c2]), filter(nil), dop=1
9 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
10 - output([t1.c2]), filter(nil),
force partition granule, asc.
11 - 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
12 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
13 - output([t2.c2]), filter(nil), dop=1
14 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
15 - output([t2.c2]), filter(nil),
force partition granule, asc.
16 - 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
*************** Case 98(end) **************
*************** Case 99 ***************
SQL: (select /*+no_use_px*/ c1 from t1) union (select c2 from t1) union (select c2 from t2) order by c1 limit 100;
=======================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------------
|0 |LIMIT | |100 |1708|
|1 | MERGE UNION DISTINCT | |100 |1694|
|2 | LIMIT | |100 |917 |
|3 | MERGE UNION DISTINCT | |100 |903 |
|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 |610 |
|12| PX COORDINATOR MERGE SORT | |100 |596 |
|13| EXCHANGE OUT DISTR |:EX20001 |100 |587 |
|14| LIMIT | |100 |587 |
|15| MERGE DISTINCT | |100 |573 |
|16| EXCHANGE IN MERGE SORT DISTR| |100 |462 |
|17| EXCHANGE OUT DISTR (HASH) |:EX20000 |100 |453 |
|18| PX PARTITION ITERATOR | |100 |453 |
|19| MERGE DISTINCT | |100 |453 |
|20| TABLE SCAN |t1(idx_t1_c2)|500 |342 |
|21| LIMIT | |100 |712 |
|22| PX COORDINATOR MERGE SORT | |100 |698 |
|23| EXCHANGE OUT DISTR |:EX30001 |100 |689 |
|24| LIMIT | |100 |689 |
|25| TOP-N SORT | |100 |675 |
|26| HASH DISTINCT | |100 |548 |
|27| EXCHANGE IN DISTR | |100 |378 |
|28| EXCHANGE OUT DISTR (HASH) |:EX30000 |100 |368 |
|29| HASH DISTINCT | |100 |368 |
|30| PX PARTITION ITERATOR | |300 |198 |
|31| TABLE SCAN |t2 |300 |198 |
=======================================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil), limit(100), offset(nil)
1 - output([UNION([1])]), filter(nil)
2 - output([UNION([1])]), filter(nil), limit(100), offset(nil)
3 - output([UNION([1])]), filter(nil)
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), 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
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])
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),
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
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),
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
*************** Case 99(end) **************
*************** Case 100 ***************
SQL: (select c1 from t1) union (select c2 from t1) intersect (select c2 from t2) order by c1 limit 100;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |LIMIT | |100 |3390|
|1 | MERGE INTERSECT DISTINCT | |100 |3377|
|2 | MERGE UNION DISTINCT | |1000 |2440|
|3 | PX COORDINATOR MERGE SORT | |500 |990 |
|4 | EXCHANGE OUT DISTR |:EX10000 |500 |966 |
|5 | SORT | |500 |966 |
|6 | PX PARTITION ITERATOR | |500 |331 |
|7 | TABLE SCAN |t1 |500 |331 |
|8 | PX COORDINATOR MERGE SORT | |500 |1122|
|9 | EXCHANGE OUT DISTR |:EX20000 |500 |1074|
|10| SORT | |500 |1074|
|11| PX PARTITION ITERATOR | |500 |342 |
|12| TABLE SCAN |t1(idx_t1_c2)|500 |342 |
|13| PX COORDINATOR MERGE SORT | |300 |647 |
|14| EXCHANGE OUT DISTR |:EX30000 |300 |619 |
|15| SORT | |300 |619 |
|16| PX PARTITION ITERATOR | |300 |198 |
|17| TABLE SCAN |t2 |300 |198 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([INTERSECT([1])]), filter(nil), limit(100), offset(nil)
1 - output([INTERSECT([1])]), filter(nil)
2 - output([UNION([1])]), filter(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
4 - output([t1.c1]), filter(nil), dop=1
5 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
6 - output([t1.c1]), filter(nil),
force partition granule, asc.
7 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
8 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
9 - output([t1.c2]), filter(nil), dop=1
10 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
11 - output([t1.c2]), filter(nil),
force partition granule, asc.
12 - 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
13 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
14 - output([t2.c2]), filter(nil), dop=1
15 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
16 - output([t2.c2]), filter(nil),
force partition granule, asc.
17 - 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
*************** Case 100(end) **************
*************** Case 101 ***************
SQL: select distinct(c2) from t1;
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |100 |582 |
|1 | EXCHANGE OUT DISTR |:EX10001 |100 |573 |
|2 | MERGE DISTINCT | |100 |573 |
|3 | EXCHANGE IN MERGE SORT DISTR| |100 |462 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |453 |
|5 | PX PARTITION ITERATOR | |100 |453 |
|6 | MERGE DISTINCT | |100 |453 |
|7 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
=================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2]), filter(nil)
1 - output([t1.c2]), filter(nil), dop=1
2 - output([t1.c2]), filter(nil),
distinct([t1.c2])
3 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
4 - (#keys=1, [t1.c2]), output([t1.c2]), filter(nil), dop=1
5 - output([t1.c2]), filter(nil),
force partition granule, asc.
6 - output([t1.c2]), filter(nil),
distinct([t1.c2])
7 - 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
*************** Case 101(end) **************
*************** Case 102 ***************
SQL: select/*+(use_order_distinct)*/ distinct(c1) from t4;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |MERGE DISTINCT| |100 |112 |
|1 | TABLE SCAN |t4 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1]), filter(nil),
distinct([t4.c1])
1 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 102(end) **************
*************** Case 103 ***************
SQL: select distinct c1, c2 from t1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 103(end) **************
*************** Case 104 ***************
SQL: select distinct c1, c2 from t4;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|t4(idx_t4_c2)|100 |54 |
============================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2]), filter(nil),
access([t4.c1], [t4.c2]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 104(end) **************
*************** Case 105 ***************
SQL: select distinct(t1.c2), t2.c2 from t1, t2 where t1.c1 = t2.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |300 |2033|
|1 | EXCHANGE OUT DISTR |:EX10002|300 |1976|
|2 | HASH DISTINCT | |300 |1976|
|3 | EXCHANGE IN DISTR | |300 |1645|
|4 | EXCHANGE OUT DISTR (HASH) |:EX10001|300 |1589|
|5 | MERGE JOIN | |300 |1589|
|6 | SORT | |500 |1074|
|7 | PX PARTITION ITERATOR | |500 |342 |
|8 | TABLE SCAN |t1 |500 |342 |
|9 | EXCHANGE IN MERGE SORT DISTR| |300 |227 |
|10| EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |198 |
|11| PX PARTITION ITERATOR | |300 |198 |
|12| TABLE SCAN |t2 |300 |198 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2], [t2.c2]), filter(nil)
1 - output([t1.c2], [t2.c2]), filter(nil), dop=1
2 - output([t1.c2], [t2.c2]), filter(nil),
distinct([t1.c2], [t2.c2])
3 - output([t1.c2], [t2.c2]), filter(nil)
4 - (#keys=2, [t1.c2], [t2.c2]), output([t1.c2], [t2.c2]), filter(nil), dop=1
5 - output([t1.c2], [t2.c2]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
6 - output([t1.c2], [t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
7 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
9 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
10 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2]), filter(nil), dop=1
11 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
12 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 105(end) **************
*************** Case 106 ***************
SQL: select distinct(t1.c1), t2.c2 from t1, t2 where t1.c1 = t2.c1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1304|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1261|
|2 | MERGE JOIN | |300 |1261|
|3 | EXCHANGE IN MERGE SORT DISTR| |500 |354 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |331 |
|5 | PX PARTITION ITERATOR | |500 |331 |
|6 | TABLE SCAN |t1 |500 |331 |
|7 | SORT | |300 |619 |
|8 | PX PARTITION ITERATOR | |300 |198 |
|9 | TABLE SCAN |t2 |300 |198 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t2.c2]), filter(nil)
1 - output([t1.c1], [t2.c2]), filter(nil), dop=1
2 - output([t1.c1], [t2.c2]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
4 - (#keys=1, [t1.c1]), output([t1.c1]), filter(nil), dop=1
5 - output([t1.c1]), filter(nil),
force partition granule, asc.
6 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t2.c2], [t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
8 - output([t2.c1], [t2.c2]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 106(end) **************
*************** Case 107 ***************
SQL: select distinct t4.c1, t4.c2, t2.c2 from t4, t2 where t4.c1 = t2.c1;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |100 |852 |
|1 | EXCHANGE OUT DISTR |:EX10001|100 |833 |
|2 | MERGE JOIN | |100 |833 |
|3 | EXCHANGE IN DISTR | |100 |100 |
|4 | EXCHANGE OUT DISTR (PKEY)|:EX10000|100 |90 |
|5 | TABLE SCAN |t4 |100 |90 |
|6 | SORT | |300 |619 |
|7 | PX PARTITION ITERATOR | |300 |198 |
|8 | TABLE SCAN |t2 |300 |198 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t2.c2]), filter(nil)
1 - output([t4.c1], [t4.c2], [t2.c2]), filter(nil), dop=1
2 - output([t4.c1], [t4.c2], [t2.c2]), filter(nil),
equal_conds([t4.c1 = t2.c1]), other_conds(nil)
3 - output([t4.c1], [t4.c2]), filter(nil)
4 - (#keys=1, [t4.c1]), output([t4.c1], [t4.c2]), filter(nil), is_single, dop=1
5 - output([t4.c1], [t4.c2]), filter(nil),
access([t4.c1], [t4.c2]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
6 - output([t2.c2], [t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
7 - output([t2.c1], [t2.c2]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 107(end) **************
*************** Case 108 ***************
SQL: select distinct c1 as ali_name from t1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 108(end) **************
*************** Case 109 ***************
SQL: select distinct c2 as ali_name from t1;
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |100 |582 |
|1 | EXCHANGE OUT DISTR |:EX10001 |100 |573 |
|2 | MERGE DISTINCT | |100 |573 |
|3 | EXCHANGE IN MERGE SORT DISTR| |100 |462 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |453 |
|5 | PX PARTITION ITERATOR | |100 |453 |
|6 | MERGE DISTINCT | |100 |453 |
|7 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
=================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2]), filter(nil)
1 - output([t1.c2]), filter(nil), dop=1
2 - output([t1.c2]), filter(nil),
distinct([t1.c2])
3 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
4 - (#keys=1, [t1.c2]), output([t1.c2]), filter(nil), dop=1
5 - output([t1.c2]), filter(nil),
force partition granule, asc.
6 - output([t1.c2]), filter(nil),
distinct([t1.c2])
7 - 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
*************** Case 109(end) **************
*************** Case 110 ***************
SQL: select distinct c1 * c2 from t1;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |500 |958 |
|1 | EXCHANGE OUT DISTR |:EX10001|500 |911 |
|2 | HASH DISTINCT | |500 |911 |
|3 | EXCHANGE IN DISTR | |500 |389 |
|4 | EXCHANGE OUT DISTR (HASH)|:EX10000|500 |342 |
|5 | PX PARTITION ITERATOR | |500 |342 |
|6 | TABLE SCAN |t1 |500 |342 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1 * t1.c2]), filter(nil)
1 - output([t1.c1 * t1.c2]), filter(nil), dop=1
2 - output([t1.c1 * t1.c2]), filter(nil),
distinct([t1.c1 * t1.c2])
3 - output([t1.c1 * t1.c2]), filter(nil)
4 - (#keys=1, [t1.c1 * t1.c2]), output([t1.c1 * t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 110(end) **************
*************** Case 111 ***************
SQL: select distinct 1, 2 from t1;
======================================================
|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), 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,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 111(end) **************
*************** Case 112 ***************
SQL: select distinct c2 from t4 order by c2 limit 3;
=================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------
|0 |LIMIT | |3 |38 |
|1 | MERGE DISTINCT| |3 |37 |
|2 | TABLE SCAN |t4(idx_t4_c2)|3 |37 |
=================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c2]), filter(nil), limit(3), offset(nil)
1 - output([t4.c2]), filter(nil),
distinct([t4.c2])
2 - output([t4.c2]), filter(nil),
access([t4.c2]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 112(end) **************
*************** Case 113 ***************
SQL: select distinct c2 from t4 order by c2;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |MERGE DISTINCT| |100 |77 |
|1 | TABLE SCAN |t4(idx_t4_c2)|100 |54 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c2]), filter(nil),
distinct([t4.c2])
1 - output([t4.c2]), filter(nil),
access([t4.c2]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 113(end) **************
*************** Case 114 ***************
SQL: select distinct c2 from t4 order by c3;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |SORT | |100 |242 |
|1 | MERGE DISTINCT| |100 |115 |
|2 | TABLE SCAN |t4(idx_t4_c2_c3)|100 |92 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c2]), filter(nil), sort_keys([t4.c3, ASC])
1 - output([t4.c2], [t4.c3]), filter(nil),
distinct([t4.c2])
2 - output([t4.c2], [t4.c3]), filter(nil),
access([t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 114(end) **************
*************** Case 115 ***************
SQL: select distinct c1, c2 from t4 order by c3;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|t4(idx_t4_c3)|100 |92 |
============================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2]), filter(nil),
access([t4.c1], [t4.c2]), partitions(p0),
is_index_back=false,
range_key([t4.c3], [t4.c1], [t4.c2]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 115(end) **************
*************** Case 116 ***************
SQL: select distinct c2 from t4 order by c3 limit 3;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |LIMIT | |3 |161 |
|1 | TOP-N SORT | |3 |161 |
|2 | MERGE DISTINCT| |100 |115 |
|3 | TABLE SCAN |t4(idx_t4_c2_c3)|100 |92 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c2]), filter(nil), limit(3), offset(nil)
1 - output([t4.c2]), filter(nil), sort_keys([t4.c3, ASC]), topn(3)
2 - output([t4.c2], [t4.c3]), filter(nil),
distinct([t4.c2])
3 - output([t4.c2], [t4.c3]), filter(nil),
access([t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 116(end) **************
*************** Case 117 ***************
SQL: select distinct c2 from t4 order by c3 limit 3;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |LIMIT | |3 |161 |
|1 | TOP-N SORT | |3 |161 |
|2 | MERGE DISTINCT| |100 |115 |
|3 | TABLE SCAN |t4(idx_t4_c2_c3)|100 |92 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c2]), filter(nil), limit(3), offset(nil)
1 - output([t4.c2]), filter(nil), sort_keys([t4.c3, ASC]), topn(3)
2 - output([t4.c2], [t4.c3]), filter(nil),
distinct([t4.c2])
3 - output([t4.c2], [t4.c3]), filter(nil),
access([t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 117(end) **************
*************** Case 118 ***************
SQL: select distinct c2 from t5 order by c3 limit 3;
====================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------------
|0 |LIMIT | |3 |352 |
|1 | PX COORDINATOR MERGE SORT | |3 |352 |
|2 | EXCHANGE OUT DISTR |:EX10001 |3 |351 |
|3 | LIMIT | |3 |351 |
|4 | TOP-N SORT | |3 |351 |
|5 | MERGE DISTINCT | |100 |305 |
|6 | EXCHANGE IN MERGE SORT DISTR| |100 |238 |
|7 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |229 |
|8 | PX PARTITION ITERATOR | |100 |229 |
|9 | MERGE DISTINCT | |100 |229 |
|10| TABLE SCAN |t5(idx_t5_c2)|300 |162 |
====================================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c2]), filter(nil), limit(3), offset(nil)
1 - output([t5.c2], [t5.c3]), filter(nil), sort_keys([t5.c3, ASC])
2 - output([t5.c2], [t5.c3]), filter(nil), dop=1
3 - output([t5.c2], [t5.c3]), filter(nil), limit(3), offset(nil)
4 - output([t5.c2], [t5.c3]), filter(nil), sort_keys([t5.c3, ASC]), topn(3)
5 - output([t5.c2], [t5.c3]), filter(nil),
distinct([t5.c2])
6 - output([t5.c2], [t5.c3]), filter(nil), sort_keys([t5.c2, ASC]), Local Order
7 - (#keys=1, [t5.c2]), output([t5.c2], [t5.c3]), filter(nil), dop=1
8 - output([t5.c2], [t5.c3]), filter(nil),
force partition granule, asc.
9 - output([t5.c2], [t5.c3]), filter(nil),
distinct([t5.c2])
10 - output([t5.c2], [t5.c3]), filter(nil),
access([t5.c2], [t5.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 118(end) **************
*************** Case 119 ***************
SQL: select distinct c2 from t5 order by c3;
==================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |100 |441 |
|1 | EXCHANGE OUT DISTR |:EX10001 |100 |432 |
|2 | SORT | |100 |432 |
|3 | MERGE DISTINCT | |100 |305 |
|4 | EXCHANGE IN MERGE SORT DISTR| |100 |238 |
|5 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |229 |
|6 | PX PARTITION ITERATOR | |100 |229 |
|7 | MERGE DISTINCT | |100 |229 |
|8 | TABLE SCAN |t5(idx_t5_c2)|300 |162 |
==================================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c2]), filter(nil), sort_keys([t5.c3, ASC])
1 - output([t5.c2], [t5.c3]), filter(nil), dop=1
2 - output([t5.c2], [t5.c3]), filter(nil), sort_keys([t5.c3, ASC])
3 - output([t5.c2], [t5.c3]), filter(nil),
distinct([t5.c2])
4 - output([t5.c2], [t5.c3]), filter(nil), sort_keys([t5.c2, ASC]), Local Order
5 - (#keys=1, [t5.c2]), output([t5.c2], [t5.c3]), filter(nil), dop=1
6 - output([t5.c2], [t5.c3]), filter(nil),
force partition granule, asc.
7 - output([t5.c2], [t5.c3]), filter(nil),
distinct([t5.c2])
8 - output([t5.c2], [t5.c3]), filter(nil),
access([t5.c2], [t5.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 119(end) **************
*************** Case 120 ***************
SQL: select * from t1 where c1 = 7;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |52 |
|2 | TABLE GET |t1 |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil)
2 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p2),
is_index_back=false,
range_key([t1.c1]), range[7 ; 7],
range_cond([t1.c1 = ?])
*************** Case 120(end) **************
*************** Case 121 ***************
SQL: select * from t1 where c1 = 5 or c1 = 7;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |2 |58 |
|1 | EXCHANGE OUT DISTR |:EX10000|2 |57 |
|2 | PX PARTITION ITERATOR| |2 |57 |
|3 | TABLE GET |t1 |2 |57 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p0, p2),
is_index_back=false,
range_key([t1.c1]), range[5 ; 5], [7 ; 7],
range_cond([t1.c1 = ? OR t1.c1 = ?])
*************** Case 121(end) **************
*************** Case 122 ***************
SQL: select * from t1 where c1 = 5 or c1 = 7 or c1 = 8;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |3 |63 |
|1 | EXCHANGE OUT DISTR |:EX10000|3 |63 |
|2 | PX PARTITION ITERATOR| |3 |63 |
|3 | TABLE GET |t1 |3 |63 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p0, p[2-3]),
is_index_back=false,
range_key([t1.c1]), range[5 ; 5], [7 ; 7], [8 ; 8],
range_cond([(T_OP_OR, t1.c1 = ?, t1.c1 = ?, t1.c1 = ?)])
*************** Case 122(end) **************
*************** Case 123 ***************
SQL: select c1 as alias_name from t1 where c1 = 7;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |52 |
|1 | EXCHANGE OUT REMOTE| |1 |52 |
|2 | TABLE GET |t1 |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil)
2 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p2),
is_index_back=false,
range_key([t1.c1]), range[7 ; 7],
range_cond([t1.c1 = ?])
*************** Case 123(end) **************
*************** Case 124 ***************
SQL: select * from t5;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |300 |247 |
|1 | EXCHANGE OUT DISTR |:EX10000|300 |205 |
|2 | PX PARTITION ITERATOR| |300 |205 |
|3 | TABLE SCAN |t5 |300 |205 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
1 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
force partition granule, asc.
3 - 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
*************** Case 124(end) **************
*************** Case 125 ***************
SQL: select * from t5 where c2 =3;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |300 |247 |
|1 | EXCHANGE OUT DISTR |:EX10000|300 |205 |
|2 | PX PARTITION ITERATOR| |300 |205 |
|3 | TABLE SCAN |t5 |300 |205 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
1 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
force partition granule, asc.
3 - 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(3,MIN ; 3,MAX),
range_cond([t5.c2 = ?])
*************** Case 125(end) **************
*************** Case 126 ***************
SQL: select * from t5 where c2 = 5 and c3 = 7;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |53 |
|2 | TABLE GET |t5 |1 |53 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
1 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
2 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
access([t5.c2], [t5.c3], [t5.c1]), partitions(p2),
is_index_back=false,
range_key([t5.c2], [t5.c3]), range[5,7 ; 5,7],
range_cond([t5.c2 = ?], [t5.c3 = ?])
*************** Case 126(end) **************
*************** Case 127 ***************
SQL: select * from t5 where c2 = 6 and c3 = 7;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |53 |
|2 | TABLE GET |t5 |1 |53 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
1 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
2 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
access([t5.c2], [t5.c3], [t5.c1]), partitions(p2),
is_index_back=false,
range_key([t5.c2], [t5.c3]), range[6,7 ; 6,7],
range_cond([t5.c2 = ?], [t5.c3 = ?])
*************** Case 127(end) **************
*************** Case 128 ***************
SQL: select * from t5 where c2 = 11 and c3 = 8;
==================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------
|0 |TABLE GET|t5 |1 |53 |
==================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil),
access([t5.c2], [t5.c3], [t5.c1]), partitions(p0),
is_index_back=false,
range_key([t5.c2], [t5.c3]), range[11,8 ; 11,8],
range_cond([t5.c2 = ?], [t5.c3 = ?])
*************** Case 128(end) **************
*************** Case 129 ***************
SQL: select c1 from t6;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |300 |206 |
|1 | EXCHANGE OUT DISTR |:EX10000|300 |192 |
|2 | PX PARTITION ITERATOR| |300 |192 |
|3 | TABLE SCAN |t6 |300 |192 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t6.c1]), filter(nil)
1 - output([t6.c1]), filter(nil), dop=1
2 - output([t6.c1]), filter(nil),
force partition granule, asc.
3 - output([t6.c1]), filter(nil),
access([t6.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX)always true
*************** Case 129(end) **************
*************** Case 130 ***************
SQL: select * from t6 where c1 = 3;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |52 |
|2 | TABLE GET |t6 |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t6.c1], [t6.c2]), filter(nil)
1 - output([t6.c1], [t6.c2]), filter(nil)
2 - output([t6.c1], [t6.c2]), filter(nil),
access([t6.c1], [t6.c2]), partitions(p1),
is_index_back=false,
range_key([t6.c1]), range[3 ; 3],
range_cond([t6.c1 = ?])
*************** Case 130(end) **************
*************** Case 131 ***************
SQL: select * from t6 where c1 = 10;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |52 |
|2 | TABLE GET |t6 |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t6.c1], [t6.c2]), filter(nil)
1 - output([t6.c1], [t6.c2]), filter(nil)
2 - output([t6.c1], [t6.c2]), filter(nil),
access([t6.c1], [t6.c2]), partitions(p2),
is_index_back=false,
range_key([t6.c1]), range[10 ; 10],
range_cond([t6.c1 = ?])
*************** Case 131(end) **************
*************** Case 132 ***************
SQL: select t1.c2 + t2.c1 from t1, t2 where t1.c1 = t2.c2 and t1.c1 and t1.c1 = 1 and t2.c1 = 2;
=======================================================
|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 |t2 |1 |53 |
|4 | PX COORDINATOR | |1 |53 |
|5 | EXCHANGE OUT DISTR |:EX20000|1 |53 |
|6 | TABLE GET |t1 |1 |53 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2 + t2.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t2.c1]), filter(nil)
2 - output([t2.c1]), filter(nil), is_single, dop=1
3 - output([t2.c1]), filter([t2.c2 = ?]),
access([t2.c1], [t2.c2]), partitions(p2),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range[2 ; 2],
range_cond([t2.c1 = ?])
4 - output([t1.c2]), filter(nil)
5 - output([t1.c2]), filter(nil), is_single, dop=1
6 - output([t1.c2]), filter([t1.c1]),
access([t1.c1], [t1.c2]), partitions(p1),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range[1 ; 1],
range_cond([t1.c1 = ?])
*************** Case 132(end) **************
*************** Case 133 ***************
SQL: select t1.c1 from t1,t2 where t1.c1+1=t2.c1;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |300 |1290|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1262|
|2 | HASH JOIN | |300 |1262|
|3 | PX PARTITION ITERATOR | |300 |192 |
|4 | TABLE SCAN |t2 |300 |192 |
|5 | EXCHANGE IN DISTR | |500 |354 |
|6 | EXCHANGE OUT DISTR (PKEY)|:EX10000|500 |331 |
|7 | PX PARTITION ITERATOR | |500 |331 |
|8 | TABLE SCAN |t1 |500 |331 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
equal_conds([t1.c1 + ? = t2.c1]), other_conds(nil)
3 - output([t2.c1]), filter(nil),
affinitize, force partition granule, asc.
4 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
5 - output([t1.c1], [t1.c1 + ?]), filter(nil)
6 - (#keys=1, [t1.c1 + ?]), output([t1.c1], [t1.c1 + ?]), filter(nil), dop=1
7 - output([t1.c1], [t1.c1 + ?]), filter(nil),
force partition granule, asc.
8 - output([t1.c1], [t1.c1 + ?]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 133(end) **************
*************** Case 134 ***************
SQL: select t1.c1, t2.c1 from t1, t2 where t1.c1 = 1 and t2.c1 = 1 and t1.c1 = t2.c1;
=====================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |105 |
|1 | EXCHANGE OUT REMOTE | |1 |105 |
|2 | NESTED-LOOP JOIN CARTESIAN| |1 |105 |
|3 | TABLE GET |t1 |1 |52 |
|4 | TABLE GET |t2 |1 |52 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t2.c1]), filter(nil)
1 - output([t1.c1], [t2.c1]), filter(nil)
2 - output([t1.c1], [t2.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p1),
is_index_back=false,
range_key([t1.c1]), range[1 ; 1],
range_cond([t1.c1 = ?], [t1.c1 = ?])
4 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p1),
is_index_back=false,
range_key([t2.c1]), range[1 ; 1],
range_cond([t2.c1 = ?], [t2.c1 = ?])
*************** Case 134(end) **************
*************** Case 135 ***************
SQL: select /*+ leading(t2 t1 t3)*/ * from t1, t2, t3 where t1.c1=t2.c1 and t3.c1 = t2.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |200 |2544|
|1 | EXCHANGE OUT DISTR |:EX10002|200 |2411|
|2 | MERGE JOIN | |200 |2411|
|3 | EXCHANGE IN MERGE SORT DISTR | |300 |1649|
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|300 |1536|
|5 | MERGE JOIN | |300 |1536|
|6 | SORT | |300 |859 |
|7 | PX PARTITION ITERATOR | |300 |205 |
|8 | TABLE SCAN |t2 |300 |205 |
|9 | EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|10| EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |342 |
|11| PX PARTITION ITERATOR | |500 |342 |
|12| TABLE SCAN |t1 |500 |342 |
|13| SORT | |200 |575 |
|14| PX PARTITION ITERATOR | |200 |149 |
|15| TABLE SCAN |t3 |200 |149 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t3.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC])
4 - (#keys=1, [t2.c1]), output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
5 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
9 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
10 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
11 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
12 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
13 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c1, ASC]), local merge sort
14 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
affinitize, force partition granule, asc.
15 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
*************** Case 135(end) **************
*************** Case 136 ***************
SQL: select /*+ leading(t2)*/ * from t1, t2, t3 where t1.c1=t2.c1 and t3.c1 = t2.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |200 |2786|
|1 | EXCHANGE OUT DISTR |:EX10002|200 |2654|
|2 | MERGE JOIN | |200 |2654|
|3 | EXCHANGE IN MERGE SORT DISTR | |200 |1365|
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|200 |1251|
|5 | MERGE JOIN | |200 |1251|
|6 | SORT | |300 |859 |
|7 | PX PARTITION ITERATOR | |300 |205 |
|8 | TABLE SCAN |t2 |300 |205 |
|9 | EXCHANGE IN MERGE SORT DISTR| |200 |205 |
|10| EXCHANGE OUT DISTR (PKEY) |:EX10000|200 |149 |
|11| PX PARTITION ITERATOR | |200 |149 |
|12| TABLE SCAN |t3 |200 |149 |
|13| SORT | |500 |1074|
|14| PX PARTITION ITERATOR | |500 |342 |
|15| TABLE SCAN |t1 |500 |342 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t2.c1, ASC])
4 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
5 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t3.c1 = t2.c1]), other_conds(nil)
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
9 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
10 - (#keys=1, [t3.c1]), output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
11 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
force partition granule, asc.
12 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
13 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
14 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
15 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 136(end) **************
*************** Case 137 ***************
SQL: select /*+ use_merge(t2)*/ * from t1, t2, t3 where t1.c1=t2.c1 and t3.c1 = t2.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |200 |2786|
|1 | EXCHANGE OUT DISTR |:EX10002|200 |2654|
|2 | MERGE JOIN | |200 |2654|
|3 | EXCHANGE IN MERGE SORT DISTR | |200 |1365|
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|200 |1251|
|5 | MERGE JOIN | |200 |1251|
|6 | SORT | |300 |859 |
|7 | PX PARTITION ITERATOR | |300 |205 |
|8 | TABLE SCAN |t2 |300 |205 |
|9 | EXCHANGE IN MERGE SORT DISTR| |200 |205 |
|10| EXCHANGE OUT DISTR (PKEY) |:EX10000|200 |149 |
|11| PX PARTITION ITERATOR | |200 |149 |
|12| TABLE SCAN |t3 |200 |149 |
|13| SORT | |500 |1074|
|14| PX PARTITION ITERATOR | |500 |342 |
|15| TABLE SCAN |t1 |500 |342 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t2.c1, ASC])
4 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
5 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t3.c1 = t2.c1]), other_conds(nil)
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
9 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
10 - (#keys=1, [t3.c1]), output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
11 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
force partition granule, asc.
12 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
13 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
14 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
15 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 137(end) **************
*************** Case 138 ***************
SQL: select /*+ use_merge(t1)*/ * from t1, t2, t3 where t1.c1=t2.c1 and t3.c1 = t2.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |200 |2786|
|1 | EXCHANGE OUT DISTR |:EX10002|200 |2654|
|2 | MERGE JOIN | |200 |2654|
|3 | EXCHANGE IN MERGE SORT DISTR | |200 |1365|
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|200 |1251|
|5 | MERGE JOIN | |200 |1251|
|6 | SORT | |300 |859 |
|7 | PX PARTITION ITERATOR | |300 |205 |
|8 | TABLE SCAN |t2 |300 |205 |
|9 | EXCHANGE IN MERGE SORT DISTR| |200 |205 |
|10| EXCHANGE OUT DISTR (PKEY) |:EX10000|200 |149 |
|11| PX PARTITION ITERATOR | |200 |149 |
|12| TABLE SCAN |t3 |200 |149 |
|13| SORT | |500 |1074|
|14| PX PARTITION ITERATOR | |500 |342 |
|15| TABLE SCAN |t1 |500 |342 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t2.c1, ASC])
4 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
5 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t3.c1 = t2.c1]), other_conds(nil)
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
9 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
10 - (#keys=1, [t3.c1]), output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
11 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
force partition granule, asc.
12 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
13 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
14 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
15 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 138(end) **************
*************** Case 139 ***************
SQL: select /*+ use_merge(t2 t3)*/ * from t1, t2, t3 where t1.c1=t2.c1 and t3.c1 = t2.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |200 |2786|
|1 | EXCHANGE OUT DISTR |:EX10002|200 |2654|
|2 | MERGE JOIN | |200 |2654|
|3 | EXCHANGE IN MERGE SORT DISTR | |200 |1365|
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|200 |1251|
|5 | MERGE JOIN | |200 |1251|
|6 | SORT | |300 |859 |
|7 | PX PARTITION ITERATOR | |300 |205 |
|8 | TABLE SCAN |t2 |300 |205 |
|9 | EXCHANGE IN MERGE SORT DISTR| |200 |205 |
|10| EXCHANGE OUT DISTR (PKEY) |:EX10000|200 |149 |
|11| PX PARTITION ITERATOR | |200 |149 |
|12| TABLE SCAN |t3 |200 |149 |
|13| SORT | |500 |1074|
|14| PX PARTITION ITERATOR | |500 |342 |
|15| TABLE SCAN |t1 |500 |342 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t2.c1, ASC])
4 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
5 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t3.c1 = t2.c1]), other_conds(nil)
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
9 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
10 - (#keys=1, [t3.c1]), output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
11 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
force partition granule, asc.
12 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
13 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
14 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
15 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 139(end) **************
*************** Case 140 ***************
SQL: select /*+ use_nl(t2 t3)*/ * from t1, t2, t3 where t1.c1=t2.c1 and t3.c1 = t2.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |200 |2544|
|1 | EXCHANGE OUT DISTR |:EX10002|200 |2411|
|2 | MERGE JOIN | |200 |2411|
|3 | SORT | |200 |575 |
|4 | PX PARTITION ITERATOR | |200 |149 |
|5 | TABLE SCAN |t3 |200 |149 |
|6 | EXCHANGE IN MERGE SORT DISTR | |300 |1649|
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10001|300 |1536|
|8 | MERGE JOIN | |300 |1536|
|9 | SORT | |300 |859 |
|10| PX PARTITION ITERATOR | |300 |205 |
|11| TABLE SCAN |t2 |300 |205 |
|12| EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|13| EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |342 |
|14| PX PARTITION ITERATOR | |500 |342 |
|15| TABLE SCAN |t1 |500 |342 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t3.c1 = t2.c1]), other_conds(nil)
3 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c1, ASC]), local merge sort
4 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
6 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC])
7 - (#keys=1, [t2.c1]), output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
8 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
10 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
11 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
12 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
13 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
14 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
15 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 140(end) **************
*************** Case 141 ***************
SQL: select /*+ use_merge(t2), use_nl(t3)*/ * from t1, t2, t3 where t1.c1=t2.c1 and t3.c1 = t2.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |200 |2786|
|1 | EXCHANGE OUT DISTR |:EX10002|200 |2654|
|2 | MERGE JOIN | |200 |2654|
|3 | EXCHANGE IN MERGE SORT DISTR | |200 |1365|
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|200 |1251|
|5 | MERGE JOIN | |200 |1251|
|6 | EXCHANGE IN MERGE SORT DISTR| |200 |205 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|200 |149 |
|8 | PX PARTITION ITERATOR | |200 |149 |
|9 | TABLE SCAN |t3 |200 |149 |
|10| SORT | |300 |859 |
|11| PX PARTITION ITERATOR | |300 |205 |
|12| TABLE SCAN |t2 |300 |205 |
|13| SORT | |500 |1074|
|14| PX PARTITION ITERATOR | |500 |342 |
|15| TABLE SCAN |t1 |500 |342 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t2.c1, ASC])
4 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
5 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t3.c1 = t2.c1]), other_conds(nil)
6 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
7 - (#keys=1, [t3.c1]), output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
8 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
force partition granule, asc.
9 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
10 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
11 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
12 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
13 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
14 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
15 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 141(end) **************
*************** Case 142 ***************
SQL: select /*+ ordered, use_merge(t2), use_nl(t3)*/ * from t1, t2, t3 where t1.c1=t2.c1 and t3.c1 = t2.c1;
================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
----------------------------------------------------------------
|0 |PX COORDINATOR | |200 |12802|
|1 | EXCHANGE OUT DISTR |:EX10002|200 |12670|
|2 | NESTED-LOOP JOIN | |200 |12670|
|3 | EXCHANGE IN DISTR | |300 |1649 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|300 |1536 |
|5 | MERGE JOIN | |300 |1536 |
|6 | EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |342 |
|8 | PX PARTITION ITERATOR | |500 |342 |
|9 | TABLE SCAN |t1 |500 |342 |
|10| SORT | |300 |859 |
|11| PX PARTITION ITERATOR | |300 |205 |
|12| TABLE SCAN |t2 |300 |205 |
|13| PX PARTITION ITERATOR | |1 |36 |
|14| TABLE GET |t3 |1 |36 |
================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
conds(nil), nl_params_([t2.c1]), batch_join=false
3 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [PARTITION_ID]), filter(nil)
4 - (#keys=1, [t2.c1]), output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [PARTITION_ID]), filter(nil), dop=1
5 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
6 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
7 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
8 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
9 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
10 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
11 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
12 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
13 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
affinitize, force partition granule, asc.
14 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX),
range_cond([t3.c1 = ?])
*************** Case 142(end) **************
*************** Case 143 ***************
SQL: select /*+ use_nl(t2), use_merge(t3)*/ * from t1 join t2 on t1.c1 = t2.c1 join t3 on t2.c1 = t3.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |200 |2786|
|1 | EXCHANGE OUT DISTR |:EX10002|200 |2654|
|2 | MERGE JOIN | |200 |2654|
|3 | EXCHANGE IN MERGE SORT DISTR | |200 |1365|
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|200 |1251|
|5 | MERGE JOIN | |200 |1251|
|6 | SORT | |300 |859 |
|7 | PX PARTITION ITERATOR | |300 |205 |
|8 | TABLE SCAN |t2 |300 |205 |
|9 | EXCHANGE IN MERGE SORT DISTR| |200 |205 |
|10| EXCHANGE OUT DISTR (PKEY) |:EX10000|200 |149 |
|11| PX PARTITION ITERATOR | |200 |149 |
|12| TABLE SCAN |t3 |200 |149 |
|13| SORT | |500 |1074|
|14| PX PARTITION ITERATOR | |500 |342 |
|15| TABLE SCAN |t1 |500 |342 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t2.c1, ASC])
4 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
5 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t2.c1 = t3.c1]), other_conds(nil)
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
9 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
10 - (#keys=1, [t3.c1]), output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
11 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
force partition granule, asc.
12 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
13 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
14 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
15 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 143(end) **************
*************** Case 144 ***************
SQL: select /*+ use_nl(t2), use_merge(t3)*/ * from t1, t2, t3 where t1.c1=t2.c1 and t3.c1 = t2.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |200 |2786|
|1 | EXCHANGE OUT DISTR |:EX10002|200 |2654|
|2 | MERGE JOIN | |200 |2654|
|3 | EXCHANGE IN MERGE SORT DISTR | |200 |1365|
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|200 |1251|
|5 | MERGE JOIN | |200 |1251|
|6 | SORT | |300 |859 |
|7 | PX PARTITION ITERATOR | |300 |205 |
|8 | TABLE SCAN |t2 |300 |205 |
|9 | EXCHANGE IN MERGE SORT DISTR| |200 |205 |
|10| EXCHANGE OUT DISTR (PKEY) |:EX10000|200 |149 |
|11| PX PARTITION ITERATOR | |200 |149 |
|12| TABLE SCAN |t3 |200 |149 |
|13| SORT | |500 |1074|
|14| PX PARTITION ITERATOR | |500 |342 |
|15| TABLE SCAN |t1 |500 |342 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t2.c1, ASC])
4 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
5 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t3.c1 = t2.c1]), other_conds(nil)
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
9 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
10 - (#keys=1, [t3.c1]), output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
11 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
force partition granule, asc.
12 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
13 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
14 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
15 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 144(end) **************
*************** Case 145 ***************
SQL: select /*+ ordered, use_nl(t2), use_merge(t3)*/ * from t1, t2, t3 where t1.c1=t2.c1 and t3.c1 = t2.c1;
================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
----------------------------------------------------------------
|0 |PX COORDINATOR | |200 |20976|
|1 | EXCHANGE OUT DISTR |:EX10002|200 |20844|
|2 | MERGE JOIN | |200 |20844|
|3 | SORT | |300 |20082|
|4 | EXCHANGE IN DISTR | |300 |19311|
|5 | EXCHANGE OUT DISTR (PKEY) |:EX10001|300 |19198|
|6 | MATERIAL | |300 |19198|
|7 | NESTED-LOOP JOIN | |300 |18757|
|8 | EXCHANGE IN DISTR | |500 |389 |
|9 | EXCHANGE OUT DISTR (PKEY)|:EX10000|500 |342 |
|10| PX PARTITION ITERATOR | |500 |342 |
|11| TABLE SCAN |t1 |500 |342 |
|12| PX PARTITION ITERATOR | |1 |36 |
|13| TABLE GET |t2 |1 |36 |
|14| SORT | |200 |575 |
|15| PX PARTITION ITERATOR | |200 |149 |
|16| TABLE SCAN |t3 |200 |149 |
================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t3.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC])
4 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
5 - (#keys=1, [t2.c1]), output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
6 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
7 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
conds(nil), nl_params_([t1.c1]), batch_join=false
8 - output([t1.c1], [t1.c2], [PARTITION_ID]), filter(nil)
9 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2], [PARTITION_ID]), filter(nil), dop=1
10 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
11 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
12 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
13 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX),
range_cond([? = t2.c1])
14 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c1, ASC]), local merge sort
15 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
affinitize, force partition granule, asc.
16 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
*************** Case 145(end) **************
*************** Case 146 ***************
SQL: select /*+ index(t5 idx_t5_c2) */ c1, c2 from t5 where c1 = 2 or c2 =5;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |PX COORDINATOR | |6 |1868|
|1 | EXCHANGE OUT DISTR |:EX10000 |6 |1867|
|2 | PX PARTITION ITERATOR| |6 |1867|
|3 | TABLE SCAN |t5(idx_t5_c2)|6 |1867|
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2]), filter(nil)
1 - output([t5.c2], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c1]), filter(nil),
force partition granule, asc.
3 - output([t5.c2], [t5.c1]), filter([t5.c1 = ? OR t5.c2 = ?]),
access([t5.c2], [t5.c1]), partitions(p[0-2]),
is_index_back=true, filter_before_indexback[false],
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 146(end) **************
*************** Case 147 ***************
SQL: select /*+ index(t5 idx_t5_c3) */ c1, c2 from t5 where c1 = 2 or c2 =5;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |PX COORDINATOR | |6 |1868|
|1 | EXCHANGE OUT DISTR |:EX10000 |6 |1867|
|2 | PX PARTITION ITERATOR| |6 |1867|
|3 | TABLE SCAN |t5(idx_t5_c3)|6 |1867|
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2]), filter(nil)
1 - output([t5.c2], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c1]), filter(nil),
force partition granule, asc.
3 - output([t5.c2], [t5.c1]), filter([t5.c1 = ? OR t5.c2 = ?]),
access([t5.c2], [t5.c1]), partitions(p[0-2]),
is_index_back=true, filter_before_indexback[false],
range_key([t5.c3], [t5.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 147(end) **************
*************** Case 148 ***************
SQL: select /*+ index(t5 primary) */ c1, c2 from t5 where c1 = 2 or c2 =5;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |6 |231 |
|1 | EXCHANGE OUT DISTR |:EX10000|6 |230 |
|2 | PX PARTITION ITERATOR| |6 |230 |
|3 | TABLE SCAN |t5 |6 |230 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2]), filter(nil)
1 - output([t5.c2], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c1]), filter(nil),
force partition granule, asc.
3 - output([t5.c2], [t5.c1]), filter([t5.c1 = ? OR t5.c2 = ?]),
access([t5.c2], [t5.c1]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 148(end) **************
*************** Case 149 ***************
SQL: select /*+ index(t5 idx_t5_c2) */ * from t5;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |PX COORDINATOR | |300 |1885|
|1 | EXCHANGE OUT DISTR |:EX10000 |300 |1842|
|2 | PX PARTITION ITERATOR| |300 |1842|
|3 | TABLE SCAN |t5(idx_t5_c2)|300 |1842|
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
1 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
force partition granule, asc.
3 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
access([t5.c2], [t5.c3], [t5.c1]), partitions(p[0-2]),
is_index_back=true,
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 149(end) **************
*************** Case 150 ***************
SQL: select /*+ full(t5) */ c1, c2 from t5 where c1 = 2 or c2 =5;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |6 |231 |
|1 | EXCHANGE OUT DISTR |:EX10000|6 |230 |
|2 | PX PARTITION ITERATOR| |6 |230 |
|3 | TABLE SCAN |t5 |6 |230 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2]), filter(nil)
1 - output([t5.c2], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c1]), filter(nil),
force partition granule, asc.
3 - output([t5.c2], [t5.c1]), filter([t5.c1 = ? OR t5.c2 = ?]),
access([t5.c2], [t5.c1]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 150(end) **************
*************** Case 151 ***************
SQL: select c1, c2 from t5 use index for join (idx_t5_c2) where c1 =2 or c2 = 5;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |PX COORDINATOR | |6 |1868|
|1 | EXCHANGE OUT DISTR |:EX10000 |6 |1867|
|2 | PX PARTITION ITERATOR| |6 |1867|
|3 | TABLE SCAN |t5(idx_t5_c2)|6 |1867|
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2]), filter(nil)
1 - output([t5.c2], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c1]), filter(nil),
force partition granule, asc.
3 - output([t5.c2], [t5.c1]), filter([t5.c1 = ? OR t5.c2 = ?]),
access([t5.c2], [t5.c1]), partitions(p[0-2]),
is_index_back=true, filter_before_indexback[false],
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 151(end) **************
*************** Case 152 ***************
SQL: select c1, c2 from t5 use index for join (idx_t5_c2, primary) where c1 =2 or c2 = 5;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |6 |231 |
|1 | EXCHANGE OUT DISTR |:EX10000|6 |230 |
|2 | PX PARTITION ITERATOR| |6 |230 |
|3 | TABLE SCAN |t5 |6 |230 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2]), filter(nil)
1 - output([t5.c2], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c1]), filter(nil),
force partition granule, asc.
3 - output([t5.c2], [t5.c1]), filter([t5.c1 = ? OR t5.c2 = ?]),
access([t5.c2], [t5.c1]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 152(end) **************
*************** Case 153 ***************
SQL: select c1, c2 from t5 use index for order by (idx_t5_c2) where c1 =2 or c2 = 5;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |PX COORDINATOR | |6 |1868|
|1 | EXCHANGE OUT DISTR |:EX10000 |6 |1867|
|2 | PX PARTITION ITERATOR| |6 |1867|
|3 | TABLE SCAN |t5(idx_t5_c2)|6 |1867|
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2]), filter(nil)
1 - output([t5.c2], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c1]), filter(nil),
force partition granule, asc.
3 - output([t5.c2], [t5.c1]), filter([t5.c1 = ? OR t5.c2 = ?]),
access([t5.c2], [t5.c1]), partitions(p[0-2]),
is_index_back=true, filter_before_indexback[false],
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 153(end) **************
*************** Case 154 ***************
SQL: select c1, c2 from t5 force index for group by (idx_t5_c2) where c1 =2 or c2 = 5;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |PX COORDINATOR | |6 |1868|
|1 | EXCHANGE OUT DISTR |:EX10000 |6 |1867|
|2 | PX PARTITION ITERATOR| |6 |1867|
|3 | TABLE SCAN |t5(idx_t5_c2)|6 |1867|
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2]), filter(nil)
1 - output([t5.c2], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c1]), filter(nil),
force partition granule, asc.
3 - output([t5.c2], [t5.c1]), filter([t5.c1 = ? OR t5.c2 = ?]),
access([t5.c2], [t5.c1]), partitions(p[0-2]),
is_index_back=true, filter_before_indexback[false],
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 154(end) **************
*************** Case 155 ***************
SQL: select c1, c2 from t5 use index (primary) where c1 =2 or c2 = 5;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |6 |231 |
|1 | EXCHANGE OUT DISTR |:EX10000|6 |230 |
|2 | PX PARTITION ITERATOR| |6 |230 |
|3 | TABLE SCAN |t5 |6 |230 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2]), filter(nil)
1 - output([t5.c2], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c1]), filter(nil),
force partition granule, asc.
3 - output([t5.c2], [t5.c1]), filter([t5.c1 = ? OR t5.c2 = ?]),
access([t5.c2], [t5.c1]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 155(end) **************
*************** Case 156 ***************
SQL: select c1, c2 from t1 ignore index (idx_t1_c2) where c1 =2 or c2 = 5;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |6 |384 |
|1 | EXCHANGE OUT DISTR |:EX10000|6 |384 |
|2 | PX PARTITION ITERATOR| |6 |384 |
|3 | TABLE SCAN |t1 |6 |384 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter([t1.c1 = ? OR t1.c2 = ?]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 156(end) **************
*************** Case 157 ***************
SQL: select c1, c2 from t5 ignore index (idx_t5_c2) where c1 =2 or c2 = 5;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |6 |231 |
|1 | EXCHANGE OUT DISTR |:EX10000|6 |230 |
|2 | PX PARTITION ITERATOR| |6 |230 |
|3 | TABLE SCAN |t5 |6 |230 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2]), filter(nil)
1 - output([t5.c2], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c1]), filter(nil),
force partition granule, asc.
3 - output([t5.c2], [t5.c1]), filter([t5.c1 = ? OR t5.c2 = ?]),
access([t5.c2], [t5.c1]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 157(end) **************
*************** Case 158 ***************
SQL: select c1, c2 from t5 ignore index (idx_t5_c2, idx_t5_c3) where c1 =2 or c2 = 5;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |6 |231 |
|1 | EXCHANGE OUT DISTR |:EX10000|6 |230 |
|2 | PX PARTITION ITERATOR| |6 |230 |
|3 | TABLE SCAN |t5 |6 |230 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2]), filter(nil)
1 - output([t5.c2], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c1]), filter(nil),
force partition granule, asc.
3 - output([t5.c2], [t5.c1]), filter([t5.c1 = ? OR t5.c2 = ?]),
access([t5.c2], [t5.c1]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 158(end) **************
*************** Case 159 ***************
SQL: select c1, c2 from t5 ignore index (idx_t5_c3, primary) where c1 =2 or c2 = 5;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |PX COORDINATOR | |6 |1868|
|1 | EXCHANGE OUT DISTR |:EX10000 |6 |1867|
|2 | PX PARTITION ITERATOR| |6 |1867|
|3 | TABLE SCAN |t5(idx_t5_c2)|6 |1867|
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2]), filter(nil)
1 - output([t5.c2], [t5.c1]), filter(nil), dop=1
2 - output([t5.c2], [t5.c1]), filter(nil),
force partition granule, asc.
3 - output([t5.c2], [t5.c1]), filter([t5.c1 = ? OR t5.c2 = ?]),
access([t5.c2], [t5.c1]), partitions(p[0-2]),
is_index_back=true, filter_before_indexback[false],
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 159(end) **************
*************** Case 160 ***************
SQL: select max(c2) from t1 where c1 = 2;
==============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |53 |
|2 | SCALAR GROUP BY | |1 |53 |
|3 | SUBPLAN SCAN |VIEW1|1 |53 |
|4 | TABLE GET |t1 |1 |53 |
==============================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_MAX(VIEW1.c2)]), filter(nil)
1 - output([T_FUN_MAX(VIEW1.c2)]), filter(nil)
2 - output([T_FUN_MAX(VIEW1.c2)]), filter(nil),
group(nil), agg_func([T_FUN_MAX(VIEW1.c2)])
3 - output([VIEW1.c2]), filter(nil),
access([VIEW1.c2])
4 - output([t1.c2]), filter([(T_OP_IS_NOT, t1.c2, NULL, 0)]),
access([t1.c2]), partitions(p2),
limit(1), offset(nil),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range[2 ; 2],
range_cond([t1.c1 = ?])
*************** Case 160(end) **************
*************** Case 161 ***************
SQL: select @@sql_mode, c1 from t1 limit 1;
======================================================
|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), 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,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 161(end) **************
*************** Case 162 ***************
SQL: select 1+2 from dual;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |EXPRESSION| |1 |1 |
===================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter(nil)
values({?})
*************** Case 162(end) **************
*************** Case 163 ***************
SQL: select 1 + 2 from dual where 1 > 2;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |EXPRESSION| |1 |1 |
===================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter([0])
values({?})
*************** Case 163(end) **************
*************** Case 164 ***************
SQL: select c1 from t1 where c1 = 0 and c2 = 2;
==================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------
|0 |TABLE GET|t1 |1 |53 |
==================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter([t1.c2 = ?]),
access([t1.c1], [t1.c2]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range[0 ; 0],
range_cond([t1.c1 = ?])
*************** Case 164(end) **************
*************** Case 165 ***************
SQL: select /*+ ordered, use_merge(t3) */ * from t2, t3 where t2.c2 = t3.c1 and t2.c1 = 0 and t3.c1 = 0;
===================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |1 |53 |
|1 | TABLE GET |t2 |1 |53 |
|2 | TABLE GET |t3 |1 |53 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
1 - output([t2.c1], [t2.c2], [t2.c3]), filter([t2.c2 = ?]),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range[0 ; 0],
range_cond([t2.c1 = ?])
2 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p0),
is_index_back=false,
range_key([t3.c1]), range[0 ; 0],
range_cond([t3.c1 = ?])
*************** Case 165(end) **************
*************** Case 166 ***************
SQL: select /*+ use_merge(t3) */ * from t2, t3 where t2.c1 = t3.c2 and t2.c1 = 0 and t3.c1 = 0;
===================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |1 |53 |
|1 | TABLE GET |t3 |1 |53 |
|2 | TABLE GET |t2 |1 |53 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
1 - output([t3.c1], [t3.c2], [t3.c3]), filter([t3.c2 = ?]),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t3.c1]), range[0 ; 0],
range_cond([t3.c1 = ?])
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p0),
is_index_back=false,
range_key([t2.c1]), range[0 ; 0],
range_cond([t2.c1 = ?])
*************** Case 166(end) **************
*************** Case 167 ***************
SQL: select c1 as c from t1 partition (p4, p3) as t where c1 = 3;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |52 |
|1 | EXCHANGE OUT REMOTE| |1 |52 |
|2 | TABLE GET |t |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t.c1]), filter(nil)
1 - output([t.c1]), filter(nil)
2 - output([t.c1]), filter(nil),
access([t.c1]), partitions(p3),
is_index_back=false,
range_key([t.c1]), range[3 ; 3],
range_cond([t.c1 = ?])
*************** Case 167(end) **************
*************** Case 168 ***************
SQL: select c1 from t1 partition (p1) where c1 = 3;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |52 |
|1 | EXCHANGE OUT REMOTE| |1 |52 |
|2 | TABLE GET |t1 |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil)
2 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p1),
is_index_back=false,
range_key([t1.c1]), range[3 ; 3],
range_cond([t1.c1 = ?])
*************** Case 168(end) **************
*************** Case 169 ***************
SQL: select count(*) from t1 partition(p1);
==============================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
----------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |78755|
|1 | EXCHANGE OUT REMOTE| |1 |78755|
|2 | SCALAR GROUP BY | |1 |78755|
|3 | TABLE SCAN |t1 |100000 |59654|
==============================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(*)]), filter(nil)
1 - output([T_FUN_COUNT(*)]), filter(nil)
2 - output([T_FUN_COUNT(*)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)])
3 - output([1]), filter(nil),
access([t1.c1]), partitions(p1),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 169(end) **************
*************** Case 170 ***************
SQL: select * from t1 partition(p1) join t2 partition(p2) on t1.c1 = t2.c1;
===================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
---------------------------------------------------
|0 |MERGE JOIN | |100001 |250702|
|1 | PX COORDINATOR | |100000 |71326 |
|2 | EXCHANGE OUT DISTR|:EX10000|100000 |61860 |
|3 | TABLE SCAN |t1 |100000 |61860 |
|4 | PX COORDINATOR | |100000 |92464 |
|5 | EXCHANGE OUT DISTR|:EX20000|100000 |64066 |
|6 | TABLE SCAN |t2 |100000 |64066 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
1 - output([t1.c1], [t1.c2]), filter(nil)
2 - output([t1.c1], [t1.c2]), filter(nil), is_single, dop=1
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p1),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), is_single, dop=1
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p2),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 170(end) **************
*************** Case 171 ***************
SQL: explain select * from t1;
=================================
|ID|OPERATOR|NAME|EST. ROWS|COST|
---------------------------------
|0 |VALUES | |0 |0 |
=================================
Outputs & filters:
-------------------------------------
0 - output(nil), filter(nil)
*************** Case 171(end) **************
*************** Case 172 ***************
SQL: explain format = json select * from t1;
=================================
|ID|OPERATOR|NAME|EST. ROWS|COST|
---------------------------------
|0 |VALUES | |0 |0 |
=================================
Outputs & filters:
-------------------------------------
0 - output(nil), filter(nil)
*************** Case 172(end) **************
*************** Case 173 ***************
SQL: select sum(c1) from t1 where c1 = 3 group by c2;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |52 |
|1 | EXCHANGE OUT REMOTE| |1 |52 |
|2 | TABLE GET |t1 |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([cast(t1.c1, DECIMAL(11, 0))]), filter(nil)
1 - output([cast(t1.c1, DECIMAL(11, 0))]), filter(nil)
2 - output([cast(t1.c1, DECIMAL(11, 0))]), filter(nil),
access([t1.c1]), partitions(p3),
is_index_back=false,
range_key([t1.c1]), range[3 ; 3],
range_cond([t1.c1 = ?])
*************** Case 173(end) **************
*************** Case 174 ***************
SQL: select sum(1) as c from t1 where c1 = 3 group by c2 having c2 = 5 order by c1 limit 1;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |53 |
|2 | TABLE GET |t1 |1 |53 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter(nil)
1 - output([?]), filter(nil)
2 - output([?]), filter([t1.c2 = ?]),
access([t1.c2]), partitions(p3),
limit(1), offset(nil),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range[3 ; 3],
range_cond([t1.c1 = ?])
*************** Case 174(end) **************
*************** Case 175 ***************
SQL: select sum(t7.c2) from t7, t8 where t7.c1 = t8.c1 and t7.c2 = 4 group by t7.c1 order by t7.c1 limit 1;
==========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------------
|0 |LIMIT | |1 |144 |
|1 | NESTED-LOOP JOIN| |1 |144 |
|2 | TABLE SCAN |t7 |1 |107 |
|3 | TABLE GET |t8 |1 |36 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([cast(t7.c2, DECIMAL(11, 0))]), filter(nil), limit(1), offset(nil)
1 - output([t7.c2]), filter(nil),
conds(nil), nl_params_([t7.c1]), batch_join=true
2 - output([t7.c1], [t7.c2]), filter([t7.c2 = ?]),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX),
range_cond([? = t8.c1])
*************** Case 175(end) **************
*************** Case 176 ***************
SQL: select c1, sum(c1+c2) from t2_no_part where c3 > 100 group by c2, c1;
=========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------
|0 |TABLE SCAN|t2_no_part|1 |109 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t2_no_part.c1], [cast(t2_no_part.c1 + t2_no_part.c2, DECIMAL(12, 0))]), filter([t2_no_part.c3 > ?]),
access([t2_no_part.c3], [t2_no_part.c1], [t2_no_part.c2]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t2_no_part.c1]), range(MIN ; MAX)always true
*************** Case 176(end) **************
*************** Case 177 ***************
SQL: select * from t2_no_part X, t2_no_part Y where X.c1 = Y.c1;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|X |100 |92 |
===================================
Outputs & filters:
-------------------------------------
0 - output([X.c1], [X.c2], [X.c3], [X.c1], [X.c2], [X.c3]), filter(nil),
access([X.c1], [X.c2], [X.c3]), partitions(p0),
is_index_back=false,
range_key([X.c1]), range(MIN ; MAX)always true
*************** Case 177(end) **************
*************** Case 178 ***************
SQL: select count(*) from t1 group by c1 having c1 = 2;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |52 |
|1 | EXCHANGE OUT REMOTE| |1 |52 |
|2 | TABLE GET |t1 |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([1]), filter(nil)
1 - output([1]), filter(nil)
2 - output([1]), filter(nil),
access([t1.c1]), partitions(p2),
is_index_back=false,
range_key([t1.c1]), range[2 ; 2],
range_cond([t1.c1 = ?])
*************** Case 178(end) **************
*************** Case 179 ***************
SQL: select sum(c2) from t1 group by c1 having c1 = 2;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |52 |
|2 | TABLE GET |t1 |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([cast(t1.c2, DECIMAL(11, 0))]), filter(nil)
1 - output([cast(t1.c2, DECIMAL(11, 0))]), filter(nil)
2 - output([cast(t1.c2, DECIMAL(11, 0))]), filter(nil),
access([t1.c2]), partitions(p2),
is_index_back=false,
range_key([t1.c1]), range[2 ; 2],
range_cond([t1.c1 = ?])
*************** Case 179(end) **************
*************** Case 180 ***************
SQL: select sum(c1) + count(c2) from t2_no_part;
==============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------
|0 |SCALAR GROUP BY| |1 |115 |
|1 | TABLE SCAN |t2_no_part|100 |90 |
==============================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(t2_no_part.c1) + T_FUN_COUNT(t2_no_part.c2)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(t2_no_part.c1)], [T_FUN_COUNT(t2_no_part.c2)])
1 - output([t2_no_part.c1], [t2_no_part.c2]), filter(nil),
access([t2_no_part.c1], [t2_no_part.c2]), partitions(p0),
is_index_back=false,
range_key([t2_no_part.c1]), range(MIN ; MAX)always true
*************** Case 180(end) **************
*************** Case 181 ***************
SQL: select sum(c1) from t2_no_part group by c2 order by sum(c1);
=============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------
|0 |SORT | |100 |383 |
|1 | HASH GROUP BY| |100 |200 |
|2 | TABLE SCAN |t2_no_part|100 |90 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(t2_no_part.c1)]), filter(nil), sort_keys([T_FUN_SUM(t2_no_part.c1), ASC])
1 - output([T_FUN_SUM(t2_no_part.c1)]), filter(nil),
group([t2_no_part.c2]), agg_func([T_FUN_SUM(t2_no_part.c1)])
2 - output([t2_no_part.c1], [t2_no_part.c2]), filter(nil),
access([t2_no_part.c1], [t2_no_part.c2]), partitions(p0),
is_index_back=false,
range_key([t2_no_part.c1]), range(MIN ; MAX)always true
*************** Case 181(end) **************
*************** Case 182 ***************
SQL: select * from t4 where c2 = 3 and c3 = 4;
===============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------
|0 |TABLE SCAN|t4(idx_t4_c2_c3)|100 |92 |
===============================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c2], [t4.c3], [t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(3,4,MIN ; 3,4,MAX),
range_cond([t4.c2 = ?], [t4.c3 = ?])
*************** Case 182(end) **************
*************** Case 183 ***************
SQL: select * from t4 where c1 = 2 and c2 = 3;
==================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------
|0 |TABLE GET|t4 |1 |53 |
==================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range[2,3 ; 2,3],
range_cond([t4.c1 = ?], [t4.c2 = ?])
*************** Case 183(end) **************
*************** Case 184 ***************
SQL: select * from t4, t7 where t4.c1 + 2 + 2 = t7.c1;
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |HASH JOIN | |100 |416 |
|1 | TABLE SCAN|t7 |100 |90 |
|2 | TABLE SCAN|t4 |100 |92 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2]), filter(nil),
equal_conds([t4.c1 + ? + ? = t7.c1]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t4.c1], [t4.c2], [t4.c3], [t4.c1 + ? + ?]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 184(end) **************
*************** Case 185 ***************
SQL: select sum(c1 + 1) from t4 group by c1, c2;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|t4(idx_t4_c2)|100 |54 |
============================================
Outputs & filters:
-------------------------------------
0 - output([cast(t4.c1 + ?, DECIMAL(12, 0))]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 185(end) **************
*************** Case 186 ***************
SQL: select /*+ frozen_version(10) */ * from t1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
hint(frozen_version:"10-0-0", read_consistency:1),
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 186(end) **************
*************** Case 187 ***************
SQL: select /*+index(t4 idx_t4_c2_c3)*/ c2, c3 from t4 where c2 = 3 and c3 = 4 and c1 = 5;
==============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------
|0 |TABLE GET|t4(idx_t4_c2_c3)|1 |53 |
==============================================
Outputs & filters:
-------------------------------------
0 - output([t4.c2], [t4.c3]), filter(nil),
access([t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range[3,4,5 ; 3,4,5],
range_cond([t4.c2 = ?], [t4.c3 = ?], [t4.c1 = ?])
*************** Case 187(end) **************
*************** Case 188 ***************
SQL: select * from t4 where c1 = 1 and c2 > 5 and c3 > 8;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t4 |61 |109 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter([t4.c3 > ?]),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t4.c1], [t4.c2]), range(1,5 ; 1,MAX),
range_cond([t4.c1 = ?], [t4.c2 > ?])
*************** Case 188(end) **************
*************** Case 189 ***************
SQL: select * from t4 where c1 in (1) and c2 in (1, 2, 3, 4, 5);
==================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------
|0 |TABLE GET|t4 |5 |73 |
==================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range[1,1 ; 1,1], [1,2 ; 1,2], [1,3 ; 1,3], [1,4 ; 1,4], [1,5 ; 1,5],
range_cond([t4.c1 = ?], [t4.c2 IN (?, ?, ?, ?, ?)])
*************** Case 189(end) **************
*************** Case 190 ***************
SQL: select * from t1 where c1 in (c1, 2, 3, 4);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |431 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |384 |
|2 | PX PARTITION ITERATOR| |500 |384 |
|3 | TABLE SCAN |t1 |500 |384 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter([t1.c1 IN (t1.c1, ?, ?, ?)]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 190(end) **************
*************** Case 191 ***************
SQL: select * from t1 where (1+ 1) in (2);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 191(end) **************
*************** Case 192 ***************
SQL: select * from t1 where 1 in (c1);
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |52 |
|2 | TABLE GET |t1 |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil)
2 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p1),
is_index_back=false,
range_key([t1.c1]), range[1 ; 1],
range_cond([? = t1.c1])
*************** Case 192(end) **************
*************** Case 193 ***************
SQL: select * from t1 where 1 in (c1, c2);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |6 |384 |
|1 | EXCHANGE OUT DISTR |:EX10000|6 |384 |
|2 | PX PARTITION ITERATOR| |6 |384 |
|3 | TABLE SCAN |t1 |6 |384 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter([? IN (t1.c1, t1.c2)]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 193(end) **************
*************** Case 194 ***************
SQL: select * from t1 where c1 = 1 or c2 = 1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |6 |384 |
|1 | EXCHANGE OUT DISTR |:EX10000|6 |384 |
|2 | PX PARTITION ITERATOR| |6 |384 |
|3 | TABLE SCAN |t1 |6 |384 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter([t1.c1 = ? OR t1.c2 = ?]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 194(end) **************
*************** Case 195 ***************
SQL: select * from t1 where (1+ 1) in (1);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([0])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 195(end) **************
*************** Case 196 ***************
SQL: select * from t1 where c1 in (1, 2, 3, 4);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |4 |68 |
|1 | EXCHANGE OUT DISTR |:EX10000|4 |68 |
|2 | PX PARTITION ITERATOR| |4 |68 |
|3 | TABLE GET |t1 |4 |68 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[1-4]),
is_index_back=false,
range_key([t1.c1]), range[1 ; 1], [2 ; 2], [3 ; 3], [4 ; 4],
range_cond([t1.c1 IN (?, ?, ?, ?)])
*************** Case 196(end) **************
*************** Case 197 ***************
SQL: select * from t1 where exists (select * from t2 limit 0);
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |SUBPLAN FILTER | |250 |458 |
|1 | PX COORDINATOR | |500 |389 |
|2 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
|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:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(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.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
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), 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,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 197(end) **************
*************** Case 198 ***************
SQL: select * from t7,t8 where t7.c1=t8.c1 order by t7.c1,t7.c2;
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |MERGE JOIN | |100 |267 |
|1 | TABLE SCAN|t7 |100 |90 |
|2 | TABLE SCAN|t8 |100 |90 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
equal_conds([t7.c1 = t8.c1]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 198(end) **************
*************** Case 199 ***************
SQL: select * from t7,t8 where t7.c1=t8.c2 order by t7.c1,t7.c2;
=====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-------------------------------------
|0 |MERGE JOIN | |100 |394 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | SORT | |100 |217 |
|3 | TABLE SCAN|t8 |100 |90 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
equal_conds([t7.c1 = t8.c2]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1], [t8.c2]), filter(nil), sort_keys([t8.c2, ASC])
3 - output([t8.c2], [t8.c1]), filter(nil),
access([t8.c2], [t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 199(end) **************
*************** Case 200 ***************
SQL: select c1/c2 as v,sum(c1) from t1 group by v order by v;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |1723|
|1 | EXCHANGE OUT DISTR |:EX10001|500 |1676|
|2 | MERGE GROUP BY | |500 |1676|
|3 | SORT | |500 |1497|
|4 | EXCHANGE IN DISTR | |500 |389 |
|5 | EXCHANGE OUT DISTR (HASH)|:EX10000|500 |342 |
|6 | PX PARTITION ITERATOR | |500 |342 |
|7 | TABLE SCAN |t1 |500 |342 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1 / t1.c2], [T_FUN_SUM(t1.c1)]), filter(nil), sort_keys([t1.c1 / t1.c2, ASC])
1 - output([T_FUN_SUM(t1.c1)], [t1.c1 / t1.c2]), filter(nil), dop=1
2 - output([T_FUN_SUM(t1.c1)], [t1.c1 / t1.c2]), filter(nil),
group([t1.c1 / t1.c2]), agg_func([T_FUN_SUM(t1.c1)])
3 - output([t1.c1], [t1.c1 / t1.c2]), filter(nil), sort_keys([t1.c1 / t1.c2, ASC])
4 - output([t1.c1], [t1.c1 / t1.c2]), filter(nil)
5 - (#keys=1, [t1.c1 / t1.c2]), output([t1.c1], [t1.c1 / t1.c2]), filter(nil), dop=1
6 - output([t1.c1], [t1.c1 / t1.c2]), filter(nil),
force partition granule, asc.
7 - output([t1.c1], [t1.c1 / t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 200(end) **************
*************** Case 201 ***************
SQL: select c2 from t1 for update;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2]), filter(nil)
1 - output([t1.c2]), filter(nil), dop=1
2 - output([t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 201(end) **************
*************** Case 202 ***************
SQL: select * from t2 where exists (select * from t6 where t2.c1=t6.c1 limit 1) for update;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1424|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1325|
|2 | MERGE JOIN | |300 |1325|
|3 | SORT | |300 |859 |
|4 | PX PARTITION ITERATOR | |300 |205 |
|5 | TABLE SCAN |t2 |300 |205 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |192 |
|8 | PX PARTITION ITERATOR | |300 |192 |
|9 | TABLE SCAN |t6 |300 |192 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t2.c1 = t6.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
6 - output([t6.c1]), filter(nil), sort_keys([t6.c1, ASC]), Local Order
7 - (#keys=1, [t6.c1]), output([t6.c1]), filter(nil), dop=1
8 - output([t6.c1]), filter(nil),
force partition granule, asc.
9 - output([t6.c1]), filter(nil),
access([t6.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX)always true
*************** Case 202(end) **************
*************** Case 203 ***************
SQL: select case when t4.c1=0 then 'a' else 'b' end from t4 order by c3, c2;
=============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------
|0 |SORT | |100 |183 |
|1 | TABLE SCAN|t4(idx_t4_c3)|100 |92 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([CASE WHEN t4.c1 = ? THEN ? ELSE ? END]), filter(nil), sort_keys([t4.c3, ASC], [t4.c2, ASC]), prefix_pos(1)
1 - output([t4.c1], [t4.c3], [t4.c2]), filter(nil),
access([t4.c1], [t4.c3], [t4.c2]), partitions(p0),
is_index_back=false,
range_key([t4.c3], [t4.c1], [t4.c2]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 203(end) **************
*************** Case 204 ***************
SQL: select case when t4.c1=0 then 'a' else 'b' end from t4, t9 where t4.c1 = t9.c1;
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |MERGE JOIN | |100 |265 |
|1 | TABLE SCAN|t4 |100 |90 |
|2 | TABLE SCAN|t9 |100 |88 |
====================================
Outputs & filters:
-------------------------------------
0 - output([CASE WHEN t4.c1 = ? THEN ? ELSE ? END]), filter(nil),
equal_conds([t4.c1 = t9.c1]), other_conds(nil)
1 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
2 - output([t9.c1]), filter(nil),
access([t9.c1]), partitions(p0),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 204(end) **************
*************** Case 205 ***************
SQL: select * from t4 where t4.c1 = 1;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t4 |100 |92 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(1,MIN ; 1,MAX),
range_cond([t4.c1 = ?])
*************** Case 205(end) **************
*************** Case 206 ***************
SQL: select * from t7 group by c1 order by c1 desc;
==========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------
|0 |TABLE SCAN|t7(Reverse)|100 |90 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 206(end) **************
*************** Case 207 ***************
SQL: select * from t4 order by c1,c2 desc;
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |SORT | |100 |183 |
|1 | TABLE SCAN|t4 |100 |92 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), sort_keys([t4.c1, ASC], [t4.c2, DESC]), prefix_pos(1)
1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 207(end) **************
*************** Case 208 ***************
SQL: select * from t4 order by c1 desc,c2 desc;
==========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------
|0 |TABLE SCAN|t4(Reverse)|100 |92 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 208(end) **************
*************** Case 209 ***************
SQL: select * from t1 order by c1 limit 2;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |LIMIT | |2 |39 |
|1 | PX COORDINATOR MERGE SORT | |2 |39 |
|2 | EXCHANGE OUT DISTR |:EX10000|2 |38 |
|3 | LIMIT | |2 |38 |
|4 | TOP-N SORT | |2 |38 |
|5 | PX PARTITION ITERATOR | |2 |37 |
|6 | TABLE SCAN |t1 |2 |37 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), limit(2), 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), limit(2), offset(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), topn(2), 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(2), offset(nil),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 209(end) **************
*************** Case 210 ***************
SQL: select * from t1 order by c2 limit 2;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |LIMIT | |2 |39 |
|1 | PX COORDINATOR MERGE SORT | |2 |39 |
|2 | EXCHANGE OUT DISTR |:EX10000 |2 |38 |
|3 | LIMIT | |2 |38 |
|4 | TOP-N SORT | |2 |38 |
|5 | PX PARTITION ITERATOR | |2 |37 |
|6 | TABLE SCAN |t1(idx_t1_c2)|2 |37 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), limit(2), 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), limit(2), offset(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(2), 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(2), offset(nil),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 210(end) **************
*************** Case 211 ***************
SQL: select * from t2 order by c1 limit 2;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |LIMIT | |2 |41 |
|1 | PX COORDINATOR MERGE SORT | |2 |41 |
|2 | EXCHANGE OUT DISTR |:EX10000|2 |40 |
|3 | LIMIT | |2 |40 |
|4 | TOP-N SORT | |2 |40 |
|5 | PX PARTITION ITERATOR | |2 |37 |
|6 | TABLE SCAN |t2 |2 |37 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), limit(2), offset(nil)
1 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC])
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), limit(2), offset(nil)
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), topn(2), local merge sort
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
limit(2), offset(nil),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 211(end) **************
*************** Case 212 ***************
SQL: select * from t2 order by c2 limit 2;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |LIMIT | |2 |439 |
|1 | PX COORDINATOR MERGE SORT | |2 |439 |
|2 | EXCHANGE OUT DISTR |:EX10000|2 |438 |
|3 | LIMIT | |2 |438 |
|4 | TOP-N SORT | |2 |438 |
|5 | PX PARTITION ITERATOR | |300 |205 |
|6 | TABLE SCAN |t2 |300 |205 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), limit(2), offset(nil)
1 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c2, ASC])
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), limit(2), offset(nil)
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c2, ASC]), topn(2)
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 212(end) **************
*************** Case 213 ***************
SQL: select * from (select * from t4 union select * from t4) as a;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |MERGE UNION DISTINCT| |200 |271 |
|1 | TABLE SCAN |t4 |100 |92 |
|2 | TABLE SCAN |t4 |100 |92 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil)
1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 213(end) **************
*************** Case 214 ***************
SQL: select * from t1 left join t2 on t1.c1=t2.c1 and t2.c1=2;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |500 |1386|
|1 | EXCHANGE OUT DISTR |:EX10001|500 |1196|
|2 | MERGE OUTER JOIN | |500 |1196|
|3 | SORT | |500 |1074|
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
|6 | EXCHANGE IN DISTR | |1 |53 |
|7 | EXCHANGE OUT DISTR (PKEY)|:EX10000|1 |53 |
|8 | TABLE GET |t2 |1 |53 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
7 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2], [t2.c3]), filter(nil), is_single, dop=1
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p2),
is_index_back=false,
range_key([t2.c1]), range[2 ; 2],
range_cond([t2.c1 = ?])
*************** Case 214(end) **************
*************** Case 215 ***************
SQL: select * from t1 left join t2 on t1.c1=t2.c1 where t2.c1=2;
=====================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |106 |
|1 | EXCHANGE OUT REMOTE | |1 |105 |
|2 | NESTED-LOOP JOIN CARTESIAN| |1 |105 |
|3 | TABLE GET |t1 |1 |52 |
|4 | TABLE GET |t2 |1 |53 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p2),
is_index_back=false,
range_key([t1.c1]), range[2 ; 2],
range_cond([t1.c1 = ?])
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p2),
is_index_back=false,
range_key([t2.c1]), range[2 ; 2],
range_cond([t2.c1 = ?])
*************** Case 215(end) **************
*************** Case 216 ***************
SQL: select * from t1 right join t2 on t1.c1=t2.c1 and t2.c1=2;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |300 |1066|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |953 |
|2 | MERGE OUTER JOIN | |300 |953 |
|3 | SORT | |300 |859 |
|4 | PX PARTITION ITERATOR | |300 |205 |
|5 | TABLE SCAN |t2 |300 |205 |
|6 | EXCHANGE IN DISTR | |1 |53 |
|7 | EXCHANGE OUT DISTR (PKEY)|:EX10000|1 |52 |
|8 | TABLE GET |t1 |1 |52 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds([t2.c1 = ?])
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
6 - output([t1.c1], [t1.c2]), filter(nil)
7 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), is_single, dop=1
8 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p2),
is_index_back=false,
range_key([t1.c1]), range[2 ; 2],
range_cond([t1.c1 = ?])
*************** Case 216(end) **************
*************** Case 217 ***************
SQL: select * from t1 right join t2 on t1.c1=t2.c1 where t2.c1=2;
=================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-------------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |106 |
|1 | EXCHANGE OUT REMOTE | |1 |105 |
|2 | NESTED-LOOP OUTER JOIN| |1 |105 |
|3 | TABLE GET |t2 |1 |53 |
|4 | TABLE GET |t1 |1 |52 |
=================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
conds(nil), nl_params_([t2.c1]), batch_join=true
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p2),
is_index_back=false,
range_key([t2.c1]), range[2 ; 2],
range_cond([t2.c1 = ?])
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p2),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX),
range_cond([t1.c1 = ?], [t1.c1 = ?])
*************** Case 217(end) **************
*************** Case 218 ***************
SQL: select * from t1 full join t2 on t1.c1=t2.c1 and t2.c1=2;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |500 |1623|
|1 | EXCHANGE OUT DISTR |:EX10001|500 |1434|
|2 | MERGE FULL OUTER JOIN | |500 |1434|
|3 | EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |342 |
|5 | PX PARTITION ITERATOR | |500 |342 |
|6 | TABLE SCAN |t1 |500 |342 |
|7 | SORT | |300 |859 |
|8 | PX PARTITION ITERATOR | |300 |205 |
|9 | TABLE SCAN |t2 |300 |205 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds([t2.c1 = ?])
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
4 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 218(end) **************
*************** Case 219 ***************
SQL: select * from t1 full join t2 on t1.c1=t2.c1 where t2.c1=2;
=================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-------------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |106 |
|1 | EXCHANGE OUT REMOTE | |1 |105 |
|2 | NESTED-LOOP OUTER JOIN| |1 |105 |
|3 | TABLE GET |t2 |1 |53 |
|4 | TABLE GET |t1 |1 |52 |
=================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
conds(nil), nl_params_([t2.c1]), batch_join=true
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p2),
is_index_back=false,
range_key([t2.c1]), range[2 ; 2],
range_cond([t2.c1 = ?])
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p2),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX),
range_cond([t1.c1 = ?], [t1.c1 = ?])
*************** Case 219(end) **************
*************** Case 220 ***************
SQL: select c2 from t1 where exists (select * from t2 where t1.c1=t2.c1 limit 1);
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1610|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1568|
|2 | MERGE JOIN | |300 |1568|
|3 | SORT | |500 |1074|
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |192 |
|8 | PX PARTITION ITERATOR | |300 |192 |
|9 | TABLE SCAN |t2 |300 |192 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2]), filter(nil)
1 - output([t1.c2]), filter(nil), dop=1
2 - output([t1.c2]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c2], [t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
7 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
8 - output([t2.c1]), filter(nil),
force partition granule, asc.
9 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 220(end) **************
*************** Case 221 ***************
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 |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), 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,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 221(end) **************
*************** Case 222 ***************
SQL: select sum(c) from (select c1 as c from t1 union select c1 as c from t1) as a;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |1510|
|1 | PX COORDINATOR | |1 |1319|
|2 | EXCHANGE OUT DISTR |:EX10000|1 |1319|
|3 | MERGE GROUP BY | |1 |1319|
|4 | SUBPLAN SCAN |a |1000 |1128|
|5 | PX PARTITION ITERATOR| |1000 |990 |
|6 | MERGE UNION DISTINCT| |1000 |990 |
|7 | TABLE SCAN |t1 |500 |331 |
|8 | TABLE SCAN |t1 |500 |331 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(a.c))]), filter(nil),
group(nil), agg_func([T_FUN_SUM(T_FUN_SUM(a.c))])
1 - output([T_FUN_SUM(a.c)]), filter(nil)
2 - output([T_FUN_SUM(a.c)]), filter(nil), dop=1
3 - output([T_FUN_SUM(a.c)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(a.c)])
4 - output([a.c]), filter(nil),
access([a.c])
5 - output([UNION([1])]), filter(nil),
partition wise, force partition granule, asc.
6 - output([UNION([1])]), filter(nil)
7 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
8 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 222(end) **************
*************** Case 223 ***************
SQL: select * from t2 where 'cb' <= c3;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |3 |346 |
|1 | EXCHANGE OUT DISTR |:EX10000|3 |345 |
|2 | PX PARTITION ITERATOR| |3 |345 |
|3 | TABLE SCAN |t2 |3 |345 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), dop=1
2 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
force partition granule, asc.
3 - output([t2.c1], [t2.c3], [t2.c2]), filter([? <= t2.c3]),
access([t2.c1], [t2.c3], [t2.c2]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 223(end) **************
*************** Case 224 ***************
SQL: select t7.c1 = t8.c2 from t7, t8 where t7.c1 = t8.c1;
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |MERGE JOIN | |100 |265 |
|1 | TABLE SCAN|t7 |100 |88 |
|2 | TABLE SCAN|t8 |100 |90 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1 = t8.c2]), filter(nil),
equal_conds([t7.c1 = t8.c1]), other_conds(nil)
1 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 224(end) **************
*************** Case 225 ***************
SQL: select t11.c2 from (select c1,c2 from t4 limit 1) as t11 , t6 where t11.c1>t6.c1;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |PX COORDINATOR | |100 |203 |
|1 | EXCHANGE OUT DISTR |:EX10001|100 |189 |
|2 | NESTED-LOOP JOIN | |100 |189 |
|3 | EXCHANGE IN DISTR | |1 |37 |
|4 | EXCHANGE OUT DISTR (BC2HOST)|:EX10000|1 |37 |
|5 | SUBPLAN SCAN |t11 |1 |37 |
|6 | TABLE SCAN |t4 |1 |36 |
|7 | PX PARTITION ITERATOR | |100 |88 |
|8 | TABLE SCAN |t6 |100 |88 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([t11.c2]), filter(nil)
1 - output([t11.c2]), filter(nil), dop=1
2 - output([t11.c2]), filter(nil),
conds(nil), nl_params_([t11.c1]), batch_join=false
3 - output([t11.c1], [t11.c2]), filter(nil)
4 - output([t11.c1], [t11.c2]), filter(nil), is_single, dop=1
5 - output([t11.c1], [t11.c2]), filter(nil),
access([t11.c1], [t11.c2])
6 - output([t4.c1], [t4.c2]), filter(nil),
access([t4.c1], [t4.c2]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
7 - output([1]), filter(nil),
access all, force partition granule, asc.
8 - output([1]), filter(nil),
access([t6.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX),
range_cond([? > t6.c1])
*************** Case 225(end) **************
*************** Case 226 ***************
SQL: select t11.c2 from (select c1,c2 from t4) t11 left join t6 on t11.c1=1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
------------------------------------------------------------
|0 |NESTED-LOOP OUTER JOIN | |300 |11440|
|1 | TABLE SCAN |t4(idx_t4_c2)|100 |54 |
|2 | MATERIAL | |300 |261 |
|3 | PX COORDINATOR | |300 |206 |
|4 | EXCHANGE OUT DISTR |:EX10000 |300 |192 |
|5 | PX PARTITION ITERATOR| |300 |192 |
|6 | TABLE SCAN |t6 |300 |192 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c2]), filter(nil),
conds([t4.c1 = ?]), nl_params_(nil), batch_join=false
1 - output([t4.c1], [t4.c2]), filter(nil),
access([t4.c1], [t4.c2]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c1]), range(MIN,MIN ; MAX,MAX)always true
2 - output([1]), filter(nil)
3 - output([1]), filter(nil)
4 - output([1]), filter(nil), dop=1
5 - output([1]), filter(nil),
force partition granule, asc.
6 - output([1]), filter(nil),
access([t6.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX)always true
*************** Case 226(end) **************
*************** Case 227 ***************
SQL: select * from t2,t4 where t2.c1=t4.c1;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |100 |1122|
|1 | EXCHANGE OUT DISTR |:EX10001|100 |1079|
|2 | MERGE JOIN | |100 |1079|
|3 | SORT | |300 |859 |
|4 | PX PARTITION ITERATOR | |300 |205 |
|5 | TABLE SCAN |t2 |300 |205 |
|6 | EXCHANGE IN DISTR | |100 |107 |
|7 | EXCHANGE OUT DISTR (PKEY)|:EX10000|100 |92 |
|8 | TABLE SCAN |t4 |100 |92 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t4.c1], [t4.c2], [t4.c3]), filter(nil)
1 - output([t2.c1], [t2.c2], [t2.c3], [t4.c1], [t4.c2], [t4.c3]), filter(nil), dop=1
2 - output([t2.c1], [t2.c2], [t2.c3], [t4.c1], [t4.c2], [t4.c3]), filter(nil),
equal_conds([t2.c1 = t4.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
6 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil)
7 - (#keys=1, [t4.c1]), output([t4.c1], [t4.c2], [t4.c3]), filter(nil), is_single, dop=1
8 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 227(end) **************
*************** Case 228 ***************
SQL: select * from t2,t6 where t2.c1=t6.c1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1459|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1346|
|2 | MERGE JOIN | |300 |1346|
|3 | SORT | |300 |859 |
|4 | PX PARTITION ITERATOR | |300 |205 |
|5 | TABLE SCAN |t2 |300 |205 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |227 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |198 |
|8 | PX PARTITION ITERATOR | |300 |198 |
|9 | TABLE SCAN |t6 |300 |198 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t6.c1], [t6.c2]), filter(nil)
1 - output([t2.c1], [t2.c2], [t2.c3], [t6.c1], [t6.c2]), filter(nil), dop=1
2 - output([t2.c1], [t2.c2], [t2.c3], [t6.c1], [t6.c2]), filter(nil),
equal_conds([t2.c1 = t6.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
6 - output([t6.c1], [t6.c2]), filter(nil), sort_keys([t6.c1, ASC]), Local Order
7 - (#keys=1, [t6.c1]), output([t6.c1], [t6.c2]), filter(nil), dop=1
8 - output([t6.c1], [t6.c2]), filter(nil),
force partition granule, asc.
9 - output([t6.c1], [t6.c2]), filter(nil),
access([t6.c1], [t6.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX)always true
*************** Case 228(end) **************
*************** Case 229 ***************
SQL: select * from t2,t6,t7 where t2.c1=t6.c1 and t6.c1=t7.c1;
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------
|0 |PX COORDINATOR | |100 |1945|
|1 | EXCHANGE OUT DISTR |:EX10002|100 |1898|
|2 | MERGE JOIN | |100 |1898|
|3 | EXCHANGE IN MERGE SORT DISTR | |100 |925 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|100 |906 |
|5 | MATERIAL | |100 |906 |
|6 | MERGE JOIN | |100 |833 |
|7 | SORT | |300 |619 |
|8 | PX PARTITION ITERATOR | |300 |198 |
|9 | TABLE SCAN |t6 |300 |198 |
|10| EXCHANGE IN DISTR | |100 |100 |
|11| EXCHANGE OUT DISTR (PKEY)|:EX10000|100 |90 |
|12| TABLE SCAN |t7 |100 |90 |
|13| SORT | |300 |859 |
|14| PX PARTITION ITERATOR | |300 |205 |
|15| TABLE SCAN |t2 |300 |205 |
==============================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t6.c1], [t6.c2], [t7.c1], [t7.c2]), filter(nil)
1 - output([t2.c1], [t2.c2], [t2.c3], [t6.c1], [t6.c2], [t7.c1], [t7.c2]), filter(nil), dop=1
2 - output([t2.c1], [t2.c2], [t2.c3], [t6.c1], [t6.c2], [t7.c1], [t7.c2]), filter(nil),
equal_conds([t2.c1 = t6.c1]), other_conds(nil)
3 - output([t6.c1], [t6.c2], [t7.c1], [t7.c2]), filter(nil), sort_keys([t6.c1, ASC])
4 - (#keys=1, [t6.c1]), output([t6.c1], [t6.c2], [t7.c1], [t7.c2]), filter(nil), dop=1
5 - output([t6.c1], [t6.c2], [t7.c1], [t7.c2]), filter(nil)
6 - output([t6.c1], [t6.c2], [t7.c1], [t7.c2]), filter(nil),
equal_conds([t6.c1 = t7.c1]), other_conds(nil)
7 - output([t6.c1], [t6.c2]), filter(nil), sort_keys([t6.c1, ASC]), local merge sort
8 - output([t6.c1], [t6.c2]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t6.c1], [t6.c2]), filter(nil),
access([t6.c1], [t6.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX)always true
10 - output([t7.c1], [t7.c2]), filter(nil)
11 - (#keys=1, [t7.c1]), output([t7.c1], [t7.c2]), filter(nil), is_single, dop=1
12 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
13 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
14 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
15 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 229(end) **************
*************** Case 230 ***************
SQL: select c1 from t2 union select c1 from t6;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |600 |985 |
|1 | EXCHANGE OUT DISTR |:EX10001|600 |957 |
|2 | MERGE UNION DISTINCT | |600 |957 |
|3 | EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |192 |
|5 | PX PARTITION ITERATOR | |300 |192 |
|6 | TABLE SCAN |t2 |300 |192 |
|7 | SORT | |300 |554 |
|8 | PX PARTITION ITERATOR | |300 |192 |
|9 | TABLE SCAN |t6 |300 |192 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([UNION([1])]), filter(nil), dop=1
2 - output([UNION([1])]), filter(nil)
3 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
4 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
5 - output([t2.c1]), filter(nil),
force partition granule, asc.
6 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
7 - output([t6.c1]), filter(nil), sort_keys([t6.c1, ASC]), local merge sort
8 - output([t6.c1]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t6.c1]), filter(nil),
access([t6.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX)always true
*************** Case 230(end) **************
*************** Case 231 ***************
SQL: select c1 from t2 union all select c1 from t6;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |600 |608 |
|1 | EXCHANGE OUT DISTR |:EX10000|600 |580 |
|2 | PX PARTITION ITERATOR| |600 |580 |
|3 | UNION ALL | |600 |580 |
|4 | TABLE SCAN |t2 |300 |192 |
|5 | TABLE SCAN |t6 |300 |192 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([UNION([1])]), filter(nil), dop=1
2 - output([UNION([1])]), filter(nil),
partition wise, force partition granule, asc.
3 - output([UNION([1])]), filter(nil)
4 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
5 - output([t6.c1]), filter(nil),
access([t6.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX)always true
*************** Case 231(end) **************
*************** Case 232 ***************
SQL: select * from t2 where exists (select * from t6 where t2.c1=t6.c1 limit 1);
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1424|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1325|
|2 | MERGE JOIN | |300 |1325|
|3 | SORT | |300 |859 |
|4 | PX PARTITION ITERATOR | |300 |205 |
|5 | TABLE SCAN |t2 |300 |205 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |192 |
|8 | PX PARTITION ITERATOR | |300 |192 |
|9 | TABLE SCAN |t6 |300 |192 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t2.c1 = t6.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
6 - output([t6.c1]), filter(nil), sort_keys([t6.c1, ASC]), Local Order
7 - (#keys=1, [t6.c1]), output([t6.c1]), filter(nil), dop=1
8 - output([t6.c1]), filter(nil),
force partition granule, asc.
9 - output([t6.c1]), filter(nil),
access([t6.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX)always true
*************** Case 232(end) **************
*************** Case 233 ***************
SQL: select * from t2 where exists (select * from t4 where t2.c1=t4.c1 limit 1);
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |101 |1096|
|1 | EXCHANGE OUT DISTR |:EX10001|101 |1068|
|2 | MERGE SEMI JOIN | |101 |1068|
|3 | SORT | |300 |859 |
|4 | PX PARTITION ITERATOR | |300 |205 |
|5 | TABLE SCAN |t2 |300 |205 |
|6 | EXCHANGE IN DISTR | |100 |95 |
|7 | EXCHANGE OUT DISTR (PKEY)|:EX10000|100 |90 |
|8 | TABLE SCAN |t4 |100 |90 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t2.c1 = t4.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
6 - output([t4.c1]), filter(nil)
7 - (#keys=1, [t4.c1]), output([t4.c1]), filter(nil), is_single, dop=1
8 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 233(end) **************
*************** Case 234 ***************
SQL: select * from t2 where exists (select * from t1 where t2.c1=t1.c1 limit 1);
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1600|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1501|
|2 | MERGE JOIN | |300 |1501|
|3 | SORT | |300 |859 |
|4 | PX PARTITION ITERATOR | |300 |205 |
|5 | TABLE SCAN |t2 |300 |205 |
|6 | EXCHANGE IN MERGE SORT DISTR| |500 |354 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |331 |
|8 | PX PARTITION ITERATOR | |500 |331 |
|9 | TABLE SCAN |t1 |500 |331 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t2.c1 = t1.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
6 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
7 - (#keys=1, [t1.c1]), output([t1.c1]), filter(nil), dop=1
8 - output([t1.c1]), filter(nil),
force partition granule, asc.
9 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 234(end) **************
*************** Case 235 ***************
SQL: select sum(c1) as c from t1 union select sum(c1) as c from t1;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |MERGE UNION DISTINCT | |2 |1044|
|1 | SCALAR GROUP BY | |1 |522 |
|2 | PX COORDINATOR | |1 |426 |
|3 | EXCHANGE OUT DISTR |:EX10000|1 |426 |
|4 | MERGE GROUP BY | |1 |426 |
|5 | PX PARTITION ITERATOR| |500 |331 |
|6 | TABLE SCAN |t1 |500 |331 |
|7 | SCALAR GROUP BY | |1 |522 |
|8 | PX COORDINATOR | |1 |426 |
|9 | EXCHANGE OUT DISTR |:EX20000|1 |426 |
|10| MERGE GROUP BY | |1 |426 |
|11| PX PARTITION ITERATOR| |500 |331 |
|12| TABLE SCAN |t1 |500 |331 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil),
group(nil), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))])
2 - output([T_FUN_SUM(t1.c1)]), filter(nil)
3 - output([T_FUN_SUM(t1.c1)]), filter(nil), dop=1
4 - output([T_FUN_SUM(t1.c1)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(t1.c1)])
5 - output([t1.c1]), filter(nil),
force partition granule, asc.
6 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil),
group(nil), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))])
8 - output([T_FUN_SUM(t1.c1)]), filter(nil)
9 - output([T_FUN_SUM(t1.c1)]), filter(nil), dop=1
10 - output([T_FUN_SUM(t1.c1)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(t1.c1)])
11 - output([t1.c1]), filter(nil),
force partition granule, asc.
12 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 235(end) **************
*************** Case 236 ***************
SQL: select sum(c) from (select sum(c1) as c from t1 union select sum(c1) as c from t1) as a;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |1044|
|1 | SUBPLAN SCAN |a |2 |1044|
|2 | MERGE UNION DISTINCT | |2 |1044|
|3 | SCALAR GROUP BY | |1 |522 |
|4 | PX COORDINATOR | |1 |426 |
|5 | EXCHANGE OUT DISTR |:EX10000|1 |426 |
|6 | MERGE GROUP BY | |1 |426 |
|7 | PX PARTITION ITERATOR| |500 |331 |
|8 | TABLE SCAN |t1 |500 |331 |
|9 | SCALAR GROUP BY | |1 |522 |
|10| PX COORDINATOR | |1 |426 |
|11| EXCHANGE OUT DISTR |:EX20000|1 |426 |
|12| MERGE GROUP BY | |1 |426 |
|13| PX PARTITION ITERATOR| |500 |331 |
|14| TABLE SCAN |t1 |500 |331 |
=========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(a.c)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(a.c)])
1 - output([a.c]), filter(nil),
access([a.c])
2 - output([UNION([1])]), filter(nil)
3 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil),
group(nil), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))])
4 - output([T_FUN_SUM(t1.c1)]), filter(nil)
5 - output([T_FUN_SUM(t1.c1)]), filter(nil), dop=1
6 - output([T_FUN_SUM(t1.c1)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(t1.c1)])
7 - output([t1.c1]), filter(nil),
force partition granule, asc.
8 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
9 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil),
group(nil), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))])
10 - output([T_FUN_SUM(t1.c1)]), filter(nil)
11 - output([T_FUN_SUM(t1.c1)]), filter(nil), dop=1
12 - output([T_FUN_SUM(t1.c1)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(t1.c1)])
13 - output([t1.c1]), filter(nil),
force partition granule, asc.
14 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 236(end) **************
*************** Case 237 ***************
SQL: select * from t4 where c1;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t4 |99 |101 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter([t4.c1]),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 237(end) **************
*************** Case 238 ***************
SQL: select/*+index(t4 primary)*/ * from t4 where c1;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t4 |99 |101 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter([t4.c1]),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 238(end) **************
*************** Case 239 ***************
SQL: select * from t4, t4 t where t4.c1;
===================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |9900 |7460|
|1 | TABLE SCAN |t |100 |92 |
|2 | MATERIAL | |99 |155 |
|3 | TABLE SCAN |t4 |99 |101 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t.c1], [t.c2], [t.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t.c1], [t.c2], [t.c3]), filter(nil),
access([t.c1], [t.c2], [t.c3]), partitions(p0),
is_index_back=false,
range_key([t.c1], [t.c2]), range(MIN,MIN ; MAX,MAX)always true
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil)
3 - output([t4.c1], [t4.c2], [t4.c3]), filter([t4.c1]),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 239(end) **************
*************** Case 240 ***************
SQL: select/*+index(t4 primary)*/ * from t4, t4 t where t4.c1;
===================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |9900 |7460|
|1 | TABLE SCAN |t |100 |92 |
|2 | MATERIAL | |99 |155 |
|3 | TABLE SCAN |t4 |99 |101 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t.c1], [t.c2], [t.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t.c1], [t.c2], [t.c3]), filter(nil),
access([t.c1], [t.c2], [t.c3]), partitions(p0),
is_index_back=false,
range_key([t.c1], [t.c2]), range(MIN,MIN ; MAX,MAX)always true
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil)
3 - output([t4.c1], [t4.c2], [t4.c3]), filter([t4.c1]),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 240(end) **************
*************** Case 241 ***************
SQL: select * from t4 left join t4 a on t4.c1;
===============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------------
|0 |NESTED-LOOP OUTER JOIN| |9900 |8311|
|1 | TABLE SCAN |t4 |100 |92 |
|2 | MATERIAL | |100 |148 |
|3 | TABLE SCAN |a |100 |92 |
===============================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [a.c1], [a.c2], [a.c3]), filter(nil),
conds([t4.c1]), nl_params_(nil), batch_join=false
1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
2 - output([a.c1], [a.c2], [a.c3]), filter(nil)
3 - output([a.c1], [a.c2], [a.c3]), filter(nil),
access([a.c1], [a.c2], [a.c3]), partitions(p0),
is_index_back=false,
range_key([a.c1], [a.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 241(end) **************
*************** Case 242 ***************
SQL: select t1.c2 from t1,t2 where t2.c1 in(t1.c1);
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1610|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1568|
|2 | MERGE JOIN | |300 |1568|
|3 | SORT | |500 |1074|
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |192 |
|8 | PX PARTITION ITERATOR | |300 |192 |
|9 | TABLE SCAN |t2 |300 |192 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2]), filter(nil)
1 - output([t1.c2]), filter(nil), dop=1
2 - output([t1.c2]), filter(nil),
equal_conds([t2.c1 = t1.c1]), other_conds(nil)
3 - output([t1.c2], [t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
7 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
8 - output([t2.c1]), filter(nil),
force partition granule, asc.
9 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 242(end) **************
*************** Case 243 ***************
SQL: select * from t3 join t4 on t3.c1>t4.c1 where t4.c1 in (t3.c1, t3.c1);
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |PX COORDINATOR | |67 |3809|
|1 | EXCHANGE OUT DISTR |:EX10001|67 |3780|
|2 | NESTED-LOOP JOIN | |67 |3780|
|3 | EXCHANGE IN DISTR | |100 |107 |
|4 | EXCHANGE OUT DISTR (BC2HOST)|:EX10000|100 |92 |
|5 | TABLE SCAN |t4 |100 |92 |
|6 | PX PARTITION ITERATOR | |1 |36 |
|7 | TABLE GET |t3 |1 |36 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([t3.c1], [t3.c2], [t3.c3], [t4.c1], [t4.c2], [t4.c3]), filter(nil)
1 - output([t3.c1], [t3.c2], [t3.c3], [t4.c1], [t4.c2], [t4.c3]), filter(nil), dop=1
2 - output([t3.c1], [t3.c2], [t3.c3], [t4.c1], [t4.c2], [t4.c3]), filter(nil),
conds(nil), nl_params_([t4.c1]), batch_join=false
3 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil)
4 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), is_single, dop=1
5 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
6 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access all, force partition granule, asc.
7 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX),
range_cond([t3.c1 > ?], [? IN (t3.c1, t3.c1)])
*************** Case 243(end) **************
*************** Case 244 ***************
SQL: select * from t1 where c1 in (select t2.c1 from t2 left join t3 on t2.c1=t3.c1);
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1610|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1568|
|2 | MERGE JOIN | |300 |1568|
|3 | SORT | |500 |1074|
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |192 |
|8 | PX PARTITION ITERATOR | |300 |192 |
|9 | TABLE SCAN |t2 |300 |192 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
7 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
8 - output([t2.c1]), filter(nil),
force partition granule, asc.
9 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 244(end) **************
*************** Case 245 ***************
SQL: select /*+use_merge(t10,t11)*/* from t10, t11 where t10.c2=t11.c2;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |361 |1288|
|1 | EXCHANGE OUT DISTR |:EX10000|361 |1185|
|2 | PX PARTITION ITERATOR| |361 |1185|
|3 | MERGE JOIN | |361 |1185|
|4 | SORT | |200 |458 |
|5 | TABLE SCAN |t10 |200 |149 |
|6 | SORT | |200 |458 |
|7 | TABLE SCAN |t11 |200 |149 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t10.c1], [t10.c2], [t10.c3], [t11.c1], [t11.c2], [t11.c3]), filter(nil)
1 - output([t10.c1], [t10.c2], [t10.c3], [t11.c1], [t11.c2], [t11.c3]), filter(nil), dop=1
2 - output([t10.c1], [t10.c2], [t10.c3], [t11.c1], [t11.c2], [t11.c3]), filter(nil),
partition wise, force partition granule, asc.
3 - output([t10.c1], [t10.c2], [t10.c3], [t11.c1], [t11.c2], [t11.c3]), filter(nil),
equal_conds([t10.c2 = t11.c2]), other_conds(nil)
4 - output([t10.c1], [t10.c2], [t10.c3]), filter(nil), sort_keys([t10.c2, ASC])
5 - output([t10.c2], [t10.c1], [t10.c3]), filter(nil),
access([t10.c2], [t10.c1], [t10.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t10.c1], [t10.c2]), range(MIN,MIN ; MAX,MAX)always true
6 - output([t11.c1], [t11.c2], [t11.c3]), filter(nil), sort_keys([t11.c2, ASC])
7 - output([t11.c2], [t11.c1], [t11.c3]), filter(nil),
access([t11.c2], [t11.c1], [t11.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t11.c1], [t11.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 245(end) **************
*************** Case 246 ***************
SQL: select c1 from t1 where c1 not in (select c1 from t2 where c2 not in (select c2 from t2));
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
--------------------------------------------------------------
|0 |PX COORDINATOR | |491 |28215|
|1 | EXCHANGE OUT DISTR |:EX10003|491 |28192|
|2 | MERGE ANTI JOIN | |491 |28192|
|3 | SORT | |500 |966 |
|4 | PX PARTITION ITERATOR | |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
|6 | SORT | |10 |27151|
|7 | EXCHANGE IN DISTR | |10 |27143|
|8 | EXCHANGE OUT DISTR (PKEY) |:EX10002|10 |27143|
|9 | SUBPLAN SCAN |VIEW2 |10 |27143|
|10| NESTED-LOOP ANTI JOIN | |10 |27142|
|11| MATERIAL | |300 |337 |
|12| EXCHANGE IN DISTR | |300 |227 |
|13| EXCHANGE OUT DISTR |:EX10000|300 |198 |
|14| PX PARTITION ITERATOR| |300 |198 |
|15| TABLE SCAN |t2 |300 |198 |
|16| MATERIAL | |300 |337 |
|17| EXCHANGE IN DISTR | |300 |227 |
|18| EXCHANGE OUT DISTR |:EX10001|300 |198 |
|19| PX PARTITION ITERATOR| |300 |198 |
|20| TABLE SCAN |t2 |300 |198 |
==============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
equal_conds([t1.c1 = VIEW2.c1]), other_conds(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([VIEW2.c1]), filter(nil), sort_keys([VIEW2.c1, ASC])
7 - output([VIEW2.c1]), filter(nil)
8 - (#keys=1, [VIEW2.c1]), output([VIEW2.c1]), filter(nil), is_single, dop=1
9 - output([VIEW2.c1]), filter(nil),
access([VIEW2.c1])
10 - output([t2.c1]), filter(nil),
conds([(T_OP_OR, t2.c2 = t2.c2, (T_OP_IS, t2.c2, NULL, 0), (T_OP_IS, t2.c2, NULL, 0))]), nl_params_(nil), batch_join=false
11 - output([t2.c1], [t2.c2]), filter(nil)
12 - output([t2.c1], [t2.c2]), filter(nil)
13 - output([t2.c1], [t2.c2]), filter(nil), dop=1
14 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
15 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
16 - output([t2.c2]), filter(nil)
17 - output([t2.c2]), filter(nil)
18 - output([t2.c2]), filter(nil), dop=1
19 - output([t2.c2]), filter(nil),
force partition granule, asc.
20 - 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
*************** Case 246(end) **************
*************** Case 247 ***************
SQL: select distinct c1 from t1 order by c2;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |1122|
|1 | EXCHANGE OUT DISTR |:EX10000 |500 |1074|
|2 | SORT | |500 |1074|
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil), sort_keys([t1.c2, ASC])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
3 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 247(end) **************
*************** Case 248 ***************
SQL: SELECT c1, c2 FROM t1 WHERE c2 IN (ROUND(-1), 0, '5', '1');
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |PX COORDINATOR | |2000 |1448|
|1 | EXCHANGE OUT DISTR |:EX10000 |2000 |1258|
|2 | PX PARTITION ITERATOR| |2000 |1258|
|3 | TABLE SCAN |t1(idx_t1_c2)|2000 |1258|
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(-1,MIN ; -1,MAX), (0,MIN ; 0,MAX), (5,MIN ; 5,MAX), (1,MIN ; 1,MAX),
range_cond([t1.c2 IN (?, ?, ?, ?)])
*************** Case 248(end) **************
*************** Case 249 ***************
SQL: select count(*) from (select count(*) as a from t4) t ;
===================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------
|0 |SCALAR GROUP BY | |1 |74 |
|1 | SUBPLAN SCAN |t |1 |74 |
|2 | SCALAR GROUP BY| |1 |74 |
|3 | TABLE SCAN |t4(idx_t4_c2)|100 |54 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(*)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)])
1 - output([1]), filter(nil),
access(nil)
2 - output([T_FUN_COUNT(*)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)])
3 - output([1]), filter(nil),
access([t4.c2]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 249(end) **************
*************** Case 250 ***************
SQL: (select * from t1 where c1 = 2) union all (select * from t1 where c1 = 2);
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |2 |105 |
|1 | EXCHANGE OUT REMOTE| |2 |105 |
|2 | UNION ALL | |2 |105 |
|3 | TABLE GET |t1 |1 |52 |
|4 | TABLE GET |t1 |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])]), filter(nil)
1 - output([UNION([1])], [UNION([2])]), filter(nil)
2 - output([UNION([1])], [UNION([2])]), filter(nil)
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p2),
is_index_back=false,
range_key([t1.c1]), range[2 ; 2],
range_cond([t1.c1 = ?])
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p2),
is_index_back=false,
range_key([t1.c1]), range[2 ; 2],
range_cond([t1.c1 = ?])
*************** Case 250(end) **************
*************** Case 251 ***************
SQL: select * from t1 X, t1 Y where X.c1 = Y.c1 and X.c1 = 1 and Y.c1 = 1;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |52 |
|2 | TABLE GET |X |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([X.c1], [X.c2], [X.c1], [X.c2]), filter(nil)
1 - output([X.c1], [X.c2], [X.c1], [X.c2]), filter(nil)
2 - output([X.c1], [X.c2]), filter(nil),
access([X.c1], [X.c2]), partitions(p1),
is_index_back=false,
range_key([X.c1]), range[1 ; 1],
range_cond([X.c1 = ?], [X.c1 = ?])
*************** Case 251(end) **************
*************** Case 252 ***************
SQL: select distinct c2, c1 from t1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2], [t1.c1]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 252(end) **************
*************** Case 253 ***************
SQL: select (select c1 from t7),c2 from t8;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |100 |192 |
|1 | TABLE SCAN |t8 |100 |90 |
|2 | TABLE SCAN |t7 |100 |88 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([?], [t8.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
2 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 253(end) **************
*************** Case 254 ***************
SQL: select (select c1 from t7 where c2=t8.c2), c2 from t8;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |100 |9926|
|1 | TABLE SCAN |t8 |100 |90 |
|2 | TABLE SCAN |t7 |1 |99 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([subquery(1)], [t8.c2]), filter(nil),
exec_params_([t8.c2]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
2 - output([t7.c1]), filter([t7.c2 = ?]),
access([t7.c2], [t7.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 254(end) **************
*************** Case 255 ***************
SQL: select c1 from t7 group by (select c1 from t8), c2;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |HASH GROUP BY | |100 |296 |
|1 | SUBPLAN FILTER| |100 |192 |
|2 | TABLE SCAN |t7 |100 |90 |
|3 | TABLE SCAN |t8 |100 |88 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
group([t7.c2]), agg_func(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 255(end) **************
*************** Case 256 ***************
SQL: select c1 from t7 group by (select c1 from t8 where c2=t7.c2),c2;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
-----------------------------------------
|0 |HASH GROUP BY | |100 |10036|
|1 | SUBPLAN FILTER| |100 |9926 |
|2 | TABLE SCAN |t7 |100 |90 |
|3 | TABLE SCAN |t8 |1 |99 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
group([subquery(1)], [t7.c2]), agg_func(nil)
1 - output([t7.c1], [subquery(1)], [t7.c2]), filter(nil),
exec_params_([t7.c2]), onetime_exprs_(nil), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1]), filter([t8.c2 = ?]),
access([t8.c2], [t8.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 256(end) **************
*************** Case 257 ***************
SQL: select c1, sum(c2) from t4 group by c1 having sum(c2) < (select 1);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |MERGE GROUP BY| |5 |118 |
|1 | TABLE SCAN |t4 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [T_FUN_SUM(t4.c2)]), filter([T_FUN_SUM(t4.c2) < ?]),
group([t4.c1]), agg_func([T_FUN_SUM(t4.c2)])
1 - output([t4.c1], [t4.c2]), filter(nil),
access([t4.c1], [t4.c2]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 257(end) **************
*************** Case 258 ***************
SQL: select c1 from t7 order by (select c1 from t8), c2;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |SORT | |100 |319 |
|1 | SUBPLAN FILTER| |100 |192 |
|2 | TABLE SCAN |t7 |100 |90 |
|3 | TABLE SCAN |t8 |100 |88 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, ASC])
1 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 258(end) **************
*************** Case 259 ***************
SQL: select c1 from t7 order by (select c1 from t8 where c2=t7.c2),c2;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
-----------------------------------------
|0 |SORT | |100 |10053|
|1 | SUBPLAN FILTER| |100 |9926 |
|2 | TABLE SCAN |t7 |100 |90 |
|3 | TABLE SCAN |t8 |1 |99 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil), sort_keys([subquery(1), ASC], [t7.c2, ASC])
1 - output([t7.c1], [subquery(1)], [t7.c2]), filter(nil),
exec_params_([t7.c2]), onetime_exprs_(nil), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1]), filter([t8.c2 = ?]),
access([t8.c2], [t8.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 259(end) **************
*************** Case 260 ***************
SQL: select (select 1, 2, 3)=row(1, 2, 3);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |1 |1 |
|1 | EXPRESSION | |1 |1 |
|2 | EXPRESSION | |1 |1 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1) = (?, ?, ?)]), init_plan_idxs_(nil)
1 - output([1]), filter(nil)
values({1})
2 - output([?], [?], [?]), filter(nil)
values({?, ?, ?})
*************** Case 260(end) **************
*************** Case 261 ***************
SQL: select count(1) from t1;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |522 |
|1 | PX COORDINATOR | |1 |426 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |426 |
|3 | MERGE GROUP BY | |1 |426 |
|4 | PX PARTITION ITERATOR| |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(?))]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(?))])
1 - output([T_FUN_COUNT(?)]), filter(nil)
2 - output([T_FUN_COUNT(?)]), filter(nil), dop=1
3 - output([T_FUN_COUNT(?)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(?)])
4 - output([1]), filter(nil),
force partition granule, asc.
5 - output([1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 261(end) **************
*************** Case 262 ***************
SQL: select (select 1);
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |EXPRESSION| |1 |1 |
===================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter(nil)
values({?})
*************** Case 262(end) **************
*************** Case 263 ***************
SQL: (select (select 1)) union (select (select 1));
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |MERGE UNION DISTINCT| |2 |1 |
|1 | EXPRESSION | |1 |1 |
|2 | EXPRESSION | |1 |1 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([?]), filter(nil)
values({?})
2 - output([?]), filter(nil)
values({?})
*************** Case 263(end) **************
*************** Case 264 ***************
SQL: SELECT distinct '' , 1 FROM DUAL limit 2 offset 1;
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |LIMIT | |0 |1 |
|1 | EXPRESSION| |1 |1 |
====================================
Outputs & filters:
-------------------------------------
0 - output([?], [?]), filter(nil), limit(2), offset(?)
1 - output([1]), filter(nil)
values({1})
*************** Case 264(end) **************
*************** Case 265 ***************
SQL: select * from t1,t1 t;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
---------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |250000 |180482|
|1 | PX COORDINATOR | |500 |389 |
|2 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
|5 | MATERIAL | |500 |573 |
|6 | PX COORDINATOR | |500 |389 |
|7 | EXCHANGE OUT DISTR |:EX20000|500 |342 |
|8 | PX PARTITION ITERATOR | |500 |342 |
|9 | TABLE SCAN |t |500 |342 |
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t.c1], [t.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
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.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t.c1], [t.c2]), filter(nil)
6 - output([t.c1], [t.c2]), filter(nil)
7 - output([t.c1], [t.c2]), filter(nil), dop=1
8 - output([t.c1], [t.c2]), filter(nil),
force partition granule, asc.
9 - output([t.c1], [t.c2]), filter(nil),
access([t.c1], [t.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
*************** Case 265(end) **************
*************** Case 266 ***************
SQL: select * from t1,t1 t where t1.c1<t.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
---------------------------------------------------------------
|0 |PX COORDINATOR | |83334 |138980|
|1 | EXCHANGE OUT DISTR |:EX10001|83334 |123203|
|2 | NESTED-LOOP JOIN | |83334 |123203|
|3 | EXCHANGE IN DISTR | |500 |389 |
|4 | EXCHANGE OUT DISTR (BC2HOST)|:EX10000|500 |342 |
|5 | PX PARTITION ITERATOR | |500 |342 |
|6 | TABLE SCAN |t1 |500 |342 |
|7 | PX PARTITION ITERATOR | |167 |138 |
|8 | TABLE SCAN |t |167 |138 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t.c1], [t.c2]), filter(nil)
1 - output([t1.c1], [t1.c2], [t.c1], [t.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t.c1], [t.c2]), filter(nil),
conds(nil), nl_params_([t1.c1]), batch_join=false
3 - output([t1.c1], [t1.c2]), filter(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t.c1], [t.c2]), filter(nil),
access all, force partition granule, asc.
8 - output([t.c1], [t.c2]), filter(nil),
access([t.c1], [t.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX),
range_cond([? < t.c1])
*************** Case 266(end) **************
*************** Case 267 ***************
SQL: (select * from t4) union (select * from t4) order by (select c1 from t4 limit 1);
==============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------
|0 |SUBPLAN FILTER | |200 |335 |
|1 | MERGE UNION DISTINCT| |200 |271 |
|2 | TABLE SCAN |t4 |100 |92 |
|3 | TABLE SCAN |t4 |100 |92 |
|4 | TABLE SCAN |t4 |1 |36 |
==============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil)
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
3 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
4 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 267(end) **************
*************** Case 268 ***************
SQL: select 1 from dual where 1 in (select 1 from dual);
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |EXPRESSION| |1 |1 |
===================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter([?])
values({?})
*************** Case 268(end) **************
*************** Case 269 ***************
SQL: select count(c1) + 1 from t1;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |522 |
|1 | PX COORDINATOR | |1 |426 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |426 |
|3 | MERGE GROUP BY | |1 |426 |
|4 | PX PARTITION ITERATOR| |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)) + ?]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))])
1 - output([T_FUN_COUNT(t1.c1)]), filter(nil)
2 - output([T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
3 - output([T_FUN_COUNT(t1.c1)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(t1.c1)])
4 - output([t1.c1]), filter(nil),
force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 269(end) **************
*************** Case 270 ***************
SQL: select count(c1) + 1 + 1 from t1;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |522 |
|1 | PX COORDINATOR | |1 |426 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |426 |
|3 | MERGE GROUP BY | |1 |426 |
|4 | PX PARTITION ITERATOR| |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)) + ? + ?]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))])
1 - output([T_FUN_COUNT(t1.c1)]), filter(nil)
2 - output([T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
3 - output([T_FUN_COUNT(t1.c1)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(t1.c1)])
4 - output([t1.c1]), filter(nil),
force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 270(end) **************
*************** Case 271 ***************
SQL: SELECT (select max(t1.c1) from t1) as field from t1 group by field;
================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------------
|0 |HASH GROUP BY | |1 |880 |
|1 | NESTED-LOOP JOIN CARTESIAN | |500 |715 |
|2 | SUBPLAN SCAN |VIEW3 |1 |38 |
|3 | SCALAR GROUP BY | |1 |38 |
|4 | SUBPLAN SCAN |VIEW4 |1 |37 |
|5 | LIMIT | |1 |37 |
|6 | PX COORDINATOR MERGE SORT | |1 |37 |
|7 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|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 | |500 |354 |
|13| EXCHANGE OUT DISTR |:EX20000 |500 |331 |
|14| PX PARTITION ITERATOR | |500 |331 |
|15| TABLE SCAN |t1 |500 |331 |
================================================================
Outputs & filters:
-------------------------------------
0 - output([VIEW3.max(t1.c1)]), filter(nil),
group([VIEW3.max(t1.c1)]), agg_func(nil)
1 - output([VIEW3.max(t1.c1)]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([VIEW3.max(t1.c1)]), filter(nil),
access([VIEW3.max(t1.c1)])
3 - output([T_FUN_MAX(VIEW4.c1)]), filter(nil),
group(nil), agg_func([T_FUN_MAX(VIEW4.c1)])
4 - output([VIEW4.c1]), filter(nil),
access([VIEW4.c1])
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), 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
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
*************** Case 271(end) **************
*************** Case 272 ***************
SQL: ( SELECT * FROM t12 WHERE 69 > ROUND ( 3075 ) ) UNION ALL ( SELECT * FROM t12 ) UNION ( SELECT * FROM t13) ;
============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
--------------------------------------------
|0 |HASH UNION DISTINCT| |300 |711 |
|1 | UNION ALL | |200 |271 |
|2 | TABLE SCAN |t12 |100 |92 |
|3 | TABLE SCAN |t12 |100 |92 |
|4 | TABLE SCAN |t13 |100 |92 |
============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil)
1 - output([cast(UNION([1]), CHAR(20))], [UNION([2])], [UNION([3])]), filter(nil)
2 - output([t12.a], [t12.b], [t12.c]), filter(nil), startup_filter([0]),
access([t12.a], [t12.b], [t12.c]), partitions(p0),
is_index_back=false,
range_key([t12.a]), range(MIN ; MAX)always true
3 - output([t12.a], [t12.b], [t12.c]), filter(nil),
access([t12.a], [t12.b], [t12.c]), partitions(p0),
is_index_back=false,
range_key([t12.a]), range(MIN ; MAX)always true
4 - output([t13.b], [cast(t13.c, CHAR(20))], [t13.a]), filter(nil),
access([t13.b], [t13.c], [t13.a]), partitions(p0),
is_index_back=false,
range_key([t13.a]), range(MIN ; MAX)always true
*************** Case 272(end) **************
*************** Case 273 ***************
SQL: select t1.c1, nvl(t2.c2,0) from (select c1,c2 from t1 where c1=0 or c1=1) as t1 left join (select c1,c2 from t1 where c1=0) as t2 on t1.c1=t2.c1;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |2 |112 |
|1 | EXCHANGE OUT DISTR |:EX10001|2 |112 |
|2 | MERGE OUTER JOIN | |2 |112 |
|3 | SORT | |2 |59 |
|4 | PX PARTITION ITERATOR | |2 |57 |
|5 | TABLE GET |t1 |2 |57 |
|6 | EXCHANGE IN DISTR | |1 |53 |
|7 | EXCHANGE OUT DISTR (PKEY)|:EX10000|1 |52 |
|8 | TABLE GET |t1 |1 |52 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [nvl(t1.c2, ?)]), filter(nil)
1 - output([t1.c1], [nvl(t1.c2, ?)]), filter(nil), dop=1
2 - output([t1.c1], [nvl(t1.c2, ?)]), filter(nil),
equal_conds([t1.c1 = t1.c1]), other_conds(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-1]),
is_index_back=false,
range_key([t1.c1]), range[0 ; 0], [1 ; 1],
range_cond([t1.c1 = ? OR t1.c1 = ?])
6 - output([t1.c1], [t1.c2]), filter(nil)
7 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), is_single, dop=1
8 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p0),
is_index_back=false,
range_key([t1.c1]), range[0 ; 0],
range_cond([t1.c1 = ?])
*************** Case 273(end) **************
*************** Case 274 ***************
SQL: (select * from t12 where a != 1 limit 7 ) union (select * from t13) union ( select * from t13);
==============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------
|0 |MERGE UNION DISTINCT | |207 |368 |
|1 | MERGE UNION DISTINCT| |107 |186 |
|2 | SORT | |7 |48 |
|3 | TABLE SCAN |t12 |7 |38 |
|4 | TABLE SCAN |t13 |100 |92 |
|5 | TABLE SCAN |t13 |100 |92 |
==============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil)
1 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil)
2 - output([cast(t12.a, CHAR(20))], [t12.b], [t12.c]), filter(nil), sort_keys([t12.c, ASC], [cast(t12.a, CHAR(20)), ASC], [t12.b, ASC])
3 - output([t12.b], [t12.c], [cast(t12.a, CHAR(20))]), filter(nil),
access([t12.a], [t12.b], [t12.c]), partitions(p0),
limit(7), offset(nil),
is_index_back=false,
range_key([t12.a]), range(NULL ; 1), (1 ; MAX),
range_cond([t12.a != ?])
4 - output([t13.b], [cast(t13.c, CHAR(20))], [t13.a]), filter(nil),
access([t13.b], [t13.c], [t13.a]), partitions(p0),
is_index_back=false,
range_key([t13.a]), range(MIN ; MAX)always true
5 - output([t13.b], [cast(t13.c, CHAR(20))], [t13.a]), filter(nil),
access([t13.b], [t13.c], [t13.a]), partitions(p0),
is_index_back=false,
range_key([t13.a]), range(MIN ; MAX)always true
*************** Case 274(end) **************
*************** Case 275 ***************
SQL: select /*+ leading(t3, t2, t1) use_merge(t3,t2) */* from t1,t2,t3;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
------------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |30000000 |21589400|
|1 | NESTED-LOOP JOIN CARTESIAN| |60000 |46307 |
|2 | PX COORDINATOR | |300 |290 |
|3 | EXCHANGE OUT DISTR |:EX10000|300 |205 |
|4 | PX PARTITION ITERATOR | |300 |205 |
|5 | TABLE SCAN |t2 |300 |205 |
|6 | MATERIAL | |200 |426 |
|7 | PX COORDINATOR | |200 |205 |
|8 | EXCHANGE OUT DISTR |:EX20000|200 |149 |
|9 | PX PARTITION ITERATOR | |200 |149 |
|10| TABLE SCAN |t3 |200 |149 |
|11| MATERIAL | |500 |573 |
|12| PX COORDINATOR | |500 |389 |
|13| EXCHANGE OUT DISTR |:EX30000|500 |342 |
|14| PX PARTITION ITERATOR | |500 |342 |
|15| TABLE SCAN |t1 |500 |342 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
6 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
7 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
8 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
9 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
force partition granule, asc.
10 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
11 - output([t1.c1], [t1.c2]), filter(nil)
12 - output([t1.c1], [t1.c2]), filter(nil)
13 - output([t1.c1], [t1.c2]), filter(nil), dop=1
14 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
15 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 275(end) **************
*************** Case 276 ***************
SQL: select /*+leading(t10, t11) use_nl(t11) */ * from t10 join t11 on t10.c2 = t11.c2;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
-----------------------------------------------------
|0 |PX COORDINATOR | |361 |12809|
|1 | EXCHANGE OUT DISTR |:EX10000|361 |12707|
|2 | PX PARTITION ITERATOR| |361 |12707|
|3 | NESTED-LOOP JOIN | |361 |12707|
|4 | TABLE SCAN |t10 |200 |149 |
|5 | MATERIAL | |200 |259 |
|6 | TABLE SCAN |t11 |200 |149 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t10.c1], [t10.c2], [t10.c3], [t11.c1], [t11.c2], [t11.c3]), filter(nil)
1 - output([t10.c1], [t10.c2], [t10.c3], [t11.c1], [t11.c2], [t11.c3]), filter(nil), dop=1
2 - output([t10.c1], [t10.c2], [t10.c3], [t11.c1], [t11.c2], [t11.c3]), filter(nil),
partition wise, force partition granule, asc.
3 - output([t10.c1], [t10.c2], [t10.c3], [t11.c1], [t11.c2], [t11.c3]), filter(nil),
conds([t10.c2 = t11.c2]), nl_params_(nil), batch_join=false
4 - output([t10.c2], [t10.c1], [t10.c3]), filter(nil),
access([t10.c2], [t10.c1], [t10.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t10.c1], [t10.c2]), range(MIN,MIN ; MAX,MAX)always true
5 - output([t11.c1], [t11.c2], [t11.c3]), filter(nil)
6 - output([t11.c2], [t11.c1], [t11.c3]), filter(nil),
access([t11.c2], [t11.c1], [t11.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t11.c1], [t11.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 276(end) **************
*************** Case 277 ***************
SQL: select * from t4 where c1 not in (select c1 from t7 where t4.c1+t7.c1 >(select c1 from t8));
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
-----------------------------------------
|0 |SUBPLAN FILTER | |50 |20201|
|1 | TABLE SCAN |t4 |100 |92 |
|2 | SUBPLAN FILTER| |34 |197 |
|3 | TABLE SCAN |t7 |34 |105 |
|4 | TABLE SCAN |t8 |100 |88 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter([t4.c1 != ALL(subquery(1))]),
exec_params_([t4.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
2 - output([t7.c1]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
3 - output([t7.c1]), filter([? + t7.c1 > ?]),
access([t7.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range(MIN ; MAX)always true
4 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 277(end) **************
*************** Case 278 ***************
SQL: select c1 from t4 where c1 not in (select c1 from t7 where t7.c1>(select c1 from t8));
==========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------
|0 |MERGE ANTI JOIN | |67 |266 |
|1 | TABLE SCAN |t4 |100 |90 |
|2 | SUBPLAN SCAN |VIEW1|34 |138 |
|3 | SUBPLAN FILTER| |34 |134 |
|4 | TABLE SCAN |t7 |34 |42 |
|5 | TABLE SCAN |t8 |100 |88 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1]), filter(nil),
equal_conds([t4.c1 = VIEW1.c1]), other_conds(nil)
1 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
2 - output([VIEW1.c1]), filter(nil),
access([VIEW1.c1])
3 - output([t7.c1]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
4 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([t7.c1 > ?])
5 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 278(end) **************
*************** Case 279 ***************
SQL: select c1 from t4 where c1 not in (select c1 from t7 where t7.c1>(select c1 from t8 where t4.c1=1));
==================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
--------------------------------------------------
|0 |SUBPLAN FILTER | |50 |13847|
|1 | TABLE SCAN |t4(idx_t4_c2)|100 |54 |
|2 | SUBPLAN FILTER| |34 |134 |
|3 | TABLE SCAN |t7 |34 |42 |
|4 | TABLE SCAN |t8 |100 |88 |
==================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1]), filter([t4.c1 != ALL(subquery(1))]),
exec_params_([t4.c1 = ?]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c1]), range(MIN,MIN ; MAX,MAX)always true
2 - output([t7.c1]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
3 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([t7.c1 > ?])
4 - output([t8.c1]), filter(nil), startup_filter([?]),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 279(end) **************
*************** Case 280 ***************
SQL: select c1 from t4 where c1 not in (select c1 from t7 where t4.c1>(select c1 from t8));
==================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
--------------------------------------------------
|0 |SUBPLAN FILTER | |50 |19639|
|1 | TABLE SCAN |t4(idx_t4_c2)|100 |54 |
|2 | SUBPLAN FILTER| |50 |189 |
|3 | TABLE SCAN |t7 |100 |88 |
|4 | TABLE SCAN |t8 |100 |88 |
==================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1]), filter([t4.c1 != ALL(subquery(1))]),
exec_params_([t4.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c1]), range(MIN,MIN ; MAX,MAX)always true
2 - output([t7.c1]), filter([?]),
exec_params_(nil), onetime_exprs_([? > subquery(1)]), init_plan_idxs_(nil)
3 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
4 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 280(end) **************
*************** Case 281 ***************
SQL: select c1 from t4 where c1 not in (select c1 from t7 where 1>(select c1 from t8));
==========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------
|0 |MERGE ANTI JOIN | |50 |336 |
|1 | TABLE SCAN |t4 |100 |90 |
|2 | SUBPLAN SCAN |VIEW1|50 |196 |
|3 | SUBPLAN FILTER| |50 |189 |
|4 | TABLE SCAN |t7 |100 |88 |
|5 | TABLE SCAN |t8 |100 |88 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1]), filter(nil),
equal_conds([t4.c1 = VIEW1.c1]), other_conds(nil)
1 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
2 - output([VIEW1.c1]), filter(nil),
access([VIEW1.c1])
3 - output([t7.c1]), filter([?]),
exec_params_(nil), onetime_exprs_([? > subquery(1)]), init_plan_idxs_(nil)
4 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
5 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 281(end) **************
*************** Case 282 ***************
SQL: select c1 from t7 where c1 <>ALL (select c1 from t8 where 1>(select 2));
=========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------
|0 |MERGE ANTI JOIN| |0 |276 |
|1 | TABLE SCAN |t7 |100 |88 |
|2 | SUBPLAN SCAN |VIEW1|100 |102 |
|3 | TABLE SCAN |t8 |100 |88 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
equal_conds([t7.c1 = VIEW1.c1]), other_conds(nil)
1 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([VIEW1.c1]), filter(nil), startup_filter([?]),
access([VIEW1.c1])
3 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 282(end) **************
*************** Case 283 ***************
SQL: select c1 from t4 where c1 in (select c1 from t7 where t4.c1>(select c1 from t8));
==================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
--------------------------------------------------
|0 |SUBPLAN FILTER | |50 |19639|
|1 | TABLE SCAN |t4(idx_t4_c2)|100 |54 |
|2 | SUBPLAN FILTER| |50 |189 |
|3 | TABLE SCAN |t7 |100 |88 |
|4 | TABLE SCAN |t8 |100 |88 |
==================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1]), filter([t4.c1 = ANY(subquery(1))]),
exec_params_([t4.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c1]), range(MIN,MIN ; MAX,MAX)always true
2 - output([t7.c1]), filter([?]),
exec_params_(nil), onetime_exprs_([? > subquery(1)]), init_plan_idxs_(nil)
3 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
4 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 283(end) **************
*************** Case 284 ***************
SQL: select * from t7 where c1 not in (select 1 from t8 where t8.c1 >1);
===============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------
|0 |NESTED-LOOP ANTI JOIN| |98 |3031|
|1 | TABLE SCAN |t7 |100 |90 |
|2 | MATERIAL | |100 |120 |
|3 | SUBPLAN SCAN |VIEW1|100 |102 |
|4 | TABLE SCAN |t8 |100 |88 |
===============================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds([t7.c1 = VIEW1.1 OR (T_OP_IS, VIEW1.1, NULL, 0)]), nl_params_(nil), batch_join=false
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([VIEW1.1]), filter(nil)
3 - output([VIEW1.1]), filter(nil),
access([VIEW1.1])
4 - output([?]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(1 ; MAX),
range_cond([t8.c1 > ?])
*************** Case 284(end) **************
*************** Case 285 ***************
SQL: select * from t7 where c1 not in (select t7.c1 from t8 where t8.c1 >1);
===============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------
|0 |NESTED-LOOP ANTI JOIN| |0 |3081|
|1 | TABLE SCAN |t7 |100 |90 |
|2 | MATERIAL | |100 |120 |
|3 | SUBPLAN SCAN |VIEW1|100 |102 |
|4 | TABLE SCAN |t8 |100 |88 |
===============================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds([t7.c1 = t7.c1]), nl_params_(nil), batch_join=false
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil)
3 - output([1]), filter(nil),
access(nil)
4 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(1 ; MAX),
range_cond([t8.c1 > ?])
*************** Case 285(end) **************
*************** Case 286 ***************
SQL: select * from t7 where c1 not in (select (select c1 from t1) from t8 where t8.c1 >1);
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SUBPLAN FILTER | |50 |2574|
|1 | TABLE SCAN |t7 |100 |90 |
|2 | SUBPLAN FILTER | |100 |456 |
|3 | TABLE SCAN |t8 |100 |88 |
|4 | PX COORDINATOR | |500 |354 |
|5 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|6 | PX PARTITION ITERATOR| |500 |331 |
|7 | TABLE SCAN |t1 |500 |331 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([t7.c1 != ALL(subquery(1))]),
exec_params_(nil), onetime_exprs_(nil), init_plan_idxs_([1])
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([?]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
3 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(1 ; MAX),
range_cond([t8.c1 > ?])
4 - output([t1.c1]), filter(nil)
5 - output([t1.c1]), filter(nil), dop=1
6 - output([t1.c1]), filter(nil),
force partition granule, asc.
7 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 286(end) **************
*************** Case 287 ***************
SQL: select * from t7 where c1 in (select t8.c1 from t8 where t8.c1 >1);
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |MERGE JOIN | |100 |265 |
|1 | TABLE SCAN|t7 |100 |90 |
|2 | TABLE SCAN|t8 |100 |88 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
equal_conds([t7.c1 = t8.c1]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(1 ; MAX),
range_cond([t7.c1 > ?])
2 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(1 ; MAX),
range_cond([t8.c1 > ?])
*************** Case 287(end) **************
*************** Case 288 ***************
SQL: select * from t7 where c1 in (select 1 from t8 where t8.c1 >t7.c1);
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |NESTED-LOOP SEMI JOIN CARTESIAN| |1 |168 |
|1 | TABLE GET |t7 |1 |52 |
|2 | SUBPLAN SCAN |VIEW1|100 |102 |
|3 | TABLE SCAN |t8 |100 |88 |
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range[1 ; 1],
range_cond([t7.c1 = ?])
2 - output([1]), filter(nil),
access(nil)
3 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(1 ; MAX),
range_cond([t8.c1 > ?])
*************** Case 288(end) **************
*************** Case 289 ***************
SQL: select * from t7 where c1 in (select 1 from t8 where t8.c1 >1);
==========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------
|0 |NESTED-LOOP JOIN| |1 |73 |
|1 | SUBPLAN SCAN |VIEW1|1 |37 |
|2 | TABLE SCAN |t8 |1 |36 |
|3 | TABLE GET |t7 |1 |36 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_([VIEW1.1]), batch_join=true
1 - output([VIEW1.1]), filter(nil),
access([VIEW1.1])
2 - output([?]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(1 ; MAX),
range_cond([t8.c1 > ?])
3 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX),
range_cond([t7.c1 = ?])
*************** Case 289(end) **************
*************** Case 290 ***************
SQL: select * from t1 where c1 = 1 and c2 in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33);
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |53 |
|2 | TABLE GET |t1 |1 |53 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil)
2 - output([t1.c1], [t1.c2]), filter([t1.c2 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]),
access([t1.c1], [t1.c2]), partitions(p1),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range[1 ; 1],
range_cond([t1.c1 = ?])
*************** Case 290(end) **************
*************** Case 291 ***************
SQL: select * from t1 partition(p1) where c2 =1 or c2 = 2;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |EXCHANGE IN REMOTE | |1980 |1442|
|1 | EXCHANGE OUT REMOTE| |1980 |1255|
|2 | TABLE SCAN |t1(idx_t1_c2)|1980 |1255|
======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil)
2 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p1),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(1,MIN ; 1,MAX), (2,MIN ; 2,MAX),
range_cond([t1.c2 = ? OR t1.c2 = ?])
*************** Case 291(end) **************
*************** Case 292 ***************
SQL: select * from t14 partition(p1) where (c1, c2) =(1, 2) or (c1, c2) = (2, 3);
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |20 |43 |
|1 | EXCHANGE OUT REMOTE| |20 |40 |
|2 | TABLE SCAN |t14 |20 |40 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t14.c1], [t14.c2], [t14.c3]), filter(nil)
1 - output([t14.c1], [t14.c2], [t14.c3]), filter(nil)
2 - output([t14.c3], [t14.c1], [t14.c2]), filter(nil),
access([t14.c3], [t14.c1], [t14.c2]), partitions(p1),
is_index_back=false,
range_key([t14.c1], [t14.c2], [t14.c3]), range(1,2,MIN ; 1,2,MAX), (2,3,MIN ; 2,3,MAX),
range_cond([(t14.c1, t14.c2) = (?, ?) OR (t14.c1, t14.c2) = (?, ?)])
*************** Case 292(end) **************
*************** Case 293 ***************
SQL: select/*+index(t14 primary)*/* from t14 partition(p1) where (c1, c2) =(1, 2) or (c1, c2) = (2, 3);
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |20 |43 |
|1 | EXCHANGE OUT REMOTE| |20 |40 |
|2 | TABLE SCAN |t14 |20 |40 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t14.c1], [t14.c2], [t14.c3]), filter(nil)
1 - output([t14.c1], [t14.c2], [t14.c3]), filter(nil)
2 - output([t14.c3], [t14.c1], [t14.c2]), filter(nil),
access([t14.c3], [t14.c1], [t14.c2]), partitions(p1),
is_index_back=false,
range_key([t14.c1], [t14.c2], [t14.c3]), range(1,2,MIN ; 1,2,MAX), (2,3,MIN ; 2,3,MAX),
range_cond([(t14.c1, t14.c2) = (?, ?) OR (t14.c1, t14.c2) = (?, ?)])
*************** Case 293(end) **************
*************** Case 294 ***************
SQL: select c1 from t1 where (1, 2) in (select t1.c1, t2.c1 from t2);
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |1 |105 |
|1 | PX COORDINATOR | |1 |52 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |52 |
|3 | TABLE GET |t1 |1 |52 |
|4 | PX COORDINATOR | |1 |52 |
|5 | EXCHANGE OUT DISTR |:EX20000|1 |52 |
|6 | TABLE GET |t2 |1 |52 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t1.c1]), filter(nil)
2 - output([t1.c1]), filter(nil), is_single, dop=1
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p1),
is_index_back=false,
range_key([t1.c1]), range[1 ; 1],
range_cond([t1.c1 = ?])
4 - output([1]), filter(nil)
5 - output([1]), filter(nil), is_single, dop=1
6 - output([1]), filter(nil),
access([t2.c1]), partitions(p2),
is_index_back=false,
range_key([t2.c1]), range[2 ; 2],
range_cond([t2.c1 = ?])
*************** Case 294(end) **************
*************** Case 295 ***************
SQL: select c1 from t1 where (1, 2) in (select t2.c1, t2.c2 from t2 where t1.c1);
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |5 |60 |
|1 | PX COORDINATOR | |1 |53 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |53 |
|3 | TABLE GET |t2 |1 |53 |
|4 | PX COORDINATOR | |499 |396 |
|5 | EXCHANGE OUT DISTR |:EX20000|499 |373 |
|6 | PX PARTITION ITERATOR | |499 |373 |
|7 | TABLE SCAN |t1 |499 |373 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([1]), filter(nil)
2 - output([1]), filter(nil), is_single, dop=1
3 - output([1]), filter([t2.c2 = ?]),
access([t2.c2]), partitions(p1),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range[1 ; 1],
range_cond([t2.c1 = ?])
4 - output([t1.c1]), filter(nil)
5 - output([t1.c1]), filter(nil), dop=1
6 - output([t1.c1]), filter(nil),
force partition granule, asc.
7 - output([t1.c1]), filter([t1.c1]),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 295(end) **************
*************** Case 296 ***************
SQL: select c1 from t1 where (1, 2) in (select t2.c1, t2.c2 from t2 where (t2.c1 + 1));
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |3 |56 |
|1 | PX COORDINATOR | |1 |53 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |53 |
|3 | TABLE GET |t2 |1 |53 |
|4 | PX COORDINATOR | |500 |354 |
|5 | EXCHANGE OUT DISTR |:EX20000|500 |331 |
|6 | PX PARTITION ITERATOR | |500 |331 |
|7 | TABLE SCAN |t1 |500 |331 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([1]), filter(nil)
2 - output([1]), filter(nil), is_single, dop=1
3 - output([1]), filter([t2.c2 = ?], [t2.c1 + ?]),
access([t2.c1], [t2.c2]), partitions(p1),
is_index_back=false, filter_before_indexback[false,false],
range_key([t2.c1]), range[1 ; 1],
range_cond([t2.c1 = ?])
4 - output([t1.c1]), filter(nil)
5 - output([t1.c1]), filter(nil), dop=1
6 - output([t1.c1]), filter(nil),
force partition granule, asc.
7 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 296(end) **************
*************** Case 297 ***************
SQL: select c1 from t1 where (1, 2) in (select t2.c1, t2.c2 from t2 where (t1.c1 + 1));
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |3 |58 |
|1 | PX COORDINATOR | |1 |53 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |53 |
|3 | TABLE GET |t2 |1 |53 |
|4 | PX COORDINATOR | |250 |384 |
|5 | EXCHANGE OUT DISTR |:EX20000|250 |373 |
|6 | PX PARTITION ITERATOR | |250 |373 |
|7 | TABLE SCAN |t1 |250 |373 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([1]), filter(nil)
2 - output([1]), filter(nil), is_single, dop=1
3 - output([1]), filter([t2.c2 = ?]),
access([t2.c2]), partitions(p1),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range[1 ; 1],
range_cond([t2.c1 = ?])
4 - output([t1.c1]), filter(nil)
5 - output([t1.c1]), filter(nil), dop=1
6 - output([t1.c1]), filter(nil),
force partition granule, asc.
7 - output([t1.c1]), filter([t1.c1 + ?]),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 297(end) **************
*************** Case 298 ***************
SQL: select c1 from t1 where (1, 2) in (select t2.c1, t2.c2 from t2 where (t1.c1 + 1) = 2);
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |1 |56 |
|1 | PX COORDINATOR | |1 |53 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |53 |
|3 | TABLE GET |t2 |1 |53 |
|4 | PX COORDINATOR | |1 |373 |
|5 | EXCHANGE OUT DISTR |:EX20000|1 |373 |
|6 | PX PARTITION ITERATOR | |1 |373 |
|7 | TABLE SCAN |t1 |1 |373 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([1]), filter(nil)
2 - output([1]), filter(nil), is_single, dop=1
3 - output([1]), filter([t2.c2 = ?]),
access([t2.c2]), partitions(p1),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range[1 ; 1],
range_cond([t2.c1 = ?])
4 - output([t1.c1]), filter(nil)
5 - output([t1.c1]), filter(nil), dop=1
6 - output([t1.c1]), filter(nil),
force partition granule, asc.
7 - output([t1.c1]), filter([t1.c1 + ? = ?]),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 298(end) **************
*************** Case 299 ***************
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 |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:
-------------------------------------
0 - output([t1.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t1.c1]), filter(nil)
2 - output([t1.c1]), filter(nil), is_single, dop=1
3 - output([t1.c1]), filter([t1.c2 = ?], [t1.c1]),
access([t1.c1], [t1.c2]), partitions(p1),
is_index_back=false, filter_before_indexback[false,false],
range_key([t1.c1]), range[1 ; 1],
range_cond([t1.c1 = ?])
4 - output([1]), filter(nil),
access(nil)
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), 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,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 299(end) **************
*************** Case 300 ***************
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 | |485 |850 |
|1 | PX COORDINATOR | |485 |471 |
|2 | EXCHANGE OUT DISTR |:EX10000|485 |426 |
|3 | PX PARTITION ITERATOR | |485 |426 |
|4 | TABLE SCAN |t1 |485 |426 |
|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:
-------------------------------------
0 - output([t1.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t1.c2]), filter(nil)
2 - output([t1.c2]), filter(nil), dop=1
3 - output([t1.c2]), filter(nil),
force partition granule, asc.
4 - output([t1.c2]), filter([t1.c2], [t1.c1]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false,false],
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([1]), filter(nil)
6 - output([1]), filter(nil),
access(nil)
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), 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,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 300(end) **************
*************** Case 301 ***************
SQL: select * from t4 where c1 in (select t7.c1 from t7 left join t8 on t7.c1<=t8.c1 where (t7.c1,t4.c1) in (select c1,c2 from t9));
===================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN | |1 |189 |
|1 | SUBPLAN SCAN |VIEW3|2 |152 |
|2 | MERGE DISTINCT | |2 |152 |
|3 | NESTED-LOOP OUTER JOIN| |17 |148 |
|4 | NESTED-LOOP JOIN | |1 |117 |
|5 | TABLE SCAN |t9 |1 |99 |
|6 | TABLE GET |t7 |1 |36 |
|7 | TABLE SCAN |t8 |34 |42 |
|8 | TABLE SCAN |t4 |1 |36 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
conds(nil), nl_params_([VIEW3.VIEW2.t9.c2]), batch_join=true
1 - output([VIEW3.VIEW2.t9.c2]), filter(nil),
access([VIEW3.VIEW2.t9.c2])
2 - output([t9.c2], [t7.c1]), filter(nil),
distinct([t9.c2])
3 - output([t9.c2], [t7.c1]), filter(nil),
conds(nil), nl_params_([t7.c1]), batch_join=true
4 - output([t9.c2], [t7.c1]), filter(nil),
conds(nil), nl_params_([t9.c2]), batch_join=true
5 - output([t9.c2]), filter([t9.c2 = t9.c1]),
access([t9.c1], [t9.c2]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t9.c1]), range(MIN ; MAX)always true
6 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX),
range_cond([? = t7.c1])
7 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX),
range_cond([? <= t8.c1])
8 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN ; MAX),
range_cond([t4.c1 = ?])
*************** Case 301(end) **************
*************** Case 302 ***************
SQL: select * from t7 where 1 in (select c1 from t8 where t7.c1);
===================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |99 |215 |
|1 | TABLE GET |t8 |1 |52 |
|2 | TABLE SCAN |t7 |99 |99 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
1 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range[1 ; 1],
range_cond([t8.c1 = ?])
2 - output([t7.c1], [t7.c2]), filter([t7.c1]),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 302(end) **************
*************** Case 303 ***************
SQL: select * from t7 where 1 not in (select 2 from t8 where t7.c1=t8.c1);
=========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------
|0 |MERGE ANTI JOIN| |0 |278 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | SUBPLAN SCAN |VIEW1|100 |102 |
|3 | TABLE SCAN |t8 |100 |88 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
equal_conds([t7.c1 = VIEW1.t8.c1]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([VIEW1.t8.c1]), filter(nil), startup_filter([?]),
access([VIEW1.t8.c1])
3 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 303(end) **************
*************** Case 304 ***************
SQL: select * from t4 where (select c1 from t7)+1 in (select 2 from t8 where t4.c1=t8.c1);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |368 |
|1 | MERGE JOIN | |100 |267 |
|2 | TABLE SCAN |t4 |100 |92 |
|3 | TABLE SCAN |t8 |100 |88 |
|4 | TABLE SCAN |t7 |100 |88 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter([?]),
exec_params_(nil), onetime_exprs_([subquery(1) + ? = ?]), init_plan_idxs_(nil)
1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
equal_conds([t4.c1 = t8.c1]), other_conds(nil)
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
3 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
4 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 304(end) **************
*************** Case 305 ***************
SQL: select * from t4 where (select 2)+(select c1 from t7)+1 in (select 2 from t8 where t4.c1=t8.c1);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |368 |
|1 | MERGE JOIN | |100 |267 |
|2 | TABLE SCAN |t4 |100 |92 |
|3 | TABLE SCAN |t8 |100 |88 |
|4 | TABLE SCAN |t7 |100 |88 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter([?]),
exec_params_(nil), onetime_exprs_([? + subquery(1) + ? = ?]), init_plan_idxs_(nil)
1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
equal_conds([t4.c1 = t8.c1]), other_conds(nil)
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
3 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
4 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 305(end) **************
*************** Case 306 ***************
SQL: select sum(c1)+sum(c2), sum(c1) from t1 group by c2 having sum(c1) > 5;
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |95 |687 |
|1 | EXCHANGE OUT DISTR |:EX10001 |95 |678 |
|2 | MERGE GROUP BY | |95 |678 |
|3 | EXCHANGE IN MERGE SORT DISTR| |95 |515 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10000 |95 |506 |
|5 | PX PARTITION ITERATOR | |95 |506 |
|6 | MERGE GROUP BY | |95 |506 |
|7 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
=================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(t1.c1)) + T_FUN_SUM(T_FUN_SUM(t1.c2))], [T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil)
1 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_SUM(T_FUN_SUM(t1.c1)) + T_FUN_SUM(T_FUN_SUM(t1.c2))]), filter(nil), dop=1
2 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_SUM(T_FUN_SUM(t1.c1)) + T_FUN_SUM(T_FUN_SUM(t1.c2))]), filter([T_FUN_SUM(T_FUN_SUM(t1.c1)) > ?]),
group([t1.c2]), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_SUM(T_FUN_SUM(t1.c2))])
3 - output([T_FUN_SUM(t1.c1)], [T_FUN_SUM(t1.c2)], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
4 - (#keys=1, [t1.c2]), output([T_FUN_SUM(t1.c1)], [T_FUN_SUM(t1.c2)], [t1.c2]), filter(nil), dop=1
5 - output([T_FUN_SUM(t1.c1)], [T_FUN_SUM(t1.c2)], [t1.c2]), filter(nil),
force partition granule, asc.
6 - output([T_FUN_SUM(t1.c1)], [T_FUN_SUM(t1.c2)], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(t1.c1)], [T_FUN_SUM(t1.c2)])
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 306(end) **************
*************** Case 307 ***************
SQL: select sum(c1), c2, count(c1) from t1 group by c2 having sum(c1) > 5 and count(c1) > 0 and c2 > 1;
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |5 |670 |
|1 | EXCHANGE OUT DISTR |:EX10001 |5 |670 |
|2 | MERGE GROUP BY | |5 |670 |
|3 | EXCHANGE IN MERGE SORT DISTR| |5 |506 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10000 |5 |506 |
|5 | PX PARTITION ITERATOR | |5 |506 |
|6 | MERGE GROUP BY | |5 |506 |
|7 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
=================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil)
1 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil), dop=1
2 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)) > ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) > ?]),
group([t1.c2]), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))])
3 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
4 - (#keys=1, [t1.c2]), output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
5 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil),
force partition granule, asc.
6 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)])
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(1,MAX ; MAX,MAX),
range_cond([t1.c2 > ?])
*************** Case 307(end) **************
*************** Case 308 ***************
SQL: select distinct sum(c1) from t1 group by c2 having sum(c1) > 5;
====================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------------
|0 |PX COORDINATOR | |95 |741 |
|1 | EXCHANGE OUT DISTR |:EX10002 |95 |733 |
|2 | HASH DISTINCT | |95 |733 |
|3 | EXCHANGE IN DISTR | |95 |634 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10001 |95 |625 |
|5 | MERGE GROUP BY | |95 |625 |
|6 | EXCHANGE IN MERGE SORT DISTR| |95 |488 |
|7 | EXCHANGE OUT DISTR (HASH) |:EX10000 |95 |479 |
|8 | PX PARTITION ITERATOR | |95 |479 |
|9 | MERGE GROUP BY | |95 |479 |
|10| TABLE SCAN |t1(idx_t1_c2)|500 |342 |
====================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil)
1 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil), dop=1
2 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil),
distinct([T_FUN_SUM(T_FUN_SUM(t1.c1))])
3 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil)
4 - (#keys=1, [T_FUN_SUM(T_FUN_SUM(t1.c1))]), output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil), dop=1
5 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter([T_FUN_SUM(T_FUN_SUM(t1.c1)) > ?]),
group([t1.c2]), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))])
6 - output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
7 - (#keys=1, [t1.c2]), output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil), dop=1
8 - output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil),
force partition granule, asc.
9 - output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(t1.c1)])
10 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 308(end) **************
*************** Case 309 ***************
SQL: select distinct sum(c1), c2, count(c1) from t1 group by c2 having sum(c1) > 5 and count(c1) > 0 and c2 > 1;
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |5 |670 |
|1 | EXCHANGE OUT DISTR |:EX10001 |5 |670 |
|2 | MERGE GROUP BY | |5 |670 |
|3 | EXCHANGE IN MERGE SORT DISTR| |5 |506 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10000 |5 |506 |
|5 | PX PARTITION ITERATOR | |5 |506 |
|6 | MERGE GROUP BY | |5 |506 |
|7 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
=================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil)
1 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil), dop=1
2 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)) > ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) > ?]),
group([t1.c2]), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))])
3 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
4 - (#keys=1, [t1.c2]), output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
5 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil),
force partition granule, asc.
6 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)])
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(1,MAX ; MAX,MAX),
range_cond([t1.c2 > ?])
*************** Case 309(end) **************
*************** Case 310 ***************
SQL: select distinct sum(c1), c2, count(c1), avg(c1) from t1 group by c2 having sum(c1) > 5 and count(c1) > 0 and c2 > 1;
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |5 |670 |
|1 | EXCHANGE OUT DISTR |:EX10001 |5 |670 |
|2 | MERGE GROUP BY | |5 |670 |
|3 | EXCHANGE IN MERGE SORT DISTR| |5 |506 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10000 |5 |506 |
|5 | PX PARTITION ITERATOR | |5 |506 |
|6 | MERGE GROUP BY | |5 |506 |
|7 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
=================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))], [T_FUN_SUM(T_FUN_SUM(t1.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil)
1 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))], [T_FUN_SUM(T_FUN_SUM(t1.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil), dop=1
2 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))], [T_FUN_SUM(T_FUN_SUM(t1.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)) > ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) > ?]),
group([t1.c2]), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))])
3 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
4 - (#keys=1, [t1.c2]), output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
5 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil),
force partition granule, asc.
6 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)])
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(1,MAX ; MAX,MAX),
range_cond([t1.c2 > ?])
*************** Case 310(end) **************
*************** Case 311 ***************
SQL: select distinct sum(c1)+1, sum(c1) + 2 from t1 group by c2 having sum(c1) > 5 and count(c1) + 2 > 2;
====================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------------
|0 |PX COORDINATOR | |5 |676 |
|1 | EXCHANGE OUT DISTR |:EX10002 |5 |676 |
|2 | HASH DISTINCT | |5 |676 |
|3 | EXCHANGE IN DISTR | |5 |670 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10001 |5 |670 |
|5 | MERGE GROUP BY | |5 |670 |
|6 | EXCHANGE IN MERGE SORT DISTR| |5 |506 |
|7 | EXCHANGE OUT DISTR (HASH) |:EX10000 |5 |506 |
|8 | PX PARTITION ITERATOR | |5 |506 |
|9 | MERGE GROUP BY | |5 |506 |
|10| TABLE SCAN |t1(idx_t1_c2)|500 |342 |
====================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?]), filter(nil)
1 - output([T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?]), filter(nil), dop=1
2 - output([T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?]), filter(nil),
distinct([T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?])
3 - output([T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?]), filter(nil)
4 - (#keys=2, [T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?]), output([T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?]), filter(nil), dop=1
5 - output([T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?]), filter([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)) + ? > ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) > ?]),
group([t1.c2]), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))])
6 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
7 - (#keys=1, [t1.c2]), output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
8 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil),
force partition granule, asc.
9 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)])
10 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 311(end) **************
*************** Case 312 ***************
SQL: select * from t1, t2 where t1.c1 > any(select t3.c2 from t2,t3 where t2.c1 > any(select t4.c1 from t4,t5 where exists (select c1 from t2 )));
=========================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
-------------------------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |50000 |2913872|
|1 | PX COORDINATOR | |300 |290 |
|2 | EXCHANGE OUT DISTR |:EX10000 |300 |205 |
|3 | PX PARTITION ITERATOR | |300 |205 |
|4 | TABLE SCAN |t2 |300 |205 |
|5 | MATERIAL | |167 |2877679|
|6 | NESTED-LOOP SEMI JOIN | |167 |2877617|
|7 | PX COORDINATOR | |500 |389 |
|8 | EXCHANGE OUT DISTR |:EX20000 |500 |342 |
|9 | PX PARTITION ITERATOR | |500 |342 |
|10| TABLE SCAN |t1 |500 |342 |
|11| MATERIAL | |20000 |57084 |
|12| SUBPLAN SCAN |VIEW2 |20000 |53409 |
|13| NESTED-LOOP JOIN CARTESIAN | |20000 |50649 |
|14| PX COORDINATOR | |200 |163 |
|15| EXCHANGE OUT DISTR |:EX30000 |200 |144 |
|16| PX PARTITION ITERATOR | |200 |144 |
|17| TABLE SCAN |t3 |200 |144 |
|18| MATERIAL | |100 |36333 |
|19| NESTED-LOOP SEMI JOIN | |100 |36315 |
|20| PX COORDINATOR | |300 |206 |
|21| EXCHANGE OUT DISTR |:EX40000 |300 |192 |
|22| PX PARTITION ITERATOR | |300 |192 |
|23| TABLE SCAN |t2 |300 |192 |
|24| SUBPLAN SCAN |VIEW1 |1 |120 |
|25| SUBPLAN FILTER | |1 |120 |
|26| NESTED-LOOP JOIN CARTESIAN| |1 |84 |
|27| PX COORDINATOR | |1 |36 |
|28| EXCHANGE OUT DISTR |:EX50000 |1 |36 |
|29| PX PARTITION ITERATOR | |1 |36 |
|30| TABLE SCAN |t5(idx_t5_c2)|1 |36 |
|31| MATERIAL | |34 |48 |
|32| TABLE SCAN |t4 |34 |42 |
|33| LIMIT | |1 |37 |
|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:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
5 - output([t1.c1], [t1.c2]), filter(nil)
6 - output([t1.c1], [t1.c2]), filter(nil),
conds([t1.c1 > VIEW2.c2]), nl_params_(nil), batch_join=false
7 - output([t1.c1], [t1.c2]), filter(nil)
8 - output([t1.c1], [t1.c2]), filter(nil), dop=1
9 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
10 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
11 - output([VIEW2.c2]), filter(nil)
12 - output([VIEW2.c2]), filter(nil),
access([VIEW2.c2])
13 - output([t3.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
14 - output([t3.c2]), filter(nil)
15 - output([t3.c2]), filter(nil), dop=1
16 - output([t3.c2]), filter(nil),
force partition granule, asc.
17 - output([t3.c2]), filter(nil),
access([t3.c2]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
18 - output([1]), filter(nil)
19 - output([1]), filter(nil),
conds(nil), nl_params_([t2.c1]), batch_join=false
20 - output([t2.c1]), filter(nil)
21 - output([t2.c1]), filter(nil), dop=1
22 - output([t2.c1]), filter(nil),
force partition granule, asc.
23 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
24 - output([1]), filter(nil),
access([VIEW1.c1])
25 - output([t4.c1]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
26 - output([t4.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
27 - output([1]), filter(nil)
28 - output([1]), filter(nil), dop=1
29 - output([1]), filter(nil),
force partition granule, asc.
30 - output([1]), filter(nil),
access([t5.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t5.c2], [t5.c3]), range(MIN,MIN ; MAX,MAX)always true
31 - output([t4.c1]), filter(nil)
32 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true,
range_cond([? > t4.c1])
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), 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,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 312(end) **************
*************** Case 313 ***************
SQL: select * from t4,t4 t5 where t4.c1+t5.c1 in (select t7.c1 from t7,t8);
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
--------------------------------------------------------
|0 |HASH JOIN | |5000 |24065|
|1 | SUBPLAN SCAN |VIEW2|100 |9502 |
|2 | MERGE DISTINCT | |100 |9488 |
|3 | NESTED-LOOP JOIN CARTESIAN| |10000 |7270 |
|4 | TABLE SCAN |t7 |100 |88 |
|5 | MATERIAL | |100 |106 |
|6 | TABLE SCAN |t8 |100 |88 |
|7 | NESTED-LOOP JOIN CARTESIAN | |10000 |7525 |
|8 | TABLE SCAN |t4 |100 |92 |
|9 | MATERIAL | |100 |148 |
|10| TABLE SCAN |t5 |100 |92 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil),
equal_conds([t4.c1 + t5.c1 = VIEW2.VIEW1.c1]), other_conds(nil)
1 - output([VIEW2.VIEW1.c1]), filter(nil),
access([VIEW2.VIEW1.c1])
2 - output([t7.c1]), filter(nil),
distinct([t7.c1])
3 - output([t7.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
4 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
5 - output([1]), filter(nil)
6 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
7 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3], [t4.c1 + t5.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
8 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
9 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
10 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil),
access([t5.c1], [t5.c2], [t5.c3]), partitions(p0),
is_index_back=false,
range_key([t5.c1], [t5.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 313(end) **************
*************** Case 314 ***************
SQL: select * from t4,t4 t5 where t4.c1 in (select t7.c1 from t7,t8);
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
---------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |9901 |11285|
|1 | NESTED-LOOP JOIN | |100 |3926 |
|2 | TABLE SCAN |t4 |100 |92 |
|3 | SUBPLAN SCAN |VIEW2|1 |38 |
|4 | LIMIT | |1 |38 |
|5 | NESTED-LOOP JOIN CARTESIAN| |1 |38 |
|6 | TABLE GET |t7 |1 |36 |
|7 | TABLE SCAN |t8 |100 |88 |
|8 | MATERIAL | |100 |148 |
|9 | TABLE SCAN |t5 |100 |92 |
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
conds(nil), nl_params_([t4.c1]), batch_join=false
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
3 - output([1]), filter(nil),
access([VIEW2.VIEW1.c1])
4 - output([t7.c1]), filter(nil), limit(1), offset(nil)
5 - output([t7.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
6 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([? = t7.c1])
7 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
8 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
9 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil),
access([t5.c1], [t5.c2], [t5.c3]), partitions(p0),
is_index_back=false,
range_key([t5.c1], [t5.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 314(end) **************
*************** Case 315 ***************
SQL: select * from t4,t4 t5 where t4.c1+t5.c1 in (select t7.c1 from t7,t8 where t7.c1=t8.c1);
======================================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
------------------------------------------------------
|0 |HASH JOIN | |5000 |19455|
|1 | TABLE SCAN |t8 |100 |88 |
|2 | HASH JOIN | |5000 |14651|
|3 | TABLE SCAN |t7 |100 |88 |
|4 | NESTED-LOOP JOIN CARTESIAN| |10000 |7525 |
|5 | TABLE SCAN |t4 |100 |92 |
|6 | MATERIAL | |100 |148 |
|7 | TABLE SCAN |t5 |100 |92 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil),
equal_conds([t7.c1 = t8.c1]), other_conds(nil)
1 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
2 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3], [t7.c1]), filter(nil),
equal_conds([t4.c1 + t5.c1 = t7.c1]), other_conds(nil)
3 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
4 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3], [t4.c1 + t5.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
5 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
6 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil)
7 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil),
access([t5.c1], [t5.c2], [t5.c3]), partitions(p0),
is_index_back=false,
range_key([t5.c1], [t5.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 315(end) **************
*************** Case 316 ***************
SQL: select count(*) v from t1 where c2 = 1;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |533 |
|1 | PX COORDINATOR | |1 |437 |
|2 | EXCHANGE OUT DISTR |:EX10000 |1 |437 |
|3 | MERGE GROUP BY | |1 |437 |
|4 | PX PARTITION ITERATOR| |500 |342 |
|5 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
1 - output([T_FUN_COUNT(*)]), filter(nil)
2 - output([T_FUN_COUNT(*)]), filter(nil), dop=1
3 - output([T_FUN_COUNT(*)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)])
4 - output([1]), filter(nil),
force partition granule, asc.
5 - output([1]), filter(nil),
access([t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(1,MIN ; 1,MAX),
range_cond([t1.c2 = ?])
*************** Case 316(end) **************
*************** Case 317 ***************
SQL: select count(*) v, sum(c1) as v2 from t1 where c1 > 0;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |575 |
|1 | PX COORDINATOR | |1 |453 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |453 |
|3 | MERGE GROUP BY | |1 |453 |
|4 | PX PARTITION ITERATOR| |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [T_FUN_SUM(T_FUN_SUM(t1.c1))])
1 - output([T_FUN_COUNT(*)], [T_FUN_SUM(t1.c1)]), filter(nil)
2 - output([T_FUN_COUNT(*)], [T_FUN_SUM(t1.c1)]), filter(nil), dop=1
3 - output([T_FUN_COUNT(*)], [T_FUN_SUM(t1.c1)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)], [T_FUN_SUM(t1.c1)])
4 - output([t1.c1]), filter(nil),
force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(0 ; MAX),
range_cond([t1.c1 > ?])
*************** Case 317(end) **************
*************** Case 318 ***************
SQL: select distinct sum(c1), c2, count(c1), avg(c1) as alias from t1 group by c2 having sum(c1) > 5 and count(c1) > 0 and c2 > 1 and alias > 100;
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |1 |670 |
|1 | EXCHANGE OUT DISTR |:EX10001 |1 |670 |
|2 | MERGE GROUP BY | |1 |670 |
|3 | EXCHANGE IN MERGE SORT DISTR| |1 |506 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10000 |1 |506 |
|5 | PX PARTITION ITERATOR | |1 |506 |
|6 | MERGE GROUP BY | |1 |506 |
|7 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
=================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))], [T_FUN_SUM(T_FUN_SUM(t1.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil)
1 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))], [T_FUN_SUM(T_FUN_SUM(t1.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil), dop=1
2 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))], [t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))], [T_FUN_SUM(T_FUN_SUM(t1.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)) > ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)) > ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) > ?]),
group([t1.c2]), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))])
3 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
4 - (#keys=1, [t1.c2]), output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
5 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil),
force partition granule, asc.
6 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)])
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(1,MAX ; MAX,MAX),
range_cond([t1.c2 > ?])
*************** Case 318(end) **************
*************** Case 319 ***************
SQL: select 1 from t15;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |400 |280 |
|1 | EXCHANGE OUT DISTR |:EX10000|400 |261 |
|2 | PX PARTITION ITERATOR| |400 |261 |
|3 | TABLE SCAN |t15 |400 |261 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter(nil)
1 - output([?]), filter(nil), dop=1
2 - output([?]), filter(nil),
force partition granule, asc.
3 - output([?]), filter(nil),
access([t15.__pk_increment]), partitions(p[0-3]),
is_index_back=false,
range_key([t15.__pk_increment], [t15.__pk_cluster_id], [t15.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 319(end) **************
*************** Case 320 ***************
SQL: select c1 from t15 where false;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |400 |289 |
|1 | EXCHANGE OUT DISTR |:EX10000|400 |270 |
|2 | PX PARTITION ITERATOR| |400 |270 |
|3 | TABLE SCAN |t15 |400 |270 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t15.c1]), filter(nil), startup_filter([0])
1 - output([t15.c1]), filter(nil), dop=1
2 - output([t15.c1]), filter(nil),
force partition granule, asc.
3 - output([t15.c1]), filter(nil),
access([t15.c1]), partitions(p[0-3]),
is_index_back=false,
range_key([t15.__pk_increment], [t15.__pk_cluster_id], [t15.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 320(end) **************
*************** Case 321 ***************
SQL: select count(1) from t15 where false;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |414 |
|1 | PX COORDINATOR | |1 |337 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |337 |
|3 | MERGE GROUP BY | |1 |337 |
|4 | PX PARTITION ITERATOR| |400 |261 |
|5 | TABLE SCAN |t15 |400 |261 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(?))]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(?))])
1 - output([T_FUN_COUNT(?)]), filter(nil), startup_filter([0])
2 - output([T_FUN_COUNT(?)]), filter(nil), dop=1
3 - output([T_FUN_COUNT(?)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(?)])
4 - output([1]), filter(nil),
force partition granule, asc.
5 - output([1]), filter(nil),
access([t15.__pk_increment]), partitions(p[0-3]),
is_index_back=false,
range_key([t15.__pk_increment], [t15.__pk_cluster_id], [t15.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 321(end) **************
*************** Case 322 ***************
SQL: select * from t1 order by c2,c1,c2;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |1125|
|1 | EXCHANGE OUT DISTR |:EX10000 |500 |1078|
|2 | SORT | |500 |1078|
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC], [t1.c1, ASC])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC], [t1.c1, ASC]), local merge sort
3 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 322(end) **************
*************** Case 323 ***************
SQL: select * from t1 left outer join t2 using(c1) order by t1.c1 desc, t2.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |1725|
|1 | EXCHANGE OUT DISTR |:EX10001 |500 |1536|
|2 | MERGE OUTER JOIN | |500 |1536|
|3 | EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000 |500 |342 |
|5 | PX PARTITION ITERATOR | |500 |342 |
|6 | TABLE SCAN |t1(Reverse)|500 |342 |
|7 | SORT | |300 |859 |
|8 | PX PARTITION ITERATOR | |300 |205 |
|9 | TABLE SCAN |t2(Reverse)|300 |205 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c2], [t2.c3]), filter(nil), sort_keys([t1.c1, DESC])
1 - output([t1.c1], [t1.c2], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, DESC]), Local Order
4 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t2.c2], [t2.c3], [t2.c1]), filter(nil), sort_keys([t2.c1, DESC]), local merge sort
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 323(end) **************
*************** Case 324 ***************
SQL: select count(*) from t1 left outer join t2 using(c1) group by (t1.c1) having count(*) > 1 order by t1.c1 desc, t2.c1;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |1507|
|1 | EXCHANGE OUT DISTR |:EX10001 |500 |1460|
|2 | MERGE OUTER JOIN | |500 |1460|
|3 | SORT | |500 |966 |
|4 | PX PARTITION ITERATOR | |500 |331 |
|5 | TABLE SCAN |t1(Reverse)|500 |331 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000 |300 |192 |
|8 | PX PARTITION ITERATOR | |300 |192 |
|9 | TABLE SCAN |t2(Reverse)|300 |192 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([1]), filter(nil), startup_filter([?]), sort_keys([t1.c1, DESC])
1 - output([1], [t1.c1]), filter(nil), dop=1
2 - output([1], [t1.c1]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), local merge sort
4 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil), sort_keys([t2.c1, DESC]), Local Order
7 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
8 - output([t2.c1]), filter(nil),
force partition granule, asc.
9 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 324(end) **************
*************** Case 325 ***************
SQL: select now() from t1 left outer join t2 using(c1);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter(nil)
1 - output([?]), filter(nil), dop=1
2 - output([?]), filter(nil),
force partition granule, asc.
3 - output([?]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 325(end) **************
*************** Case 326 ***************
SQL: select a1.c2 from t1 left join t2 a1 on (a1.c1= t1.c1) where least(t1.c2, a1.c2) > 1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |100 |1531|
|1 | EXCHANGE OUT DISTR |:EX10001|100 |1512|
|2 | MERGE JOIN | |100 |1512|
|3 | SORT | |500 |1074|
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |227 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |198 |
|8 | PX PARTITION ITERATOR | |300 |198 |
|9 | TABLE SCAN |a1 |300 |198 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([a1.c2]), filter(nil)
1 - output([a1.c2]), filter(nil), dop=1
2 - output([a1.c2]), filter(nil),
equal_conds([a1.c1 = t1.c1]), other_conds([least(t1.c2, a1.c2) > ?])
3 - output([t1.c2], [t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([a1.c1], [a1.c2]), filter(nil), sort_keys([a1.c1, ASC]), Local Order
7 - (#keys=1, [a1.c1]), output([a1.c1], [a1.c2]), filter(nil), dop=1
8 - output([a1.c1], [a1.c2]), filter(nil),
force partition granule, asc.
9 - output([a1.c1], [a1.c2]), filter(nil),
access([a1.c1], [a1.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([a1.c1]), range(MIN ; MAX)always true
*************** Case 326(end) **************
*************** Case 327 ***************
SQL: select a1.c2 from t1 left join t2 a1 on (a1.c1= t1.c1) where length(t1.c2) > 1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |167 |1213|
|1 | EXCHANGE OUT DISTR |:EX10001|167 |1181|
|2 | MERGE OUTER JOIN | |167 |1181|
|3 | EXCHANGE IN MERGE SORT DISTR| |167 |399 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000|167 |384 |
|5 | PX PARTITION ITERATOR | |167 |384 |
|6 | TABLE SCAN |t1 |167 |384 |
|7 | SORT | |300 |619 |
|8 | PX PARTITION ITERATOR | |300 |198 |
|9 | TABLE SCAN |a1 |300 |198 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([a1.c2]), filter(nil)
1 - output([a1.c2]), filter(nil), dop=1
2 - output([a1.c2]), filter(nil),
equal_conds([a1.c1 = t1.c1]), other_conds(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
4 - (#keys=1, [t1.c1]), output([t1.c1]), filter(nil), dop=1
5 - output([t1.c1]), filter(nil),
force partition granule, asc.
6 - output([t1.c1]), filter([length(t1.c2) > ?]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([a1.c2], [a1.c1]), filter(nil), sort_keys([a1.c1, ASC]), local merge sort
8 - output([a1.c1], [a1.c2]), filter(nil),
affinitize, force partition granule, asc.
9 - output([a1.c1], [a1.c2]), filter(nil),
access([a1.c1], [a1.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([a1.c1]), range(MIN ; MAX)always true
*************** Case 327(end) **************
*************** Case 328 ***************
SQL: select a2.c2, t1.c2, a1.c2 from t1 left join t2 a1 on (a1.c1 = t1.c1), t2 a2 where least(t1.c2, a1.c2) =a2.c2;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |HASH JOIN | |450 |2674|
|1 | PX COORDINATOR | |300 |227 |
|2 | EXCHANGE OUT DISTR |:EX10000|300 |198 |
|3 | PX PARTITION ITERATOR | |300 |198 |
|4 | TABLE SCAN |a2 |300 |198 |
|5 | PX COORDINATOR | |300 |1645|
|6 | EXCHANGE OUT DISTR |:EX20001|300 |1589|
|7 | MERGE JOIN | |300 |1589|
|8 | SORT | |500 |1074|
|9 | PX PARTITION ITERATOR | |500 |342 |
|10| TABLE SCAN |t1 |500 |342 |
|11| EXCHANGE IN MERGE SORT DISTR| |300 |227 |
|12| EXCHANGE OUT DISTR (PKEY) |:EX20000|300 |198 |
|13| PX PARTITION ITERATOR | |300 |198 |
|14| TABLE SCAN |a1 |300 |198 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([a2.c2], [t1.c2], [a1.c2]), filter(nil),
equal_conds([least(t1.c2, a1.c2) = a2.c2]), other_conds(nil)
1 - output([a2.c2]), filter(nil)
2 - output([a2.c2]), filter(nil), dop=1
3 - output([a2.c2]), filter(nil),
force partition granule, asc.
4 - output([a2.c2]), filter(nil),
access([a2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([a2.c1]), range(MIN ; MAX)always true
5 - output([t1.c2], [a1.c2], [least(t1.c2, a1.c2)]), filter(nil)
6 - output([t1.c2], [a1.c2], [least(t1.c2, a1.c2)]), filter(nil), dop=1
7 - output([t1.c2], [a1.c2], [least(t1.c2, a1.c2)]), filter(nil),
equal_conds([a1.c1 = t1.c1]), other_conds(nil)
8 - output([t1.c2], [t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
9 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
10 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
11 - output([a1.c1], [a1.c2]), filter(nil), sort_keys([a1.c1, ASC]), Local Order
12 - (#keys=1, [a1.c1]), output([a1.c1], [a1.c2]), filter(nil), dop=1
13 - output([a1.c1], [a1.c2]), filter(nil),
force partition granule, asc.
14 - output([a1.c1], [a1.c2]), filter(nil),
access([a1.c1], [a1.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([a1.c1]), range(MIN ; MAX)always true
*************** Case 328(end) **************
*************** Case 329 ***************
SQL: select f_acc.c2, a1.c2, a2.c2 from t2 left join t2 f1 on (f1.c1 = 1 and t2.c3 = f1.c3) left join t3 a1 on (a1.c1 = f1.c1) left join t2 f2 on (f2.c1 = 3 and f2.c3=t2.c3) left join t3 a2 on (a2.c1 = f2.c1), t3 f_acc where least(a1.c2, a2.c2) = f_acc.c2;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |NESTED-LOOP JOIN | |1 |831 |
|1 | PX COORDINATOR | |1 |53 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |52 |
|3 | TABLE GET |a2 |1 |52 |
|4 | NESTED-LOOP JOIN CARTESIAN | |6 |777 |
|5 | PX COORDINATOR | |200 |163 |
|6 | EXCHANGE OUT DISTR |:EX20000|200 |144 |
|7 | PX PARTITION ITERATOR | |200 |144 |
|8 | TABLE SCAN |f_acc |200 |144 |
|9 | MATERIAL | |1 |610 |
|10| NESTED-LOOP JOIN CARTESIAN| |1 |610 |
|11| PX COORDINATOR | |1 |53 |
|12| EXCHANGE OUT DISTR |:EX30000|1 |52 |
|13| TABLE GET |a1 |1 |52 |
|14| MERGE JOIN | |1 |557 |
|15| NESTED-LOOP JOIN | |3 |505 |
|16| PX COORDINATOR | |1 |53 |
|17| EXCHANGE OUT DISTR |:EX40000|1 |52 |
|18| TABLE GET |f1 |1 |52 |
|19| PX COORDINATOR | |300 |269 |
|20| EXCHANGE OUT DISTR |:EX50000|300 |198 |
|21| PX PARTITION ITERATOR| |300 |198 |
|22| TABLE SCAN |t2 |300 |198 |
|23| TABLE GET |f2 |1 |52 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([f_acc.c2], [a1.c2], [a2.c2]), filter(nil),
conds([least(a1.c2, a2.c2) = f_acc.c2]), nl_params_(nil), batch_join=false
1 - output([a2.c2]), filter(nil)
2 - output([a2.c2]), filter(nil), is_single, dop=1
3 - output([a2.c2]), filter(nil),
access([a2.c2]), partitions(p1),
is_index_back=false,
range_key([a2.c1]), range[3 ; 3],
range_cond([a2.c1 = ?])
4 - output([f_acc.c2], [a1.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
5 - output([f_acc.c2]), filter(nil)
6 - output([f_acc.c2]), filter(nil), dop=1
7 - output([f_acc.c2]), filter(nil),
force partition granule, asc.
8 - output([f_acc.c2]), filter(nil),
access([f_acc.c2]), partitions(p[0-1]),
is_index_back=false,
range_key([f_acc.c1]), range(MIN ; MAX)always true
9 - output([a1.c2]), filter(nil)
10 - output([a1.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
11 - output([a1.c2]), filter(nil)
12 - output([a1.c2]), filter(nil), is_single, dop=1
13 - output([a1.c2]), filter(nil),
access([a1.c2]), partitions(p1),
is_index_back=false,
range_key([a1.c1]), range[1 ; 1],
range_cond([a1.c1 = ?])
14 - output([1]), filter(nil),
equal_conds([f2.c3 = t2.c3]), other_conds(nil)
15 - output([t2.c3]), filter(nil),
conds([t2.c3 = f1.c3]), nl_params_(nil), batch_join=false
16 - output([f1.c3]), filter(nil)
17 - output([f1.c3]), filter(nil), is_single, dop=1
18 - output([f1.c3]), filter(nil),
access([f1.c3]), partitions(p1),
is_index_back=false,
range_key([f1.c1]), range[1 ; 1],
range_cond([f1.c1 = ?])
19 - output([t2.c3]), filter(nil)
20 - output([t2.c3]), filter(nil), dop=1
21 - output([t2.c3]), filter(nil),
force partition granule, asc.
22 - output([t2.c3]), filter(nil),
access([t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
23 - output([f2.c3]), filter(nil),
access([f2.c3]), partitions(p0),
is_index_back=false,
range_key([f2.c1]), range[3 ; 3],
range_cond([f2.c1 = ?])
*************** Case 329(end) **************
*************** Case 330 ***************
SQL: select f_acc.c2, a1.c2, a2.c2 from t2 left join t2 f1 on (f1.c1 =1 and f1.c3 = t2.c3) left join t3 a1 on (a1.c1 = f1.c1) left join t3 a2 on (a2.c1 = f1.c1) , t3 f_acc where least(a1.c2, a2.c2) = f_acc.c2;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |3 |784 |
|1 | NESTED-LOOP JOIN | |3 |505 |
|2 | PX COORDINATOR | |1 |53 |
|3 | EXCHANGE OUT DISTR |:EX10000|1 |52 |
|4 | TABLE GET |f1 |1 |52 |
|5 | PX COORDINATOR | |300 |269 |
|6 | EXCHANGE OUT DISTR |:EX20000|300 |198 |
|7 | PX PARTITION ITERATOR | |300 |198 |
|8 | TABLE SCAN |t2 |300 |198 |
|9 | MATERIAL | |1 |278 |
|10| NESTED-LOOP JOIN | |1 |277 |
|11| PX COORDINATOR | |1 |53 |
|12| EXCHANGE OUT DISTR |:EX30000|1 |52 |
|13| TABLE GET |a1 |1 |52 |
|14| PX COORDINATOR | |200 |163 |
|15| EXCHANGE OUT DISTR |:EX40000|200 |144 |
|16| PX PARTITION ITERATOR| |200 |144 |
|17| TABLE SCAN |f_acc |200 |144 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([f_acc.c2], [a1.c2], [a1.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([1]), filter(nil),
conds([f1.c3 = t2.c3]), nl_params_(nil), batch_join=false
2 - output([f1.c3]), filter(nil)
3 - output([f1.c3]), filter(nil), is_single, dop=1
4 - output([f1.c3]), filter(nil),
access([f1.c3]), partitions(p1),
is_index_back=false,
range_key([f1.c1]), range[1 ; 1],
range_cond([f1.c1 = ?])
5 - output([t2.c3]), filter(nil)
6 - output([t2.c3]), filter(nil), dop=1
7 - output([t2.c3]), filter(nil),
force partition granule, asc.
8 - output([t2.c3]), filter(nil),
access([t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
9 - output([f_acc.c2], [a1.c2]), filter(nil)
10 - output([f_acc.c2], [a1.c2]), filter(nil),
conds([least(a1.c2, a1.c2) = f_acc.c2]), nl_params_(nil), batch_join=false
11 - output([a1.c2]), filter(nil)
12 - output([a1.c2]), filter(nil), is_single, dop=1
13 - output([a1.c2]), filter(nil),
access([a1.c2]), partitions(p1),
is_index_back=false,
range_key([a1.c1]), range[1 ; 1],
range_cond([a1.c1 = ?])
14 - output([f_acc.c2]), filter(nil)
15 - output([f_acc.c2]), filter(nil), dop=1
16 - output([f_acc.c2]), filter(nil),
force partition granule, asc.
17 - output([f_acc.c2]), filter(nil),
access([f_acc.c2]), partitions(p[0-1]),
is_index_back=false,
range_key([f_acc.c1]), range(MIN ; MAX)always true
*************** Case 330(end) **************
*************** Case 331 ***************
SQL: select * from t9,t10,t11 where t9.c2=t10.c2 and t9.c3=t10.c3 and t9.c2=t11.c2 and t9.c3=t11.c3 order by t11.c3,t11.c2;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |82 |1260|
|1 | EXCHANGE OUT DISTR |:EX10001|82 |1225|
|2 | SORT | |82 |1225|
|3 | HASH JOIN | |82 |1013|
|4 | HASH JOIN | |91 |545 |
|5 | EXCHANGE IN DISTR | |100 |107 |
|6 | EXCHANGE OUT DISTR (PKEY)|:EX10000|100 |92 |
|7 | TABLE SCAN |t9 |100 |92 |
|8 | PX PARTITION ITERATOR | |200 |149 |
|9 | TABLE SCAN |t10 |200 |149 |
|10| PX PARTITION ITERATOR | |200 |149 |
|11| TABLE SCAN |t11 |200 |149 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t9.c1], [t9.c2], [t9.c3], [t10.c1], [t10.c2], [t10.c3], [t11.c1], [t11.c2], [t11.c3]), filter(nil), sort_keys([t11.c3, ASC], [t11.c2, ASC])
1 - output([t9.c1], [t9.c2], [t9.c3], [t10.c1], [t10.c2], [t10.c3], [t11.c1], [t11.c2], [t11.c3]), filter(nil), dop=1
2 - output([t9.c1], [t9.c2], [t9.c3], [t10.c1], [t10.c2], [t10.c3], [t11.c1], [t11.c2], [t11.c3]), filter(nil), sort_keys([t11.c3, ASC], [t11.c2, ASC])
3 - output([t9.c1], [t9.c2], [t9.c3], [t10.c1], [t10.c2], [t10.c3], [t11.c1], [t11.c2], [t11.c3]), filter(nil),
equal_conds([t9.c2 = t11.c2], [t9.c3 = t11.c3]), other_conds(nil)
4 - output([t9.c1], [t9.c2], [t9.c3], [t10.c1], [t10.c2], [t10.c3]), filter(nil),
equal_conds([t9.c2 = t10.c2], [t9.c3 = t10.c3]), other_conds(nil)
5 - output([t9.c2], [t9.c3], [t9.c1]), filter(nil)
6 - (#keys=1, [t9.c2]), output([t9.c2], [t9.c3], [t9.c1]), filter(nil), is_single, dop=1
7 - output([t9.c2], [t9.c3], [t9.c1]), filter(nil),
access([t9.c2], [t9.c3], [t9.c1]), partitions(p0),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
8 - output([t10.c2], [t10.c3], [t10.c1]), filter(nil),
affinitize, partition wise, force partition granule, asc.
9 - output([t10.c2], [t10.c3], [t10.c1]), filter(nil),
access([t10.c2], [t10.c3], [t10.c1]), partitions(p[0-1]),
is_index_back=false,
range_key([t10.c1], [t10.c2]), range(MIN,MIN ; MAX,MAX)always true
10 - output([t11.c2], [t11.c3], [t11.c1]), filter(nil),
affinitize, partition wise, force partition granule, asc.
11 - output([t11.c2], [t11.c3], [t11.c1]), filter(nil),
access([t11.c2], [t11.c3], [t11.c1]), partitions(p[0-1]),
is_index_back=false,
range_key([t11.c1], [t11.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 331(end) **************
*************** Case 332 ***************
SQL: select t9.c2, t9.c3, t9.c2, t10.c3 from t9, t10 where t9.c2 = t10.c2 and t9.c3 = t10.c3 order by t9.c2, t9.c3 desc;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |91 |688 |
|1 | EXCHANGE OUT DISTR |:EX10001|91 |671 |
|2 | SORT | |91 |671 |
|3 | HASH JOIN | |91 |522 |
|4 | EXCHANGE IN DISTR | |100 |102 |
|5 | EXCHANGE OUT DISTR (PKEY)|:EX10000|100 |92 |
|6 | TABLE SCAN |t9 |100 |92 |
|7 | PX PARTITION ITERATOR | |200 |149 |
|8 | TABLE SCAN |t10 |200 |149 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([t9.c2], [t9.c3], [t9.c2], [t10.c3]), filter(nil), sort_keys([t9.c2, ASC], [t9.c3, DESC])
1 - output([t9.c2], [t9.c3], [t10.c3]), filter(nil), dop=1
2 - output([t9.c2], [t9.c3], [t10.c3]), filter(nil), sort_keys([t9.c2, ASC], [t9.c3, DESC])
3 - output([t9.c2], [t9.c3], [t10.c3]), filter(nil),
equal_conds([t9.c2 = t10.c2], [t9.c3 = t10.c3]), other_conds(nil)
4 - output([t9.c2], [t9.c3]), filter(nil)
5 - (#keys=1, [t9.c2]), output([t9.c2], [t9.c3]), filter(nil), is_single, dop=1
6 - output([t9.c2], [t9.c3]), filter(nil),
access([t9.c2], [t9.c3]), partitions(p0),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
7 - output([t10.c2], [t10.c3]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t10.c2], [t10.c3]), filter(nil),
access([t10.c2], [t10.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t10.c1], [t10.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 332(end) **************
*************** Case 333 ***************
SQL: select c1, (select count(c1) from t7 where c1=t4.c1) calc_total, (select count(c1) from t8 where c1=0 and c1=t4.c1) calc_new from t4 where c1 in (select distinct c1 from t1);
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
------------------------------------------------------------
|0 |SUBPLAN FILTER | |100 |10069|
|1 | PX COORDINATOR | |100 |1212 |
|2 | EXCHANGE OUT DISTR |:EX10001|100 |1203 |
|3 | MERGE JOIN | |100 |1203 |
|4 | EXCHANGE IN DISTR | |100 |95 |
|5 | EXCHANGE OUT DISTR (PKEY)|:EX10000|100 |90 |
|6 | TABLE SCAN |t4 |100 |90 |
|7 | SORT | |500 |966 |
|8 | PX PARTITION ITERATOR | |500 |331 |
|9 | TABLE SCAN |t1 |500 |331 |
|10| SCALAR GROUP BY | |1 |37 |
|11| TABLE GET |t7 |1 |36 |
|12| SCALAR GROUP BY | |1 |53 |
|13| TABLE GET |t8 |1 |52 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [subquery(1)], [subquery(2)]), filter(nil),
exec_params_([t4.c1], [t4.c1 = ?]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t4.c1]), filter(nil)
2 - output([t4.c1]), filter(nil), dop=1
3 - output([t4.c1]), filter(nil),
equal_conds([t4.c1 = t1.c1]), other_conds(nil)
4 - output([t4.c1]), filter(nil)
5 - (#keys=1, [t4.c1]), output([t4.c1]), filter(nil), is_single, dop=1
6 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
7 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
8 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
10 - output([T_FUN_COUNT(t7.c1)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(t7.c1)])
11 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([t7.c1 = ?])
12 - output([T_FUN_COUNT(t8.c1)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(t8.c1)])
13 - output([t8.c1]), filter(nil), startup_filter([?]),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range[0 ; 0],
range_cond([t8.c1 = ?])
*************** Case 333(end) **************
*************** Case 334 ***************
SQL: select c1, (select count(c1) from t7 ) calc_total, (select count(c1) from t8 ) calc_new from t4 where c1 in (select distinct c1 from t1);
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |100 |2344|
|1 | SUBPLAN SCAN |VIEW3 |1 |107 |
|2 | SCALAR GROUP BY | |1 |107 |
|3 | TABLE SCAN |t8 |100 |88 |
|4 | MATERIAL | |100 |1439|
|5 | NESTED-LOOP JOIN CARTESIAN | |100 |1384|
|6 | SUBPLAN SCAN |VIEW2 |1 |107 |
|7 | SCALAR GROUP BY | |1 |107 |
|8 | TABLE SCAN |t7 |100 |88 |
|9 | PX COORDINATOR | |100 |1212|
|10| EXCHANGE OUT DISTR |:EX10001|100 |1203|
|11| MERGE JOIN | |100 |1203|
|12| EXCHANGE IN DISTR | |100 |95 |
|13| EXCHANGE OUT DISTR (PKEY)|:EX10000|100 |90 |
|14| TABLE SCAN |t4 |100 |90 |
|15| SORT | |500 |966 |
|16| PX PARTITION ITERATOR | |500 |331 |
|17| TABLE SCAN |t1 |500 |331 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [VIEW2.count(c1)], [VIEW3.count(c1)]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([VIEW3.count(c1)]), filter(nil),
access([VIEW3.count(c1)])
2 - output([T_FUN_COUNT(t8.c1)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(t8.c1)])
3 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
4 - output([t4.c1], [VIEW2.count(c1)]), filter(nil)
5 - output([t4.c1], [VIEW2.count(c1)]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
6 - output([VIEW2.count(c1)]), filter(nil),
access([VIEW2.count(c1)])
7 - output([T_FUN_COUNT(t7.c1)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(t7.c1)])
8 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
9 - output([t4.c1]), filter(nil)
10 - output([t4.c1]), filter(nil), dop=1
11 - output([t4.c1]), filter(nil),
equal_conds([t4.c1 = t1.c1]), other_conds(nil)
12 - output([t4.c1]), filter(nil)
13 - (#keys=1, [t4.c1]), output([t4.c1]), filter(nil), is_single, dop=1
14 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
15 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
16 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
17 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 334(end) **************
*************** Case 335 ***************
SQL: select distinct (select c1) from t4 limit 100;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |LIMIT | |100 |126 |
|1 | MERGE DISTINCT| |100 |112 |
|2 | TABLE SCAN |t4 |100 |90 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1]), filter(nil), limit(100), offset(nil)
1 - output([t4.c1]), filter(nil),
distinct([t4.c1])
2 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 335(end) **************
*************** Case 336 ***************
SQL: select * from t7,t8 where t7.c1=t8.c1 having false;
===================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |10000 |7398|
|1 | TABLE SCAN |t7 |100 |90 |
|2 | MATERIAL | |100 |127 |
|3 | TABLE SCAN |t8 |100 |90 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil), startup_filter([0]),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1], [t8.c2]), filter(nil)
3 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 336(end) **************
*************** Case 337 ***************
SQL: select c1,sum(c2) from t7 where c1>1 group by c1 having c1+1>1 and sum(c2) >1 and 1=2;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t7 |100 |90 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [cast(t7.c2, DECIMAL(11, 0))]), filter(nil), startup_filter([0]),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 337(end) **************
*************** Case 338 ***************
SQL: select * from t7 where c1 in (select c1 from t8 where t7.c1>1 limit 1);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |3708|
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([t7.c1 = ANY(subquery(1))]),
exec_params_([t7.c1 > ?]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1]), filter(nil), startup_filter([?]),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 338(end) **************
*************** Case 339 ***************
SQL: select * from t1,t14 where t1.c1 = t14.c3;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |490 |1904|
|1 | EXCHANGE OUT DISTR |:EX10000|490 |1789|
|2 | PX PARTITION ITERATOR| |490 |1789|
|3 | HASH JOIN | |490 |1789|
|4 | TABLE SCAN |t1 |500 |342 |
|5 | TABLE SCAN |t14 |500 |353 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil),
partition wise, force partition granule, asc.
3 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil),
equal_conds([t1.c1 = t14.c3]), other_conds(nil)
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t14.c3], [t14.c1], [t14.c2]), filter(nil),
access([t14.c3], [t14.c1], [t14.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t14.c1], [t14.c2], [t14.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 339(end) **************
*************** Case 340 ***************
SQL: select * from t5,t16 where t5.c2 = t16.c2;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |HASH JOIN | |842 |1530|
|1 | PX COORDINATOR | |300 |247 |
|2 | EXCHANGE OUT DISTR |:EX10000|300 |205 |
|3 | PX PARTITION ITERATOR| |300 |205 |
|4 | TABLE SCAN |t5 |300 |205 |
|5 | PX COORDINATOR | |300 |247 |
|6 | EXCHANGE OUT DISTR |:EX20000|300 |205 |
|7 | PX PARTITION ITERATOR| |300 |205 |
|8 | TABLE SCAN |t16 |300 |205 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil),
equal_conds([t5.c2 = t16.c2]), other_conds(nil)
1 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil)
2 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
3 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
force partition granule, asc.
4 - 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
5 - output([t16.c2], [t16.c3], [t16.c1]), filter(nil)
6 - output([t16.c2], [t16.c3], [t16.c1]), filter(nil), dop=1
7 - output([t16.c2], [t16.c3], [t16.c1]), filter(nil),
force partition granule, asc.
8 - output([t16.c2], [t16.c3], [t16.c1]), filter(nil),
access([t16.c2], [t16.c3], [t16.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t16.c3], [t16.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 340(end) **************
*************** Case 341 ***************
SQL: select * from t5,t16 where t5.c2 = t16.c2 and t5.c3 = t16.c3;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |262 |1225|
|1 | EXCHANGE OUT DISTR |:EX10000|262 |1150|
|2 | PX PARTITION ITERATOR| |262 |1150|
|3 | MERGE JOIN | |262 |1150|
|4 | TABLE SCAN |t5 |300 |205 |
|5 | SORT | |300 |686 |
|6 | TABLE SCAN |t16 |300 |205 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil)
1 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil), dop=1
2 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil),
partition wise, force partition granule, asc.
3 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil),
equal_conds([t5.c2 = t16.c2], [t5.c3 = t16.c3]), other_conds(nil)
4 - 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
5 - output([t16.c1], [t16.c2], [t16.c3]), filter(nil), sort_keys([t16.c2, ASC], [t16.c3, ASC])
6 - output([t16.c2], [t16.c3], [t16.c1]), filter(nil),
access([t16.c2], [t16.c3], [t16.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t16.c3], [t16.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 341(end) **************
*************** Case 342 ***************
SQL: select * from t5,t16 where t5.c2 = t16.c2 and t5.c3 = t16.c3 and t5.c1 = t16.c1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |245 |1229|
|1 | EXCHANGE OUT DISTR |:EX10000|245 |1159|
|2 | PX PARTITION ITERATOR| |245 |1159|
|3 | MERGE JOIN | |245 |1159|
|4 | TABLE SCAN |t5 |300 |205 |
|5 | SORT | |300 |686 |
|6 | TABLE SCAN |t16 |300 |205 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil)
1 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil), dop=1
2 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil),
partition wise, force partition granule, asc.
3 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil),
equal_conds([t5.c2 = t16.c2], [t5.c3 = t16.c3], [t5.c1 = t16.c1]), other_conds(nil)
4 - 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
5 - output([t16.c1], [t16.c2], [t16.c3]), filter(nil), sort_keys([t16.c2, ASC], [t16.c3, ASC], [t16.c1, ASC])
6 - output([t16.c2], [t16.c3], [t16.c1]), filter(nil),
access([t16.c2], [t16.c3], [t16.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t16.c3], [t16.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 342(end) **************
*************** Case 343 ***************
SQL: select * from t17,t18 where t17.c2 + t17.c3 = t18.c2 + t18.c3;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |450 |1341|
|1 | EXCHANGE OUT DISTR |:EX10000|450 |1213|
|2 | PX PARTITION ITERATOR| |450 |1213|
|3 | HASH JOIN | |450 |1213|
|4 | TABLE SCAN |t17 |300 |205 |
|5 | TABLE SCAN |t18 |300 |205 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t17.c1], [t17.c2], [t17.c3], [t18.c1], [t18.c2], [t18.c3]), filter(nil)
1 - output([t17.c1], [t17.c2], [t17.c3], [t18.c1], [t18.c2], [t18.c3]), filter(nil), dop=1
2 - output([t17.c1], [t17.c2], [t17.c3], [t18.c1], [t18.c2], [t18.c3]), filter(nil),
partition wise, force partition granule, asc.
3 - output([t17.c1], [t17.c2], [t17.c3], [t18.c1], [t18.c2], [t18.c3]), filter(nil),
equal_conds([t17.c2 + t17.c3 = t18.c2 + t18.c3]), other_conds(nil)
4 - output([t17.c2], [t17.c3], [t17.c1], [t17.c2 + t17.c3]), filter(nil),
access([t17.c2], [t17.c3], [t17.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t17.c1], [t17.c2], [t17.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
5 - output([t18.c2], [t18.c3], [t18.c1], [t18.c2 + t18.c3]), filter(nil),
access([t18.c2], [t18.c3], [t18.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t18.c1], [t18.c2], [t18.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 343(end) **************
*************** Case 344 ***************
SQL: select * from z1,z2 where z1.a = z2.a;
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |MERGE JOIN | |100 |276 |
|1 | TABLE SCAN|z1 |100 |95 |
|2 | TABLE SCAN|z2 |100 |95 |
====================================
Outputs & filters:
-------------------------------------
0 - output([z1.a], [z1.b], [z1.c], [z1.d], [z2.a], [z2.b], [z2.c], [z2.d]), filter(nil),
equal_conds([z1.a = z2.a]), other_conds(nil)
1 - output([z1.a], [z1.b], [z1.c], [z1.d]), filter(nil),
access([z1.a], [z1.b], [z1.c], [z1.d]), partitions(p0),
is_index_back=false,
range_key([z1.a]), range(MIN ; MAX)always true
2 - output([z2.a], [z2.b], [z2.c], [z2.d]), filter(nil),
access([z2.a], [z2.b], [z2.c], [z2.d]), partitions(p0),
is_index_back=false,
range_key([z2.a]), range(MIN ; MAX)always true
*************** Case 344(end) **************
*************** Case 345 ***************
SQL: select * from t2,t6 where t2.c1 = t6.c1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1459|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1346|
|2 | MERGE JOIN | |300 |1346|
|3 | SORT | |300 |859 |
|4 | PX PARTITION ITERATOR | |300 |205 |
|5 | TABLE SCAN |t2 |300 |205 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |227 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |198 |
|8 | PX PARTITION ITERATOR | |300 |198 |
|9 | TABLE SCAN |t6 |300 |198 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t6.c1], [t6.c2]), filter(nil)
1 - output([t2.c1], [t2.c2], [t2.c3], [t6.c1], [t6.c2]), filter(nil), dop=1
2 - output([t2.c1], [t2.c2], [t2.c3], [t6.c1], [t6.c2]), filter(nil),
equal_conds([t2.c1 = t6.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
6 - output([t6.c1], [t6.c2]), filter(nil), sort_keys([t6.c1, ASC]), Local Order
7 - (#keys=1, [t6.c1]), output([t6.c1], [t6.c2]), filter(nil), dop=1
8 - output([t6.c1], [t6.c2]), filter(nil),
force partition granule, asc.
9 - output([t6.c1], [t6.c2]), filter(nil),
access([t6.c1], [t6.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX)always true
*************** Case 345(end) **************
*************** Case 346 ***************
SQL: select * from t1,t2 where t1.c1 = t2.c1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1649|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1536|
|2 | MERGE JOIN | |300 |1536|
|3 | EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |342 |
|5 | PX PARTITION ITERATOR | |500 |342 |
|6 | TABLE SCAN |t1 |500 |342 |
|7 | SORT | |300 |859 |
|8 | PX PARTITION ITERATOR | |300 |205 |
|9 | TABLE SCAN |t2 |300 |205 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
4 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 346(end) **************
*************** Case 347 ***************
SQL: select * from t5,t6 where t5.c2 = t6.c1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |290 |1189|
|1 | EXCHANGE OUT DISTR |:EX10001|290 |1121|
|2 | MERGE JOIN | |290 |1121|
|3 | EXCHANGE IN MERGE SORT DISTR| |300 |247 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |205 |
|5 | PX PARTITION ITERATOR | |300 |205 |
|6 | TABLE SCAN |t5 |300 |205 |
|7 | SORT | |300 |619 |
|8 | PX PARTITION ITERATOR | |300 |198 |
|9 | TABLE SCAN |t6 |300 |198 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3], [t6.c1], [t6.c2]), filter(nil)
1 - output([t5.c1], [t5.c2], [t5.c3], [t6.c1], [t6.c2]), filter(nil), dop=1
2 - output([t5.c1], [t5.c2], [t5.c3], [t6.c1], [t6.c2]), filter(nil),
equal_conds([t5.c2 = t6.c1]), other_conds(nil)
3 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), sort_keys([t5.c2, ASC]), Local Order
4 - (#keys=1, [t5.c2]), output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
force partition granule, asc.
6 - 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
7 - output([t6.c1], [t6.c2]), filter(nil), sort_keys([t6.c1, ASC]), local merge sort
8 - output([t6.c1], [t6.c2]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t6.c1], [t6.c2]), filter(nil),
access([t6.c1], [t6.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX)always true
*************** Case 347(end) **************
*************** Case 348 ***************
SQL: select * from t1,t14 where t1.c1 = t14.c3 and t1.c2 = t14.c2;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |471 |1986|
|1 | EXCHANGE OUT DISTR |:EX10000|471 |1875|
|2 | PX PARTITION ITERATOR| |471 |1875|
|3 | HASH JOIN | |471 |1875|
|4 | TABLE SCAN |t1 |500 |342 |
|5 | TABLE SCAN |t14 |500 |353 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil),
partition wise, force partition granule, asc.
3 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil),
equal_conds([t1.c1 = t14.c3], [t1.c2 = t14.c2]), other_conds(nil)
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t14.c3], [t14.c2], [t14.c1]), filter(nil),
access([t14.c3], [t14.c2], [t14.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t14.c1], [t14.c2], [t14.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 348(end) **************
*************** Case 349 ***************
SQL: select * from t1,t14 where t1.c1 + 1 = t14.c3 + 1;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |HASH JOIN | |500 |1913|
|1 | PX COORDINATOR | |500 |389 |
|2 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|3 | PX PARTITION ITERATOR| |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
|5 | PX COORDINATOR | |500 |424 |
|6 | EXCHANGE OUT DISTR |:EX20000|500 |353 |
|7 | PX PARTITION ITERATOR| |500 |353 |
|8 | TABLE SCAN |t14 |500 |353 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil),
equal_conds([t1.c1 + ? = t14.c3 + ?]), other_conds(nil)
1 - output([t1.c1], [t1.c2], [t1.c1 + ?]), filter(nil)
2 - output([t1.c1], [t1.c2], [t1.c1 + ?]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2], [t1.c1 + ?]), filter(nil),
force partition granule, asc.
4 - output([t1.c1], [t1.c2], [t1.c1 + ?]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t14.c3], [t14.c1], [t14.c2], [t14.c3 + ?]), filter(nil)
6 - output([t14.c3], [t14.c1], [t14.c2], [t14.c3 + ?]), filter(nil), dop=1
7 - output([t14.c3], [t14.c1], [t14.c2], [t14.c3 + ?]), filter(nil),
force partition granule, asc.
8 - output([t14.c3], [t14.c1], [t14.c2], [t14.c3 + ?]), filter(nil),
access([t14.c3], [t14.c1], [t14.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t14.c1], [t14.c2], [t14.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 349(end) **************
*************** Case 350 ***************
SQL: select * from t1 left join t14 on t1.c1 = t14.c3;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |1907|
|1 | EXCHANGE OUT DISTR |:EX10000|500 |1789|
|2 | PX PARTITION ITERATOR| |500 |1789|
|3 | HASH OUTER JOIN | |500 |1789|
|4 | TABLE SCAN |t1 |500 |342 |
|5 | TABLE SCAN |t14 |500 |353 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil),
partition wise, force partition granule, asc.
3 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil),
equal_conds([t1.c1 = t14.c3]), other_conds(nil)
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t14.c3], [t14.c1], [t14.c2]), filter(nil),
access([t14.c3], [t14.c1], [t14.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t14.c1], [t14.c2], [t14.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 350(end) **************
*************** Case 351 ***************
SQL: select * from t5 left join t16 on t5.c2 = t16.c2;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |HASH OUTER JOIN | |842 |1530|
|1 | PX COORDINATOR | |300 |247 |
|2 | EXCHANGE OUT DISTR |:EX10000|300 |205 |
|3 | PX PARTITION ITERATOR| |300 |205 |
|4 | TABLE SCAN |t5 |300 |205 |
|5 | PX COORDINATOR | |300 |247 |
|6 | EXCHANGE OUT DISTR |:EX20000|300 |205 |
|7 | PX PARTITION ITERATOR| |300 |205 |
|8 | TABLE SCAN |t16 |300 |205 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil),
equal_conds([t5.c2 = t16.c2]), other_conds(nil)
1 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil)
2 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
3 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
force partition granule, asc.
4 - 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
5 - output([t16.c2], [t16.c3], [t16.c1]), filter(nil)
6 - output([t16.c2], [t16.c3], [t16.c1]), filter(nil), dop=1
7 - output([t16.c2], [t16.c3], [t16.c1]), filter(nil),
force partition granule, asc.
8 - output([t16.c2], [t16.c3], [t16.c1]), filter(nil),
access([t16.c2], [t16.c3], [t16.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t16.c3], [t16.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 351(end) **************
*************** Case 352 ***************
SQL: select * from t5 left join t16 on t5.c2 = t16.c2 and t5.c3 = t16.c3;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |300 |1236|
|1 | EXCHANGE OUT DISTR |:EX10000|300 |1150|
|2 | PX PARTITION ITERATOR| |300 |1150|
|3 | MERGE OUTER JOIN | |300 |1150|
|4 | TABLE SCAN |t5 |300 |205 |
|5 | SORT | |300 |686 |
|6 | TABLE SCAN |t16 |300 |205 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil)
1 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil), dop=1
2 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil),
partition wise, force partition granule, asc.
3 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil),
equal_conds([t5.c2 = t16.c2], [t5.c3 = t16.c3]), other_conds(nil)
4 - 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
5 - output([t16.c1], [t16.c2], [t16.c3]), filter(nil), sort_keys([t16.c2, ASC], [t16.c3, ASC])
6 - output([t16.c2], [t16.c3], [t16.c1]), filter(nil),
access([t16.c2], [t16.c3], [t16.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t16.c3], [t16.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 352(end) **************
*************** Case 353 ***************
SQL: select * from t5 left join t16 on t5.c2 = t16.c2 and t5.c3 = t16.c3 and t5.c1 = t16.c1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |300 |1244|
|1 | EXCHANGE OUT DISTR |:EX10000|300 |1159|
|2 | PX PARTITION ITERATOR| |300 |1159|
|3 | MERGE OUTER JOIN | |300 |1159|
|4 | TABLE SCAN |t5 |300 |205 |
|5 | SORT | |300 |686 |
|6 | TABLE SCAN |t16 |300 |205 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil)
1 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil), dop=1
2 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil),
partition wise, force partition granule, asc.
3 - output([t5.c1], [t5.c2], [t5.c3], [t16.c1], [t16.c2], [t16.c3]), filter(nil),
equal_conds([t5.c2 = t16.c2], [t5.c3 = t16.c3], [t5.c1 = t16.c1]), other_conds(nil)
4 - 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
5 - output([t16.c1], [t16.c2], [t16.c3]), filter(nil), sort_keys([t16.c2, ASC], [t16.c3, ASC], [t16.c1, ASC])
6 - output([t16.c2], [t16.c3], [t16.c1]), filter(nil),
access([t16.c2], [t16.c3], [t16.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t16.c3], [t16.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 353(end) **************
*************** Case 354 ***************
SQL: select * from t17 left join t18 on t17.c2 + t17.c3 = t18.c2 + t18.c3;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |450 |1341|
|1 | EXCHANGE OUT DISTR |:EX10000|450 |1213|
|2 | PX PARTITION ITERATOR| |450 |1213|
|3 | HASH OUTER JOIN | |450 |1213|
|4 | TABLE SCAN |t17 |300 |205 |
|5 | TABLE SCAN |t18 |300 |205 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t17.c1], [t17.c2], [t17.c3], [t18.c1], [t18.c2], [t18.c3]), filter(nil)
1 - output([t17.c1], [t17.c2], [t17.c3], [t18.c1], [t18.c2], [t18.c3]), filter(nil), dop=1
2 - output([t17.c1], [t17.c2], [t17.c3], [t18.c1], [t18.c2], [t18.c3]), filter(nil),
partition wise, force partition granule, asc.
3 - output([t17.c1], [t17.c2], [t17.c3], [t18.c1], [t18.c2], [t18.c3]), filter(nil),
equal_conds([t17.c2 + t17.c3 = t18.c2 + t18.c3]), other_conds(nil)
4 - output([t17.c2], [t17.c3], [t17.c1], [t17.c2 + t17.c3]), filter(nil),
access([t17.c2], [t17.c3], [t17.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t17.c1], [t17.c2], [t17.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
5 - output([t18.c2], [t18.c3], [t18.c1], [t18.c2 + t18.c3]), filter(nil),
access([t18.c2], [t18.c3], [t18.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t18.c1], [t18.c2], [t18.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 354(end) **************
*************** Case 355 ***************
SQL: select * from z1 left join z2 on z1.a = z2.a;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |MERGE OUTER JOIN| |100 |276 |
|1 | TABLE SCAN |z1 |100 |95 |
|2 | TABLE SCAN |z2 |100 |95 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([z1.a], [z1.b], [z1.c], [z1.d], [z2.a], [z2.b], [z2.c], [z2.d]), filter(nil),
equal_conds([z1.a = z2.a]), other_conds(nil)
1 - output([z1.a], [z1.b], [z1.c], [z1.d]), filter(nil),
access([z1.a], [z1.b], [z1.c], [z1.d]), partitions(p0),
is_index_back=false,
range_key([z1.a]), range(MIN ; MAX)always true
2 - output([z2.a], [z2.b], [z2.c], [z2.d]), filter(nil),
access([z2.a], [z2.b], [z2.c], [z2.d]), partitions(p0),
is_index_back=false,
range_key([z2.a]), range(MIN ; MAX)always true
*************** Case 355(end) **************
*************** Case 356 ***************
SQL: select * from t2 left join t6 on t2.c1 = t6.c1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1459|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1346|
|2 | MERGE OUTER JOIN | |300 |1346|
|3 | SORT | |300 |859 |
|4 | PX PARTITION ITERATOR | |300 |205 |
|5 | TABLE SCAN |t2 |300 |205 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |227 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |198 |
|8 | PX PARTITION ITERATOR | |300 |198 |
|9 | TABLE SCAN |t6 |300 |198 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t6.c1], [t6.c2]), filter(nil)
1 - output([t2.c1], [t2.c2], [t2.c3], [t6.c1], [t6.c2]), filter(nil), dop=1
2 - output([t2.c1], [t2.c2], [t2.c3], [t6.c1], [t6.c2]), filter(nil),
equal_conds([t2.c1 = t6.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
6 - output([t6.c1], [t6.c2]), filter(nil), sort_keys([t6.c1, ASC]), Local Order
7 - (#keys=1, [t6.c1]), output([t6.c1], [t6.c2]), filter(nil), dop=1
8 - output([t6.c1], [t6.c2]), filter(nil),
force partition granule, asc.
9 - output([t6.c1], [t6.c2]), filter(nil),
access([t6.c1], [t6.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX)always true
*************** Case 356(end) **************
*************** Case 357 ***************
SQL: select * from t1 left join t2 on t1.c1 = t2.c1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |500 |1725|
|1 | EXCHANGE OUT DISTR |:EX10001|500 |1536|
|2 | MERGE OUTER JOIN | |500 |1536|
|3 | EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |342 |
|5 | PX PARTITION ITERATOR | |500 |342 |
|6 | TABLE SCAN |t1 |500 |342 |
|7 | SORT | |300 |859 |
|8 | PX PARTITION ITERATOR | |300 |205 |
|9 | TABLE SCAN |t2 |300 |205 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
4 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 357(end) **************
*************** Case 358 ***************
SQL: select * from t5 left join t6 on t5.c2 = t6.c1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1192|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1121|
|2 | MERGE OUTER JOIN | |300 |1121|
|3 | EXCHANGE IN MERGE SORT DISTR| |300 |247 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |205 |
|5 | PX PARTITION ITERATOR | |300 |205 |
|6 | TABLE SCAN |t5 |300 |205 |
|7 | SORT | |300 |619 |
|8 | PX PARTITION ITERATOR | |300 |198 |
|9 | TABLE SCAN |t6 |300 |198 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t5.c1], [t5.c2], [t5.c3], [t6.c1], [t6.c2]), filter(nil)
1 - output([t5.c1], [t5.c2], [t5.c3], [t6.c1], [t6.c2]), filter(nil), dop=1
2 - output([t5.c1], [t5.c2], [t5.c3], [t6.c1], [t6.c2]), filter(nil),
equal_conds([t5.c2 = t6.c1]), other_conds(nil)
3 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), sort_keys([t5.c2, ASC]), Local Order
4 - (#keys=1, [t5.c2]), output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
force partition granule, asc.
6 - 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
7 - output([t6.c1], [t6.c2]), filter(nil), sort_keys([t6.c1, ASC]), local merge sort
8 - output([t6.c1], [t6.c2]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t6.c1], [t6.c2]), filter(nil),
access([t6.c1], [t6.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX)always true
*************** Case 358(end) **************
*************** Case 359 ***************
SQL: select * from t1 left join t14 on t1.c1 = t14.c3 and t1.c2 = t14.c2;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |1993|
|1 | EXCHANGE OUT DISTR |:EX10000|500 |1875|
|2 | PX PARTITION ITERATOR| |500 |1875|
|3 | HASH OUTER JOIN | |500 |1875|
|4 | TABLE SCAN |t1 |500 |342 |
|5 | TABLE SCAN |t14 |500 |353 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil),
partition wise, force partition granule, asc.
3 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil),
equal_conds([t1.c1 = t14.c3], [t1.c2 = t14.c2]), other_conds(nil)
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t14.c3], [t14.c2], [t14.c1]), filter(nil),
access([t14.c3], [t14.c2], [t14.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t14.c1], [t14.c2], [t14.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 359(end) **************
*************** Case 360 ***************
SQL: select * from t1 left join t14 on t1.c1 + 1 = t14.c3 + 1;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |HASH OUTER JOIN | |500 |1913|
|1 | PX COORDINATOR | |500 |389 |
|2 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|3 | PX PARTITION ITERATOR| |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
|5 | PX COORDINATOR | |500 |424 |
|6 | EXCHANGE OUT DISTR |:EX20000|500 |353 |
|7 | PX PARTITION ITERATOR| |500 |353 |
|8 | TABLE SCAN |t14 |500 |353 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t14.c1], [t14.c2], [t14.c3]), filter(nil),
equal_conds([t1.c1 + ? = t14.c3 + ?]), other_conds(nil)
1 - output([t1.c1], [t1.c2], [t1.c1 + ?]), filter(nil)
2 - output([t1.c1], [t1.c2], [t1.c1 + ?]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2], [t1.c1 + ?]), filter(nil),
force partition granule, asc.
4 - output([t1.c1], [t1.c2], [t1.c1 + ?]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t14.c3], [t14.c1], [t14.c2], [t14.c3 + ?]), filter(nil)
6 - output([t14.c3], [t14.c1], [t14.c2], [t14.c3 + ?]), filter(nil), dop=1
7 - output([t14.c3], [t14.c1], [t14.c2], [t14.c3 + ?]), filter(nil),
force partition granule, asc.
8 - output([t14.c3], [t14.c1], [t14.c2], [t14.c3 + ?]), filter(nil),
access([t14.c3], [t14.c1], [t14.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t14.c1], [t14.c2], [t14.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 360(end) **************
*************** Case 361 ***************
SQL: select SQL_CALC_FOUND_ROWS c2,count(*) as c from t1 group by c2 order by c desc ;
==================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |100 |763 |
|1 | EXCHANGE OUT DISTR |:EX10001 |100 |753 |
|2 | SORT | |100 |753 |
|3 | MERGE GROUP BY | |100 |626 |
|4 | EXCHANGE IN MERGE SORT DISTR| |100 |489 |
|5 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |479 |
|6 | PX PARTITION ITERATOR | |100 |479 |
|7 | MERGE GROUP BY | |100 |479 |
|8 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
==================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil), sort_keys([T_FUN_COUNT_SUM(T_FUN_COUNT(*)), DESC])
1 - output([t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil), dop=1
2 - output([t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil), sort_keys([T_FUN_COUNT_SUM(T_FUN_COUNT(*)), DESC])
3 - output([t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil),
group([t1.c2]), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
4 - output([t1.c2], [T_FUN_COUNT(*)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
5 - (#keys=1, [t1.c2]), output([t1.c2], [T_FUN_COUNT(*)]), filter(nil), dop=1
6 - output([t1.c2], [T_FUN_COUNT(*)]), filter(nil),
force partition granule, asc.
7 - output([t1.c2], [T_FUN_COUNT(*)]), filter(nil),
group([t1.c2]), agg_func([T_FUN_COUNT(*)])
8 - 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
*************** Case 361(end) **************
*************** Case 362 ***************
SQL: select count(1)+1 from t1 order by count(1)+1;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |575 |
|1 | PX COORDINATOR | |1 |453 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |453 |
|3 | MERGE GROUP BY | |1 |453 |
|4 | PX PARTITION ITERATOR| |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(?)) + ?]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(?))], [T_FUN_COUNT_SUM(T_FUN_COUNT(1))])
1 - output([T_FUN_COUNT(?)], [T_FUN_COUNT(1)]), filter(nil)
2 - output([T_FUN_COUNT(?)], [T_FUN_COUNT(1)]), filter(nil), dop=1
3 - output([T_FUN_COUNT(?)], [T_FUN_COUNT(1)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(?)], [T_FUN_COUNT(1)])
4 - output([1]), filter(nil),
force partition granule, asc.
5 - output([1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 362(end) **************
*************** Case 363 ***************
SQL: delete from t7 where exists(select 1 from t8);
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |DELETE | |50 |242 |
|1 | SUBPLAN FILTER| |50 |192 |
|2 | TABLE SCAN |t7 |100 |90 |
|3 | TABLE SCAN |t8 |100 |88 |
========================================
Outputs & filters:
-------------------------------------
0 - output(nil), filter(nil), table_columns([{t7: ({t7: (t7.c1, t7.c2)})}])
1 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([?]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 363(end) **************
*************** Case 364 ***************
SQL: select t3.c1 from t3, t1 where t3.c2 = t1.c1 and t3.c1 = 1 and exists(select 'X' from t2 where t2.c2 = t1.c2);
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |NESTED-LOOP SEMI JOIN | |1 |383 |
|1 | PX COORDINATOR | |1 |89 |
|2 | EXCHANGE OUT DISTR |:EX10001|1 |89 |
|3 | NESTED-LOOP JOIN | |1 |89 |
|4 | EXCHANGE IN DISTR | |1 |53 |
|5 | EXCHANGE OUT DISTR (PKEY)|:EX10000|1 |52 |
|6 | TABLE GET |t3 |1 |52 |
|7 | PX PARTITION ITERATOR | |1 |36 |
|8 | TABLE GET |t1 |1 |36 |
|9 | PX COORDINATOR | |300 |227 |
|10| EXCHANGE OUT DISTR |:EX20000|300 |198 |
|11| PX PARTITION ITERATOR | |300 |198 |
|12| TABLE SCAN |t2 |300 |198 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([t3.c1]), filter(nil),
conds([t2.c2 = t1.c2]), nl_params_(nil), batch_join=false
1 - output([t3.c1], [t1.c2]), filter(nil)
2 - output([t3.c1], [t1.c2]), filter(nil), dop=1
3 - output([t3.c1], [t1.c2]), filter(nil),
conds(nil), nl_params_([t3.c2]), batch_join=false
4 - output([t3.c1], [t3.c2], [PARTITION_ID]), filter(nil)
5 - (#keys=1, [t3.c2]), output([t3.c1], [t3.c2], [PARTITION_ID]), filter(nil), is_single, dop=1
6 - output([t3.c1], [t3.c2]), filter(nil),
access([t3.c1], [t3.c2]), partitions(p1),
is_index_back=false,
range_key([t3.c1]), range[1 ; 1],
range_cond([t3.c1 = ?])
7 - output([t1.c2]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t1.c2]), filter(nil),
access([t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX),
range_cond([? = t1.c1])
9 - output([t2.c2]), filter(nil)
10 - output([t2.c2]), filter(nil), dop=1
11 - output([t2.c2]), filter(nil),
force partition granule, asc.
12 - 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
*************** Case 364(end) **************
*************** Case 365 ***************
SQL: select c1, c2 from t3 where c1 in (select a.c1 from t1 a, t2 b where b.c1=100 and a.c2=b.c2);
======================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------------------
|0 |PX COORDINATOR | |2 |548 |
|1 | EXCHANGE OUT DISTR |:EX10002 |2 |547 |
|2 | MERGE JOIN | |2 |547 |
|3 | SORT | |5 |103 |
|4 | EXCHANGE IN DISTR | |5 |97 |
|5 | EXCHANGE OUT DISTR (PKEY) |:EX10001 |5 |96 |
|6 | MATERIAL | |5 |96 |
|7 | NESTED-LOOP JOIN | |5 |92 |
|8 | EXCHANGE IN DISTR | |1 |53 |
|9 | EXCHANGE OUT DISTR (BC2HOST)|:EX10000 |1 |52 |
|10| TABLE GET |b |1 |52 |
|11| PX PARTITION ITERATOR | |5 |37 |
|12| TABLE SCAN |a(idx_t1_c2)|5 |37 |
|13| SORT | |200 |415 |
|14| PX PARTITION ITERATOR | |200 |144 |
|15| TABLE SCAN |t3 |200 |144 |
======================================================================
Outputs & filters:
-------------------------------------
0 - output([t3.c1], [t3.c2]), filter(nil)
1 - output([t3.c1], [t3.c2]), filter(nil), dop=1
2 - output([t3.c1], [t3.c2]), filter(nil),
equal_conds([t3.c1 = a.c1]), other_conds(nil)
3 - output([a.c1]), filter(nil), sort_keys([a.c1, ASC])
4 - output([a.c1]), filter(nil)
5 - (#keys=1, [a.c1]), output([a.c1]), filter(nil), dop=1
6 - output([a.c1]), filter(nil)
7 - output([a.c1]), filter(nil),
conds(nil), nl_params_([b.c2]), batch_join=false
8 - output([b.c2]), filter(nil)
9 - output([b.c2]), filter(nil), is_single, dop=1
10 - output([b.c2]), filter(nil),
access([b.c2]), partitions(p1),
is_index_back=false,
range_key([b.c1]), range[100 ; 100],
range_cond([b.c1 = ?])
11 - output([a.c1]), filter(nil),
access all, force partition granule, asc.
12 - output([a.c1]), filter(nil),
access([a.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([a.c2], [a.c1]), range(MIN ; MAX),
range_cond([a.c2 = ?])
13 - output([t3.c1], [t3.c2]), filter(nil), sort_keys([t3.c1, ASC]), local merge sort
14 - output([t3.c1], [t3.c2]), filter(nil),
affinitize, force partition granule, asc.
15 - output([t3.c1], [t3.c2]), filter(nil),
access([t3.c1], [t3.c2]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
*************** Case 365(end) **************
*************** Case 366 ***************
SQL: select t7.c1, t8.c1 from t7 inner join t8 on t7.c1 > t8.c2 where t7.c1 = t8.c2 or exists ( select 1);
==========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------------
|0 |SUBPLAN FILTER | |1684 |5066|
|1 | NESTED-LOOP JOIN| |1684 |4834|
|2 | TABLE SCAN |t7 |100 |88 |
|3 | MATERIAL | |100 |127 |
|4 | TABLE SCAN |t8 |100 |90 |
|5 | LIMIT | |1 |1 |
|6 | EXPRESSION | |1 |1 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t8.c1]), filter(nil),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t8.c1]), filter(nil),
conds([t7.c1 > t8.c2], [t7.c1 = t8.c2 OR ?]), nl_params_(nil), batch_join=false
2 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1], [t8.c2]), filter(nil)
4 - output([t8.c2], [t8.c1]), filter(nil),
access([t8.c2], [t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([?]), filter(nil), limit(1), offset(nil)
6 - output([1]), filter(nil)
values({1})
*************** Case 366(end) **************
*************** Case 367 ***************
SQL: (select substr('a',1,1) ) union (select 1);
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |MERGE UNION DISTINCT| |2 |1 |
|1 | EXPRESSION | |1 |1 |
|2 | EXPRESSION | |1 |1 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([?]), filter(nil)
values({?})
2 - output([?]), filter(nil)
values({?})
*************** Case 367(end) **************
*************** Case 368 ***************
SQL: select * from t4, t7 where t4.c1 = t7.c1 and t4.c1 = 5;
===================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |100 |209 |
|1 | TABLE GET |t7 |1 |52 |
|2 | TABLE SCAN |t4 |100 |92 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range[5 ; 5],
range_cond([t7.c1 = ?])
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(5,MIN ; 5,MAX),
range_cond([t4.c1 = ?])
*************** Case 368(end) **************
*************** Case 369 ***************
SQL: select * from t4, t7 where t4.c2 = t7.c2 and t4.c2 = 5;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |100 |271 |
|1 | TABLE SCAN |t4(idx_t4_c2_c3)|100 |92 |
|2 | MATERIAL | |1 |107 |
|3 | TABLE SCAN |t7 |1 |107 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t4.c2], [t4.c1], [t4.c3]), filter(nil),
access([t4.c2], [t4.c1], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(5,MIN,MIN ; 5,MAX,MAX),
range_cond([t4.c2 = ?])
2 - output([t7.c1], [t7.c2]), filter(nil)
3 - output([t7.c2], [t7.c1]), filter([t7.c2 = ?]),
access([t7.c2], [t7.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 369(end) **************
*************** Case 370 ***************
SQL: select * from t4, t7, t8 where t4.c1 = t7.c1 and t7.c1 = t8.c1 and t4.c1 = 5;
====================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |100 |262 |
|1 | NESTED-LOOP JOIN CARTESIAN| |1 |105 |
|2 | TABLE GET |t7 |1 |52 |
|3 | TABLE GET |t8 |1 |52 |
|4 | TABLE SCAN |t4 |100 |92 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
1 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range[5 ; 5],
range_cond([t7.c1 = ?])
3 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range[5 ; 5],
range_cond([t8.c1 = ?])
4 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(5,MIN ; 5,MAX),
range_cond([t4.c1 = ?])
*************** Case 370(end) **************
*************** Case 371 ***************
SQL: select * from t4, t7, t8 where t4.c1 = t7.c1 and t7.c2 = t8.c2 and t4.c1 = 5;
===================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |100 |332 |
|1 | TABLE SCAN |t4 |100 |92 |
|2 | MATERIAL | |1 |166 |
|3 | NESTED-LOOP JOIN | |1 |165 |
|4 | TABLE GET |t7 |1 |52 |
|5 | TABLE SCAN |t8 |100 |90 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(5,MIN ; 5,MAX),
range_cond([t4.c1 = ?])
2 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil)
3 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds([t7.c2 = t8.c2]), nl_params_(nil), batch_join=true
4 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range[5 ; 5],
range_cond([t7.c1 = ?])
5 - output([t8.c2], [t8.c1]), filter(nil),
access([t8.c2], [t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 371(end) **************
*************** Case 372 ***************
SQL: select * from t4, t7, t8 where t4.c1 = t7.c1 and t7.c2 = t8.c2 and t4.c1 = 5 and t7.c2 = 9;
====================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |1 |56 |
|1 | TABLE GET |t7 |1 |53 |
|2 | NESTED-LOOP JOIN CARTESIAN| |100 |271 |
|3 | TABLE SCAN |t4 |100 |92 |
|4 | MATERIAL | |1 |107 |
|5 | TABLE SCAN |t8 |1 |107 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t7.c1], [t7.c2]), filter([t7.c2 = ?]),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range[5 ; 5],
range_cond([t7.c1 = ?])
2 - output([t4.c1], [t4.c2], [t4.c3], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
3 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(5,MIN ; 5,MAX),
range_cond([t4.c1 = ?])
4 - output([t8.c1], [t8.c2]), filter(nil)
5 - output([t8.c2], [t8.c1]), filter([t8.c2 = ?]),
access([t8.c2], [t8.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 372(end) **************
*************** Case 373 ***************
SQL: select * from t4 join t7 on t4.c1 = t7.c1 where t4.c1 = 1;
===================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |100 |209 |
|1 | TABLE GET |t7 |1 |52 |
|2 | TABLE SCAN |t4 |100 |92 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range[1 ; 1],
range_cond([t7.c1 = ?])
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(1,MIN ; 1,MAX),
range_cond([t4.c1 = ?])
*************** Case 373(end) **************
*************** Case 374 ***************
SQL: select * from t4 join t7 on t4.c1 = t7.c1 where t4.c2 = 1;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |HASH JOIN | |100 |402 |
|1 | TABLE SCAN|t7 |100 |90 |
|2 | TABLE SCAN|t4(idx_t4_c2_c3)|100 |92 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2]), filter(nil),
equal_conds([t4.c1 = t7.c1]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(1,MIN,MIN ; 1,MAX,MAX),
range_cond([t4.c2 = ?])
*************** Case 374(end) **************
*************** Case 375 ***************
SQL: select * from t4 join t7 on t4.c1 = t7.c1 where t7.c1 = 1;
===================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |100 |209 |
|1 | TABLE GET |t7 |1 |52 |
|2 | TABLE SCAN |t4 |100 |92 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range[1 ; 1],
range_cond([t7.c1 = ?])
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(1,MIN ; 1,MAX),
range_cond([t4.c1 = ?])
*************** Case 375(end) **************
*************** Case 376 ***************
SQL: select * from t4 join t7 on t4.c1 = t7.c1 where t7.c2 = 1;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |NESTED-LOOP JOIN| |1 |144 |
|1 | TABLE SCAN |t7 |1 |107 |
|2 | TABLE SCAN |t4 |1 |36 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_([t7.c1]), batch_join=true
1 - output([t7.c1], [t7.c2]), filter([t7.c2 = ?]),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN ; MAX),
range_cond([t4.c1 = ?])
*************** Case 376(end) **************
*************** Case 377 ***************
SQL: select * from t4 left join t7 on t4.c1 = t7.c1 where t4.c1 = 5;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |MERGE OUTER JOIN| |100 |159 |
|1 | TABLE SCAN |t4 |100 |92 |
|2 | TABLE GET |t7 |1 |52 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2]), filter(nil),
equal_conds([t4.c1 = t7.c1]), other_conds(nil)
1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(5,MIN ; 5,MAX),
range_cond([t4.c1 = ?])
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range[5 ; 5],
range_cond([t7.c1 = ?])
*************** Case 377(end) **************
*************** Case 378 ***************
SQL: select * from t4 left join t7 on t4.c1 = t7.c1 where t4.c2 = 5;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |HASH RIGHT OUTER JOIN| |100 |402 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t4(idx_t4_c2_c3)|100 |92 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2]), filter(nil),
equal_conds([t4.c1 = t7.c1]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(5,MIN,MIN ; 5,MAX,MAX),
range_cond([t4.c2 = ?])
*************** Case 378(end) **************
*************** Case 379 ***************
SQL: select * from t4 left join t7 on t4.c1 = t7.c1 where t7.c1 = 5;
===================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |100 |209 |
|1 | TABLE GET |t7 |1 |52 |
|2 | TABLE SCAN |t4 |100 |92 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range[5 ; 5],
range_cond([t7.c1 = ?])
2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(5,MIN ; 5,MAX),
range_cond([t4.c1 = ?])
*************** Case 379(end) **************
*************** Case 380 ***************
SQL: select /*+ FROZEN_VERSION(1) */max(c1) as c from t7;
===============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------
|0 |SCALAR GROUP BY| |1 |37 |
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|2 | TABLE SCAN |t7(Reverse)|1 |36 |
===============================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_MAX(VIEW1.c1)]), filter(nil),
group(nil), agg_func([T_FUN_MAX(VIEW1.c1)])
1 - output([VIEW1.c1]), filter(nil),
access([VIEW1.c1])
2 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
hint(frozen_version:"1-0-0", read_consistency:1),
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 380(end) **************
*************** Case 381 ***************
SQL: select * from t4 where c1 in (select t7.c1 from t7,t8 where t4.c1=t7.c1+t8.c1 limit 1);
============================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
--------------------------------------------
|0 |SUBPLAN FILTER | |50 |21693|
|1 | TABLE SCAN |t4 |100 |92 |
|2 | LIMIT | |1 |216 |
|3 | NESTED-LOOP JOIN| |1 |216 |
|4 | TABLE SCAN |t7 |2 |37 |
|5 | MATERIAL | |100 |106 |
|6 | TABLE SCAN |t8 |100 |88 |
============================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter([t4.c1 = ANY(subquery(1))]),
exec_params_([t4.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
2 - output([t7.c1]), filter(nil), limit(1), offset(nil)
3 - output([t7.c1]), filter(nil),
conds([? = t7.c1 + t8.c1]), nl_params_(nil), batch_join=false
4 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
5 - output([t8.c1]), filter(nil)
6 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 381(end) **************
*************** Case 382 ***************
SQL: select * from t4 where c1 in (select t7.c1 from t7,t8 where t4.c1+t7.c1=t8.c1 limit 1);
===========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-------------------------------------------
|0 |SUBPLAN FILTER | |50 |7394|
|1 | TABLE SCAN |t4 |100 |92 |
|2 | LIMIT | |1 |73 |
|3 | NESTED-LOOP JOIN| |1 |73 |
|4 | TABLE SCAN |t7 |1 |36 |
|5 | TABLE GET |t8 |1 |36 |
===========================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter([t4.c1 = ANY(subquery(1))]),
exec_params_([t4.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
2 - output([t7.c1]), filter(nil), limit(1), offset(nil)
3 - output([t7.c1]), filter(nil),
conds(nil), nl_params_([? + t7.c1]), batch_join=true
4 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
5 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX),
range_cond([? = t8.c1])
*************** Case 382(end) **************
*************** Case 383 ***************
SQL: select * from t4 where c1 in (select t7.c1 from t7,t8 where t4.c1+t7.c1=t4.c1+t8.c1 limit 1);
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
----------------------------------------
|0 |SUBPLAN FILTER| |50 |23523|
|1 | TABLE SCAN |t4 |100 |92 |
|2 | LIMIT | |1 |235 |
|3 | HASH JOIN | |1 |234 |
|4 | TABLE SCAN |t7 |100 |88 |
|5 | TABLE SCAN |t8 |1 |36 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter([t4.c1 = ANY(subquery(1))]),
exec_params_([t4.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
2 - output([t7.c1]), filter(nil), limit(1), offset(nil)
3 - output([t7.c1]), filter(nil),
equal_conds([? + t7.c1 = ? + t8.c1]), other_conds(nil)
4 - output([t7.c1], [? + t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
5 - output([? + t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 383(end) **************
*************** Case 384 ***************
SQL: select * from (select * from t1 where c1 > 0 group by c2) as v order by v.c2;
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |100 |666 |
|1 | EXCHANGE OUT DISTR |:EX10001 |100 |657 |
|2 | MERGE GROUP BY | |100 |657 |
|3 | EXCHANGE IN MERGE SORT DISTR| |100 |546 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |536 |
|5 | PX PARTITION ITERATOR | |100 |536 |
|6 | MERGE GROUP BY | |100 |536 |
|7 | TABLE SCAN |t1(idx_t1_c2)|500 |426 |
=================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
group([t1.c2]), agg_func(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
4 - (#keys=1, [t1.c2]), output([t1.c1], [t1.c2]), filter(nil), dop=1
5 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
6 - output([t1.c1], [t1.c2]), filter(nil),
group([t1.c2]), agg_func(nil)
7 - output([t1.c1], [t1.c2]), filter([t1.c1 > ?]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 384(end) **************
*************** Case 385 ***************
SQL: select * from (select * from t1 where c1 > 0 limit 1) as v order by v.c2;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |SORT | |1 |38 |
|1 | SUBPLAN SCAN |v |1 |37 |
|2 | LIMIT | |1 |37 |
|3 | PX COORDINATOR | |1 |37 |
|4 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|5 | LIMIT | |1 |37 |
|6 | PX PARTITION ITERATOR| |1 |36 |
|7 | TABLE SCAN |t1 |1 |36 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([v.c1], [v.c2]), filter(nil), sort_keys([v.c2, ASC])
1 - output([v.c1], [v.c2]), filter(nil),
access([v.c1], [v.c2])
2 - output([t1.c1], [t1.c2]), filter(nil), limit(1), offset(nil)
3 - output([t1.c1], [t1.c2]), filter(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), dop=1
5 - output([t1.c1], [t1.c2]), filter(nil), limit(1), offset(nil)
6 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
limit(1), offset(nil),
is_index_back=false,
range_key([t1.c1]), range(0 ; MAX),
range_cond([t1.c1 > ?])
*************** Case 385(end) **************
*************** Case 386 ***************
SQL: select * from (select t2.c1 from t1,t2 where t1.c1=t2.c1 limit 1) v order by v.c1;
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------
|0 |SORT | |1 |74 |
|1 | SUBPLAN SCAN |v |1 |74 |
|2 | LIMIT | |1 |74 |
|3 | PX COORDINATOR | |1 |73 |
|4 | EXCHANGE OUT DISTR |:EX10001|1 |73 |
|5 | LIMIT | |1 |73 |
|6 | NESTED-LOOP JOIN | |1 |73 |
|7 | EXCHANGE IN DISTR | |1 |36 |
|8 | EXCHANGE OUT DISTR (PKEY)|:EX10000|1 |36 |
|9 | PX PARTITION ITERATOR | |1 |36 |
|10| TABLE SCAN |t2 |1 |36 |
|11| PX PARTITION ITERATOR | |1 |36 |
|12| TABLE GET |t1 |1 |36 |
==============================================================
Outputs & filters:
-------------------------------------
0 - output([v.c1]), filter(nil), sort_keys([v.c1, ASC])
1 - output([v.c1]), filter(nil),
access([v.c1])
2 - output([t2.c1]), filter(nil), limit(1), offset(nil)
3 - output([t2.c1]), filter(nil)
4 - output([t2.c1]), filter(nil), dop=1
5 - output([t2.c1]), filter(nil), limit(1), offset(nil)
6 - output([t2.c1]), filter(nil),
conds(nil), nl_params_([t2.c1]), batch_join=false
7 - output([t2.c1], [PARTITION_ID]), filter(nil)
8 - (#keys=1, [t2.c1]), output([t2.c1], [PARTITION_ID]), filter(nil), dop=1
9 - output([t2.c1]), filter(nil),
force partition granule, asc.
10 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
11 - output([1]), filter(nil),
affinitize, force partition granule, asc.
12 - output([1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX),
range_cond([t1.c1 = ?])
*************** Case 386(end) **************
*************** Case 387 ***************
SQL: select * from (select t1.c1 from t1,t2 where t1.c1=t2.c1 limit 1) v order by v.c1;
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------
|0 |SORT | |1 |74 |
|1 | SUBPLAN SCAN |v |1 |74 |
|2 | LIMIT | |1 |74 |
|3 | PX COORDINATOR | |1 |73 |
|4 | EXCHANGE OUT DISTR |:EX10001|1 |73 |
|5 | LIMIT | |1 |73 |
|6 | NESTED-LOOP JOIN | |1 |73 |
|7 | EXCHANGE IN DISTR | |1 |36 |
|8 | EXCHANGE OUT DISTR (PKEY)|:EX10000|1 |36 |
|9 | PX PARTITION ITERATOR | |1 |36 |
|10| TABLE SCAN |t2 |1 |36 |
|11| PX PARTITION ITERATOR | |1 |36 |
|12| TABLE GET |t1 |1 |36 |
==============================================================
Outputs & filters:
-------------------------------------
0 - output([v.c1]), filter(nil), sort_keys([v.c1, ASC])
1 - output([v.c1]), filter(nil),
access([v.c1])
2 - output([t1.c1]), filter(nil), limit(1), offset(nil)
3 - output([t1.c1]), filter(nil)
4 - output([t1.c1]), filter(nil), dop=1
5 - output([t1.c1]), filter(nil), limit(1), offset(nil)
6 - output([t1.c1]), filter(nil),
conds(nil), nl_params_([t2.c1]), batch_join=false
7 - output([t2.c1], [PARTITION_ID]), filter(nil)
8 - (#keys=1, [t2.c1]), output([t2.c1], [PARTITION_ID]), filter(nil), dop=1
9 - output([t2.c1]), filter(nil),
force partition granule, asc.
10 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
11 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
12 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX),
range_cond([t1.c1 = ?])
*************** Case 387(end) **************
*************** Case 388 ***************
SQL: select c1 from t1 having false;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil), startup_filter([0])
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 388(end) **************
*************** Case 389 ***************
SQL: select min(c1) from t1 having false;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |SCALAR GROUP BY | |0 |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 | LIMIT | |1 |37 |
|6 | TOP-N SORT | |1 |37 |
|7 | PX PARTITION ITERATOR | |1 |36 |
|8 | TABLE SCAN |t1 |1 |36 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_MIN(VIEW1.c1)]), filter([0]),
group(nil), agg_func([T_FUN_MIN(VIEW1.c1)])
1 - output([VIEW1.c1]), filter(nil),
access([VIEW1.c1])
2 - output([t1.c1]), filter(nil), limit(1), offset(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
4 - output([t1.c1]), filter(nil), dop=1
5 - output([t1.c1]), filter(nil), limit(1), offset(nil)
6 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), topn(1), local merge sort
7 - output([t1.c1]), filter(nil),
force partition granule, asc.
8 - 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
*************** Case 389(end) **************
*************** Case 390 ***************
SQL: select count(1) from t1 having false;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |0 |522 |
|1 | PX COORDINATOR | |0 |426 |
|2 | EXCHANGE OUT DISTR |:EX10000|0 |426 |
|3 | MERGE GROUP BY | |0 |426 |
|4 | PX PARTITION ITERATOR| |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(?))]), filter([0]),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(?))])
1 - output([T_FUN_COUNT(?)]), filter(nil)
2 - output([T_FUN_COUNT(?)]), filter(nil), dop=1
3 - output([T_FUN_COUNT(?)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(?)])
4 - output([1]), filter(nil),
force partition granule, asc.
5 - output([1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 390(end) **************
*************** Case 391 ***************
SQL: select c1 from t1 group by c1 having false;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil), startup_filter([0])
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 391(end) **************
*************** Case 392 ***************
SQL: select c1 from t1 group by c1 having c1>0;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(0 ; MAX),
range_cond([t1.c1 > ?])
*************** Case 392(end) **************
*************** Case 393 ***************
SQL: select c1 from t1 group by c1 having count(c2)>0;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |167 |399 |
|1 | EXCHANGE OUT DISTR |:EX10000|167 |384 |
|2 | PX PARTITION ITERATOR| |167 |384 |
|3 | TABLE SCAN |t1 |167 |384 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter([CASE WHEN (T_OP_IS_NOT, t1.c2, NULL, 0) THEN 1 ELSE 0 END > ?]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 393(end) **************
*************** Case 394 ***************
SQL: select count(c1) from t1 group by c1 having count(c2)>0;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |167 |399 |
|1 | EXCHANGE OUT DISTR |:EX10000|167 |384 |
|2 | PX PARTITION ITERATOR| |167 |384 |
|3 | TABLE SCAN |t1 |167 |384 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END]), filter(nil)
1 - output([CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END]), filter(nil), dop=1
2 - output([CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END]), filter(nil),
force partition granule, asc.
3 - output([CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END]), filter([CASE WHEN (T_OP_IS_NOT, t1.c2, NULL, 0) THEN 1 ELSE 0 END > ?]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 394(end) **************
*************** Case 395 ***************
SQL: select c1 from t1 group by c1 having c1 in (select c1 from t1);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 395(end) **************
*************** Case 396 ***************
SQL: select count(c1) from t1 group by c1 having c1 in (select c1 from t1);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END]), filter(nil)
1 - output([CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END]), filter(nil), dop=1
2 - output([CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END]), filter(nil),
force partition granule, asc.
3 - output([CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 396(end) **************
*************** Case 397 ***************
SQL: select c1 from t1 group by c1 having 1 in (select c1 from t1);
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |500 |730 |
|1 | PX COORDINATOR | |1 |52 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |52 |
|3 | TABLE GET |t1 |1 |52 |
|4 | PX COORDINATOR | |500 |354 |
|5 | EXCHANGE OUT DISTR |:EX20000|500 |331 |
|6 | PX PARTITION ITERATOR | |500 |331 |
|7 | TABLE SCAN |t1 |500 |331 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([1]), filter(nil)
2 - output([1]), filter(nil), is_single, dop=1
3 - output([1]), filter(nil),
access([t1.c1]), partitions(p1),
is_index_back=false,
range_key([t1.c1]), range[1 ; 1],
range_cond([t1.c1 = ?])
4 - output([t1.c1]), filter(nil)
5 - output([t1.c1]), filter(nil), dop=1
6 - output([t1.c1]), filter(nil),
force partition granule, asc.
7 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 397(end) **************
*************** Case 398 ***************
SQL: select count(c1) from t1 group by c1 having 1 in (select c1 from t1);
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |500 |730 |
|1 | PX COORDINATOR | |1 |52 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |52 |
|3 | TABLE GET |t1 |1 |52 |
|4 | PX COORDINATOR | |500 |354 |
|5 | EXCHANGE OUT DISTR |:EX20000|500 |331 |
|6 | PX PARTITION ITERATOR | |500 |331 |
|7 | TABLE SCAN |t1 |500 |331 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([1]), filter(nil)
2 - output([1]), filter(nil), is_single, dop=1
3 - output([1]), filter(nil),
access([t1.c1]), partitions(p1),
is_index_back=false,
range_key([t1.c1]), range[1 ; 1],
range_cond([t1.c1 = ?])
4 - output([t1.c1]), filter(nil)
5 - output([t1.c1]), filter(nil), dop=1
6 - output([t1.c1]), filter(nil),
force partition granule, asc.
7 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 398(end) **************
*************** Case 399 ***************
SQL: select c1 from t1 group by c1 having c1 in (select t2.c1 from t2 where t1.c1=t2.c2);
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |2 |279 |
|1 | EXCHANGE OUT DISTR |:EX10001|2 |278 |
|2 | NESTED-LOOP JOIN | |2 |278 |
|3 | EXCHANGE IN DISTR | |2 |223 |
|4 | EXCHANGE OUT DISTR (PKEY)|:EX10000|2 |223 |
|5 | PX PARTITION ITERATOR | |2 |223 |
|6 | TABLE SCAN |t2 |2 |223 |
|7 | PX PARTITION ITERATOR | |1 |36 |
|8 | TABLE GET |t1 |1 |36 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
conds(nil), nl_params_([t2.c2]), batch_join=false
3 - output([t2.c2], [PARTITION_ID]), filter(nil)
4 - (#keys=1, [t2.c2]), output([t2.c2], [PARTITION_ID]), filter(nil), dop=1
5 - output([t2.c2]), filter(nil),
force partition granule, asc.
6 - output([t2.c2]), filter([t2.c2 = t2.c1]),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range(MIN ; MAX)always true
7 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX),
range_cond([t1.c1 = ?])
*************** Case 399(end) **************
*************** Case 400 ***************
SQL: select count(c1) from t1 group by c1 having c1 in (select t2.c1 from t2 where t1.c1=t2.c2);
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |2 |279 |
|1 | EXCHANGE OUT DISTR |:EX10001|2 |278 |
|2 | NESTED-LOOP JOIN | |2 |278 |
|3 | EXCHANGE IN DISTR | |2 |223 |
|4 | EXCHANGE OUT DISTR (PKEY)|:EX10000|2 |223 |
|5 | PX PARTITION ITERATOR | |2 |223 |
|6 | TABLE SCAN |t2 |2 |223 |
|7 | PX PARTITION ITERATOR | |1 |36 |
|8 | TABLE GET |t1 |1 |36 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END]), filter(nil)
1 - output([CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END]), filter(nil), dop=1
2 - output([CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END]), filter(nil),
conds(nil), nl_params_([t2.c2]), batch_join=false
3 - output([t2.c2], [PARTITION_ID]), filter(nil)
4 - (#keys=1, [t2.c2]), output([t2.c2], [PARTITION_ID]), filter(nil), dop=1
5 - output([t2.c2]), filter(nil),
force partition granule, asc.
6 - output([t2.c2]), filter([t2.c2 = t2.c1]),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range(MIN ; MAX)always true
7 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX),
range_cond([t1.c1 = ?])
*************** Case 400(end) **************
*************** Case 401 ***************
SQL: select c1 from t1 where c1 in (select c1 from t2 where c2 >= some(select c1 from t3 where t1.c2=t3.c1));
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
-------------------------------------------------------------
|0 |SUBPLAN FILTER | |250 |197518|
|1 | PX COORDINATOR | |500 |389 |
|2 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
|5 | NESTED-LOOP JOIN | |100 |381 |
|6 | SUBPLAN SCAN |VIEW1 |1 |37 |
|7 | SCALAR GROUP BY | |1 |37 |
|8 | SUBPLAN SCAN |VIEW2 |1 |37 |
|9 | LIMIT | |1 |37 |
|10| PX COORDINATOR | |1 |37 |
|11| EXCHANGE OUT DISTR |:EX20000|1 |37 |
|12| LIMIT | |1 |37 |
|13| PX PARTITION ITERATOR| |1 |36 |
|14| TABLE GET |t3 |1 |36 |
|15| PX COORDINATOR | |300 |227 |
|16| EXCHANGE OUT DISTR |:EX30000|300 |198 |
|17| PX PARTITION ITERATOR | |300 |198 |
|18| TABLE SCAN |t2 |300 |198 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter([t1.c1 = ANY(subquery(1))]),
exec_params_([t1.c2]), onetime_exprs_(nil), init_plan_idxs_(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.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t2.c1]), filter(nil),
conds([t2.c2 >= VIEW1.c1]), nl_params_(nil), batch_join=false
6 - output([VIEW1.c1]), filter(nil),
access([VIEW1.c1])
7 - output([T_FUN_MIN(VIEW2.c1)]), filter(nil),
group(nil), agg_func([T_FUN_MIN(VIEW2.c1)])
8 - output([VIEW2.c1]), filter(nil),
access([VIEW2.c1])
9 - output([t3.c1]), filter(nil), limit(1), offset(nil)
10 - output([t3.c1]), filter(nil)
11 - output([t3.c1]), filter(nil), dop=1
12 - output([t3.c1]), filter(nil), limit(1), offset(nil)
13 - output([t3.c1]), filter(nil),
force partition granule, asc.
14 - output([t3.c1]), filter(nil),
access([t3.c1]), partitions(p[0-1]),
limit(1), offset(nil),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true,
range_cond([? = t3.c1])
15 - output([t2.c1], [t2.c2]), filter(nil)
16 - output([t2.c1], [t2.c2]), filter(nil), dop=1
17 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
18 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 401(end) **************
*************** Case 402 ***************
SQL: select * from (select c1 from t4 group by "adg") as a;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |MERGE GROUP BY| |1 |68 |
|1 | TABLE SCAN |t4(idx_t4_c2)|100 |54 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1]), filter(nil),
group(nil), agg_func(nil)
1 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 402(end) **************
*************** Case 403 ***************
SQL: select c1 from t1 having count(c2)>0;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |533 |
|1 | PX COORDINATOR | |1 |437 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |437 |
|3 | MERGE GROUP BY | |1 |437 |
|4 | PX PARTITION ITERATOR| |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c2)) > ?]),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c2))])
1 - output([t1.c1], [T_FUN_COUNT(t1.c2)]), filter(nil)
2 - output([t1.c1], [T_FUN_COUNT(t1.c2)]), filter(nil), dop=1
3 - output([t1.c1], [T_FUN_COUNT(t1.c2)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(t1.c2)])
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 403(end) **************
*************** Case 404 ***************
SQL: select c1 from t1 having 3<(select 2);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil), startup_filter([?])
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 404(end) **************
*************** Case 405 ***************
SQL: select c1 from t1 having c1>(select 1);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(1 ; MAX),
range_cond([t1.c1 > ?])
*************** Case 405(end) **************
*************** Case 406 ***************
SQL: select c1 from t1 group by -1 having 3<(select 2);
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |MERGE GROUP BY | |1 |469 |
|1 | PX COORDINATOR | |1 |400 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |400 |
|3 | MERGE GROUP BY | |1 |400 |
|4 | PX PARTITION ITERATOR| |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil), startup_filter([?]),
group(nil), agg_func(nil)
1 - output([t1.c1]), filter(nil)
2 - output([t1.c1]), filter(nil), dop=1
3 - output([t1.c1]), filter(nil),
group(nil), agg_func(nil)
4 - output([t1.c1]), filter(nil),
force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 406(end) **************
*************** Case 407 ***************
SQL: select * from t4 where c1 =1 order by c2;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t4 |100 |92 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(1,MIN ; 1,MAX),
range_cond([t4.c1 = ?])
*************** Case 407(end) **************
*************** Case 408 ***************
SQL: select * from t4 where c1 =1 group by c2;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t4 |100 |92 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(1,MIN ; 1,MAX),
range_cond([t4.c1 = ?])
*************** Case 408(end) **************
*************** Case 409 ***************
SQL: select * from t19 where c1 = 1 order by c2, c3, c4;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t19 |100 |97 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t19.c1], [t19.c2], [t19.c3], [t19.c4], [t19.c5]), filter(nil),
access([t19.c1], [t19.c2], [t19.c3], [t19.c4], [t19.c5]), partitions(p0),
is_index_back=false,
range_key([t19.c1], [t19.c2], [t19.c3], [t19.c4]), range(1,MIN,MIN,MIN ; 1,MAX,MAX,MAX),
range_cond([t19.c1 = ?])
*************** Case 409(end) **************
*************** Case 410 ***************
SQL: select * from t19 where c1 = 1 group by c2, c3, c4;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t19 |100 |97 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t19.c1], [t19.c2], [t19.c3], [t19.c4], [t19.c5]), filter(nil),
access([t19.c1], [t19.c2], [t19.c3], [t19.c4], [t19.c5]), partitions(p0),
is_index_back=false,
range_key([t19.c1], [t19.c2], [t19.c3], [t19.c4]), range(1,MIN,MIN,MIN ; 1,MAX,MAX,MAX),
range_cond([t19.c1 = ?])
*************** Case 410(end) **************
*************** Case 411 ***************
SQL: select * from t19 where c1 = 1 and c3 = 1 order by c2, c4;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t19 |1 |114 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t19.c1], [t19.c2], [t19.c3], [t19.c4], [t19.c5]), filter([t19.c3 = ?]),
access([t19.c1], [t19.c3], [t19.c2], [t19.c4], [t19.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t19.c1], [t19.c2], [t19.c3], [t19.c4]), range(1,MIN,MIN,MIN ; 1,MAX,MAX,MAX),
range_cond([t19.c1 = ?])
*************** Case 411(end) **************
*************** Case 412 ***************
SQL: select * from t19 where c1 = 1 and c3 = 1 group by c2, c4;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t19 |1 |114 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t19.c1], [t19.c2], [t19.c3], [t19.c4], [t19.c5]), filter([t19.c3 = ?]),
access([t19.c1], [t19.c3], [t19.c2], [t19.c4], [t19.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t19.c1], [t19.c2], [t19.c3], [t19.c4]), range(1,MIN,MIN,MIN ; 1,MAX,MAX,MAX),
range_cond([t19.c1 = ?])
*************** Case 412(end) **************
*************** Case 413 ***************
SQL: select c1 from t7 where c2 =1 order by c2, c1 desc;
==========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------
|0 |TABLE SCAN|t7(Reverse)|1 |107 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter([t7.c2 = ?]),
access([t7.c2], [t7.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 413(end) **************
*************** Case 414 ***************
SQL: select c1 from t7 where c2 in (1) order by c2, c1 desc;
==========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------
|0 |TABLE SCAN|t7(Reverse)|1 |107 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter([t7.c2 = ?]),
access([t7.c2], [t7.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 414(end) **************
*************** Case 415 ***************
SQL: select c1 from t7 group by (select c1 from t8), c2;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |HASH GROUP BY | |100 |296 |
|1 | SUBPLAN FILTER| |100 |192 |
|2 | TABLE SCAN |t7 |100 |90 |
|3 | TABLE SCAN |t8 |100 |88 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
group([t7.c2]), agg_func(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 415(end) **************
*************** Case 416 ***************
SQL: select c1 from t7 group by (select c1 from t8) desc, c2 desc;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |MERGE GROUP BY | |100 |341 |
|1 | SORT | |100 |319 |
|2 | SUBPLAN FILTER| |100 |192 |
|3 | TABLE SCAN |t7 |100 |90 |
|4 | TABLE SCAN |t8 |100 |88 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
group([t7.c2]), agg_func(nil)
1 - output([t7.c1], [t7.c2]), filter(nil), sort_keys([t7.c2, DESC])
2 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
3 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
4 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 416(end) **************
*************** Case 417 ***************
SQL: select c1 from t7 group by (select c1 from t8) asc, c2 asc;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |MERGE GROUP BY | |100 |341 |
|1 | SORT | |100 |319 |
|2 | SUBPLAN FILTER| |100 |192 |
|3 | TABLE SCAN |t7 |100 |90 |
|4 | TABLE SCAN |t8 |100 |88 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
group([t7.c2]), agg_func(nil)
1 - output([t7.c1], [t7.c2]), filter(nil), sort_keys([t7.c2, ASC])
2 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
3 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
4 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 417(end) **************
*************** Case 418 ***************
SQL: select c1 from t7 group by (select c1 from t8) asc, c2 asc order by c1 desc;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |SORT | |100 |423 |
|1 | HASH GROUP BY | |100 |296 |
|2 | SUBPLAN FILTER| |100 |192 |
|3 | TABLE SCAN |t7(Reverse)|100 |90 |
|4 | TABLE SCAN |t8 |100 |88 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil), sort_keys([t7.c1, DESC])
1 - output([t7.c1]), filter(nil),
group([t7.c2]), agg_func(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
3 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
4 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 418(end) **************
*************** Case 419 ***************
SQL: select c1 from t7 group by c2 desc order by c2 asc;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |MERGE GROUP BY| |100 |239 |
|1 | SORT | |100 |217 |
|2 | TABLE SCAN |t7 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
group([t7.c2]), agg_func(nil)
1 - output([t7.c1], [t7.c2]), filter(nil), sort_keys([t7.c2, ASC])
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 419(end) **************
*************** Case 420 ***************
SQL: select c1 from t7 group by (select c1 from t8) desc, c2 desc order by (select c1 from t8) asc, c2 asc;
==========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------------
|0 |SORT | |100 |524 |
|1 | SUBPLAN FILTER | |100 |397 |
|2 | HASH GROUP BY | |100 |296 |
|3 | SUBPLAN FILTER| |100 |192 |
|4 | TABLE SCAN |t7 |100 |90 |
|5 | TABLE SCAN |t8 |100 |88 |
|6 | TABLE SCAN |t8 |100 |88 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, ASC])
1 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
group([t7.c2]), agg_func(nil)
3 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
4 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
5 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
6 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 420(end) **************
*************** Case 421 ***************
SQL: select c1 from t7 group by (select c1 from t8) asc , c2 asc order by (select c1 from t8) desc, c2 asc;
==========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------------
|0 |SORT | |100 |524 |
|1 | SUBPLAN FILTER | |100 |397 |
|2 | HASH GROUP BY | |100 |296 |
|3 | SUBPLAN FILTER| |100 |192 |
|4 | TABLE SCAN |t7 |100 |90 |
|5 | TABLE SCAN |t8 |100 |88 |
|6 | TABLE SCAN |t8 |100 |88 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, ASC])
1 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
group([t7.c2]), agg_func(nil)
3 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
4 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
5 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
6 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 421(end) **************
*************** Case 422 ***************
SQL: select c1 from t7 group by (select c1 from t8) , c2 order by (select c1 from t8) desc, c2 desc;
==========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------------
|0 |SORT | |100 |524 |
|1 | SUBPLAN FILTER | |100 |397 |
|2 | HASH GROUP BY | |100 |296 |
|3 | SUBPLAN FILTER| |100 |192 |
|4 | TABLE SCAN |t7 |100 |90 |
|5 | TABLE SCAN |t8 |100 |88 |
|6 | TABLE SCAN |t8 |100 |88 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, DESC])
1 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
group([t7.c2]), agg_func(nil)
3 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
4 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
5 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
6 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 422(end) **************
*************** Case 423 ***************
SQL: select c1 from t7 group by (select c1 from t8) desc, c2 desc;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |MERGE GROUP BY | |100 |341 |
|1 | SORT | |100 |319 |
|2 | SUBPLAN FILTER| |100 |192 |
|3 | TABLE SCAN |t7 |100 |90 |
|4 | TABLE SCAN |t8 |100 |88 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
group([t7.c2]), agg_func(nil)
1 - output([t7.c1], [t7.c2]), filter(nil), sort_keys([t7.c2, DESC])
2 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
3 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
4 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 423(end) **************
*************** Case 424 ***************
SQL: select c1 from t7 group by c2 desc order by c2 asc, c1 desc;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |MERGE GROUP BY| |100 |239 |
|1 | SORT | |100 |217 |
|2 | TABLE SCAN |t7 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
group([t7.c2]), agg_func(nil)
1 - output([t7.c1], [t7.c2]), filter(nil), sort_keys([t7.c2, ASC])
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 424(end) **************
*************** Case 425 ***************
SQL: select c1 from t7 group by c2 order by c2 asc, c1 desc;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |MERGE GROUP BY| |100 |239 |
|1 | SORT | |100 |217 |
|2 | TABLE SCAN |t7 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
group([t7.c2]), agg_func(nil)
1 - output([t7.c1], [t7.c2]), filter(nil), sort_keys([t7.c2, ASC])
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 425(end) **************
*************** Case 426 ***************
SQL: select c1 from t7 order by c2 asc, c1 desc;
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |SORT | |100 |218 |
|1 | TABLE SCAN|t7 |100 |90 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, ASC], [t7.c1, DESC])
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 426(end) **************
*************** Case 427 ***************
SQL: select c1 from t7 group by (select c1 from t8) order by (select c1 from t8) asc;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |SUBPLAN FILTER | |1 |291 |
|1 | MERGE GROUP BY | |1 |203 |
|2 | SUBPLAN FILTER| |100 |189 |
|3 | TABLE SCAN |t7 |100 |88 |
|4 | TABLE SCAN |t8 |100 |88 |
|5 | TABLE SCAN |t8 |100 |88 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t7.c1]), filter(nil),
group(nil), agg_func(nil)
2 - output([t7.c1]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
3 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
4 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 427(end) **************
*************** Case 428 ***************
SQL: select c1 from t7 group by (select c1 from t8) asc;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |MERGE GROUP BY | |1 |203 |
|1 | SUBPLAN FILTER| |100 |189 |
|2 | TABLE SCAN |t7 |100 |88 |
|3 | TABLE SCAN |t8 |100 |88 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
group(nil), agg_func(nil)
1 - output([t7.c1]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
2 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 428(end) **************
*************** Case 429 ***************
SQL: select c1 from t7 group by c2 order by c2, c1;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |MERGE GROUP BY| |100 |239 |
|1 | SORT | |100 |217 |
|2 | TABLE SCAN |t7 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
group([t7.c2]), agg_func(nil)
1 - output([t7.c1], [t7.c2]), filter(nil), sort_keys([t7.c2, ASC])
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 429(end) **************
*************** Case 430 ***************
SQL: select avg(c2), count(c2) from t2;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |345 |
|1 | PX COORDINATOR | |1 |271 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |271 |
|3 | MERGE GROUP BY | |1 |271 |
|4 | PX PARTITION ITERATOR| |300 |198 |
|5 | TABLE SCAN |t2 |300 |198 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(t2.c2)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c2))], [T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c2))]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c2))], [T_FUN_SUM(T_FUN_SUM(t2.c2))])
1 - output([T_FUN_SUM(t2.c2)], [T_FUN_COUNT(t2.c2)]), filter(nil)
2 - output([T_FUN_SUM(t2.c2)], [T_FUN_COUNT(t2.c2)]), filter(nil), dop=1
3 - output([T_FUN_SUM(t2.c2)], [T_FUN_COUNT(t2.c2)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(t2.c2)], [T_FUN_SUM(t2.c2)])
4 - output([t2.c2]), filter(nil),
force partition granule, asc.
5 - 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
*************** Case 430(end) **************
*************** Case 431 ***************
SQL: select count(c2) from t7 group by c2;
======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
--------------------------------------
|0 |HASH GROUP BY| |100 |200 |
|1 | TABLE SCAN |t7 |100 |90 |
======================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(t7.c2)]), filter(nil),
group([t7.c2]), agg_func([T_FUN_COUNT(t7.c2)])
1 - output([t7.c2]), filter(nil),
access([t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 431(end) **************
*************** Case 432 ***************
SQL: select sum(c2) from t7 group by c2;
======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
--------------------------------------
|0 |HASH GROUP BY| |100 |200 |
|1 | TABLE SCAN |t7 |100 |90 |
======================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(t7.c2)]), filter(nil),
group([t7.c2]), agg_func([T_FUN_SUM(t7.c2)])
1 - output([t7.c2]), filter(nil),
access([t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 432(end) **************
*************** Case 433 ***************
SQL: select avg(distinct c1), count(c2) from t2;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |376 |
|1 | PX COORDINATOR | |1 |287 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |287 |
|3 | MERGE GROUP BY | |1 |287 |
|4 | PX PARTITION ITERATOR| |300 |198 |
|5 | TABLE SCAN |t2 |300 |198 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(t2.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c2))]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c2))], [T_FUN_SUM(T_FUN_SUM(t2.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1))])
1 - output([T_FUN_SUM(t2.c1)], [T_FUN_COUNT(t2.c1)], [T_FUN_COUNT(t2.c2)]), filter(nil)
2 - output([T_FUN_SUM(t2.c1)], [T_FUN_COUNT(t2.c1)], [T_FUN_COUNT(t2.c2)]), filter(nil), dop=1
3 - output([T_FUN_SUM(t2.c1)], [T_FUN_COUNT(t2.c1)], [T_FUN_COUNT(t2.c2)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(t2.c2)], [T_FUN_SUM(t2.c1)], [T_FUN_COUNT(t2.c1)])
4 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
5 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 433(end) **************
*************** Case 434 ***************
SQL: select avg(distinct c1), count(c2) from t2 group by c1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |300 |227 |
|1 | EXCHANGE OUT DISTR |:EX10000|300 |198 |
|2 | PX PARTITION ITERATOR| |300 |198 |
|3 | TABLE SCAN |t2 |300 |198 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([cast(t2.c1, DECIMAL(11, 0)) / CASE WHEN (T_OP_IS_NOT, t2.c1, NULL, 0) THEN 1 ELSE 0 END], [CASE WHEN (T_OP_IS_NOT, t2.c2, NULL, 0) THEN 1 ELSE 0 END]), filter(nil)
1 - output([cast(t2.c1, DECIMAL(11, 0)) / CASE WHEN (T_OP_IS_NOT, t2.c1, NULL, 0) THEN 1 ELSE 0 END], [CASE WHEN (T_OP_IS_NOT, t2.c2, NULL, 0) THEN 1 ELSE 0 END]), filter(nil), dop=1
2 - output([cast(t2.c1, DECIMAL(11, 0)) / CASE WHEN (T_OP_IS_NOT, t2.c1, NULL, 0) THEN 1 ELSE 0 END], [CASE WHEN (T_OP_IS_NOT, t2.c2, NULL, 0) THEN 1 ELSE 0 END]), filter(nil),
force partition granule, asc.
3 - output([cast(t2.c1, DECIMAL(11, 0)) / CASE WHEN (T_OP_IS_NOT, t2.c1, NULL, 0) THEN 1 ELSE 0 END], [CASE WHEN (T_OP_IS_NOT, t2.c2, NULL, 0) THEN 1 ELSE 0 END]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 434(end) **************
*************** Case 435 ***************
SQL: select count(distinct c1) from t2 group by c2;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |100 |589 |
|1 | EXCHANGE OUT DISTR |:EX10001|100 |579 |
|2 | HASH GROUP BY | |100 |579 |
|3 | EXCHANGE IN DISTR | |100 |394 |
|4 | EXCHANGE OUT DISTR (HASH)|:EX10000|100 |384 |
|5 | HASH GROUP BY | |100 |384 |
|6 | PX PARTITION ITERATOR | |300 |198 |
|7 | TABLE SCAN |t2 |300 |198 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1))]), filter(nil)
1 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1))]), filter(nil), dop=1
2 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1))]), filter(nil),
group([t2.c2]), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1))])
3 - output([T_FUN_COUNT(t2.c1)], [t2.c2]), filter(nil)
4 - (#keys=1, [t2.c2]), output([T_FUN_COUNT(t2.c1)], [t2.c2]), filter(nil), dop=1
5 - output([T_FUN_COUNT(t2.c1)], [t2.c2]), filter(nil),
group([t2.c2]), agg_func([T_FUN_COUNT(t2.c1)])
6 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
7 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 435(end) **************
*************** Case 436 ***************
SQL: select count(distinct c1, c2) from t2 group by c2;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |100 |589 |
|1 | EXCHANGE OUT DISTR |:EX10001|100 |579 |
|2 | HASH GROUP BY | |100 |579 |
|3 | EXCHANGE IN DISTR | |100 |394 |
|4 | EXCHANGE OUT DISTR (HASH)|:EX10000|100 |384 |
|5 | HASH GROUP BY | |100 |384 |
|6 | PX PARTITION ITERATOR | |300 |198 |
|7 | TABLE SCAN |t2 |300 |198 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1, t2.c2))]), filter(nil)
1 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1, t2.c2))]), filter(nil), dop=1
2 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1, t2.c2))]), filter(nil),
group([t2.c2]), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1, t2.c2))])
3 - output([T_FUN_COUNT(t2.c1, t2.c2)], [t2.c2]), filter(nil)
4 - (#keys=1, [t2.c2]), output([T_FUN_COUNT(t2.c1, t2.c2)], [t2.c2]), filter(nil), dop=1
5 - output([T_FUN_COUNT(t2.c1, t2.c2)], [t2.c2]), filter(nil),
group([t2.c2]), agg_func([T_FUN_COUNT(t2.c1, t2.c2)])
6 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
7 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 436(end) **************
*************** Case 437 ***************
SQL: select sum(distinct c1) from t7 group by c2;
======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
--------------------------------------
|0 |HASH GROUP BY| |100 |200 |
|1 | TABLE SCAN |t7 |100 |90 |
======================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(t7.c1)]), filter(nil),
group([t7.c2]), agg_func([T_FUN_SUM(t7.c1)])
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 437(end) **************
*************** Case 438 ***************
SQL: select count(distinct c2) from t2;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |313 |
|1 | PX COORDINATOR | |1 |256 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |255 |
|3 | HASH GROUP BY | |1 |255 |
|4 | PX PARTITION ITERATOR| |300 |198 |
|5 | TABLE SCAN |t2 |300 |198 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(distinct t2.c2)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(distinct t2.c2)])
1 - output([t2.c2]), filter(nil)
2 - output([t2.c2]), filter(nil), dop=1
3 - output([t2.c2]), filter(nil),
group([t2.c2]), agg_func(nil)
4 - output([t2.c2]), filter(nil),
force partition granule, asc.
5 - 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
*************** Case 438(end) **************
*************** Case 439 ***************
SQL: select sum(distinct c2) from t17;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |319 |
|1 | PX COORDINATOR | |1 |262 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |262 |
|3 | HASH GROUP BY | |1 |262 |
|4 | PX PARTITION ITERATOR| |300 |205 |
|5 | TABLE SCAN |t17 |300 |205 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(distinct t17.c2)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(distinct t17.c2)])
1 - output([t17.c2]), filter(nil)
2 - output([t17.c2]), filter(nil), dop=1
3 - output([t17.c2]), filter(nil),
group([t17.c2]), agg_func(nil)
4 - output([t17.c2]), filter(nil),
force partition granule, asc.
5 - output([t17.c2]), filter(nil),
access([t17.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t17.c1], [t17.c2], [t17.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 439(end) **************
*************** Case 440 ***************
SQL: select avg(distinct c1) from t1 group by c2;
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |100 |688 |
|1 | EXCHANGE OUT DISTR |:EX10001 |100 |679 |
|2 | MERGE GROUP BY | |100 |679 |
|3 | EXCHANGE IN MERGE SORT DISTR| |100 |515 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |506 |
|5 | PX PARTITION ITERATOR | |100 |506 |
|6 | MERGE GROUP BY | |100 |506 |
|7 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
=================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(t1.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil)
1 - output([T_FUN_SUM(T_FUN_SUM(t1.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil), dop=1
2 - output([T_FUN_SUM(T_FUN_SUM(t1.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))])
3 - output([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
4 - (#keys=1, [t1.c2]), output([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)], [t1.c2]), filter(nil), dop=1
5 - output([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)], [t1.c2]), filter(nil),
force partition granule, asc.
6 - output([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)], [t1.c2]), filter(nil),
group([t1.c2]), agg_func([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)])
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 440(end) **************
*************** Case 441 ***************
SQL: select count(distinct c2) from t2 group by c2;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR | |100 |542 |
|1 | EXCHANGE OUT DISTR |:EX10001|100 |532 |
|2 | MERGE GROUP BY | |100 |532 |
|3 | SORT | |100 |505 |
|4 | EXCHANGE IN DISTR | |100 |378 |
|5 | EXCHANGE OUT DISTR (HASH)|:EX10000|100 |368 |
|6 | HASH GROUP BY | |100 |368 |
|7 | PX PARTITION ITERATOR | |300 |198 |
|8 | TABLE SCAN |t2 |300 |198 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(distinct t2.c2)]), filter(nil)
1 - output([T_FUN_COUNT(distinct t2.c2)]), filter(nil), dop=1
2 - output([T_FUN_COUNT(distinct t2.c2)]), filter(nil),
group([t2.c2]), agg_func([T_FUN_COUNT(distinct t2.c2)])
3 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
4 - output([t2.c2]), filter(nil)
5 - (#keys=1, [t2.c2]), output([t2.c2]), filter(nil), dop=1
6 - output([t2.c2]), filter(nil),
group([t2.c2]), agg_func(nil)
7 - output([t2.c2]), filter(nil),
force partition granule, asc.
8 - 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
*************** Case 441(end) **************
*************** Case 442 ***************
SQL: select count(distinct c1) from t2 group by c2;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |100 |589 |
|1 | EXCHANGE OUT DISTR |:EX10001|100 |579 |
|2 | HASH GROUP BY | |100 |579 |
|3 | EXCHANGE IN DISTR | |100 |394 |
|4 | EXCHANGE OUT DISTR (HASH)|:EX10000|100 |384 |
|5 | HASH GROUP BY | |100 |384 |
|6 | PX PARTITION ITERATOR | |300 |198 |
|7 | TABLE SCAN |t2 |300 |198 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1))]), filter(nil)
1 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1))]), filter(nil), dop=1
2 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1))]), filter(nil),
group([t2.c2]), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1))])
3 - output([T_FUN_COUNT(t2.c1)], [t2.c2]), filter(nil)
4 - (#keys=1, [t2.c2]), output([T_FUN_COUNT(t2.c1)], [t2.c2]), filter(nil), dop=1
5 - output([T_FUN_COUNT(t2.c1)], [t2.c2]), filter(nil),
group([t2.c2]), agg_func([T_FUN_COUNT(t2.c1)])
6 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
7 - output([t2.c1], [t2.c2]), filter(nil),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 442(end) **************
*************** Case 443 ***************
SQL: select sum(distinct c2) from t15 group by c3;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR | |100 |3187|
|1 | EXCHANGE OUT DISTR |:EX10001|100 |3159|
|2 | MERGE GROUP BY | |100 |3159|
|3 | SORT | |400 |3049|
|4 | EXCHANGE IN DISTR | |400 |833 |
|5 | EXCHANGE OUT DISTR (HASH)|:EX10000|400 |719 |
|6 | HASH GROUP BY | |400 |719 |
|7 | PX PARTITION ITERATOR | |400 |279 |
|8 | TABLE SCAN |t15 |400 |279 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(distinct t15.c2)]), filter(nil)
1 - output([T_FUN_SUM(distinct t15.c2)]), filter(nil), dop=1
2 - output([T_FUN_SUM(distinct t15.c2)]), filter(nil),
group([t15.c3]), agg_func([T_FUN_SUM(distinct t15.c2)])
3 - output([t15.c2], [t15.c3]), filter(nil), sort_keys([t15.c3, ASC])
4 - output([t15.c2], [t15.c3]), filter(nil)
5 - (#keys=1, [t15.c3, VARCHAR, 32]), output([t15.c2], [t15.c3]), filter(nil), dop=1
6 - output([t15.c2], [t15.c3]), filter(nil),
group([t15.c3], [t15.c2]), agg_func(nil)
7 - output([t15.c2], [t15.c3]), filter(nil),
force partition granule, asc.
8 - output([t15.c2], [t15.c3]), filter(nil),
access([t15.c2], [t15.c3]), partitions(p[0-3]),
is_index_back=false,
range_key([t15.__pk_increment], [t15.__pk_cluster_id], [t15.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 443(end) **************
*************** Case 444 ***************
SQL: select sum(distinct c1) from t15 group by c3;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR | |100 |3086|
|1 | EXCHANGE OUT DISTR |:EX10001|100 |3062|
|2 | MERGE GROUP BY | |100 |3062|
|3 | SORT | |400 |2952|
|4 | EXCHANGE IN DISTR | |400 |814 |
|5 | EXCHANGE OUT DISTR (HASH)|:EX10000|400 |719 |
|6 | HASH GROUP BY | |400 |719 |
|7 | PX PARTITION ITERATOR | |400 |279 |
|8 | TABLE SCAN |t15 |400 |279 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(distinct t15.c1)]), filter(nil)
1 - output([T_FUN_SUM(distinct t15.c1)]), filter(nil), dop=1
2 - output([T_FUN_SUM(distinct t15.c1)]), filter(nil),
group([t15.c3]), agg_func([T_FUN_SUM(distinct t15.c1)])
3 - output([t15.c1], [t15.c3]), filter(nil), sort_keys([t15.c3, ASC])
4 - output([t15.c1], [t15.c3]), filter(nil)
5 - (#keys=1, [t15.c3, VARCHAR, 32]), output([t15.c1], [t15.c3]), filter(nil), dop=1
6 - output([t15.c1], [t15.c3]), filter(nil),
group([t15.c3], [t15.c1]), agg_func(nil)
7 - output([t15.c1], [t15.c3]), filter(nil),
force partition granule, asc.
8 - output([t15.c1], [t15.c3]), filter(nil),
access([t15.c1], [t15.c3]), partitions(p[0-3]),
is_index_back=false,
range_key([t15.__pk_increment], [t15.__pk_cluster_id], [t15.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 444(end) **************
*************** Case 445 ***************
SQL: select avg(distinct c2) from t15 group by c3;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR | |100 |3208|
|1 | EXCHANGE OUT DISTR |:EX10001|100 |3180|
|2 | MERGE GROUP BY | |100 |3180|
|3 | SORT | |400 |3049|
|4 | EXCHANGE IN DISTR | |400 |833 |
|5 | EXCHANGE OUT DISTR (HASH)|:EX10000|400 |719 |
|6 | HASH GROUP BY | |400 |719 |
|7 | PX PARTITION ITERATOR | |400 |279 |
|8 | TABLE SCAN |t15 |400 |279 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(distinct t15.c2) / T_FUN_COUNT(distinct t15.c2)]), filter(nil)
1 - output([T_FUN_SUM(distinct t15.c2) / T_FUN_COUNT(distinct t15.c2)]), filter(nil), dop=1
2 - output([T_FUN_SUM(distinct t15.c2) / T_FUN_COUNT(distinct t15.c2)]), filter(nil),
group([t15.c3]), agg_func([T_FUN_SUM(distinct t15.c2)], [T_FUN_COUNT(distinct t15.c2)])
3 - output([t15.c2], [t15.c3]), filter(nil), sort_keys([t15.c3, ASC])
4 - output([t15.c2], [t15.c3]), filter(nil)
5 - (#keys=1, [t15.c3, VARCHAR, 32]), output([t15.c2], [t15.c3]), filter(nil), dop=1
6 - output([t15.c2], [t15.c3]), filter(nil),
group([t15.c3], [t15.c2]), agg_func(nil)
7 - output([t15.c2], [t15.c3]), filter(nil),
force partition granule, asc.
8 - output([t15.c2], [t15.c3]), filter(nil),
access([t15.c2], [t15.c3]), partitions(p[0-3]),
is_index_back=false,
range_key([t15.__pk_increment], [t15.__pk_cluster_id], [t15.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 445(end) **************
*************** Case 446 ***************
SQL: select avg(distinct c1) from t15 group by c3;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR | |100 |3107|
|1 | EXCHANGE OUT DISTR |:EX10001|100 |3083|
|2 | MERGE GROUP BY | |100 |3083|
|3 | SORT | |400 |2952|
|4 | EXCHANGE IN DISTR | |400 |814 |
|5 | EXCHANGE OUT DISTR (HASH)|:EX10000|400 |719 |
|6 | HASH GROUP BY | |400 |719 |
|7 | PX PARTITION ITERATOR | |400 |279 |
|8 | TABLE SCAN |t15 |400 |279 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(distinct t15.c1) / T_FUN_COUNT(distinct t15.c1)]), filter(nil)
1 - output([T_FUN_SUM(distinct t15.c1) / T_FUN_COUNT(distinct t15.c1)]), filter(nil), dop=1
2 - output([T_FUN_SUM(distinct t15.c1) / T_FUN_COUNT(distinct t15.c1)]), filter(nil),
group([t15.c3]), agg_func([T_FUN_SUM(distinct t15.c1)], [T_FUN_COUNT(distinct t15.c1)])
3 - output([t15.c1], [t15.c3]), filter(nil), sort_keys([t15.c3, ASC])
4 - output([t15.c1], [t15.c3]), filter(nil)
5 - (#keys=1, [t15.c3, VARCHAR, 32]), output([t15.c1], [t15.c3]), filter(nil), dop=1
6 - output([t15.c1], [t15.c3]), filter(nil),
group([t15.c3], [t15.c1]), agg_func(nil)
7 - output([t15.c1], [t15.c3]), filter(nil),
force partition granule, asc.
8 - output([t15.c1], [t15.c3]), filter(nil),
access([t15.c1], [t15.c3]), partitions(p[0-3]),
is_index_back=false,
range_key([t15.__pk_increment], [t15.__pk_cluster_id], [t15.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 446(end) **************
*************** Case 447 ***************
SQL: select count(distinct c1, c2) from t15 group by c3;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR | |100 |3219|
|1 | EXCHANGE OUT DISTR |:EX10001|100 |3191|
|2 | MERGE GROUP BY | |100 |3191|
|3 | SORT | |400 |3081|
|4 | EXCHANGE IN DISTR | |400 |865 |
|5 | EXCHANGE OUT DISTR (HASH)|:EX10000|400 |751 |
|6 | HASH GROUP BY | |400 |751 |
|7 | PX PARTITION ITERATOR | |400 |287 |
|8 | TABLE SCAN |t15 |400 |287 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(distinct t15.c1, t15.c2)]), filter(nil)
1 - output([T_FUN_COUNT(distinct t15.c1, t15.c2)]), filter(nil), dop=1
2 - output([T_FUN_COUNT(distinct t15.c1, t15.c2)]), filter(nil),
group([t15.c3]), agg_func([T_FUN_COUNT(distinct t15.c1, t15.c2)])
3 - output([t15.c1], [t15.c2], [t15.c3]), filter(nil), sort_keys([t15.c3, ASC])
4 - output([t15.c1], [t15.c2], [t15.c3]), filter(nil)
5 - (#keys=1, [t15.c3, VARCHAR, 32]), output([t15.c1], [t15.c2], [t15.c3]), filter(nil), dop=1
6 - output([t15.c1], [t15.c2], [t15.c3]), filter(nil),
group([t15.c3], [t15.c1], [t15.c2]), agg_func(nil)
7 - output([t15.c1], [t15.c2], [t15.c3]), filter(nil),
force partition granule, asc.
8 - output([t15.c1], [t15.c2], [t15.c3]), filter(nil),
access([t15.c1], [t15.c2], [t15.c3]), partitions(p[0-3]),
is_index_back=false,
range_key([t15.__pk_increment], [t15.__pk_cluster_id], [t15.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 447(end) **************
*************** Case 448 ***************
SQL: select count(distinct c1, c2) from t17 group by c2;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR | |100 |1154|
|1 | EXCHANGE OUT DISTR |:EX10001|100 |1140|
|2 | MERGE GROUP BY | |100 |1140|
|3 | SORT | |300 |1057|
|4 | EXCHANGE IN DISTR | |300 |578 |
|5 | EXCHANGE OUT DISTR (HASH)|:EX10000|300 |535 |
|6 | HASH GROUP BY | |300 |535 |
|7 | PX PARTITION ITERATOR | |300 |205 |
|8 | TABLE SCAN |t17 |300 |205 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(distinct t17.c1, t17.c2)]), filter(nil)
1 - output([T_FUN_COUNT(distinct t17.c1, t17.c2)]), filter(nil), dop=1
2 - output([T_FUN_COUNT(distinct t17.c1, t17.c2)]), filter(nil),
group([t17.c2]), agg_func([T_FUN_COUNT(distinct t17.c1, t17.c2)])
3 - output([t17.c1], [t17.c2]), filter(nil), sort_keys([t17.c2, ASC])
4 - output([t17.c1], [t17.c2]), filter(nil)
5 - (#keys=1, [t17.c2]), output([t17.c1], [t17.c2]), filter(nil), dop=1
6 - output([t17.c1], [t17.c2]), filter(nil),
group([t17.c2], [t17.c1]), agg_func(nil)
7 - output([t17.c2], [t17.c1]), filter(nil),
force partition granule, asc.
8 - output([t17.c2], [t17.c1]), filter(nil),
access([t17.c2], [t17.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t17.c1], [t17.c2], [t17.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 448(end) **************
*************** Case 449 ***************
SQL: select sum(distinct c1) from t17 group by c2;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR | |100 |1154|
|1 | EXCHANGE OUT DISTR |:EX10001|100 |1140|
|2 | MERGE GROUP BY | |100 |1140|
|3 | SORT | |300 |1057|
|4 | EXCHANGE IN DISTR | |300 |578 |
|5 | EXCHANGE OUT DISTR (HASH)|:EX10000|300 |535 |
|6 | HASH GROUP BY | |300 |535 |
|7 | PX PARTITION ITERATOR | |300 |205 |
|8 | TABLE SCAN |t17 |300 |205 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(distinct t17.c1)]), filter(nil)
1 - output([T_FUN_SUM(distinct t17.c1)]), filter(nil), dop=1
2 - output([T_FUN_SUM(distinct t17.c1)]), filter(nil),
group([t17.c2]), agg_func([T_FUN_SUM(distinct t17.c1)])
3 - output([t17.c1], [t17.c2]), filter(nil), sort_keys([t17.c2, ASC])
4 - output([t17.c1], [t17.c2]), filter(nil)
5 - (#keys=1, [t17.c2]), output([t17.c1], [t17.c2]), filter(nil), dop=1
6 - output([t17.c1], [t17.c2]), filter(nil),
group([t17.c2], [t17.c1]), agg_func(nil)
7 - output([t17.c2], [t17.c1]), filter(nil),
force partition granule, asc.
8 - output([t17.c2], [t17.c1]), filter(nil),
access([t17.c2], [t17.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t17.c1], [t17.c2], [t17.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 449(end) **************
*************** Case 450 ***************
SQL: select/*+index(t5 idx_t5_c3)*/ t3.c2 from t5, t3;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
-------------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |60000 |43512|
|1 | PX COORDINATOR | |300 |191 |
|2 | EXCHANGE OUT DISTR |:EX10000 |300 |162 |
|3 | PX PARTITION ITERATOR | |300 |162 |
|4 | TABLE SCAN |t5(idx_t5_c3)|300 |162 |
|5 | MATERIAL | |200 |237 |
|6 | PX COORDINATOR | |200 |163 |
|7 | EXCHANGE OUT DISTR |:EX20000 |200 |144 |
|8 | PX PARTITION ITERATOR | |200 |144 |
|9 | TABLE SCAN |t3 |200 |144 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([t3.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([1]), filter(nil)
2 - output([1]), filter(nil), dop=1
3 - output([1]), filter(nil),
force partition granule, asc.
4 - output([1]), filter(nil),
access([t5.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t5.c3], [t5.c2]), range(MIN,MIN ; MAX,MAX)always true
5 - output([t3.c2]), filter(nil)
6 - output([t3.c2]), filter(nil)
7 - output([t3.c2]), filter(nil), dop=1
8 - output([t3.c2]), filter(nil),
force partition granule, asc.
9 - output([t3.c2]), filter(nil),
access([t3.c2]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
*************** Case 450(end) **************
*************** Case 451 ***************
SQL: SELECT * FROM (SELECT c1, c2 FROM t1 GROUP BY c1) v1 JOIN (SELECT c1, c2 FROM t2 WHERE c2 IN (2,3)) v2 ON v1.c1=v2.c1;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |6 |438 |
|1 | EXCHANGE OUT DISTR |:EX10001|6 |437 |
|2 | NESTED-LOOP JOIN | |6 |437 |
|3 | EXCHANGE IN DISTR | |6 |224 |
|4 | EXCHANGE OUT DISTR (PKEY)|:EX10000|6 |223 |
|5 | PX PARTITION ITERATOR | |6 |223 |
|6 | TABLE SCAN |t2 |6 |223 |
|7 | PX PARTITION ITERATOR | |1 |36 |
|8 | TABLE GET |t1 |1 |36 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil),
conds(nil), nl_params_([t2.c1]), batch_join=false
3 - output([t2.c1], [t2.c2], [PARTITION_ID]), filter(nil)
4 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2], [PARTITION_ID]), filter(nil), dop=1
5 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
6 - output([t2.c1], [t2.c2]), filter([t2.c2 IN (?, ?)]),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range(MIN ; MAX)always true
7 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX),
range_cond([t1.c1 = ?])
*************** Case 451(end) **************
*************** Case 452 ***************
SQL: SELECT GRANDPARENT1 . col_varchar_10 AS G1 FROM CC AS GRANDPARENT1 LEFT JOIN CC AS GRANDPARENT2 USING ( col_varchar_10 ) WHERE GRANDPARENT1 . `col_varchar_10` IN ( SELECT PARENT1 . `col_varchar_20` AS P1 FROM CC AS PARENT1 WHERE ( ( PARENT1 . `col_varchar_10` > PARENT1 . `col_varchar_20` ) OR NOT ( GRANDPARENT1 . `col_int_key` = 4 OR NOT GRANDPARENT1 . `col_int_key` > 2 ) ) ORDER BY PARENT1 . col_varchar_10 ) AND ( GRANDPARENT1 . col_varchar_10 IS NULL OR GRANDPARENT1 . `col_int_key` >= 3 );
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |HASH OUTER JOIN| |82 |899 |
|1 | HASH SEMI JOIN| |82 |513 |
|2 | TABLE SCAN |GRANDPARENT1|87 |105 |
|3 | TABLE SCAN |PARENT1 |100 |97 |
|4 | TABLE SCAN |GRANDPARENT2|100 |95 |
================================================
Outputs & filters:
-------------------------------------
0 - output([GRANDPARENT1.col_varchar_10]), filter(nil),
equal_conds([GRANDPARENT1.col_varchar_10 = GRANDPARENT2.col_varchar_10]), other_conds(nil)
1 - output([GRANDPARENT1.col_varchar_10]), filter(nil),
equal_conds([GRANDPARENT1.col_varchar_10 = PARENT1.col_varchar_20]), other_conds([PARENT1.col_varchar_10 > PARENT1.col_varchar_20 OR GRANDPARENT1.col_int_key != ? AND GRANDPARENT1.col_int_key > ?])
2 - output([GRANDPARENT1.col_varchar_10], [GRANDPARENT1.col_int_key]), filter([(T_OP_IS, GRANDPARENT1.col_varchar_10, NULL, 0) OR GRANDPARENT1.col_int_key >= ?]),
access([GRANDPARENT1.col_varchar_10], [GRANDPARENT1.col_int_key]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([GRANDPARENT1.__pk_increment], [GRANDPARENT1.__pk_cluster_id], [GRANDPARENT1.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([PARENT1.col_varchar_10], [PARENT1.col_varchar_20]), filter(nil),
access([PARENT1.col_varchar_10], [PARENT1.col_varchar_20]), partitions(p0),
is_index_back=false,
range_key([PARENT1.__pk_increment], [PARENT1.__pk_cluster_id], [PARENT1.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
4 - output([GRANDPARENT2.col_varchar_10]), filter(nil),
access([GRANDPARENT2.col_varchar_10]), partitions(p0),
is_index_back=false,
range_key([GRANDPARENT2.__pk_increment], [GRANDPARENT2.__pk_cluster_id], [GRANDPARENT2.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 452(end) **************
*************** Case 453 ***************
SQL: SELECT * FROM sbtest WHERE c1=1;
====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------
|0 |TABLE GET|sbtest|1 |52 |
====================================
Outputs & filters:
-------------------------------------
0 - output([sbtest.c1], [sbtest.c2]), filter(nil),
access([sbtest.c1], [sbtest.c2]), partitions(p0),
is_index_back=false,
range_key([sbtest.c1]), range[1 ; 1],
range_cond([sbtest.c1 = ?])
*************** Case 453(end) **************
*************** Case 454 ***************
SQL: select * from (select t1.c1 from t1 left join t2 as b on b.c1 = effective_tenant_id() where t1.c1 = effective_tenant_id()) as yyy;
===========================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |105 |
|1 | EXCHANGE OUT REMOTE | |1 |105 |
|2 | NESTED-LOOP OUTER JOIN CARTESIAN| |1 |105 |
|3 | TABLE GET |t1 |1 |52 |
|4 | TABLE GET |b |1 |52 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil)
2 - output([t1.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p1),
is_index_back=false,
range_key([t1.c1]), range[1 ; 1],
range_cond([t1.c1 = ?])
4 - output([1]), filter(nil),
access([b.c1]), partitions(p1),
is_index_back=false,
range_key([b.c1]), range[1 ; 1],
range_cond([b.c1 = ?])
*************** Case 454(end) **************
*************** Case 455 ***************
SQL: select * from (select t1.c1 from t1 left join t2 as b on b.c1 = 5 where t1.c1 = 5) as yyy;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |NESTED-LOOP OUTER JOIN CARTESIAN| |1 |105 |
|1 | TABLE GET |t1 |1 |52 |
|2 | PX COORDINATOR | |1 |52 |
|3 | EXCHANGE OUT DISTR |:EX10000|1 |52 |
|4 | TABLE GET |b |1 |52 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p0),
is_index_back=false,
range_key([t1.c1]), range[5 ; 5],
range_cond([t1.c1 = ?])
2 - output([1]), filter(nil)
3 - output([1]), filter(nil), is_single, dop=1
4 - output([1]), filter(nil),
access([b.c1]), partitions(p2),
is_index_back=false,
range_key([b.c1]), range[5 ; 5],
range_cond([b.c1 = ?])
*************** Case 455(end) **************
*************** Case 456 ***************
SQL: select * from t1, t2 order by t1.c1 limit 10;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |LIMIT | |10 |687 |
|1 | TOP-N SORT | |10 |686 |
|2 | NESTED-LOOP JOIN CARTESIAN| |10 |664 |
|3 | PX COORDINATOR | |1 |36 |
|4 | EXCHANGE OUT DISTR |:EX10000|1 |36 |
|5 | PX PARTITION ITERATOR | |1 |36 |
|6 | TABLE SCAN |t1 |1 |36 |
|7 | MATERIAL | |300 |621 |
|8 | PX COORDINATOR | |300 |290 |
|9 | EXCHANGE OUT DISTR |:EX20000|300 |205 |
|10| PX PARTITION ITERATOR | |300 |205 |
|11| TABLE SCAN |t2 |300 |205 |
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), limit(10), offset(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t1.c1, ASC]), topn(10)
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
3 - output([t1.c1], [t1.c2]), filter(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
10 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
11 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 456(end) **************
*************** Case 457 ***************
SQL: select * from t1, t7 order by t1.c1 limit 10;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |LIMIT | |10 |185 |
|1 | TOP-N SORT | |10 |184 |
|2 | NESTED-LOOP JOIN CARTESIAN| |10 |170 |
|3 | PX COORDINATOR | |1 |36 |
|4 | EXCHANGE OUT DISTR |:EX10000|1 |36 |
|5 | PX PARTITION ITERATOR | |1 |36 |
|6 | TABLE SCAN |t1 |1 |36 |
|7 | MATERIAL | |100 |127 |
|8 | TABLE SCAN |t7 |100 |90 |
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t7.c1], [t7.c2]), filter(nil), limit(10), offset(nil)
1 - output([t1.c1], [t1.c2], [t7.c1], [t7.c2]), filter(nil), sort_keys([t1.c1, ASC]), topn(10)
2 - output([t1.c1], [t1.c2], [t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
3 - output([t1.c1], [t1.c2]), filter(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t7.c1], [t7.c2]), filter(nil)
8 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 457(end) **************
*************** Case 458 ***************
SQL: select * from (select * from t1 group by c1) as a join (select * from t1 group by c1) as b on a.c1 = b.c1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 458(end) **************
*************** Case 459 ***************
SQL: select * from (select c1 as a1 from t1 group by c1) as a join (select c1 as b1 from t1 group by c1) as b on a.a1 = b.b1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 459(end) **************
*************** Case 460 ***************
SQL: select a2, b1 from (select c1 as a1, c1 as a2 from t1 group by c1) as a join (select c1 as b1 from t1 group by c1) as b on a.a2 = b.b1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |354 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |331 |
|2 | PX PARTITION ITERATOR| |500 |331 |
|3 | TABLE SCAN |t1 |500 |331 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c1]), filter(nil)
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil),
force partition granule, asc.
3 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 460(end) **************
*************** Case 461 ***************
SQL: select a2, b1 from (select c1 as a1, c2 as a2 from t1 group by c1) as a join (select c1 as b1 from t1 group by c1) as b on a.a2 = b.b1;
=================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------------
|0 |PX COORDINATOR | |490 |1853|
|1 | EXCHANGE OUT DISTR |:EX10001 |490 |1783|
|2 | MERGE JOIN | |490 |1783|
|3 | EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10000 |500 |342 |
|5 | PX PARTITION ITERATOR | |500 |342 |
|6 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
|7 | SORT | |500 |966 |
|8 | PX PARTITION ITERATOR | |500 |331 |
|9 | TABLE SCAN |t1 |500 |331 |
=================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2], [t1.c1]), filter(nil)
1 - output([t1.c2], [t1.c1]), filter(nil), dop=1
2 - output([t1.c2], [t1.c1]), filter(nil),
equal_conds([t1.c2 = t1.c1]), other_conds(nil)
3 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
4 - (#keys=1, [t1.c2]), output([t1.c2]), filter(nil), dop=1
5 - output([t1.c2]), filter(nil),
force partition granule, asc.
6 - 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
7 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
8 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
9 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 461(end) **************
*************** Case 462 ***************
SQL: select * from (select c2 from t1 group by c2) as a join (select c1 as b1 from t1 group by c1) as b on a.c2 = b.b1;
=====================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------------
|0 |PX COORDINATOR | |99 |1708|
|1 | EXCHANGE OUT DISTR |:EX10002 |99 |1699|
|2 | MERGE JOIN | |99 |1699|
|3 | EXCHANGE IN MERGE SORT DISTR | |100 |592 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001 |100 |587 |
|5 | SUBPLAN SCAN |a |100 |587 |
|6 | MERGE GROUP BY | |100 |573 |
|7 | EXCHANGE IN MERGE SORT DISTR| |100 |462 |
|8 | EXCHANGE OUT DISTR (HASH) |:EX10000 |100 |453 |
|9 | PX PARTITION ITERATOR | |100 |453 |
|10| MERGE GROUP BY | |100 |453 |
|11| TABLE SCAN |t1(idx_t1_c2)|500 |342 |
|12| SORT | |500 |966 |
|13| PX PARTITION ITERATOR | |500 |331 |
|14| TABLE SCAN |t1 |500 |331 |
=====================================================================
Outputs & filters:
-------------------------------------
0 - output([a.c2], [t1.c1]), filter(nil)
1 - output([a.c2], [t1.c1]), filter(nil), dop=1
2 - output([a.c2], [t1.c1]), filter(nil),
equal_conds([a.c2 = t1.c1]), other_conds(nil)
3 - output([a.c2]), filter(nil), sort_keys([a.c2, ASC])
4 - (#keys=1, [a.c2]), output([a.c2]), filter(nil), dop=1
5 - output([a.c2]), filter(nil),
access([a.c2])
6 - output([t1.c2]), filter(nil),
group([t1.c2]), agg_func(nil)
7 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
8 - (#keys=1, [t1.c2]), output([t1.c2]), filter(nil), dop=1
9 - output([t1.c2]), filter(nil),
force partition granule, asc.
10 - output([t1.c2]), filter(nil),
group([t1.c2]), agg_func(nil)
11 - 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
12 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
13 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
14 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 462(end) **************
*************** Case 463 ***************
SQL: SELECT * FROM sbtest1 WHERE (c1, c2)=(1, NULL);
======================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------
|0 |TABLE SCAN|sbtest1|100 |90 |
======================================
Outputs & filters:
-------------------------------------
0 - output([sbtest1.c1], [sbtest1.c2]), filter(nil), startup_filter([0]),
access([sbtest1.c1], [sbtest1.c2]), partitions(p0),
is_index_back=false,
range_key([sbtest1.c1]), range(MIN ; MAX)always true
*************** Case 463(end) **************
*************** Case 464 ***************
SQL: select * from t1 where c1 = 65535;
==================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------
|0 |TABLE GET|t1 |1 |52 |
==================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p0),
is_index_back=false,
range_key([t1.c1]), range[65535 ; 65535],
range_cond([t1.c1 = ?])
*************** Case 464(end) **************
*************** Case 465 ***************
SQL: select t6.c1, t6.c2, t6_1.c1, t6_1.c2 from t6 left join t6_1 using (c1) order by t6.c2 desc;
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |300 |1564|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1507|
|2 | SORT | |300 |1507|
|3 | MERGE OUTER JOIN | |300 |969 |
|4 | SORT | |300 |619 |
|5 | PX PARTITION ITERATOR | |300 |198 |
|6 | TABLE SCAN |t6 |300 |198 |
|7 | EXCHANGE IN MERGE SORT DISTR| |200 |163 |
|8 | EXCHANGE OUT DISTR (PKEY) |:EX10000|200 |144 |
|9 | PX PARTITION ITERATOR | |200 |144 |
|10| TABLE SCAN |t6_1 |200 |144 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([t6.c1], [t6.c2], [t6_1.c1], [t6_1.c2]), filter(nil), sort_keys([t6.c2, DESC])
1 - output([t6.c1], [t6.c2], [t6_1.c1], [t6_1.c2]), filter(nil), dop=1
2 - output([t6.c1], [t6.c2], [t6_1.c1], [t6_1.c2]), filter(nil), sort_keys([t6.c2, DESC])
3 - output([t6.c1], [t6.c2], [t6_1.c1], [t6_1.c2]), filter(nil),
equal_conds([t6.c1 = t6_1.c1]), other_conds(nil)
4 - output([t6.c1], [t6.c2]), filter(nil), sort_keys([t6.c1, ASC]), local merge sort
5 - output([t6.c1], [t6.c2]), filter(nil),
affinitize, force partition granule, asc.
6 - output([t6.c1], [t6.c2]), filter(nil),
access([t6.c1], [t6.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX)always true
7 - output([t6_1.c1], [t6_1.c2]), filter(nil), sort_keys([t6_1.c1, ASC]), Local Order
8 - (#keys=1, [t6_1.c1]), output([t6_1.c1], [t6_1.c2]), filter(nil), dop=1
9 - output([t6_1.c1], [t6_1.c2]), filter(nil),
force partition granule, asc.
10 - output([t6_1.c1], [t6_1.c2]), filter(nil),
access([t6_1.c1], [t6_1.c2]), partitions(p[0-1]),
is_index_back=false,
range_key([t6_1.c1]), range(MIN ; MAX)always true
*************** Case 465(end) **************
*************** Case 466 ***************
SQL: select t6.c1, t6.c2, t6_1.c1, t6_1.c2 from t6 left join t6_1 using (c1);
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1026|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |969 |
|2 | MERGE OUTER JOIN | |300 |969 |
|3 | SORT | |300 |619 |
|4 | PX PARTITION ITERATOR | |300 |198 |
|5 | TABLE SCAN |t6 |300 |198 |
|6 | EXCHANGE IN MERGE SORT DISTR| |200 |163 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|200 |144 |
|8 | PX PARTITION ITERATOR | |200 |144 |
|9 | TABLE SCAN |t6_1 |200 |144 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t6.c1], [t6.c2], [t6_1.c1], [t6_1.c2]), filter(nil)
1 - output([t6.c1], [t6.c2], [t6_1.c1], [t6_1.c2]), filter(nil), dop=1
2 - output([t6.c1], [t6.c2], [t6_1.c1], [t6_1.c2]), filter(nil),
equal_conds([t6.c1 = t6_1.c1]), other_conds(nil)
3 - output([t6.c1], [t6.c2]), filter(nil), sort_keys([t6.c1, ASC]), local merge sort
4 - output([t6.c1], [t6.c2]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t6.c1], [t6.c2]), filter(nil),
access([t6.c1], [t6.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t6.c1]), range(MIN ; MAX)always true
6 - output([t6_1.c1], [t6_1.c2]), filter(nil), sort_keys([t6_1.c1, ASC]), Local Order
7 - (#keys=1, [t6_1.c1]), output([t6_1.c1], [t6_1.c2]), filter(nil), dop=1
8 - output([t6_1.c1], [t6_1.c2]), filter(nil),
force partition granule, asc.
9 - output([t6_1.c1], [t6_1.c2]), filter(nil),
access([t6_1.c1], [t6_1.c2]), partitions(p[0-1]),
is_index_back=false,
range_key([t6_1.c1]), range(MIN ; MAX)always true
*************** Case 466(end) **************
*************** Case 467 ***************
SQL: select * from t1 where (0 = 1) or c1 = 1;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |52 |
|2 | TABLE GET |t1 |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil)
2 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p1),
is_index_back=false,
range_key([t1.c1]), range[1 ; 1],
range_cond([t1.c1 = ?])
*************** Case 467(end) **************
*************** Case 468 ***************
SQL: select * from t1 where (1 = 1) or c1 = 1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 468(end) **************
*************** Case 469 ***************
SQL: select * from t1 where 0 or c1 = 1;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |52 |
|2 | TABLE GET |t1 |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil)
2 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p1),
is_index_back=false,
range_key([t1.c1]), range[1 ; 1],
range_cond([t1.c1 = ?])
*************** Case 469(end) **************
*************** Case 470 ***************
SQL: select * from t1 where 1 or c1 = 1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 470(end) **************
*************** Case 471 ***************
SQL: select * from t1 join t2 on (1 =1 or t1.c1 = t2.c1);
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
---------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |150000 |108575|
|1 | PX COORDINATOR | |300 |290 |
|2 | EXCHANGE OUT DISTR |:EX10000|300 |205 |
|3 | PX PARTITION ITERATOR | |300 |205 |
|4 | TABLE SCAN |t2 |300 |205 |
|5 | MATERIAL | |500 |573 |
|6 | PX COORDINATOR | |500 |389 |
|7 | EXCHANGE OUT DISTR |:EX20000|500 |342 |
|8 | PX PARTITION ITERATOR | |500 |342 |
|9 | TABLE SCAN |t1 |500 |342 |
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), startup_filter([1]),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
5 - output([t1.c1], [t1.c2]), filter(nil)
6 - output([t1.c1], [t1.c2]), filter(nil)
7 - output([t1.c1], [t1.c2]), filter(nil), dop=1
8 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
9 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 471(end) **************
*************** Case 472 ***************
SQL: select * from t1 left join t2 on (1 = 0 or t1.c1 = t2.c1) left join t3 on (1=2 and t2.c1 = t3.c1);
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |NESTED-LOOP OUTER JOIN CARTESIAN| |500 |1825|
|1 | PX COORDINATOR | |500 |1725|
|2 | EXCHANGE OUT DISTR |:EX10001|500 |1536|
|3 | MERGE OUTER JOIN | |500 |1536|
|4 | EXCHANGE IN MERGE SORT DISTR| |500 |389 |
|5 | EXCHANGE OUT DISTR (PKEY) |:EX10000|500 |342 |
|6 | PX PARTITION ITERATOR | |500 |342 |
|7 | TABLE SCAN |t1 |500 |342 |
|8 | SORT | |300 |859 |
|9 | PX PARTITION ITERATOR | |300 |205 |
|10| TABLE SCAN |t2 |300 |205 |
|11| MATERIAL | |0 |101 |
|12| TABLE SCAN |t3 |0 |101 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
5 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
6 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
7 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
10 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
11 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), startup_filter([0])
12 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p0),
is_index_back=false,
range_key([t3.c1]), range(MAX ; MIN)always false
*************** Case 472(end) **************
*************** Case 473 ***************
SQL: select * from t1 left join t2 on (1 = 0 or t1.c1 = t2.c1) left join t3 on (1=2 or t2.c1 = t3.c1);
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |500 |3115|
|1 | EXCHANGE OUT DISTR |:EX10002|500 |2784|
|2 | MERGE OUTER JOIN | |500 |2784|
|3 | SORT | |500 |1074|
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
|6 | EXCHANGE IN MERGE SORT DISTR | |300 |1422|
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10001|300 |1251|
|8 | MERGE OUTER JOIN | |300 |1251|
|9 | SORT | |300 |859 |
|10| PX PARTITION ITERATOR | |300 |205 |
|11| TABLE SCAN |t2 |300 |205 |
|12| EXCHANGE IN MERGE SORT DISTR| |200 |205 |
|13| EXCHANGE OUT DISTR (PKEY) |:EX10000|200 |149 |
|14| PX PARTITION ITERATOR | |200 |149 |
|15| TABLE SCAN |t3 |200 |149 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t2.c1, ASC])
7 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
8 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t2.c1 = t3.c1]), other_conds(nil)
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
10 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
11 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
12 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
13 - (#keys=1, [t3.c1]), output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
14 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
force partition granule, asc.
15 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
*************** Case 473(end) **************
*************** Case 474 ***************
SQL: select c1, c2 from t1 group by c1 having (1 = 0 or c1 > 5);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(5 ; MAX),
range_cond([t1.c1 > ?])
*************** Case 474(end) **************
*************** Case 475 ***************
SQL: select * from t1 where c1 in (select c1 from t2 where (1 = 0 or c1 > 5));
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1610|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1568|
|2 | MERGE JOIN | |300 |1568|
|3 | SORT | |500 |1074|
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |192 |
|8 | PX PARTITION ITERATOR | |300 |192 |
|9 | TABLE SCAN |t2 |300 |192 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(5 ; MAX),
range_cond([t1.c1 > ?])
6 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
7 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
8 - output([t2.c1]), filter(nil),
force partition granule, asc.
9 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(5 ; MAX),
range_cond([t2.c1 > ?])
*************** Case 475(end) **************
*************** Case 476 ***************
SQL: select * from t7,t8 where concat(t7.c2, t8.c2) > 1;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |NESTED-LOOP JOIN| |3334 |5676|
|1 | TABLE SCAN |t7 |100 |90 |
|2 | MATERIAL | |100 |127 |
|3 | TABLE SCAN |t8 |100 |90 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds([concat(t7.c2, t8.c2) > ?]), nl_params_(nil), batch_join=false
1 - output([t7.c2], [t7.c1]), filter(nil),
access([t7.c2], [t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1], [t8.c2]), filter(nil)
3 - output([t8.c2], [t8.c1]), filter(nil),
access([t8.c2], [t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 476(end) **************
*************** Case 477 ***************
SQL: select exists(select 1) + 1;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |1 |1 |
|1 | EXPRESSION | |1 |1 |
|2 | EXPRESSION | |1 |1 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter(nil),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1)) + ?]), init_plan_idxs_(nil)
1 - output([1]), filter(nil)
values({1})
2 - output([?]), filter(nil)
values({?})
*************** Case 477(end) **************
*************** Case 478 ***************
SQL: select exists(select 1) + c1 from t7;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |100 |102 |
|1 | TABLE SCAN |t7 |100 |88 |
|2 | EXPRESSION | |1 |1 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([? + t7.c1]), filter(nil),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([?]), filter(nil)
values({?})
*************** Case 478(end) **************
*************** Case 479 ***************
SQL: select ( select max(c1) from t7 ) = (select min(c1) from t8) from t9;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |100 |226 |
|1 | NESTED-LOOP JOIN CARTESIAN| |1 |74 |
|2 | SUBPLAN SCAN |VIEW1 |1 |37 |
|3 | SCALAR GROUP BY | |1 |37 |
|4 | SUBPLAN SCAN |VIEW3 |1 |37 |
|5 | TABLE SCAN |t7(Reverse)|1 |36 |
|6 | SUBPLAN SCAN |VIEW2 |1 |37 |
|7 | SCALAR GROUP BY | |1 |37 |
|8 | SUBPLAN SCAN |VIEW4 |1 |37 |
|9 | TABLE SCAN |t8 |1 |36 |
|10| TABLE SCAN |t9 |100 |88 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([VIEW1.max(c1) = VIEW2.min(c1)]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
1 - output([VIEW1.max(c1)], [VIEW2.min(c1)]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([VIEW1.max(c1)]), filter(nil),
access([VIEW1.max(c1)])
3 - output([T_FUN_MAX(VIEW3.c1)]), filter(nil),
group(nil), agg_func([T_FUN_MAX(VIEW3.c1)])
4 - output([VIEW3.c1]), filter(nil),
access([VIEW3.c1])
5 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
6 - output([VIEW2.min(c1)]), filter(nil),
access([VIEW2.min(c1)])
7 - output([T_FUN_MIN(VIEW4.c1)]), filter(nil),
group(nil), agg_func([T_FUN_MIN(VIEW4.c1)])
8 - output([VIEW4.c1]), filter(nil),
access([VIEW4.c1])
9 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
10 - output([1]), filter(nil),
access([t9.c1]), partitions(p0),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 479(end) **************
*************** Case 480 ***************
SQL: select 1 in (select c1 from t7) from t8;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |100 |189 |
|1 | TABLE SCAN |t8 |100 |88 |
|2 | TABLE SCAN |t7 |100 |88 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter(nil),
exec_params_(nil), onetime_exprs_([? = ANY(subquery(1))]), init_plan_idxs_(nil)
1 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
2 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 480(end) **************
*************** Case 481 ***************
SQL: select c1 in (select c1 from t7) from t8;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |100 |2204|
|1 | TABLE SCAN |t8 |100 |88 |
|2 | TABLE SCAN |t7 |100 |88 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t8.c1 = ANY(subquery(1))]), filter(nil),
exec_params_(nil), onetime_exprs_(nil), init_plan_idxs_([1])
1 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
2 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 481(end) **************
*************** Case 482 ***************
SQL: select abs((select sum(c1) from t7)) > round((select sum(c1) from t7)) from t8;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |100 |367 |
|1 | NESTED-LOOP JOIN CARTESIAN| |1 |215 |
|2 | SUBPLAN SCAN |VIEW1|1 |107 |
|3 | SCALAR GROUP BY | |1 |107 |
|4 | TABLE SCAN |t7 |100 |88 |
|5 | SUBPLAN SCAN |VIEW2|1 |107 |
|6 | SCALAR GROUP BY | |1 |107 |
|7 | TABLE SCAN |t7 |100 |88 |
|8 | TABLE SCAN |t8 |100 |88 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([abs(VIEW1.sum(c1)) > round(VIEW2.sum(c1))]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
1 - output([VIEW1.sum(c1)], [VIEW2.sum(c1)]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([VIEW1.sum(c1)]), filter(nil),
access([VIEW1.sum(c1)])
3 - output([T_FUN_SUM(t7.c1)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(t7.c1)])
4 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
5 - output([VIEW2.sum(c1)]), filter(nil),
access([VIEW2.sum(c1)])
6 - output([T_FUN_SUM(t7.c1)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(t7.c1)])
7 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
8 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 482(end) **************
*************** Case 483 ***************
SQL: select abs((select sum(c1) from t7)) > round((select sum(c1) from t7)) from t8 left outer join t9 using(c1);
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |100 |367 |
|1 | NESTED-LOOP JOIN CARTESIAN| |1 |215 |
|2 | SUBPLAN SCAN |VIEW1|1 |107 |
|3 | SCALAR GROUP BY | |1 |107 |
|4 | TABLE SCAN |t7 |100 |88 |
|5 | SUBPLAN SCAN |VIEW2|1 |107 |
|6 | SCALAR GROUP BY | |1 |107 |
|7 | TABLE SCAN |t7 |100 |88 |
|8 | TABLE SCAN |t8 |100 |88 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([abs(VIEW1.sum(c1)) > round(VIEW2.sum(c1))]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
1 - output([VIEW1.sum(c1)], [VIEW2.sum(c1)]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([VIEW1.sum(c1)]), filter(nil),
access([VIEW1.sum(c1)])
3 - output([T_FUN_SUM(t7.c1)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(t7.c1)])
4 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
5 - output([VIEW2.sum(c1)]), filter(nil),
access([VIEW2.sum(c1)])
6 - output([T_FUN_SUM(t7.c1)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(t7.c1)])
7 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
8 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 483(end) **************
*************** Case 484 ***************
SQL: select ((select 1) < c1) + ((select 5) > c1) from t7;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t7 |100 |88 |
===================================
Outputs & filters:
-------------------------------------
0 - output([? < t7.c1 + ? > t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 484(end) **************
*************** Case 485 ***************
SQL: select * from t7 where ((select 1) < c1) + ((select 5) > c1);
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t7 |50 |99 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([? < t7.c1 + ? > t7.c1]),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 485(end) **************
*************** Case 486 ***************
SQL: select * from t7 having ((select 1) < c1) + ((select 5) > c1);
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t7 |50 |99 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([? < t7.c1 + ? > t7.c1]),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 486(end) **************
*************** Case 487 ***************
SQL: select * from t7 having ((select 1) < sum(c1)) + ((select 5) > sum(c1));
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |SCALAR GROUP BY| |1 |109 |
|1 | TABLE SCAN |t7 |100 |90 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([? < T_FUN_SUM(t7.c1) + ? > T_FUN_SUM(t7.c1)]),
group(nil), agg_func([T_FUN_SUM(t7.c1)])
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 487(end) **************
*************** Case 488 ***************
SQL: select * from t7 where 1 in (select c1 from t9 having (select count(1) from t7) > 0) having (select max(c1) from t8) > 1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |1 |43 |
|1 | NESTED-LOOP JOIN CARTESIAN | |1 |42 |
|2 | NESTED-LOOP JOIN CARTESIAN| |1 |42 |
|3 | SUBPLAN SCAN |VIEW3 |1 |37 |
|4 | SCALAR GROUP BY | |1 |37 |
|5 | SUBPLAN SCAN |VIEW4 |1 |37 |
|6 | TABLE SCAN |t8(Reverse)|1 |36 |
|7 | SUBPLAN SCAN |VIEW2 |1 |107 |
|8 | SCALAR GROUP BY | |1 |107 |
|9 | TABLE SCAN |t7 |100 |88 |
|10| TABLE GET |t9 |1 |52 |
|11| TABLE SCAN |t7 |100 |90 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
1 - output([1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
2 - output([1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
3 - output([1]), filter(nil),
access(nil)
4 - output([T_FUN_MAX(VIEW4.c1)]), filter([T_FUN_MAX(VIEW4.c1) > ?]),
group(nil), agg_func([T_FUN_MAX(VIEW4.c1)])
5 - output([VIEW4.c1]), filter(nil),
access([VIEW4.c1])
6 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
7 - output([1]), filter(nil),
access(nil)
8 - output([T_FUN_COUNT(?)]), filter([T_FUN_COUNT(?) > ?]),
group(nil), agg_func([T_FUN_COUNT(?)])
9 - output([1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
10 - output([1]), filter(nil),
access([t9.c1]), partitions(p0),
is_index_back=false,
range_key([t9.c1]), range[1 ; 1],
range_cond([t9.c1 = ?])
11 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 488(end) **************
*************** Case 489 ***************
SQL: select * from t7 having count(*) > (select 1);
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |SCALAR GROUP BY| |1 |109 |
|1 | TABLE SCAN |t7 |100 |90 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([T_FUN_COUNT(*) > ?]),
group(nil), agg_func([T_FUN_COUNT(*)])
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 489(end) **************
*************** Case 490 ***************
SQL: select * from t7 having count(*) > (select c1 from t8 limit 1);
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |SUBPLAN FILTER | |1 |145 |
|1 | SCALAR GROUP BY| |1 |109 |
|2 | TABLE SCAN |t7 |100 |90 |
|3 | TABLE SCAN |t8 |1 |36 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([T_FUN_COUNT(*) > ?]),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2], [T_FUN_COUNT(*)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)])
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 490(end) **************
*************** Case 491 ***************
SQL: select * from t7 having count(*) > (select c1 from t8 where t7.c1=t8.c1);
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |SUBPLAN FILTER | |1 |145 |
|1 | SCALAR GROUP BY| |1 |109 |
|2 | TABLE SCAN |t7 |100 |90 |
|3 | TABLE GET |t8 |1 |36 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([T_FUN_COUNT(*) > subquery(1)]),
exec_params_([t7.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2], [T_FUN_COUNT(*)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)])
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true,
range_cond([? = t8.c1])
*************** Case 491(end) **************
*************** Case 492 ***************
SQL: select *, (select 9) > count(*) FROM t7;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |SCALAR GROUP BY| |1 |109 |
|1 | TABLE SCAN |t7 |100 |90 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [? > T_FUN_COUNT(*)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)])
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 492(end) **************
*************** Case 493 ***************
SQL: select *, (select 9) > count(*) FROM t7 HAVING count(*) > (SELECT 5);
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |SCALAR GROUP BY| |1 |109 |
|1 | TABLE SCAN |t7 |100 |90 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [? > T_FUN_COUNT(*)]), filter([T_FUN_COUNT(*) > ?]),
group(nil), agg_func([T_FUN_COUNT(*)])
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 493(end) **************
*************** Case 494 ***************
SQL: select count(*) FROM t7 HAVING count(*) > (SELECT 5) ;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |SCALAR GROUP BY| |1 |107 |
|1 | TABLE SCAN |t7 |100 |88 |
========================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(*)]), filter([T_FUN_COUNT(*) > ?]),
group(nil), agg_func([T_FUN_COUNT(*)])
1 - output([1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 494(end) **************
*************** Case 495 ***************
SQL: select count(*) FROM t7 GROUP BY c1 HAVING count(*) > (SELECT 5) ;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t7 |100 |88 |
===================================
Outputs & filters:
-------------------------------------
0 - output([1]), filter(nil), startup_filter([?]),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 495(end) **************
*************** Case 496 ***************
SQL: select * from t7 order by exists(select 1);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |100 |104 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | EXPRESSION | |1 |1 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil)
values({1})
*************** Case 496(end) **************
*************** Case 497 ***************
SQL: select * from t7 order by (select count(*) from t8) > 1;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |SUBPLAN FILTER | |100 |211 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | SCALAR GROUP BY| |1 |107 |
|3 | TABLE SCAN |t8 |100 |88 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1) > 1]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([T_FUN_COUNT(*)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)])
3 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 497(end) **************
*************** Case 498 ***************
SQL: select * from t7 group by exists(select 1);
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |MERGE GROUP BY | |1 |118 |
|1 | SUBPLAN FILTER| |100 |104 |
|2 | TABLE SCAN |t7 |100 |90 |
|3 | EXPRESSION | |1 |1 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
group(nil), agg_func(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([1]), filter(nil)
values({1})
*************** Case 498(end) **************
*************** Case 499 ***************
SQL: select * from t7 group by (select count(*) from t8) > 1;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |HASH GROUP BY | |1 |295 |
|1 | NESTED-LOOP JOIN CARTESIAN| |100 |262 |
|2 | SUBPLAN SCAN |VIEW1|1 |107 |
|3 | SCALAR GROUP BY | |1 |107 |
|4 | TABLE SCAN |t8 |100 |88 |
|5 | TABLE SCAN |t7 |100 |90 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
group([VIEW1.count(*) > 1]), agg_func(nil)
1 - output([t7.c1], [t7.c2], [VIEW1.count(*) > 1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
2 - output([VIEW1.count(*)]), filter(nil),
access([VIEW1.count(*)])
3 - output([T_FUN_COUNT(*)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)])
4 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 499(end) **************
*************** Case 500 ***************
SQL: select * from t7 where exists( select c1, c2 from t8 );
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |140 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 500(end) **************
*************** Case 501 ***************
SQL: select * from t7 where exists( select sum(c2), c2 from t8 group by c2 order by c2 desc limit 10 );
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |141 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |10 |38 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(10), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 501(end) **************
*************** Case 502 ***************
SQL: select 100 + exists( select c1, c2 from t8 ) from t7;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |100 |192 |
|1 | TABLE SCAN |t7 |100 |88 |
|2 | TABLE SCAN |t8 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter(nil),
exec_params_(nil), onetime_exprs_([? + (T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 502(end) **************
*************** Case 503 ***************
SQL: select * from t7 where exists( select c1, count(*) from t8 );
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t7 |100 |90 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil), startup_filter([1]),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 503(end) **************
*************** Case 504 ***************
SQL: select * from t7 where exists( select distinct c1 from t8 );
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |140 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 504(end) **************
*************** Case 505 ***************
SQL: select * from t7 where exists( select * from t8 limit 10);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |141 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |10 |38 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(10), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 505(end) **************
*************** Case 506 ***************
SQL: select * from t7 where exists( select distinct c1 from t8 limit 10);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |141 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |10 |38 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(10), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 506(end) **************
*************** Case 507 ***************
SQL: select * from t7 where exists( select c1 from t8 group by c2);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |140 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 507(end) **************
*************** Case 508 ***************
SQL: select * from t7 where exists( select c1 from t8 group by c2 limit 10);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |141 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |10 |38 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(10), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 508(end) **************
*************** Case 509 ***************
SQL: select * from t7 where t7.c1 in ( select c1 from t8 group by c2 order by c2);
==========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------
|0 |MERGE JOIN | |100 |493 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | SORT | |100 |316 |
|3 | SUBPLAN SCAN |VIEW1|100 |208 |
|4 | HASH GROUP BY| |100 |195 |
|5 | TABLE SCAN |t8 |100 |90 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
equal_conds([t7.c1 = VIEW1.c1]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([VIEW1.c1]), filter(nil), sort_keys([VIEW1.c1, ASC])
3 - output([VIEW1.c1]), filter(nil),
access([VIEW1.c1])
4 - output([t8.c1]), filter(nil),
group([t8.c2]), agg_func(nil)
5 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 509(end) **************
*************** Case 510 ***************
SQL: select * from t7 where t7.c1 >= ( select max(c1) from t8 group by c2 order by c2);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |34 |246 |
|1 | TABLE SCAN |t7 |34 |42 |
|2 | HASH GROUP BY| |100 |200 |
|3 | TABLE SCAN |t8 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([t7.c1 >= ?])
2 - output([T_FUN_MAX(t8.c1)]), filter(nil),
group([t8.c2]), agg_func([T_FUN_MAX(t8.c1)])
3 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 510(end) **************
*************** Case 511 ***************
SQL: select * from t7 where t7.c1 <=> ( select c1 from t8 group by c2 order by c2 limit 1);
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |SUBPLAN FILTER | |1 |254 |
|1 | TABLE GET |t7 |1 |36 |
|2 | LIMIT | |1 |218 |
|3 | MERGE GROUP BY| |1 |217 |
|4 | SORT | |1 |217 |
|5 | TABLE SCAN |t8 |100 |90 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([t7.c1 <=> ?])
2 - output([t8.c1]), filter(nil), limit(1), offset(nil)
3 - output([t8.c1]), filter(nil),
group([t8.c2]), agg_func(nil)
4 - output([t8.c1], [t8.c2]), filter(nil), sort_keys([t8.c2, ASC])
5 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 511(end) **************
*************** Case 512 ***************
SQL: select * from t7 where t7.c1 = ( select sum(c1) from t8 group by c2 order by c2);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |1 |236 |
|1 | TABLE GET |t7 |1 |36 |
|2 | HASH GROUP BY| |100 |200 |
|3 | TABLE SCAN |t8 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([t7.c1 = ?])
2 - output([T_FUN_SUM(t8.c1)]), filter(nil),
group([t8.c2]), agg_func([T_FUN_SUM(t8.c1)])
3 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 512(end) **************
*************** Case 513 ***************
SQL: select * from t7 where t7.c1 <= any( select c1 from t8 group by c2 order by c2);
===============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------
|0 |NESTED-LOOP SEMI JOIN| |34 |3154|
|1 | TABLE SCAN |t7 |100 |90 |
|2 | MATERIAL | |100 |227 |
|3 | SUBPLAN SCAN |VIEW1|100 |208 |
|4 | HASH GROUP BY | |100 |195 |
|5 | TABLE SCAN |t8 |100 |90 |
===============================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds([t7.c1 <= VIEW1.c1]), nl_params_(nil), batch_join=false
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([VIEW1.c1]), filter(nil)
3 - output([VIEW1.c1]), filter(nil),
access([VIEW1.c1])
4 - output([t8.c1]), filter(nil),
group([t8.c2]), agg_func(nil)
5 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 513(end) **************
*************** Case 514 ***************
SQL: select * from t7 where t7.c1 <= all( select c1 from t8 group by c2 order by c2);
===============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------
|0 |NESTED-LOOP ANTI JOIN| |67 |3154|
|1 | TABLE SCAN |t7 |100 |90 |
|2 | MATERIAL | |100 |227 |
|3 | SUBPLAN SCAN |VIEW1|100 |208 |
|4 | HASH GROUP BY | |100 |195 |
|5 | TABLE SCAN |t8 |100 |90 |
===============================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds([t7.c1 > VIEW1.c1]), nl_params_(nil), batch_join=false
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([VIEW1.c1]), filter(nil)
3 - output([VIEW1.c1]), filter(nil),
access([VIEW1.c1])
4 - output([t8.c1]), filter(nil),
group([t8.c2]), agg_func(nil)
5 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 514(end) **************
*************** Case 515 ***************
SQL: select * from t7 where t7.c1 in ( select c2 from t8 group by c2 order by c2);
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |MERGE SEMI JOIN| |100 |374 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | SORT | |100 |198 |
|3 | TABLE SCAN |t8 |100 |90 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
equal_conds([t7.c1 = t8.c2]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c2]), filter(nil), sort_keys([t8.c2, ASC])
3 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 515(end) **************
*************** Case 516 ***************
SQL: select * from t7 where t7.c1 >= ( select c2 from t8 group by c2 order by c2);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |34 |241 |
|1 | TABLE SCAN |t7 |34 |42 |
|2 | HASH GROUP BY| |100 |195 |
|3 | TABLE SCAN |t8 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([t7.c1 >= ?])
2 - output([t8.c2]), filter(nil),
group([t8.c2]), agg_func(nil)
3 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 516(end) **************
*************** Case 517 ***************
SQL: select * from t7 where t7.c1 <=> ( select c2 from t8 group by c2 order by c2 limit 1);
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |SUBPLAN FILTER | |1 |234 |
|1 | TABLE GET |t7 |1 |36 |
|2 | LIMIT | |1 |198 |
|3 | MERGE GROUP BY| |1 |198 |
|4 | SORT | |1 |198 |
|5 | TABLE SCAN |t8 |100 |90 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([t7.c1 <=> ?])
2 - output([t8.c2]), filter(nil), limit(1), offset(nil)
3 - output([t8.c2]), filter(nil),
group([t8.c2]), agg_func(nil)
4 - output([t8.c2]), filter(nil), sort_keys([t8.c2, ASC])
5 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 517(end) **************
*************** Case 518 ***************
SQL: select * from t7 where t7.c1 = ( select c2 from t8 group by c2 order by c2);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |1 |231 |
|1 | TABLE GET |t7 |1 |36 |
|2 | HASH GROUP BY| |100 |195 |
|3 | TABLE SCAN |t8 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([t7.c1 = ?])
2 - output([t8.c2]), filter(nil),
group([t8.c2]), agg_func(nil)
3 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 518(end) **************
*************** Case 519 ***************
SQL: select * from t7 where t7.c1 <= any( select c2 from t8 group by c2 order by c2);
==============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------
|0 |NESTED-LOOP SEMI JOIN| |34 |3035|
|1 | TABLE SCAN |t7 |100 |90 |
|2 | MATERIAL | |100 |109 |
|3 | TABLE SCAN |t8 |100 |90 |
==============================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds([t7.c1 <= t8.c2]), nl_params_(nil), batch_join=false
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c2]), filter(nil)
3 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 519(end) **************
*************** Case 520 ***************
SQL: select * from t7 where t7.c1 <= all( select c2 from t8 group by c2 order by c2);
==============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------
|0 |NESTED-LOOP ANTI JOIN| |67 |3035|
|1 | TABLE SCAN |t7 |100 |90 |
|2 | MATERIAL | |100 |109 |
|3 | TABLE SCAN |t8 |100 |90 |
==============================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds([t7.c1 > t8.c2 OR (T_OP_IS, t8.c2, NULL, 0)]), nl_params_(nil), batch_join=false
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c2]), filter(nil)
3 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 520(end) **************
*************** Case 521 ***************
SQL: select * from t7 where t7.c1 >= ( select c2 from t8 group by c2, c1 order by c2);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |34 |137 |
|1 | TABLE SCAN |t7 |34 |42 |
|2 | TABLE SCAN |t8 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([t7.c1 >= ?])
2 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 521(end) **************
*************** Case 522 ***************
SQL: select * from t7 where t7.c1 = ( select c2 + 1 from t8 group by c2 order by c2);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |1 |231 |
|1 | TABLE GET |t7 |1 |36 |
|2 | HASH GROUP BY| |100 |195 |
|3 | TABLE SCAN |t8 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([t7.c1 = ?])
2 - output([t8.c2 + ?]), filter(nil),
group([t8.c2]), agg_func(nil)
3 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 522(end) **************
*************** Case 523 ***************
SQL: select * from t7 where t7.c1 <= any( select c2 + 1 from t8 group by c2 + 1, c2 order by c2);
===============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------
|0 |NESTED-LOOP SEMI JOIN| |34 |3997|
|1 | TABLE SCAN |t7 |100 |90 |
|2 | MATERIAL | |100 |233 |
|3 | SUBPLAN SCAN |VIEW1|100 |214 |
|4 | HASH GROUP BY | |100 |200 |
|5 | TABLE SCAN |t8 |100 |90 |
===============================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds([t7.c1 <= VIEW1.c2 + 1]), nl_params_(nil), batch_join=false
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([VIEW1.c2 + 1]), filter(nil)
3 - output([VIEW1.c2 + 1]), filter(nil),
access([VIEW1.c2 + 1])
4 - output([t8.c2 + ?]), filter(nil),
group([t8.c2 + 1], [t8.c2]), agg_func(nil)
5 - output([t8.c2], [t8.c2 + 1]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 523(end) **************
*************** Case 524 ***************
SQL: select * from t7 where t7.c1 in ( select c1 from t8 group by c2 desc order by c1 asc);
==========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------
|0 |MERGE JOIN | |100 |493 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | SORT | |100 |316 |
|3 | SUBPLAN SCAN |VIEW1|100 |208 |
|4 | HASH GROUP BY| |100 |195 |
|5 | TABLE SCAN |t8 |100 |90 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
equal_conds([t7.c1 = VIEW1.c1]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([VIEW1.c1]), filter(nil), sort_keys([VIEW1.c1, ASC])
3 - output([VIEW1.c1]), filter(nil),
access([VIEW1.c1])
4 - output([t8.c1]), filter(nil),
group([t8.c2]), agg_func(nil)
5 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 524(end) **************
*************** Case 525 ***************
SQL: select * from t7 where t7.c1 = ( select 100 from t8 group by c2 order by c2);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |1 |231 |
|1 | TABLE GET |t7 |1 |36 |
|2 | HASH GROUP BY| |100 |195 |
|3 | TABLE SCAN |t8 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([t7.c1 = ?])
2 - output([?]), filter(nil),
group([t8.c2]), agg_func(nil)
3 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 525(end) **************
*************** Case 526 ***************
SQL: select * from t7 where t7.c1 <= any( select 'abc' from t8 group by c2 order by c2);
==========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------
|0 |NESTED-LOOP JOIN| |34 |100 |
|1 | SUBPLAN SCAN |VIEW1|1 |37 |
|2 | TABLE SCAN |t8 |1 |36 |
|3 | TABLE SCAN |t7 |34 |42 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_([VIEW1.abc]), batch_join=true
1 - output([VIEW1.abc]), filter(nil),
access([VIEW1.abc])
2 - output([?]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
3 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX),
range_cond([t7.c1 <= ?])
*************** Case 526(end) **************
*************** Case 527 ***************
SQL: select * from t7 where t7.c1 <= all( select (select 1+1) from t8 group by c2 order by c2);
==============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------
|0 |NESTED-LOOP ANTI JOIN| |0 |3067|
|1 | TABLE SCAN |t7 |100 |90 |
|2 | MATERIAL | |100 |106 |
|3 | TABLE SCAN |t8 |100 |88 |
==============================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds([t7.c1 > ? OR ?]), nl_params_(nil), batch_join=false
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil)
3 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 527(end) **************
*************** Case 528 ***************
SQL: select * from t7 where t7.c1 in ( select c2 from t8 group by now());
==========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------
|0 |NESTED-LOOP JOIN| |1 |141 |
|1 | SUBPLAN SCAN |VIEW1|1 |104 |
|2 | MERGE GROUP BY| |1 |104 |
|3 | TABLE SCAN |t8 |100 |90 |
|4 | TABLE GET |t7 |1 |36 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_([VIEW1.c2]), batch_join=true
1 - output([VIEW1.c2]), filter(nil),
access([VIEW1.c2])
2 - output([t8.c2]), filter(nil),
group(nil), agg_func(nil)
3 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
4 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX),
range_cond([t7.c1 = ?])
*************** Case 528(end) **************
*************** Case 529 ***************
SQL: select * from t7 where t7.c1 in ( select now() from t8 group by c2);
=======================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------
|0 |HASH JOIN | |1 |161 |
|1 | SUBPLAN SCAN|VIEW1|1 |37 |
|2 | TABLE SCAN |t8 |1 |36 |
|3 | TABLE SCAN |t7 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
equal_conds([t7.c1 = VIEW1.now()]), other_conds(nil)
1 - output([VIEW1.now()]), filter(nil),
access([VIEW1.now()])
2 - output([?]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
3 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 529(end) **************
*************** Case 530 ***************
SQL: select * from t7 where t7.c1 in ( select t7.c2 from t8 group by c2);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |1 |223 |
|1 | TABLE SCAN |t7 |1 |99 |
|2 | MATERIAL | |1 |124 |
|3 | SUBPLAN SCAN |VIEW3|1 |124 |
|4 | LIMIT | |1 |124 |
|5 | HASH GROUP BY | |1 |124 |
|6 | TABLE SCAN |t8 |100 |90 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t7.c2], [t7.c1]), filter([t7.c1 = t7.c2]),
access([t7.c2], [t7.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil)
3 - output([1]), filter(nil),
access(nil)
4 - output([1]), filter(nil), limit(1), offset(nil)
5 - output([1]), filter(nil),
group([t8.c2]), agg_func(nil)
6 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 530(end) **************
*************** Case 531 ***************
SQL: select * from t7 where exists(select c1 + c2 from t8) and exists(select c3 * 3 from t9);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |25 |176 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
|3 | TABLE SCAN |t9 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?], [?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))], [(T_OP_EXISTS, subquery(2))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
3 - output([1]), filter(nil),
access([t9.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 531(end) **************
*************** Case 532 ***************
SQL: select * from t7 where exists(select c1 + c2 from t8) and exists(select c3 * 3 from t9);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |25 |176 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
|3 | TABLE SCAN |t9 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?], [?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))], [(T_OP_EXISTS, subquery(2))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
3 - output([1]), filter(nil),
access([t9.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 532(end) **************
*************** Case 533 ***************
SQL: select * from t7 where exists(select c1 + c2 from t8) having exists(select c3 * 3 from t9);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |25 |176 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
|3 | TABLE SCAN |t9 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?], [?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))], [(T_OP_EXISTS, subquery(2))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
3 - output([1]), filter(nil),
access([t9.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 533(end) **************
*************** Case 534 ***************
SQL: select * from t7 where exists(select c1 + c2 from t8) group by exists(select c3 * 3 from t9);
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |MERGE GROUP BY | |1 |243 |
|1 | SUBPLAN FILTER | |50 |237 |
|2 | SUBPLAN FILTER| |50 |140 |
|3 | TABLE SCAN |t7 |100 |90 |
|4 | TABLE SCAN |t8 |1 |36 |
|5 | TABLE SCAN |t9 |100 |90 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
group(nil), agg_func(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
3 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
4 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([t9.c3 * 3]), filter(nil),
access([t9.c3]), partitions(p0),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 534(end) **************
*************** Case 535 ***************
SQL: select * from t7 where exists(select c1 + c2 from t8) order by exists(select c3 * 3 from t9);
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |SUBPLAN FILTER | |50 |237 |
|1 | SUBPLAN FILTER| |50 |140 |
|2 | TABLE SCAN |t7 |100 |90 |
|3 | TABLE SCAN |t8 |1 |36 |
|4 | TABLE SCAN |t9 |100 |90 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
4 - output([t9.c3 * 3]), filter(nil),
access([t9.c3]), partitions(p0),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 535(end) **************
*************** Case 536 ***************
SQL: select * from t7 where not exists(select c1 + c2 from t8) and not exists(select c3 * 3 from t9);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |25 |176 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
|3 | TABLE SCAN |t9 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?], [?]),
exec_params_(nil), onetime_exprs_([(T_OP_NOT_EXISTS, subquery(1))], [(T_OP_NOT_EXISTS, subquery(2))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
3 - output([1]), filter(nil),
access([t9.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 536(end) **************
*************** Case 537 ***************
SQL: select * from t7 where not exists(select c1 + c2 from t8) having not exists(select c3 * 3 from t9);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |25 |176 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
|3 | TABLE SCAN |t9 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?], [?]),
exec_params_(nil), onetime_exprs_([(T_OP_NOT_EXISTS, subquery(1))], [(T_OP_NOT_EXISTS, subquery(2))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
3 - output([1]), filter(nil),
access([t9.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 537(end) **************
*************** Case 538 ***************
SQL: select * from t7 where not exists(select c1 + c2 from t8) group by not exists(select c3 * 3 from t9);
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |MERGE GROUP BY | |1 |243 |
|1 | SUBPLAN FILTER | |50 |237 |
|2 | SUBPLAN FILTER| |50 |140 |
|3 | TABLE SCAN |t7 |100 |90 |
|4 | TABLE SCAN |t8 |1 |36 |
|5 | TABLE SCAN |t9 |100 |90 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
group(nil), agg_func(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([(T_OP_NOT_EXISTS, subquery(1))]), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_NOT_EXISTS, subquery(1))]), init_plan_idxs_(nil)
3 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
4 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([t9.c3 * 3]), filter(nil),
access([t9.c3]), partitions(p0),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 538(end) **************
*************** Case 539 ***************
SQL: select * from t7 where not exists(select c1 + c2 from t8) order by not exists(select c3 * 3 from t9);
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |SUBPLAN FILTER | |50 |237 |
|1 | SUBPLAN FILTER| |50 |140 |
|2 | TABLE SCAN |t7 |100 |90 |
|3 | TABLE SCAN |t8 |1 |36 |
|4 | TABLE SCAN |t9 |100 |90 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([(T_OP_NOT_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_NOT_EXISTS, subquery(1))]), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
4 - output([t9.c3 * 3]), filter(nil),
access([t9.c3]), partitions(p0),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 539(end) **************
*************** Case 540 ***************
SQL: select c3 + 3 from t9 where exists(select exists(select c1+1 from t7) from t8);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |140 |
|1 | TABLE SCAN |t9 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t9.c3 + ?]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t9.c3]), filter(nil),
access([t9.c3]), partitions(p0),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 540(end) **************
*************** Case 541 ***************
SQL: select c3 + 3 from t9 where exists(select exists(select c1+1 from t7), c2 from t8);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |140 |
|1 | TABLE SCAN |t9 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t9.c3 + ?]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t9.c3]), filter(nil),
access([t9.c3]), partitions(p0),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 541(end) **************
*************** Case 542 ***************
SQL: select c3 from t9 where ( select count(1) from (select c2 from t8 group by c2) t999 ) > 10;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |5 |235 |
|1 | SUBPLAN SCAN |VIEW1|1 |228 |
|2 | SCALAR GROUP BY | |1 |228 |
|3 | SUBPLAN SCAN |t999 |100 |208 |
|4 | HASH GROUP BY | |100 |195 |
|5 | TABLE SCAN |t8 |100 |90 |
|6 | TABLE SCAN |t9 |100 |90 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t9.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
1 - output([1]), filter(nil),
access(nil)
2 - output([T_FUN_COUNT(?)]), filter([T_FUN_COUNT(?) > ?]),
group(nil), agg_func([T_FUN_COUNT(?)])
3 - output([1]), filter(nil),
access(nil)
4 - output([1]), filter(nil),
group([t8.c2]), agg_func(nil)
5 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
6 - output([t9.c3]), filter(nil),
access([t9.c3]), partitions(p0),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 542(end) **************
*************** Case 543 ***************
SQL: select * from t7 where exists(select c1, round(c2) from t8 group by c2);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |140 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 543(end) **************
*************** Case 544 ***************
SQL: select * from t7 where exists(select c1, round(c2) from t8 order by c2);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |140 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 544(end) **************
*************** Case 545 ***************
SQL: select * from t7 where exists(select c1, round(c2) from t8 group by c2 order by c2);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |140 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 545(end) **************
*************** Case 546 ***************
SQL: select * from t7 where not exists(select c1, round(c2) from t8 group by c2);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |140 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_NOT_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 546(end) **************
*************** Case 547 ***************
SQL: select * from t7 where not exists(select c1, round(c2) from t8 order by c2);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |140 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_NOT_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 547(end) **************
*************** Case 548 ***************
SQL: select * from t7 where not exists(select c1, round(c2) from t8 group by c2 order by c2);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |140 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_NOT_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 548(end) **************
*************** Case 549 ***************
SQL: select * from t7 where exists(select c1, round(c2) from t8 group by c2 having round(c2) > 0);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |141 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |1 |37 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter([round(t8.c2) > ?]),
access([t8.c2]), partitions(p0),
limit(1), offset(nil),
is_index_back=false, filter_before_indexback[false],
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 549(end) **************
*************** Case 550 ***************
SQL: select * from t7 where exists(select c1, round(c2) from t8 order by c2 limit 0);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |50 |104 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |0 |0 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(0), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 550(end) **************
*************** Case 551 ***************
SQL: select * from t7 where exists(select c1, round(c2) from t8 group by c2 having round(c2) > 0 and c1 != 1 order by c2 limit 10);
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |SUBPLAN FILTER | |50 |222 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | LIMIT | |10 |118 |
|3 | HASH GROUP BY| |10 |117 |
|4 | TABLE SCAN |t8 |34 |99 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1], [round(t8.c2)]), filter(nil), limit(10), offset(nil)
3 - output([t8.c1], [t8.c2]), filter([t8.c1 != ?]),
group([t8.c2]), agg_func(nil)
4 - output([t8.c1], [t8.c2]), filter([round(t8.c2) > ?]),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 551(end) **************
*************** Case 552 ***************
SQL: select * from t7,t8 where exists( select *, round(c2) from t9 );
====================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------------
|0 |SUBPLAN FILTER | |5000 |8814|
|1 | NESTED-LOOP JOIN CARTESIAN| |10000 |7398|
|2 | TABLE SCAN |t7 |100 |90 |
|3 | MATERIAL | |100 |127 |
|4 | TABLE SCAN |t8 |100 |90 |
|5 | TABLE SCAN |t9 |1 |36 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1], [t8.c2]), filter(nil)
4 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([1]), filter(nil),
access([t9.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 552(end) **************
*************** Case 553 ***************
SQL: select * from t7,t8 where exists( select *, round(c2) from t9 group by c2);
====================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------------
|0 |SUBPLAN FILTER | |5000 |8814|
|1 | NESTED-LOOP JOIN CARTESIAN| |10000 |7398|
|2 | TABLE SCAN |t7 |100 |90 |
|3 | MATERIAL | |100 |127 |
|4 | TABLE SCAN |t8 |100 |90 |
|5 | TABLE SCAN |t9 |1 |36 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1], [t8.c2]), filter(nil)
4 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([1]), filter(nil),
access([t9.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 553(end) **************
*************** Case 554 ***************
SQL: select * from t7,t8 where exists( select *, round(c2) from t9 order by c2);
====================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------------
|0 |SUBPLAN FILTER | |5000 |8814|
|1 | NESTED-LOOP JOIN CARTESIAN| |10000 |7398|
|2 | TABLE SCAN |t7 |100 |90 |
|3 | MATERIAL | |100 |127 |
|4 | TABLE SCAN |t8 |100 |90 |
|5 | TABLE SCAN |t9 |1 |36 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1], [t8.c2]), filter(nil)
4 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([1]), filter(nil),
access([t9.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 554(end) **************
*************** Case 555 ***************
SQL: select * from t7,t8 where exists( select *, round(c2) from t9 group by c2 order by c2);
====================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------------
|0 |SUBPLAN FILTER | |5000 |8814|
|1 | NESTED-LOOP JOIN CARTESIAN| |10000 |7398|
|2 | TABLE SCAN |t7 |100 |90 |
|3 | MATERIAL | |100 |127 |
|4 | TABLE SCAN |t8 |100 |90 |
|5 | TABLE SCAN |t9 |1 |36 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1], [t8.c2]), filter(nil)
4 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([1]), filter(nil),
access([t9.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 555(end) **************
*************** Case 556 ***************
SQL: select * from t7,t8 where exists( select *, round(c2) from t9 order by c2 limit 10);
====================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------------
|0 |SUBPLAN FILTER | |5000 |8815|
|1 | NESTED-LOOP JOIN CARTESIAN| |10000 |7398|
|2 | TABLE SCAN |t7 |100 |90 |
|3 | MATERIAL | |100 |127 |
|4 | TABLE SCAN |t8 |100 |90 |
|5 | TABLE SCAN |t9 |10 |38 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1], [t8.c2]), filter(nil)
4 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([1]), filter(nil),
access([t9.c1]), partitions(p0),
limit(10), offset(nil),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 556(end) **************
*************** Case 557 ***************
SQL: select * from t7,t8 where exists( select *, round(c2) from t9 group by c2 order by c2 limit 10);
====================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------------
|0 |SUBPLAN FILTER | |5000 |8815|
|1 | NESTED-LOOP JOIN CARTESIAN| |10000 |7398|
|2 | TABLE SCAN |t7 |100 |90 |
|3 | MATERIAL | |100 |127 |
|4 | TABLE SCAN |t8 |100 |90 |
|5 | TABLE SCAN |t9 |10 |38 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1], [t8.c2]), filter(nil)
4 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([1]), filter(nil),
access([t9.c1]), partitions(p0),
limit(10), offset(nil),
is_index_back=false,
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 557(end) **************
*************** Case 558 ***************
SQL: select * from t7,t8 where exists( select *, round(c2) from t9 group by c2 having round(c2) > 0 order by c2);
====================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------------
|0 |SUBPLAN FILTER | |5000 |8814|
|1 | NESTED-LOOP JOIN CARTESIAN| |10000 |7398|
|2 | TABLE SCAN |t7 |100 |90 |
|3 | MATERIAL | |100 |127 |
|4 | TABLE SCAN |t8 |100 |90 |
|5 | TABLE SCAN |t9 |1 |37 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1], [t8.c2]), filter(nil)
4 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([1]), filter([round(t9.c2) > ?]),
access([t9.c2]), partitions(p0),
limit(1), offset(nil),
is_index_back=false, filter_before_indexback[false],
range_key([t9.c1]), range(MIN ; MAX)always true
*************** Case 558(end) **************
*************** Case 559 ***************
SQL: (select * from t7 where exists(select c1, round(c2) from t8 group by c2 order by c2)) union (select * from t8);
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |MERGE UNION DISTINCT| |150 |287 |
|1 | SUBPLAN FILTER | |50 |140 |
|2 | TABLE SCAN |t7 |100 |90 |
|3 | TABLE SCAN |t8 |1 |36 |
|4 | TABLE SCAN |t8 |100 |90 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])]), filter(nil)
1 - output([t7.c1], [t7.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
4 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 559(end) **************
*************** Case 560 ***************
SQL: select c1, c2 from t7 where exists (select 1 from t8 where t8.c1 = t7.c1);
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |MERGE JOIN | |100 |265 |
|1 | TABLE SCAN|t7 |100 |90 |
|2 | TABLE SCAN|t8 |100 |88 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
equal_conds([t8.c1 = t7.c1]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 560(end) **************
*************** Case 561 ***************
SQL: select c1, c2 from t7 where not exists (select 1 from t8 where t8.c1 = t7.c1);
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |MERGE ANTI JOIN| |0 |265 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |100 |88 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
equal_conds([t8.c1 = t7.c1]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 561(end) **************
*************** Case 562 ***************
SQL: SELECT 1 FROM t7 WHERE NOT EXISTS(SELECT 1 FROM t8 WHERE c2 = (SELECT c2 FROM t8 WHERE c1 >= 1) ORDER BY c2);
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |SUBPLAN FILTER | |50 |290 |
|1 | TABLE SCAN |t7 |100 |88 |
|2 | LIMIT | |1 |189 |
|3 | SUBPLAN FILTER| |1 |188 |
|4 | TABLE SCAN |t8 |1 |99 |
|5 | TABLE SCAN |t8 |100 |90 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter([?]),
exec_params_(nil), onetime_exprs_([(T_OP_NOT_EXISTS, subquery(1))]), init_plan_idxs_(nil)
1 - output([1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([?]), filter(nil), limit(1), offset(nil)
3 - output([1]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
4 - output([1]), filter([t8.c2 = ?]),
access([t8.c2]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([t8.c2]), filter(nil),
access([t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range[1 ; MAX),
range_cond([t8.c1 >= ?])
*************** Case 562(end) **************
*************** Case 563 ***************
SQL: select distinct 1, 1+2, ABS(-1) from t7;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t7 |1 |36 |
===================================
Outputs & filters:
-------------------------------------
0 - output([?], [?], [?]), filter(nil),
access([t7.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 563(end) **************
*************** Case 564 ***************
SQL: select distinct 1, c2 from t7;
======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
--------------------------------------
|0 |HASH DISTINCT| |100 |195 |
|1 | TABLE SCAN |t7 |100 |90 |
======================================
Outputs & filters:
-------------------------------------
0 - output([?], [t7.c2]), filter(nil),
distinct([t7.c2])
1 - output([t7.c2]), filter(nil),
access([t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 564(end) **************
*************** Case 565 ***************
SQL: select count(distinct 1) from t7;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |SCALAR GROUP BY| |1 |107 |
|1 | TABLE SCAN |t7 |100 |88 |
========================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(distinct ?)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(distinct ?)])
1 - output([1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 565(end) **************
*************** Case 566 ***************
SQL: select distinct (select c1 from t7 limit 1) from t8;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |LIMIT | |1 |73 |
|1 | SUBPLAN FILTER| |1 |72 |
|2 | TABLE SCAN |t8 |1 |36 |
|3 | TABLE SCAN |t7 |1 |36 |
========================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter(nil), limit(1), offset(nil)
1 - output([?]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
3 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 566(end) **************
*************** Case 567 ***************
SQL: select distinct 1, 1 + @var from t7;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t7 |1 |36 |
===================================
Outputs & filters:
-------------------------------------
0 - output([?], [?]), filter(nil),
access([t7.c1]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 567(end) **************
*************** Case 568 ***************
SQL: Select distinct 1, 1 + (@var:=1) from t7;
======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
--------------------------------------
|0 |HASH DISTINCT| |1 |122 |
|1 | TABLE SCAN |t7 |100 |88 |
======================================
Outputs & filters:
-------------------------------------
0 - output([?], [? + (T_OP_ASSIGN, 'var', ?)]), filter(nil),
distinct([? + (T_OP_ASSIGN, 'var', ?)])
1 - output([? + (T_OP_ASSIGN, 'var', ?)]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 568(end) **************
*************** Case 569 ***************
SQL: select t1.c2 + t2.c1 from t1, t2 where t1.c1 = t2.c2 and t1.c1 and t1.c1 = 1 and t2.c1 = 1;
=====================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE | |1 |53 |
|2 | NESTED-LOOP JOIN CARTESIAN| |1 |53 |
|3 | TABLE GET |t2 |1 |53 |
|4 | TABLE GET |t1 |1 |53 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2 + t2.c1]), filter(nil)
1 - output([t1.c2 + t2.c1]), filter(nil)
2 - output([t1.c2 + t2.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
3 - output([t2.c1]), filter([t2.c2 = ?]),
access([t2.c1], [t2.c2]), partitions(p1),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range[1 ; 1],
range_cond([t2.c1 = ?])
4 - output([t1.c2]), filter([t1.c1]),
access([t1.c1], [t1.c2]), partitions(p1),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range[1 ; 1],
range_cond([t1.c1 = ?])
*************** Case 569(end) **************
*************** Case 570 ***************
SQL: (select 'b') union select cast((select 'a') as char(20));
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |MERGE UNION DISTINCT| |2 |1 |
|1 | EXPRESSION | |1 |1 |
|2 | EXPRESSION | |1 |1 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([?]), filter(nil)
values({?})
2 - output([?]), filter(nil)
values({?})
*************** Case 570(end) **************
*************** Case 571 ***************
SQL: select cast((select 'a' from dual order by 1 limit 100) as char(20)) union (select 'b') union select cast((select 'a' from dual order by 1 limit 100) as char(20));
==============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------
|0 |MERGE UNION DISTINCT | |3 |3 |
|1 | MERGE UNION DISTINCT| |2 |2 |
|2 | SUBPLAN FILTER | |1 |1 |
|3 | EXPRESSION | |1 |1 |
|4 | LIMIT | |1 |1 |
|5 | EXPRESSION | |1 |1 |
|6 | EXPRESSION | |1 |1 |
|7 | SUBPLAN FILTER | |1 |1 |
|8 | EXPRESSION | |1 |1 |
|9 | LIMIT | |1 |1 |
|10| EXPRESSION | |1 |1 |
==============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([UNION([1])]), filter(nil)
2 - output([?]), filter(nil),
exec_params_(nil), onetime_exprs_([cast(subquery(1), CHAR(20))]), init_plan_idxs_(nil)
3 - output([1]), filter(nil)
values({1})
4 - output([?]), filter(nil), limit(100), offset(nil)
5 - output([1]), filter(nil)
values({1})
6 - output([?]), filter(nil)
values({?})
7 - output([?]), filter(nil),
exec_params_(nil), onetime_exprs_([cast(subquery(1), CHAR(20))]), init_plan_idxs_(nil)
8 - output([1]), filter(nil)
values({1})
9 - output([?]), filter(nil), limit(100), offset(nil)
10 - output([1]), filter(nil)
values({1})
*************** Case 571(end) **************
*************** Case 572 ***************
SQL: (select (select b from t12) from t3) union (select c3 from t3);
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |HASH UNION DISTINCT | |400 |875 |
|1 | SUBPLAN FILTER | |200 |267 |
|2 | PX COORDINATOR | |200 |149 |
|3 | EXCHANGE OUT DISTR |:EX10000|200 |140 |
|4 | PX PARTITION ITERATOR| |200 |140 |
|5 | TABLE SCAN |t3 |200 |140 |
|6 | TABLE SCAN |t12 |100 |90 |
|7 | PX COORDINATOR | |200 |191 |
|8 | EXCHANGE OUT DISTR |:EX20000|200 |144 |
|9 | PX PARTITION ITERATOR | |200 |144 |
|10| TABLE SCAN |t3 |200 |144 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([?]), filter(nil),
exec_params_(nil), onetime_exprs_([cast(subquery(1), VARCHAR(32))]), init_plan_idxs_(nil)
2 - output([1]), filter(nil)
3 - output([1]), filter(nil), dop=1
4 - output([1]), filter(nil),
force partition granule, asc.
5 - output([1]), filter(nil),
access([t3.c1]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
6 - output([t12.b]), filter(nil),
access([t12.b]), partitions(p0),
is_index_back=false,
range_key([t12.a]), range(MIN ; MAX)always true
7 - output([t3.c3]), filter(nil)
8 - output([t3.c3]), filter(nil), dop=1
9 - output([t3.c3]), filter(nil),
force partition granule, asc.
10 - output([t3.c3]), filter(nil),
access([t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
*************** Case 572(end) **************
*************** Case 573 ***************
SQL: select distinct c2 from t1 partition(p1);
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
-------------------------------------------------------
|0 |EXCHANGE IN REMOTE | |100 |84044|
|1 | EXCHANGE OUT REMOTE| |100 |84035|
|2 | MERGE DISTINCT | |100 |84035|
|3 | TABLE SCAN |t1(idx_t1_c2)|100000 |61860|
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2]), filter(nil)
1 - output([t1.c2]), filter(nil)
2 - output([t1.c2]), filter(nil),
distinct([t1.c2])
3 - output([t1.c2]), filter(nil),
access([t1.c2]), partitions(p1),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 573(end) **************
*************** Case 574 ***************
SQL: select cast((select 'a') as char(20)) as c1 union (select 'b') order by c1;
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |MERGE UNION DISTINCT| |2 |1 |
|1 | EXPRESSION | |1 |1 |
|2 | EXPRESSION | |1 |1 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([?]), filter(nil)
values({?})
2 - output([?]), filter(nil)
values({?})
*************** Case 574(end) **************
*************** Case 575 ***************
SQL: select (select 'a') as c1;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |EXPRESSION| |1 |1 |
===================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter(nil)
values({?})
*************** Case 575(end) **************
*************** Case 576 ***************
SQL: select avg(c1) as a from t1 union select sum(c1) as b from t1;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |MERGE UNION DISTINCT | |2 |1097|
|1 | SCALAR GROUP BY | |1 |575 |
|2 | PX COORDINATOR | |1 |453 |
|3 | EXCHANGE OUT DISTR |:EX10000|1 |453 |
|4 | MERGE GROUP BY | |1 |453 |
|5 | PX PARTITION ITERATOR| |500 |331 |
|6 | TABLE SCAN |t1 |500 |331 |
|7 | SCALAR GROUP BY | |1 |522 |
|8 | PX COORDINATOR | |1 |426 |
|9 | EXCHANGE OUT DISTR |:EX20000|1 |426 |
|10| MERGE GROUP BY | |1 |426 |
|11| PX PARTITION ITERATOR| |500 |331 |
|12| TABLE SCAN |t1 |500 |331 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([T_FUN_SUM(T_FUN_SUM(t1.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil),
group(nil), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))])
2 - output([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)]), filter(nil)
3 - output([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
4 - output([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)])
5 - output([t1.c1]), filter(nil),
force partition granule, asc.
6 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil),
group(nil), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))])
8 - output([T_FUN_SUM(t1.c1)]), filter(nil)
9 - output([T_FUN_SUM(t1.c1)]), filter(nil), dop=1
10 - output([T_FUN_SUM(t1.c1)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(t1.c1)])
11 - output([t1.c1]), filter(nil),
force partition granule, asc.
12 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 576(end) **************
*************** Case 577 ***************
SQL: select * from t1 group by 1>(select count(*) from t2);
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |HASH GROUP BY | |1 |1184|
|1 | NESTED-LOOP JOIN CARTESIAN | |500 |1019|
|2 | SUBPLAN SCAN |VIEW1 |1 |306 |
|3 | SCALAR GROUP BY | |1 |306 |
|4 | PX COORDINATOR | |1 |249 |
|5 | EXCHANGE OUT DISTR |:EX10000|1 |249 |
|6 | MERGE GROUP BY | |1 |249 |
|7 | PX PARTITION ITERATOR| |300 |192 |
|8 | TABLE SCAN |t2 |300 |192 |
|9 | PX COORDINATOR | |500 |389 |
|10| EXCHANGE OUT DISTR |:EX20000|500 |342 |
|11| PX PARTITION ITERATOR | |500 |342 |
|12| TABLE SCAN |t1 |500 |342 |
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil),
group([1 > VIEW1.count(*)]), agg_func(nil)
1 - output([t1.c1], [t1.c2], [1 > VIEW1.count(*)]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([VIEW1.count(*)]), filter(nil),
access([VIEW1.count(*)])
3 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
4 - output([T_FUN_COUNT(*)]), filter(nil)
5 - output([T_FUN_COUNT(*)]), filter(nil), dop=1
6 - output([T_FUN_COUNT(*)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)])
7 - output([1]), filter(nil),
force partition granule, asc.
8 - output([1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
9 - output([t1.c1], [t1.c2]), filter(nil)
10 - output([t1.c1], [t1.c2]), filter(nil), dop=1
11 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
12 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 577(end) **************
*************** Case 578 ***************
SQL: (select count(*) from t1) UNION (select count(*) from t1);
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |MERGE UNION DISTINCT | |2 |1044|
|1 | SCALAR GROUP BY | |1 |522 |
|2 | PX COORDINATOR | |1 |426 |
|3 | EXCHANGE OUT DISTR |:EX10000|1 |426 |
|4 | MERGE GROUP BY | |1 |426 |
|5 | PX PARTITION ITERATOR| |500 |331 |
|6 | TABLE SCAN |t1 |500 |331 |
|7 | SCALAR GROUP BY | |1 |522 |
|8 | PX COORDINATOR | |1 |426 |
|9 | EXCHANGE OUT DISTR |:EX20000|1 |426 |
|10| MERGE GROUP BY | |1 |426 |
|11| PX PARTITION ITERATOR| |500 |331 |
|12| TABLE SCAN |t1 |500 |331 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
2 - output([T_FUN_COUNT(*)]), filter(nil)
3 - output([T_FUN_COUNT(*)]), filter(nil), dop=1
4 - output([T_FUN_COUNT(*)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)])
5 - output([1]), filter(nil),
force partition granule, asc.
6 - output([1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
8 - output([T_FUN_COUNT(*)]), filter(nil)
9 - output([T_FUN_COUNT(*)]), filter(nil), dop=1
10 - output([T_FUN_COUNT(*)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)])
11 - output([1]), filter(nil),
force partition granule, asc.
12 - output([1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 578(end) **************
*************** Case 579 ***************
SQL: select min(1) from t1;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |37 |
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|2 | LIMIT | |1 |37 |
|3 | PX COORDINATOR | |1 |37 |
|4 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|5 | LIMIT | |1 |37 |
|6 | PX PARTITION ITERATOR| |1 |36 |
|7 | TABLE SCAN |t1 |1 |36 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_MIN(VIEW1.subquery_col_alias)]), filter(nil),
group(nil), agg_func([T_FUN_MIN(VIEW1.subquery_col_alias)])
1 - output([VIEW1.subquery_col_alias]), filter(nil),
access([VIEW1.subquery_col_alias])
2 - output([?]), filter(nil), limit(1), offset(nil)
3 - output([1]), filter(nil)
4 - output([1]), filter(nil), dop=1
5 - output([1]), filter(nil), limit(1), offset(nil)
6 - output([1]), filter(nil),
force partition granule, asc.
7 - output([1]), 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
*************** Case 579(end) **************
*************** Case 580 ***************
SQL: select max(1) from t1;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |37 |
|1 | SUBPLAN SCAN |VIEW1 |1 |37 |
|2 | LIMIT | |1 |37 |
|3 | PX COORDINATOR | |1 |37 |
|4 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|5 | LIMIT | |1 |37 |
|6 | PX PARTITION ITERATOR| |1 |36 |
|7 | TABLE SCAN |t1 |1 |36 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_MAX(VIEW1.subquery_col_alias)]), filter(nil),
group(nil), agg_func([T_FUN_MAX(VIEW1.subquery_col_alias)])
1 - output([VIEW1.subquery_col_alias]), filter(nil),
access([VIEW1.subquery_col_alias])
2 - output([?]), filter(nil), limit(1), offset(nil)
3 - output([1]), filter(nil)
4 - output([1]), filter(nil), dop=1
5 - output([1]), filter(nil), limit(1), offset(nil)
6 - output([1]), filter(nil),
force partition granule, asc.
7 - output([1]), 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
*************** Case 580(end) **************
*************** Case 581 ***************
SQL: select sum(1) from t1;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |522 |
|1 | PX COORDINATOR | |1 |426 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |426 |
|3 | MERGE GROUP BY | |1 |426 |
|4 | PX PARTITION ITERATOR| |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(?))]), filter(nil),
group(nil), agg_func([T_FUN_SUM(T_FUN_SUM(?))])
1 - output([T_FUN_SUM(?)]), filter(nil)
2 - output([T_FUN_SUM(?)]), filter(nil), dop=1
3 - output([T_FUN_SUM(?)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(?)])
4 - output([1]), filter(nil),
force partition granule, asc.
5 - output([1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 581(end) **************
*************** Case 582 ***************
SQL: select avg(1) from t1;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |575 |
|1 | PX COORDINATOR | |1 |453 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |453 |
|3 | MERGE GROUP BY | |1 |453 |
|4 | PX PARTITION ITERATOR| |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_SUM(T_FUN_SUM(?)) / T_FUN_COUNT_SUM(T_FUN_COUNT(?))]), filter(nil),
group(nil), agg_func([T_FUN_SUM(T_FUN_SUM(?))], [T_FUN_COUNT_SUM(T_FUN_COUNT(?))])
1 - output([T_FUN_SUM(?)], [T_FUN_COUNT(?)]), filter(nil)
2 - output([T_FUN_SUM(?)], [T_FUN_COUNT(?)]), filter(nil), dop=1
3 - output([T_FUN_SUM(?)], [T_FUN_COUNT(?)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(?)], [T_FUN_COUNT(?)])
4 - output([1]), filter(nil),
force partition granule, asc.
5 - output([1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 582(end) **************
*************** Case 583 ***************
SQL: select t1.c3, t2.c3 from (select c3, c2 from t3 order by c3) as t1, t2 where t1.c2 = t2.c2;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |HASH JOIN | |551 |1323|
|1 | PX COORDINATOR | |200 |205 |
|2 | EXCHANGE OUT DISTR |:EX10000|200 |149 |
|3 | PX PARTITION ITERATOR| |200 |149 |
|4 | TABLE SCAN |t3 |200 |149 |
|5 | PX COORDINATOR | |300 |290 |
|6 | EXCHANGE OUT DISTR |:EX20000|300 |205 |
|7 | PX PARTITION ITERATOR| |300 |205 |
|8 | TABLE SCAN |t2 |300 |205 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t3.c3], [t2.c3]), filter(nil),
equal_conds([t3.c2 = t2.c2]), other_conds(nil)
1 - output([t3.c3], [t3.c2]), filter(nil)
2 - output([t3.c3], [t3.c2]), filter(nil), dop=1
3 - output([t3.c3], [t3.c2]), filter(nil),
force partition granule, asc.
4 - output([t3.c3], [t3.c2]), filter(nil),
access([t3.c3], [t3.c2]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
5 - output([t2.c2], [t2.c3]), filter(nil)
6 - output([t2.c2], [t2.c3]), filter(nil), dop=1
7 - output([t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
8 - output([t2.c2], [t2.c3]), filter(nil),
access([t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 583(end) **************
*************** Case 584 ***************
SQL: (select c2, c1 from t19 order by c2) union (select c2, c1 from t19 order by c2);
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |MERGE UNION DISTINCT| |200 |265 |
|1 | TABLE SCAN |t19 |100 |95 |
|2 | TABLE SCAN |t19 |100 |95 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])]), filter(nil)
1 - output([t19.c2], [t19.c1]), filter(nil),
access([t19.c2], [t19.c1]), partitions(p0),
is_index_back=false,
range_key([t19.c1], [t19.c2], [t19.c3], [t19.c4]), range(MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX)always true
2 - output([t19.c2], [t19.c1]), filter(nil),
access([t19.c2], [t19.c1]), partitions(p0),
is_index_back=false,
range_key([t19.c1], [t19.c2], [t19.c3], [t19.c4]), range(MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX)always true
*************** Case 584(end) **************
*************** Case 585 ***************
SQL: select a1, a2 from set_t1 group by a1 asc, a2 desc union select b1, b2 from set_t2 group by b1 asc, b2 desc;
===============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------
|0 |MERGE UNION DISTINCT| |200 |577 |
|1 | MERGE GROUP BY | |100 |251 |
|2 | SORT | |100 |220 |
|3 | TABLE SCAN |set_t1|100 |92 |
|4 | MERGE GROUP BY | |100 |251 |
|5 | SORT | |100 |220 |
|6 | TABLE SCAN |set_t2|100 |92 |
===============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])]), filter(nil)
1 - output([set_t1.a1], [set_t1.a2]), filter(nil),
group([set_t1.a1], [set_t1.a2]), agg_func(nil)
2 - output([set_t1.a1], [set_t1.a2]), filter(nil), sort_keys([set_t1.a1, ASC], [set_t1.a2, ASC])
3 - output([set_t1.a1], [set_t1.a2]), filter(nil),
access([set_t1.a1], [set_t1.a2]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
4 - output([set_t2.b1], [set_t2.b2]), filter(nil),
group([set_t2.b1], [set_t2.b2]), agg_func(nil)
5 - output([set_t2.b1], [set_t2.b2]), filter(nil), sort_keys([set_t2.b1, ASC], [set_t2.b2, ASC])
6 - output([set_t2.b1], [set_t2.b2]), filter(nil),
access([set_t2.b1], [set_t2.b2]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 585(end) **************
*************** Case 586 ***************
SQL: select a1, a2 from set_t1 group by a1 asc, a2 desc intersect select b1, b2 from set_t2 group by b1 asc, b2 desc;
===================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------
|0 |MERGE INTERSECT DISTINCT| |100 |563 |
|1 | MERGE GROUP BY | |100 |251 |
|2 | SORT | |100 |220 |
|3 | TABLE SCAN |set_t1|100 |92 |
|4 | MERGE GROUP BY | |100 |251 |
|5 | SORT | |100 |220 |
|6 | TABLE SCAN |set_t2|100 |92 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([INTERSECT([1])], [INTERSECT([2])]), filter(nil)
1 - output([set_t1.a1], [set_t1.a2]), filter(nil),
group([set_t1.a1], [set_t1.a2]), agg_func(nil)
2 - output([set_t1.a1], [set_t1.a2]), filter(nil), sort_keys([set_t1.a1, ASC], [set_t1.a2, ASC])
3 - output([set_t1.a1], [set_t1.a2]), filter(nil),
access([set_t1.a1], [set_t1.a2]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
4 - output([set_t2.b1], [set_t2.b2]), filter(nil),
group([set_t2.b1], [set_t2.b2]), agg_func(nil)
5 - output([set_t2.b1], [set_t2.b2]), filter(nil), sort_keys([set_t2.b1, ASC], [set_t2.b2, ASC])
6 - output([set_t2.b1], [set_t2.b2]), filter(nil),
access([set_t2.b1], [set_t2.b2]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 586(end) **************
*************** Case 587 ***************
SQL: select a1, a2 from set_t1 group by a1 asc, a2 desc except select b1, b2 from set_t2 group by b1 asc, b2 desc;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |MERGE EXCEPT DISTINCT| |100 |563 |
|1 | MERGE GROUP BY | |100 |251 |
|2 | SORT | |100 |220 |
|3 | TABLE SCAN |set_t1|100 |92 |
|4 | MERGE GROUP BY | |100 |251 |
|5 | SORT | |100 |220 |
|6 | TABLE SCAN |set_t2|100 |92 |
================================================
Outputs & filters:
-------------------------------------
0 - output([EXCEPT([1])], [EXCEPT([2])]), filter(nil)
1 - output([set_t1.a1], [set_t1.a2]), filter(nil),
group([set_t1.a1], [set_t1.a2]), agg_func(nil)
2 - output([set_t1.a1], [set_t1.a2]), filter(nil), sort_keys([set_t1.a1, ASC], [set_t1.a2, ASC])
3 - output([set_t1.a1], [set_t1.a2]), filter(nil),
access([set_t1.a1], [set_t1.a2]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
4 - output([set_t2.b1], [set_t2.b2]), filter(nil),
group([set_t2.b1], [set_t2.b2]), agg_func(nil)
5 - output([set_t2.b1], [set_t2.b2]), filter(nil), sort_keys([set_t2.b1, ASC], [set_t2.b2, ASC])
6 - output([set_t2.b1], [set_t2.b2]), filter(nil),
access([set_t2.b1], [set_t2.b2]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 587(end) **************
*************** Case 588 ***************
SQL: (select * from t1 where c1 = 2) union all (select * from t1 where c1 = 2);
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |2 |105 |
|1 | EXCHANGE OUT REMOTE| |2 |105 |
|2 | UNION ALL | |2 |105 |
|3 | TABLE GET |t1 |1 |52 |
|4 | TABLE GET |t1 |1 |52 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])]), filter(nil)
1 - output([UNION([1])], [UNION([2])]), filter(nil)
2 - output([UNION([1])], [UNION([2])]), filter(nil)
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p2),
is_index_back=false,
range_key([t1.c1]), range[2 ; 2],
range_cond([t1.c1 = ?])
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p2),
is_index_back=false,
range_key([t1.c1]), range[2 ; 2],
range_cond([t1.c1 = ?])
*************** Case 588(end) **************
*************** Case 589 ***************
SQL: (select 1) union (select 1);
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |MERGE UNION DISTINCT| |2 |1 |
|1 | EXPRESSION | |1 |1 |
|2 | EXPRESSION | |1 |1 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([?]), filter(nil)
values({?})
2 - output([?]), filter(nil)
values({?})
*************** Case 589(end) **************
*************** Case 590 ***************
SQL: (select (select 1)) union (select (select 1));
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |MERGE UNION DISTINCT| |2 |1 |
|1 | EXPRESSION | |1 |1 |
|2 | EXPRESSION | |1 |1 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([?]), filter(nil)
values({?})
2 - output([?]), filter(nil)
values({?})
*************** Case 590(end) **************
*************** Case 591 ***************
SQL: (select (select c1 from t1) from t2 order by ((select c1 from t1))) union (select 1);
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |MERGE UNION DISTINCT | |301 |700 |
|1 | SUBPLAN FILTER | |300 |601 |
|2 | PX COORDINATOR | |300 |206 |
|3 | EXCHANGE OUT DISTR |:EX10000|300 |192 |
|4 | PX PARTITION ITERATOR| |300 |192 |
|5 | TABLE SCAN |t2 |300 |192 |
|6 | PX COORDINATOR | |500 |354 |
|7 | EXCHANGE OUT DISTR |:EX20000|500 |331 |
|8 | PX PARTITION ITERATOR| |500 |331 |
|9 | TABLE SCAN |t1 |500 |331 |
|10| EXPRESSION | |1 |1 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([?]), filter(nil),
exec_params_(nil), onetime_exprs_([cast(subquery(1), BIGINT(20, 0))]), init_plan_idxs_(nil)
2 - output([1]), filter(nil)
3 - output([1]), filter(nil), dop=1
4 - output([1]), filter(nil),
force partition granule, asc.
5 - output([1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
6 - output([t1.c1]), filter(nil)
7 - output([t1.c1]), filter(nil), dop=1
8 - output([t1.c1]), filter(nil),
force partition granule, asc.
9 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
10 - output([?]), filter(nil)
values({?})
*************** Case 591(end) **************
*************** Case 592 ***************
SQL: (select (select c1 from t1) from t2) union (select 1) order by (select c1 from t1);
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |SUBPLAN FILTER | |301 |1096|
|1 | MERGE UNION DISTINCT | |301 |700 |
|2 | SUBPLAN FILTER | |300 |601 |
|3 | PX COORDINATOR | |300 |206 |
|4 | EXCHANGE OUT DISTR |:EX10000|300 |192 |
|5 | PX PARTITION ITERATOR| |300 |192 |
|6 | TABLE SCAN |t2 |300 |192 |
|7 | PX COORDINATOR | |500 |354 |
|8 | EXCHANGE OUT DISTR |:EX20000|500 |331 |
|9 | PX PARTITION ITERATOR| |500 |331 |
|10| TABLE SCAN |t1 |500 |331 |
|11| EXPRESSION | |1 |1 |
|12| PX COORDINATOR | |500 |354 |
|13| EXCHANGE OUT DISTR |:EX30000|500 |331 |
|14| PX PARTITION ITERATOR | |500 |331 |
|15| TABLE SCAN |t1 |500 |331 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([UNION([1])]), filter(nil)
2 - output([?]), filter(nil),
exec_params_(nil), onetime_exprs_([cast(subquery(1), BIGINT(20, 0))]), init_plan_idxs_(nil)
3 - output([1]), filter(nil)
4 - output([1]), filter(nil), dop=1
5 - output([1]), filter(nil),
force partition granule, asc.
6 - output([1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
7 - output([t1.c1]), filter(nil)
8 - output([t1.c1]), filter(nil), dop=1
9 - output([t1.c1]), filter(nil),
force partition granule, asc.
10 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
11 - output([?]), filter(nil)
values({?})
12 - output([t1.c1]), filter(nil)
13 - output([t1.c1]), filter(nil), dop=1
14 - output([t1.c1]), filter(nil),
force partition granule, asc.
15 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 592(end) **************
*************** Case 593 ***************
SQL: (select c1 from t1) union (select c2 from t1) union (select c2 from t2);
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------
|0 |MERGE UNION DISTINCT | |1300 |3515|
|1 | MERGE UNION DISTINCT | |1000 |2440|
|2 | PX COORDINATOR MERGE SORT | |500 |990 |
|3 | EXCHANGE OUT DISTR |:EX10000 |500 |966 |
|4 | SORT | |500 |966 |
|5 | PX PARTITION ITERATOR | |500 |331 |
|6 | TABLE SCAN |t1 |500 |331 |
|7 | PX COORDINATOR MERGE SORT | |500 |1122|
|8 | EXCHANGE OUT DISTR |:EX20000 |500 |1074|
|9 | SORT | |500 |1074|
|10| PX PARTITION ITERATOR | |500 |342 |
|11| TABLE SCAN |t1(idx_t1_c2)|500 |342 |
|12| PX COORDINATOR MERGE SORT | |300 |647 |
|13| EXCHANGE OUT DISTR |:EX30000 |300 |619 |
|14| SORT | |300 |619 |
|15| PX PARTITION ITERATOR | |300 |198 |
|16| TABLE SCAN |t2 |300 |198 |
==============================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([UNION([1])]), filter(nil)
2 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
3 - output([t1.c1]), filter(nil), dop=1
4 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), 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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
8 - output([t1.c2]), filter(nil), dop=1
9 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
10 - output([t1.c2]), filter(nil),
force partition granule, asc.
11 - 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
12 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
13 - output([t2.c2]), filter(nil), dop=1
14 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
15 - output([t2.c2]), filter(nil),
force partition granule, asc.
16 - 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
*************** Case 593(end) **************
*************** Case 594 ***************
SQL: (select c1 from t1) union (select 1);
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |HASH UNION DISTINCT | |501 |878 |
|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 | EXPRESSION | |1 |1 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([cast(t1.c1, BIGINT(20, 0))]), filter(nil)
2 - output([cast(t1.c1, BIGINT(20, 0))]), filter(nil), dop=1
3 - output([cast(t1.c1, BIGINT(20, 0))]), filter(nil),
force partition granule, asc.
4 - output([cast(t1.c1, BIGINT(20, 0))]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([?]), filter(nil)
values({?})
*************** Case 594(end) **************
*************** Case 595 ***************
SQL: (select a from t12) union (select 1);
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |MERGE UNION DISTINCT| |101 |121 |
|1 | TABLE SCAN |t12 |100 |88 |
|2 | EXPRESSION | |1 |1 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([t12.a]), filter(nil),
access([t12.a]), partitions(p0),
is_index_back=false,
range_key([t12.a]), range(MIN ; MAX)always true
2 - output([?]), filter(nil)
values({?})
*************** Case 595(end) **************
*************** Case 596 ***************
SQL: (select pk1 from set_t1) union distinct (select pk2 from set_t2);
===============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------
|0 |MERGE UNION DISTINCT| |200 |241 |
|1 | TABLE SCAN |set_t1|100 |88 |
|2 | TABLE SCAN |set_t2|100 |88 |
===============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([set_t1.pk1]), filter(nil),
access([set_t1.pk1]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
2 - output([set_t2.pk2]), filter(nil),
access([set_t2.pk2]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 596(end) **************
*************** Case 597 ***************
SQL: (select pk1 from set_t1) union all (select pk2 from set_t2);
======================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------
|0 |UNION ALL | |200 |241 |
|1 | TABLE SCAN|set_t1|100 |88 |
|2 | TABLE SCAN|set_t2|100 |88 |
======================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([set_t1.pk1]), filter(nil),
access([set_t1.pk1]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
2 - output([set_t2.pk2]), filter(nil),
access([set_t2.pk2]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 597(end) **************
*************** Case 598 ***************
SQL: (select pk1 from set_t1) except (select pk2 from set_t2);
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |MERGE EXCEPT DISTINCT| |100 |228 |
|1 | TABLE SCAN |set_t1|100 |88 |
|2 | TABLE SCAN |set_t2|100 |88 |
================================================
Outputs & filters:
-------------------------------------
0 - output([EXCEPT([1])]), filter(nil)
1 - output([set_t1.pk1]), filter(nil),
access([set_t1.pk1]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
2 - output([set_t2.pk2]), filter(nil),
access([set_t2.pk2]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 598(end) **************
*************** Case 599 ***************
SQL: (select pk1 from set_t1) intersect (select pk2 from set_t2);
===================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------
|0 |MERGE INTERSECT DISTINCT| |100 |228 |
|1 | TABLE SCAN |set_t1|100 |88 |
|2 | TABLE SCAN |set_t2|100 |88 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([INTERSECT([1])]), filter(nil)
1 - output([set_t1.pk1]), filter(nil),
access([set_t1.pk1]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
2 - output([set_t2.pk2]), filter(nil),
access([set_t2.pk2]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 599(end) **************
*************** Case 600 ***************
SQL: (select a2, a1 from set_t1) union distinct (select b2, b1 from set_t2);
==============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------
|0 |HASH UNION DISTINCT| |200 |405 |
|1 | TABLE SCAN |set_t1|100 |92 |
|2 | TABLE SCAN |set_t2|100 |92 |
==============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])]), filter(nil)
1 - output([set_t1.a2], [set_t1.a1]), filter(nil),
access([set_t1.a2], [set_t1.a1]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
2 - output([set_t2.b2], [set_t2.b1]), filter(nil),
access([set_t2.b2], [set_t2.b1]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 600(end) **************
*************** Case 601 ***************
SQL: (select a2, a1 from set_t1) union all (select b2, b1 from set_t2);
======================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------
|0 |UNION ALL | |200 |261 |
|1 | TABLE SCAN|set_t1|100 |92 |
|2 | TABLE SCAN|set_t2|100 |92 |
======================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])]), filter(nil)
1 - output([set_t1.a2], [set_t1.a1]), filter(nil),
access([set_t1.a2], [set_t1.a1]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
2 - output([set_t2.b2], [set_t2.b1]), filter(nil),
access([set_t2.b2], [set_t2.b1]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 601(end) **************
*************** Case 602 ***************
SQL: (select a2, a1 from set_t1) except (select b2, b1 from set_t2);
===============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------
|0 |HASH EXCEPT DISTINCT| |100 |392 |
|1 | TABLE SCAN |set_t1|100 |92 |
|2 | TABLE SCAN |set_t2|100 |92 |
===============================================
Outputs & filters:
-------------------------------------
0 - output([EXCEPT([1])], [EXCEPT([2])]), filter(nil)
1 - output([set_t1.a2], [set_t1.a1]), filter(nil),
access([set_t1.a2], [set_t1.a1]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
2 - output([set_t2.b2], [set_t2.b1]), filter(nil),
access([set_t2.b2], [set_t2.b1]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 602(end) **************
*************** Case 603 ***************
SQL: (select a2, a1 from set_t1) intersect (select b2, b1 from set_t2);
==================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------
|0 |HASH INTERSECT DISTINCT| |100 |392 |
|1 | TABLE SCAN |set_t1|100 |92 |
|2 | TABLE SCAN |set_t2|100 |92 |
==================================================
Outputs & filters:
-------------------------------------
0 - output([INTERSECT([1])], [INTERSECT([2])]), filter(nil)
1 - output([set_t1.a2], [set_t1.a1]), filter(nil),
access([set_t1.a2], [set_t1.a1]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
2 - output([set_t2.b2], [set_t2.b1]), filter(nil),
access([set_t2.b2], [set_t2.b1]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 603(end) **************
*************** Case 604 ***************
SQL: (select a2, a1 from set_t1) union distinct (select b2, b1 from set_t2) order by a2 desc;
===============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------
|0 |SORT | |200 |676 |
|1 | HASH UNION DISTINCT| |200 |405 |
|2 | TABLE SCAN |set_t1|100 |92 |
|3 | TABLE SCAN |set_t2|100 |92 |
===============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])]), filter(nil), sort_keys([UNION([1]), DESC])
1 - output([UNION([1])], [UNION([2])]), filter(nil)
2 - output([set_t1.a2], [set_t1.a1]), filter(nil),
access([set_t1.a2], [set_t1.a1]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
3 - output([set_t2.b2], [set_t2.b1]), filter(nil),
access([set_t2.b2], [set_t2.b1]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 604(end) **************
*************** Case 605 ***************
SQL: (select a2, a1 from set_t1) union all (select b2, b1 from set_t2) order by a2 desc;
=======================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------
|0 |SORT | |200 |532 |
|1 | UNION ALL | |200 |261 |
|2 | TABLE SCAN|set_t1|100 |92 |
|3 | TABLE SCAN|set_t2|100 |92 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])]), filter(nil), sort_keys([UNION([1]), DESC])
1 - output([UNION([1])], [UNION([2])]), filter(nil)
2 - output([set_t1.a2], [set_t1.a1]), filter(nil),
access([set_t1.a2], [set_t1.a1]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
3 - output([set_t2.b2], [set_t2.b1]), filter(nil),
access([set_t2.b2], [set_t2.b1]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 605(end) **************
*************** Case 606 ***************
SQL: (select a2, a1 from set_t1) except (select b2, b1 from set_t2) order by a2 desc;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |SORT | |100 |519 |
|1 | HASH EXCEPT DISTINCT| |100 |392 |
|2 | TABLE SCAN |set_t1|100 |92 |
|3 | TABLE SCAN |set_t2|100 |92 |
================================================
Outputs & filters:
-------------------------------------
0 - output([EXCEPT([1])], [EXCEPT([2])]), filter(nil), sort_keys([EXCEPT([1]), DESC])
1 - output([EXCEPT([1])], [EXCEPT([2])]), filter(nil)
2 - output([set_t1.a2], [set_t1.a1]), filter(nil),
access([set_t1.a2], [set_t1.a1]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
3 - output([set_t2.b2], [set_t2.b1]), filter(nil),
access([set_t2.b2], [set_t2.b1]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 606(end) **************
*************** Case 607 ***************
SQL: (select a2, a1 from set_t1) intersect (select b2, b1 from set_t2) order by a2 desc;
===================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------
|0 |SORT | |100 |519 |
|1 | HASH INTERSECT DISTINCT| |100 |392 |
|2 | TABLE SCAN |set_t1|100 |92 |
|3 | TABLE SCAN |set_t2|100 |92 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([INTERSECT([1])], [INTERSECT([2])]), filter(nil), sort_keys([INTERSECT([1]), DESC])
1 - output([INTERSECT([1])], [INTERSECT([2])]), filter(nil)
2 - output([set_t1.a2], [set_t1.a1]), filter(nil),
access([set_t1.a2], [set_t1.a1]), partitions(p0),
is_index_back=false,
range_key([set_t1.pk1]), range(MIN ; MAX)always true
3 - output([set_t2.b2], [set_t2.b1]), filter(nil),
access([set_t2.b2], [set_t2.b1]), partitions(p0),
is_index_back=false,
range_key([set_t2.pk2]), range(MIN ; MAX)always true
*************** Case 607(end) **************
*************** Case 608 ***************
SQL: (select c1 from t15) union all (select c1 from t14) union select 7;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |HASH UNION DISTINCT | |901 |1925|
|1 | UNION ALL | |900 |984 |
|2 | PX COORDINATOR | |400 |289 |
|3 | EXCHANGE OUT DISTR |:EX10000|400 |270 |
|4 | PX PARTITION ITERATOR| |400 |270 |
|5 | TABLE SCAN |t15 |400 |270 |
|6 | PX COORDINATOR | |500 |400 |
|7 | EXCHANGE OUT DISTR |:EX20000|500 |353 |
|8 | PX PARTITION ITERATOR| |500 |353 |
|9 | TABLE SCAN |t14 |500 |353 |
|10| EXPRESSION | |1 |1 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([cast(UNION([1]), BIGINT(20, 0))]), filter(nil)
2 - output([t15.c1]), filter(nil)
3 - output([t15.c1]), filter(nil), dop=1
4 - output([t15.c1]), filter(nil),
force partition granule, asc.
5 - output([t15.c1]), filter(nil),
access([t15.c1]), partitions(p[0-3]),
is_index_back=false,
range_key([t15.__pk_increment], [t15.__pk_cluster_id], [t15.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
6 - output([t14.c1]), filter(nil)
7 - output([t14.c1]), filter(nil), dop=1
8 - output([t14.c1]), filter(nil),
force partition granule, asc.
9 - output([t14.c1]), filter(nil),
access([t14.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t14.c1], [t14.c2], [t14.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
10 - output([?]), filter(nil)
values({?})
*************** Case 608(end) **************
*************** Case 609 ***************
SQL: select 1 from t1,t2 order by t1.c2+t2.c2;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
----------------------------------------------------------
|0 |SORT | |150000 |489777|
|1 | NESTED-LOOP JOIN CARTESIAN| |150000 |108438|
|2 | PX COORDINATOR | |500 |389 |
|3 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
|6 | MATERIAL | |300 |337 |
|7 | PX COORDINATOR | |300 |227 |
|8 | EXCHANGE OUT DISTR |:EX20000|300 |198 |
|9 | PX PARTITION ITERATOR | |300 |198 |
|10| TABLE SCAN |t2 |300 |198 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter(nil), sort_keys([t1.c2 + t2.c2, ASC])
1 - output([t1.c2 + t2.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t1.c2]), filter(nil)
3 - output([t1.c2]), filter(nil), dop=1
4 - output([t1.c2]), filter(nil),
force partition granule, asc.
5 - output([t1.c2]), filter(nil),
access([t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c2]), filter(nil)
7 - output([t2.c2]), filter(nil)
8 - output([t2.c2]), filter(nil), dop=1
9 - output([t2.c2]), filter(nil),
force partition granule, asc.
10 - 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
*************** Case 609(end) **************
*************** Case 610 ***************
SQL: select 'a', c1 from t1 union select 'b', c1 from t7;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |600 |1316|
|1 | EXCHANGE OUT DISTR |:EX10001|600 |1288|
|2 | MERGE UNION DISTINCT | |600 |1288|
|3 | SORT | |500 |966 |
|4 | PX PARTITION ITERATOR | |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
|6 | EXCHANGE IN DISTR | |100 |93 |
|7 | EXCHANGE OUT DISTR (PKEY)|:EX10000|100 |88 |
|8 | TABLE SCAN |t7 |100 |88 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])]), filter(nil)
1 - output([UNION([1])], [UNION([2])]), filter(nil), dop=1
2 - output([UNION([1])], [UNION([2])]), filter(nil)
3 - output([?], [t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([?], [t7.c1]), filter(nil)
7 - (#keys=1, [t7.c1]), output([t7.c1], [?]), filter(nil), is_single, dop=1
8 - output([t7.c1], [?]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 610(end) **************
*************** Case 611 ***************
SQL: SELECT b FROM t13 WHERE b=1 UNION SELECT b FROM t13 WHERE b=1;
============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
--------------------------------------------
|0 |HASH UNION DISTINCT| |2 |215 |
|1 | TABLE SCAN |t13 |1 |107 |
|2 | TABLE SCAN |t13 |1 |107 |
============================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])]), filter(nil)
1 - output([t13.b]), filter([t13.b = ?]),
access([t13.b]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t13.a]), range(MIN ; MAX)always true
2 - output([t13.b]), filter([t13.b = ?]),
access([t13.b]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t13.a]), range(MIN ; MAX)always true
*************** Case 611(end) **************
*************** Case 612 ***************
SQL: select * from t7, t8 where (t7.c1, t7.c2) = (t8.c1, t8.c2);
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |MERGE JOIN | |100 |275 |
|1 | TABLE SCAN|t7 |100 |90 |
|2 | TABLE SCAN|t8 |100 |90 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
equal_conds([t7.c1 = t8.c1], [t7.c2 = t8.c2]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 612(end) **************
*************** Case 613 ***************
SQL: select * from t7 inner join t8 on (t7.c1, t7.c2) = (t8.c1, t8.c2);
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |MERGE JOIN | |100 |275 |
|1 | TABLE SCAN|t7 |100 |90 |
|2 | TABLE SCAN|t8 |100 |90 |
====================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
equal_conds([t7.c1 = t8.c1], [t7.c2 = t8.c2]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 613(end) **************
*************** Case 614 ***************
SQL: select * from t7, t8 where (t7.c1, t7.c2) > (t8.c1, t8.c2);
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |NESTED-LOOP JOIN| |3334 |4839|
|1 | TABLE SCAN |t7 |100 |90 |
|2 | MATERIAL | |100 |127 |
|3 | TABLE SCAN |t8 |100 |90 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds([(t7.c1, t7.c2) > (t8.c1, t8.c2)]), nl_params_(nil), batch_join=false
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1], [t8.c2]), filter(nil)
3 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 614(end) **************
*************** Case 615 ***************
SQL: select * from t7 inner join t8 on (t7.c1, t7.c2) <= (t8.c1, t8.c2);
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |NESTED-LOOP JOIN| |3334 |4839|
|1 | TABLE SCAN |t7 |100 |90 |
|2 | MATERIAL | |100 |127 |
|3 | TABLE SCAN |t8 |100 |90 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds([(t7.c1, t7.c2) <= (t8.c1, t8.c2)]), nl_params_(nil), batch_join=false
1 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1], [t8.c2]), filter(nil)
3 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 615(end) **************
*************** Case 616 ***************
SQL: select distinct c1+@var from t1;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |500 |900 |
|1 | EXCHANGE OUT DISTR |:EX10001|500 |876 |
|2 | HASH DISTINCT | |500 |876 |
|3 | EXCHANGE IN DISTR | |500 |354 |
|4 | EXCHANGE OUT DISTR (HASH)|:EX10000|500 |331 |
|5 | PX PARTITION ITERATOR | |500 |331 |
|6 | TABLE SCAN |t1 |500 |331 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1 + ?]), filter(nil)
1 - output([t1.c1 + ?]), filter(nil), dop=1
2 - output([t1.c1 + ?]), filter(nil),
distinct([t1.c1 + ?])
3 - output([t1.c1 + ?]), filter(nil)
4 - (#keys=1, [t1.c1 + ?]), output([t1.c1 + ?]), filter(nil), dop=1
5 - output([t1.c1 + ?]), filter(nil),
force partition granule, asc.
6 - output([t1.c1 + ?]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 616(end) **************
*************** Case 617 ***************
SQL: select distinct c1+(@a:=c2) from t1;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |500 |958 |
|1 | EXCHANGE OUT DISTR |:EX10001|500 |911 |
|2 | HASH DISTINCT | |500 |911 |
|3 | EXCHANGE IN DISTR | |500 |389 |
|4 | EXCHANGE OUT DISTR (HASH)|:EX10000|500 |342 |
|5 | PX PARTITION ITERATOR | |500 |342 |
|6 | TABLE SCAN |t1 |500 |342 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil)
1 - output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil), dop=1
2 - output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil),
distinct([t1.c1 + (T_OP_ASSIGN, 'a', t1.c2)])
3 - output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil)
4 - (#keys=1, [t1.c1 + (T_OP_ASSIGN, 'a', t1.c2)]), output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil), dop=1
5 - output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil),
force partition granule, asc.
6 - output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 617(end) **************
*************** Case 618 ***************
SQL: select distinct c1+(@a:=c1) from t1;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |500 |900 |
|1 | EXCHANGE OUT DISTR |:EX10001|500 |876 |
|2 | HASH DISTINCT | |500 |876 |
|3 | EXCHANGE IN DISTR | |500 |354 |
|4 | EXCHANGE OUT DISTR (HASH)|:EX10000|500 |331 |
|5 | PX PARTITION ITERATOR | |500 |331 |
|6 | TABLE SCAN |t1 |500 |331 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c1)]), filter(nil)
1 - output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c1)]), filter(nil), dop=1
2 - output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c1)]), filter(nil),
distinct([t1.c1 + (T_OP_ASSIGN, 'a', t1.c1)])
3 - output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c1)]), filter(nil)
4 - (#keys=1, [t1.c1 + (T_OP_ASSIGN, 'a', t1.c1)]), output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c1)]), filter(nil), dop=1
5 - output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c1)]), filter(nil),
force partition granule, asc.
6 - output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c1)]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 618(end) **************
*************** Case 619 ***************
SQL: select distinct c2+(@a:=c2) from t1;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |100 |832 |
|1 | EXCHANGE OUT DISTR |:EX10001|100 |823 |
|2 | HASH DISTINCT | |100 |823 |
|3 | EXCHANGE IN DISTR | |100 |587 |
|4 | EXCHANGE OUT DISTR (HASH)|:EX10000|100 |577 |
|5 | HASH DISTINCT | |100 |577 |
|6 | PX PARTITION ITERATOR | |500 |342 |
|7 | TABLE SCAN |t1 |500 |342 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil)
1 - output([t1.c2 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil), dop=1
2 - output([t1.c2 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil),
distinct([t1.c2 + (T_OP_ASSIGN, 'a', t1.c2)])
3 - output([t1.c2 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil)
4 - (#keys=1, [t1.c2 + (T_OP_ASSIGN, 'a', t1.c2)]), output([t1.c2 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil), dop=1
5 - output([t1.c2 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil),
distinct([t1.c2 + (T_OP_ASSIGN, 'a', t1.c2)])
6 - output([t1.c2 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil),
force partition granule, asc.
7 - output([t1.c2 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil),
access([t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 619(end) **************
*************** Case 620 ***************
SQL: select /*+use_merge(tt1 tt2)*/* from tt1,tt2 where tt1.c1=tt2.c1;
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |HASH JOIN | |100 |527 |
|1 | TABLE SCAN|tt1 |100 |90 |
|2 | TABLE SCAN|tt2 |100 |90 |
====================================
Outputs & filters:
-------------------------------------
0 - output([tt1.c1], [tt1.c2], [tt2.c1], [tt2.c2]), filter(nil),
equal_conds([tt1.c1 = tt2.c1]), other_conds(nil)
1 - output([tt1.c1], [tt1.c2]), filter(nil),
access([tt1.c1], [tt1.c2]), partitions(p0),
is_index_back=false,
range_key([tt1.c1]), range(MIN ; MAX)always true
2 - output([tt2.c1], [tt2.c2]), filter(nil),
access([tt2.c1], [tt2.c2]), partitions(p0),
is_index_back=false,
range_key([tt2.c1]), range(MIN ; MAX)always true
*************** Case 620(end) **************
*************** Case 621 ***************
SQL: select /*+use_merge(tt1 tt2)*/* from tt1,tt2 where tt1.c2=tt2.c2;
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |HASH JOIN | |100 |527 |
|1 | TABLE SCAN|tt1 |100 |90 |
|2 | TABLE SCAN|tt2 |100 |90 |
====================================
Outputs & filters:
-------------------------------------
0 - output([tt1.c1], [tt1.c2], [tt2.c1], [tt2.c2]), filter(nil),
equal_conds([tt1.c2 = tt2.c2]), other_conds(nil)
1 - output([tt1.c2], [tt1.c1]), filter(nil),
access([tt1.c2], [tt1.c1]), partitions(p0),
is_index_back=false,
range_key([tt1.c1]), range(MIN ; MAX)always true
2 - output([tt2.c2], [tt2.c1]), filter(nil),
access([tt2.c2], [tt2.c1]), partitions(p0),
is_index_back=false,
range_key([tt2.c1]), range(MIN ; MAX)always true
*************** Case 621(end) **************
*************** Case 622 ***************
SQL: select /*+use_merge(t1, t2)*/* from t1,t2 where t1.c1=t2.c3;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |HASH JOIN | |290 |1634|
|1 | PX COORDINATOR | |500 |389 |
|2 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|3 | PX PARTITION ITERATOR| |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
|5 | PX COORDINATOR | |300 |290 |
|6 | EXCHANGE OUT DISTR |:EX20000|300 |205 |
|7 | PX PARTITION ITERATOR| |300 |205 |
|8 | TABLE SCAN |t2 |300 |205 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 = t2.c3]), other_conds(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.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil)
6 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), dop=1
7 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
force partition granule, asc.
8 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
access([t2.c1], [t2.c3], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 622(end) **************
*************** Case 623 ***************
SQL: select /*+use_merge(t1, t12)*/* from t1,t12 where t1.c1=t12.a;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |100 |1369|
|1 | EXCHANGE OUT DISTR |:EX10001|100 |1338|
|2 | MERGE JOIN | |100 |1338|
|3 | SORT | |500 |1074|
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
|6 | EXCHANGE IN DISTR | |100 |114 |
|7 | EXCHANGE OUT DISTR (PKEY)|:EX10000|100 |92 |
|8 | TABLE SCAN |t12 |100 |92 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t12.a], [t12.b], [t12.c]), filter(nil)
1 - output([t1.c1], [t1.c2], [t12.a], [t12.b], [t12.c]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t12.a], [t12.b], [t12.c]), filter(nil),
equal_conds([t1.c1 = t12.a]), other_conds(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t12.a], [t12.b], [t12.c]), filter(nil)
7 - (#keys=1, [t12.a]), output([t12.a], [t12.b], [t12.c]), filter(nil), is_single, dop=1
8 - output([t12.a], [t12.b], [t12.c]), filter(nil),
access([t12.a], [t12.b], [t12.c]), partitions(p0),
is_index_back=false,
range_key([t12.a]), range(MIN ; MAX)always true
*************** Case 623(end) **************
*************** Case 624 ***************
SQL: select /*+use_merge(t1, t13)*/* from t1,t13 where t1.c1=t13.b;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |HASH JOIN | |100 |902 |
|1 | TABLE SCAN |t13 |100 |92 |
|2 | PX COORDINATOR | |500 |389 |
|3 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|4 | PX PARTITION ITERATOR| |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t13.b], [t13.c], [t13.a]), filter(nil),
equal_conds([t1.c1 = t13.b]), other_conds(nil)
1 - output([t13.b], [t13.c], [t13.a]), filter(nil),
access([t13.b], [t13.c], [t13.a]), partitions(p0),
is_index_back=false,
range_key([t13.a]), range(MIN ; MAX)always true
2 - output([t1.c1], [t1.c2]), filter(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 624(end) **************
*************** Case 625 ***************
SQL: select /*+use_merge(t1, t_u)*/* from t1,t_u where t1.c1=t_u.c1;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |MERGE JOIN | |290 |2016|
|1 | PX COORDINATOR MERGE SORT | |500 |1122|
|2 | EXCHANGE OUT DISTR |:EX10000|500 |1074|
|3 | SORT | |500 |1074|
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
|6 | PX COORDINATOR MERGE SORT | |300 |588 |
|7 | EXCHANGE OUT DISTR |:EX20000|300 |574 |
|8 | SORT | |300 |574 |
|9 | PX PARTITION ITERATOR | |300 |211 |
|10| TABLE SCAN |t_u |300 |211 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t_u.c1]), filter(nil),
equal_conds([t1.c1 = t_u.c1]), other_conds(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.
5 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t_u.c1]), filter(nil), sort_keys([t_u.c1, ASC])
7 - output([t_u.c1]), filter(nil), dop=1
8 - output([t_u.c1]), filter(nil), sort_keys([t_u.c1, ASC])
9 - output([t_u.c1]), filter(nil),
force partition granule, asc.
10 - output([t_u.c1]), filter(nil),
access([t_u.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t_u.__pk_increment], [t_u.__pk_cluster_id], [t_u.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 625(end) **************
*************** Case 626 ***************
SQL: select /*+use_merge(t_u, t12)*/* from t_u,t12 where t12.a=t_u.c1;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |MERGE JOIN | |290 |932 |
|1 | PX COORDINATOR MERGE SORT | |300 |588 |
|2 | EXCHANGE OUT DISTR |:EX10000|300 |574 |
|3 | SORT | |300 |574 |
|4 | PX PARTITION ITERATOR | |300 |211 |
|5 | TABLE SCAN |t_u |300 |211 |
|6 | TABLE SCAN |t12 |100 |92 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([t_u.c1], [t12.a], [t12.b], [t12.c]), filter(nil),
equal_conds([t12.a = t_u.c1]), other_conds(nil)
1 - output([t_u.c1]), filter(nil), sort_keys([t_u.c1, ASC])
2 - output([t_u.c1]), filter(nil), dop=1
3 - output([t_u.c1]), filter(nil), sort_keys([t_u.c1, ASC])
4 - output([t_u.c1]), filter(nil),
force partition granule, asc.
5 - output([t_u.c1]), filter(nil),
access([t_u.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t_u.__pk_increment], [t_u.__pk_cluster_id], [t_u.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
6 - output([t12.a], [t12.b], [t12.c]), filter(nil),
access([t12.a], [t12.b], [t12.c]), partitions(p0),
is_index_back=false,
range_key([t12.a]), range(MIN ; MAX)always true
*************** Case 626(end) **************
*************** Case 627 ***************
SQL: select /*+use_merge(t2, t3)*/* from t2,t3 where t2.c3=t3.c3;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |MERGE JOIN | |551 |3720|
|1 | PX COORDINATOR MERGE SORT | |300 |1893|
|2 | EXCHANGE OUT DISTR |:EX10000|300 |1808|
|3 | SORT | |300 |1808|
|4 | PX PARTITION ITERATOR | |300 |205 |
|5 | TABLE SCAN |t2 |300 |205 |
|6 | PX COORDINATOR MERGE SORT | |200 |1220|
|7 | EXCHANGE OUT DISTR |:EX20000|200 |1163|
|8 | SORT | |200 |1163|
|9 | PX PARTITION ITERATOR | |200 |149 |
|10| TABLE SCAN |t3 |200 |149 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
equal_conds([t2.c3 = t3.c3]), other_conds(nil)
1 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c3, ASC])
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c3, ASC])
4 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
force partition granule, asc.
5 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
access([t2.c1], [t2.c3], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
6 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c3, ASC])
7 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
8 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c3, ASC])
9 - output([t3.c1], [t3.c3], [t3.c2]), filter(nil),
force partition granule, asc.
10 - output([t3.c1], [t3.c3], [t3.c2]), filter(nil),
access([t3.c1], [t3.c3], [t3.c2]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
*************** Case 627(end) **************
*************** Case 628 ***************
SQL: select * from yuming where c2 in ('-99999.99999','0.0');
=====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------
|0 |TABLE SCAN|yuming|2 |99 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([yuming.c1], [yuming.c2]), filter([yuming.c2 IN (?, ?)]),
access([yuming.c2], [yuming.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([yuming.c1], [yuming.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 628(end) **************
*************** Case 629 ***************
SQL: select * from query_range where (c1, c2, c3) in ((1, 2, 3), (4, 5, 6));
=========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------
|0 |TABLE GET|query_range|2 |58 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([query_range.c1], [query_range.c2], [query_range.c3], [query_range.c4], [query_range.c5]), filter(nil),
access([query_range.c1], [query_range.c2], [query_range.c3], [query_range.c4], [query_range.c5]), partitions(p0),
is_index_back=false,
range_key([query_range.c1], [query_range.c2], [query_range.c3]), range[1,2,3 ; 1,2,3], [4,5,6 ; 4,5,6],
range_cond([(query_range.c1, query_range.c2, query_range.c3) IN ((?, ?, ?), (?, ?, ?))])
*************** Case 629(end) **************
*************** Case 630 ***************
SQL: select * from query_range where (c1, c2, c3) in ((1, 2, 3), (4, (select 5), 6));
=========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------
|0 |TABLE GET|query_range|2 |58 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([query_range.c1], [query_range.c2], [query_range.c3], [query_range.c4], [query_range.c5]), filter(nil),
access([query_range.c1], [query_range.c2], [query_range.c3], [query_range.c4], [query_range.c5]), partitions(p0),
is_index_back=false,
range_key([query_range.c1], [query_range.c2], [query_range.c3]), range[1,2,3 ; 1,2,3], [4,5,6 ; 4,5,6],
range_cond([(query_range.c1, query_range.c2, query_range.c3) IN ((?, ?, ?), (?, ?, ?))])
*************** Case 630(end) **************
*************** Case 631 ***************
SQL: select * from query_range where (c1, c2, c3) in (((select 1), 2, 3), ((select 4), 5, 6));
=========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------
|0 |TABLE GET|query_range|2 |58 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([query_range.c1], [query_range.c2], [query_range.c3], [query_range.c4], [query_range.c5]), filter(nil),
access([query_range.c1], [query_range.c2], [query_range.c3], [query_range.c4], [query_range.c5]), partitions(p0),
is_index_back=false,
range_key([query_range.c1], [query_range.c2], [query_range.c3]), range[1,2,3 ; 1,2,3], [4,5,6 ; 4,5,6],
range_cond([(query_range.c1, query_range.c2, query_range.c3) IN ((?, ?, ?), (?, ?, ?))])
*************** Case 631(end) **************
*************** Case 632 ***************
SQL: select * from query_range where (c1, c2, c3) in ((1, 2, 3), (4, 5, 6)) and c4>0;
=========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------
|0 |TABLE GET|query_range|2 |58 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([query_range.c1], [query_range.c2], [query_range.c3], [query_range.c4], [query_range.c5]), filter([query_range.c4 > ?]),
access([query_range.c1], [query_range.c2], [query_range.c3], [query_range.c4], [query_range.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([query_range.c1], [query_range.c2], [query_range.c3]), range[1,2,3 ; 1,2,3], [4,5,6 ; 4,5,6],
range_cond([(query_range.c1, query_range.c2, query_range.c3) IN ((?, ?, ?), (?, ?, ?))])
*************** Case 632(end) **************
*************** Case 633 ***************
SQL: select * from query_range where c1=1 and (c2, c3) in ((1, 2), (3, 4));
=========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------
|0 |TABLE GET|query_range|1 |58 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([query_range.c1], [query_range.c2], [query_range.c3], [query_range.c4], [query_range.c5]), filter([(query_range.c2, query_range.c3) IN ((?, ?), (?, ?))]),
access([query_range.c1], [query_range.c2], [query_range.c3], [query_range.c4], [query_range.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([query_range.c1], [query_range.c2], [query_range.c3]), range[1,1,2 ; 1,1,2], [1,3,4 ; 1,3,4],
range_cond([query_range.c1 = ?])
*************** Case 633(end) **************
*************** Case 634 ***************
SQL: select * from query_range where c1>1 and (c2, c3) in ((1, 2), (3, 4));
==========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------
|0 |TABLE SCAN|query_range|1 |105 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([query_range.c1], [query_range.c2], [query_range.c3], [query_range.c4], [query_range.c5]), filter([(query_range.c2, query_range.c3) IN ((?, ?), (?, ?))]),
access([query_range.c1], [query_range.c2], [query_range.c3], [query_range.c4], [query_range.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([query_range.c1], [query_range.c2], [query_range.c3]), range(1,MAX,MAX ; MAX,3,4),
range_cond([query_range.c1 > ?])
*************** Case 634(end) **************
*************** Case 635 ***************
SQL: select c2 from t4 where c2=1 and c3 is null group by c2;
===================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------
|0 |MERGE GROUP BY| |1 |106 |
|1 | TABLE SCAN |t4(idx_t4_c2_c3)|100 |92 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c2]), filter(nil),
group(nil), agg_func(nil)
1 - output([t4.c2]), filter(nil),
access([t4.c2]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(1,NULL,MIN ; 1,NULL,MAX),
range_cond([t4.c2 = ?], [(T_OP_IS, t4.c3, NULL, 0)])
*************** Case 635(end) **************
*************** Case 636 ***************
SQL: select count(1) as c from t7 having (select c from t7 t)>0;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |SUBPLAN FILTER | |1 |209 |
|1 | SCALAR GROUP BY| |1 |107 |
|2 | TABLE SCAN |t7 |100 |88 |
|3 | TABLE SCAN |t |100 |88 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(?)]), filter([subquery(1) > ?]),
exec_params_([T_FUN_COUNT(?)]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([T_FUN_COUNT(?)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(?)])
2 - output([1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([?]), filter(nil),
access([t.c1]), partitions(p0),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
*************** Case 636(end) **************
*************** Case 637 ***************
SQL: SELECT t1.c1 FROM t7 t1 GROUP BY t1.c1 HAVING t1.c1 < ALL(SELECT t2.c1 FROM t7 t2 GROUP BY t2.c1 HAVING EXISTS(SELECT t3.c1 FROM t7 t3 GROUP BY t3.c1 HAVING SUM(t1.c1+t2.c1) < t3.c1/4));
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
----------------------------------------------------
|0 |SUBPLAN FILTER | |50 |25382|
|1 | TABLE SCAN |t1 |100 |88 |
|2 | SCALAR GROUP BY | |1 |253 |
|3 | SUBPLAN SCAN |VIEW2|1 |253 |
|4 | LIMIT | |1 |253 |
|5 | NESTED-LOOP SEMI JOIN| |1 |253 |
|6 | TABLE SCAN |t2 |4 |37 |
|7 | MATERIAL | |100 |106 |
|8 | TABLE SCAN |t3 |100 |88 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter([t1.c1 < ALL(subquery(1))]),
exec_params_([t1.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p0),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
2 - output([T_FUN_MIN(VIEW2.c1)]), filter([(T_OP_IS_NOT, T_FUN_MIN(VIEW2.c1), NULL, 0)]),
group(nil), agg_func([T_FUN_MIN(VIEW2.c1)])
3 - output([VIEW2.c1]), filter(nil),
access([VIEW2.c1])
4 - output([t2.c1]), filter(nil), limit(1), offset(nil)
5 - output([t2.c1]), filter(nil),
conds([cast(? + t2.c1, DECIMAL(12, 0)) < t3.c1 / ?]), nl_params_(nil), batch_join=false
6 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p0),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
7 - output([t3.c1]), filter(nil)
8 - output([t3.c1]), filter(nil),
access([t3.c1]), partitions(p0),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
*************** Case 637(end) **************
*************** Case 638 ***************
SQL: select count(1) from t_func group by c1,c2;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t_func |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([CASE WHEN ? THEN 1 ELSE 0 END]), filter(nil)
1 - output([CASE WHEN ? THEN 1 ELSE 0 END]), filter(nil), dop=1
2 - output([CASE WHEN ? THEN 1 ELSE 0 END]), filter(nil),
force partition granule, asc.
3 - output([CASE WHEN ? THEN 1 ELSE 0 END]), filter(nil),
access([t_func.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t_func.c1], [t_func.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 638(end) **************
*************** Case 639 ***************
SQL: select count(1) from t_func group by c1;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |100 |635 |
|1 | EXCHANGE OUT DISTR |:EX10001|100 |626 |
|2 | MERGE GROUP BY | |100 |626 |
|3 | EXCHANGE IN MERGE SORT DISTR| |100 |489 |
|4 | EXCHANGE OUT DISTR (HASH) |:EX10000|100 |479 |
|5 | PX PARTITION ITERATOR | |100 |479 |
|6 | MERGE GROUP BY | |100 |479 |
|7 | TABLE SCAN |t_func |500 |342 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(?))]), filter(nil)
1 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(?))]), filter(nil), dop=1
2 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(?))]), filter(nil),
group([t_func.c1]), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(?))])
3 - output([T_FUN_COUNT(?)], [t_func.c1]), filter(nil), sort_keys([t_func.c1, ASC]), Local Order
4 - (#keys=1, [t_func.c1]), output([T_FUN_COUNT(?)], [t_func.c1]), filter(nil), dop=1
5 - output([T_FUN_COUNT(?)], [t_func.c1]), filter(nil),
force partition granule, asc.
6 - output([T_FUN_COUNT(?)], [t_func.c1]), filter(nil),
group([t_func.c1]), agg_func([T_FUN_COUNT(?)])
7 - output([t_func.c1]), filter(nil),
access([t_func.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t_func.c1], [t_func.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 639(end) **************
*************** Case 640 ***************
SQL: select count(1) from t_func group by floor(c2+c1);
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |938 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |890 |
|2 | PX PARTITION ITERATOR| |500 |890 |
|3 | HASH GROUP BY | |500 |890 |
|4 | TABLE SCAN |t_func |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(?)]), filter(nil)
1 - output([T_FUN_COUNT(?)]), filter(nil), dop=1
2 - output([T_FUN_COUNT(?)]), filter(nil),
partition wise, force partition granule, asc.
3 - output([T_FUN_COUNT(?)]), filter(nil),
group([floor(t_func.c2 + t_func.c1)]), agg_func([T_FUN_COUNT(?)])
4 - output([floor(t_func.c2 + t_func.c1)]), filter(nil),
access([t_func.c2], [t_func.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t_func.c1], [t_func.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 640(end) **************
*************** Case 641 ***************
SQL: select distinct c1 from t_f;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |100 |854 |
|1 | EXCHANGE OUT DISTR |:EX10001|100 |845 |
|2 | HASH DISTINCT | |100 |845 |
|3 | EXCHANGE IN DISTR | |100 |609 |
|4 | EXCHANGE OUT DISTR (HASH)|:EX10000|100 |600 |
|5 | HASH DISTINCT | |100 |600 |
|6 | PX PARTITION ITERATOR | |500 |364 |
|7 | TABLE SCAN |t_f |500 |364 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t_f.c1]), filter(nil)
1 - output([t_f.c1]), filter(nil), dop=1
2 - output([t_f.c1]), filter(nil),
distinct([t_f.c1])
3 - output([t_f.c1]), filter(nil)
4 - (#keys=1, [t_f.c1]), output([t_f.c1]), filter(nil), dop=1
5 - output([t_f.c1]), filter(nil),
distinct([t_f.c1])
6 - output([t_f.c1]), filter(nil),
force partition granule, asc.
7 - output([t_f.c1]), filter(nil),
access([t_f.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t_f.__pk_increment], [t_f.__pk_cluster_id], [t_f.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 641(end) **************
*************** Case 642 ***************
SQL: select distinct c1,c2 from t_f;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |973 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |926 |
|2 | PX PARTITION ITERATOR| |500 |926 |
|3 | HASH DISTINCT | |500 |926 |
|4 | TABLE SCAN |t_f |500 |375 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t_f.c1], [t_f.c2]), filter(nil)
1 - output([t_f.c1], [t_f.c2]), filter(nil), dop=1
2 - output([t_f.c1], [t_f.c2]), filter(nil),
partition wise, force partition granule, asc.
3 - output([t_f.c1], [t_f.c2]), filter(nil),
distinct([t_f.c1], [t_f.c2])
4 - output([t_f.c2], [t_f.c1]), filter(nil),
access([t_f.c2], [t_f.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t_f.__pk_increment], [t_f.__pk_cluster_id], [t_f.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 642(end) **************
*************** Case 643 ***************
SQL: select distinct c1,c2,c3 from t_f;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |1037|
|1 | EXCHANGE OUT DISTR |:EX10000|500 |966 |
|2 | PX PARTITION ITERATOR| |500 |966 |
|3 | HASH DISTINCT | |500 |966 |
|4 | TABLE SCAN |t_f |500 |386 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t_f.c1], [t_f.c2], [t_f.c3]), filter(nil)
1 - output([t_f.c1], [t_f.c2], [t_f.c3]), filter(nil), dop=1
2 - output([t_f.c1], [t_f.c2], [t_f.c3]), filter(nil),
partition wise, force partition granule, asc.
3 - output([t_f.c1], [t_f.c2], [t_f.c3]), filter(nil),
distinct([t_f.c1], [t_f.c2], [t_f.c3])
4 - output([t_f.c2], [t_f.c1], [t_f.c3]), filter(nil),
access([t_f.c2], [t_f.c1], [t_f.c3]), partitions(p[0-4]),
is_index_back=false,
range_key([t_f.__pk_increment], [t_f.__pk_cluster_id], [t_f.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 643(end) **************
*************** Case 644 ***************
SQL: select c1 from t7 group by c1 having (select count(t7.c1) from t7 t)>0;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
----------------------------------------
|0 |SUBPLAN FILTER| |34 |10232|
|1 | TABLE SCAN |t7 |100 |88 |
|2 | TABLE SCAN |t |100 |88 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter([subquery(1) > ?]),
exec_params_([CASE WHEN (T_OP_IS_NOT, t7.c1, NULL, 0) THEN 1 ELSE 0 END]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([?]), filter(nil),
access([t.c1]), partitions(p0),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
*************** Case 644(end) **************
*************** Case 645 ***************
SQL: select c1 from t7 having (select t7.c1 from t7 t)>0;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
----------------------------------------
|0 |SUBPLAN FILTER| |34 |10232|
|1 | TABLE SCAN |t7 |100 |88 |
|2 | TABLE SCAN |t |100 |88 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter([subquery(1) > ?]),
exec_params_([t7.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([?]), filter(nil),
access([t.c1]), partitions(p0),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
*************** Case 645(end) **************
*************** Case 646 ***************
SQL: select c1 from t7 group by c2 having (select t7.c1 from t7 t)>0;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
----------------------------------------
|0 |SUBPLAN FILTER| |34 |10339|
|1 | HASH GROUP BY| |100 |195 |
|2 | TABLE SCAN |t7 |100 |90 |
|3 | TABLE SCAN |t |100 |88 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter([subquery(1) > ?]),
exec_params_([t7.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t7.c1]), filter(nil),
group([t7.c2]), agg_func(nil)
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([?]), filter(nil),
access([t.c1]), partitions(p0),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
*************** Case 646(end) **************
*************** Case 647 ***************
SQL: select /*+leading(b, a) use_nl(a, b) read_consistency(weak) query_timeout(120000000)*/ count(*) as COUNT, nvl(sum(b.receive_fee),0) as AMOUNT from trade_process_000 b, trade_base_000 a where a.trade_no = b.trade_no and b.gmt_receive_pay >= '2023-09-26 10:21:55' and b.gmt_receive_pay < '2023-09-26 15:55:15' and (a.product IN ('S','M','L') or a.product not IN ('M','L','XL'))and (a.trade_type IN ('S','FP','RM','MT') or a.trade_type not IN ('FP','RM','MT','COD'));
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
-------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |32347|
|1 | PX COORDINATOR | |1 |32347|
|2 | EXCHANGE OUT DISTR |:EX10000|1 |32346|
|3 | MERGE GROUP BY | |1 |32346|
|4 | PX PARTITION ITERATOR| |1 |32346|
|5 | NESTED-LOOP JOIN | |1 |32346|
|6 | TABLE SCAN |b |1 |32346|
|7 | TABLE GET |a |1 |53 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [nvl(T_FUN_SUM(T_FUN_SUM(b.RECEIVE_FEE)), ?)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [T_FUN_SUM(T_FUN_SUM(b.RECEIVE_FEE))])
1 - output([T_FUN_COUNT(*)], [T_FUN_SUM(b.RECEIVE_FEE)]), filter(nil)
2 - output([T_FUN_COUNT(*)], [T_FUN_SUM(b.RECEIVE_FEE)]), filter(nil), dop=1
3 - output([T_FUN_COUNT(*)], [T_FUN_SUM(b.RECEIVE_FEE)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)], [T_FUN_SUM(b.RECEIVE_FEE)])
4 - output([b.RECEIVE_FEE]), filter(nil),
partition wise, force partition granule, asc.
5 - output([b.RECEIVE_FEE]), filter(nil),
conds(nil), nl_params_([b.TRADE_NO]), batch_join=true
6 - output([b.TRADE_NO], [b.RECEIVE_FEE]), filter([b.GMT_RECEIVE_PAY < ?], [b.GMT_RECEIVE_PAY >= ?]),
access([b.TRADE_NO], [b.GMT_RECEIVE_PAY], [b.RECEIVE_FEE]), partitions(p[0-399]),
is_index_back=false, filter_before_indexback[false,false],
hint(read_consistency:2),
range_key([b.TRADE_NO]), range(MIN ; MAX)always true
7 - output([1]), filter([a.TRADE_TYPE IN (?, ?, ?, ?) OR (T_OP_NOT_IN, a.TRADE_TYPE, (?, ?, ?, ?))], [a.PRODUCT IN (?, ?, ?) OR (T_OP_NOT_IN, a.PRODUCT, (?, ?, ?))]),
access([a.PRODUCT], [a.TRADE_TYPE]), partitions(p[0-399]),
is_index_back=false, filter_before_indexback[false,false],
hint(read_consistency:2),
range_key([a.TRADE_NO]), range(MIN ; MAX),
range_cond([a.TRADE_NO = ?])
*************** Case 647(end) **************
*************** Case 648 ***************
SQL: select * from t0, t0 t where t0.c1=t.c2 and t0.c1=t.c1 order by t0.c1, t.c1;
=====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-------------------------------------
|0 |SORT | |1 |232 |
|1 | HASH JOIN | |1 |231 |
|2 | TABLE SCAN|t |1 |103 |
|3 | TABLE SCAN|t0 |100 |95 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t0.pk], [t0.c1], [t0.c2], [t0.a3], [t.pk], [t.c1], [t.c2], [t.a3]), filter(nil), sort_keys([t0.c1, ASC])
1 - output([t0.pk], [t0.c1], [t0.c2], [t0.a3], [t.pk], [t.c1], [t.c2], [t.a3]), filter(nil),
equal_conds([t0.c1 = t.c2]), other_conds(nil)
2 - output([t.c2], [t.c1], [t.pk], [t.a3]), filter([t.c2 = t.c1]),
access([t.c2], [t.c1], [t.pk], [t.a3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t.pk]), range(MIN ; MAX)always true
3 - output([t0.c1], [t0.pk], [t0.c2], [t0.a3]), filter(nil),
access([t0.c1], [t0.pk], [t0.c2], [t0.a3]), partitions(p0),
is_index_back=false,
range_key([t0.pk]), range(MIN ; MAX)always true
*************** Case 648(end) **************
*************** Case 649 ***************
SQL: select * from t0, t0 t where t0.c1=t.c1 and t0.c1=t.c2 order by t0.c1, t.c1;
=====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-------------------------------------
|0 |SORT | |1 |232 |
|1 | HASH JOIN | |1 |231 |
|2 | TABLE SCAN|t |1 |103 |
|3 | TABLE SCAN|t0 |100 |95 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t0.pk], [t0.c1], [t0.c2], [t0.a3], [t.pk], [t.c1], [t.c2], [t.a3]), filter(nil), sort_keys([t0.c1, ASC])
1 - output([t0.pk], [t0.c1], [t0.c2], [t0.a3], [t.pk], [t.c1], [t.c2], [t.a3]), filter(nil),
equal_conds([t0.c1 = t.c1]), other_conds(nil)
2 - output([t.c1], [t.c2], [t.pk], [t.a3]), filter([t.c1 = t.c2]),
access([t.c1], [t.c2], [t.pk], [t.a3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t.pk]), range(MIN ; MAX)always true
3 - output([t0.c1], [t0.pk], [t0.c2], [t0.a3]), filter(nil),
access([t0.c1], [t0.pk], [t0.c2], [t0.a3]), partitions(p0),
is_index_back=false,
range_key([t0.pk]), range(MIN ; MAX)always true
*************** Case 649(end) **************
*************** Case 650 ***************
SQL: select * from t0, t0 t where t0.c1=t.c1 and t0.c1=t.c1 order by t0.c1, t.c1;
=====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-------------------------------------
|0 |MERGE JOIN | |100 |607 |
|1 | SORT | |100 |261 |
|2 | TABLE SCAN|t0 |100 |95 |
|3 | SORT | |100 |261 |
|4 | TABLE SCAN|t |100 |95 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t0.pk], [t0.c1], [t0.c2], [t0.a3], [t.pk], [t.c1], [t.c2], [t.a3]), filter(nil),
equal_conds([t0.c1 = t.c1]), other_conds(nil)
1 - output([t0.pk], [t0.c1], [t0.c2], [t0.a3]), filter(nil), sort_keys([t0.c1, ASC])
2 - output([t0.c1], [t0.pk], [t0.c2], [t0.a3]), filter(nil),
access([t0.c1], [t0.pk], [t0.c2], [t0.a3]), partitions(p0),
is_index_back=false,
range_key([t0.pk]), range(MIN ; MAX)always true
3 - output([t.pk], [t.c1], [t.c2], [t.a3]), filter(nil), sort_keys([t.c1, ASC])
4 - output([t.c1], [t.pk], [t.c2], [t.a3]), filter(nil),
access([t.c1], [t.pk], [t.c2], [t.a3]), partitions(p0),
is_index_back=false,
range_key([t.pk]), range(MIN ; MAX)always true
*************** Case 650(end) **************
*************** Case 651 ***************
SQL: select * from t17 where c1=1 and c2 is null and c3=1;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |300 |247 |
|1 | EXCHANGE OUT DISTR |:EX10000|300 |205 |
|2 | PX PARTITION ITERATOR| |300 |205 |
|3 | TABLE SCAN |t17 |300 |205 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t17.c1], [t17.c2], [t17.c3]), filter(nil), startup_filter([0])
1 - output([t17.c2], [t17.c3], [t17.c1]), filter(nil), dop=1
2 - output([t17.c2], [t17.c3], [t17.c1]), filter(nil),
force partition granule, asc.
3 - output([t17.c2], [t17.c3], [t17.c1]), filter(nil),
access([t17.c2], [t17.c3], [t17.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t17.c1], [t17.c2], [t17.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 651(end) **************
*************** Case 652 ***************
SQL: select c3 from t_normal_idx order by c3;
=================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------
|0 |SORT | |100 |162 |
|1 | TABLE SCAN|t_normal_idx(idx)|100 |54 |
=================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil), sort_keys([t_normal_idx.c3, ASC])
1 - output([t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
*************** Case 652(end) **************
*************** Case 653 ***************
SQL: select c3 from t_normal_idx where c2=1 order by c3;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |TABLE SCAN|t_normal_idx(idx)|100 |57 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,MIN,MIN,MIN,MIN,MIN ; 1,MAX,MAX,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?])
*************** Case 653(end) **************
*************** Case 654 ***************
SQL: select c3 from t_normal_idx where c2 is null order by c3;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |TABLE SCAN|t_normal_idx(idx)|100 |57 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(NULL,MIN,MIN,MIN,MIN,MIN ; NULL,MAX,MAX,MAX,MAX,MAX),
range_cond([(T_OP_IS, t_normal_idx.c2, NULL, 0)])
*************** Case 654(end) **************
*************** Case 655 ***************
SQL: select c3 from t_normal_idx where c2=1 and c3 is null order by c4,c5;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |TABLE SCAN|t_normal_idx(idx)|100 |61 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,NULL,MIN,MIN,MIN,MIN ; 1,NULL,MAX,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?], [(T_OP_IS, t_normal_idx.c3, NULL, 0)])
*************** Case 655(end) **************
*************** Case 656 ***************
SQL: select c3 from t_normal_idx where c2=1 and c3 is null and c4=1 order by c5,c6;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |TABLE SCAN|t_normal_idx(idx)|100 |63 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,NULL,1,MIN,MIN,MIN ; 1,NULL,1,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?], [t_normal_idx.c4 = ?], [(T_OP_IS, t_normal_idx.c3, NULL, 0)])
*************** Case 656(end) **************
*************** Case 657 ***************
SQL: select c3 from t_normal_idx where c2 is null and c3 is null and c4 is null and c5 is null order by c6;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |TABLE SCAN|t_normal_idx(idx)|100 |63 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(NULL,NULL,NULL,NULL,MIN,MIN ; NULL,NULL,NULL,NULL,MAX,MAX),
range_cond([(T_OP_IS, t_normal_idx.c2, NULL, 0)], [(T_OP_IS, t_normal_idx.c3, NULL, 0)], [(T_OP_IS, t_normal_idx.c4, NULL, 0)], [(T_OP_IS, t_normal_idx.c5, NULL, 0)])
*************** Case 657(end) **************
*************** Case 658 ***************
SQL: select c3 from t_normal_idx where c2 is null and c3=1 order by c4;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |TABLE SCAN|t_normal_idx(idx)|100 |59 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(NULL,1,MIN,MIN,MIN,MIN ; NULL,1,MAX,MAX,MAX,MAX),
range_cond([t_normal_idx.c3 = ?], [(T_OP_IS, t_normal_idx.c2, NULL, 0)])
*************** Case 658(end) **************
*************** Case 659 ***************
SQL: select c3 from t_normal_idx where c2 is null and c3=1 and c4 is null order by c5,c6;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |TABLE SCAN|t_normal_idx(idx)|100 |63 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(NULL,1,NULL,MIN,MIN,MIN ; NULL,1,NULL,MAX,MAX,MAX),
range_cond([t_normal_idx.c3 = ?], [(T_OP_IS, t_normal_idx.c2, NULL, 0)], [(T_OP_IS, t_normal_idx.c4, NULL, 0)])
*************** Case 659(end) **************
*************** Case 660 ***************
SQL: select c3 from t_normal_idx where c2=1 and c3 is null and c4=1 order by c3,c5,c6;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |TABLE SCAN|t_normal_idx(idx)|100 |63 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,NULL,1,MIN,MIN,MIN ; 1,NULL,1,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?], [t_normal_idx.c4 = ?], [(T_OP_IS, t_normal_idx.c3, NULL, 0)])
*************** Case 660(end) **************
*************** Case 661 ***************
SQL: select c3 from t_normal_idx where c2=1 and c3 is null and c4=1 order by c2,c3,c4,c5,c6;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |TABLE SCAN|t_normal_idx(idx)|100 |63 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,NULL,1,MIN,MIN,MIN ; 1,NULL,1,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?], [t_normal_idx.c4 = ?], [(T_OP_IS, t_normal_idx.c3, NULL, 0)])
*************** Case 661(end) **************
*************** Case 662 ***************
SQL: select c3 from t_normal_idx where c2=1 and c3 is null and c4=1 and c6 is null order by c5,c6;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |TABLE SCAN|t_normal_idx(idx)|0 |80 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter([(T_OP_IS, t_normal_idx.c6, NULL, 0)]),
access([t_normal_idx.c3], [t_normal_idx.c6]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,NULL,1,MIN,MIN,MIN ; 1,NULL,1,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?], [t_normal_idx.c4 = ?], [(T_OP_IS, t_normal_idx.c3, NULL, 0)])
*************** Case 662(end) **************
*************** Case 663 ***************
SQL: select c3 from t_normal_idx where c2=1 and c4 is null and c5=1 order by c3,c6;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |TABLE SCAN|t_normal_idx(idx)|0 |97 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter([(T_OP_IS, t_normal_idx.c4, NULL, 0)], [t_normal_idx.c5 = ?]),
access([t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false,false],
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,MIN,MIN,MIN,MIN,MIN ; 1,MAX,MAX,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?])
*************** Case 663(end) **************
*************** Case 664 ***************
SQL: select c3 from t_normal_idx where c2=1 and c3 is null and c5=1 order by c4,c6;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |TABLE SCAN|t_normal_idx(idx)|1 |80 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter([t_normal_idx.c5 = ?]),
access([t_normal_idx.c3], [t_normal_idx.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,NULL,MIN,MIN,MIN,MIN ; 1,NULL,MAX,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?], [(T_OP_IS, t_normal_idx.c3, NULL, 0)])
*************** Case 664(end) **************
*************** Case 665 ***************
SQL: select c3 from t_normal_idx where c2 is not null order by c3;
=================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------
|0 |SORT | |100 |200 |
|1 | TABLE SCAN|t_normal_idx(idx)|100 |73 |
=================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil), sort_keys([t_normal_idx.c3, ASC])
1 - output([t_normal_idx.c3]), filter([(T_OP_IS_NOT, t_normal_idx.c2, NULL, 0)]),
access([t_normal_idx.c2], [t_normal_idx.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
*************** Case 665(end) **************
*************** Case 666 ***************
SQL: select c3 from t_normal_idx group by c3;
===================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------
|0 |HASH GROUP BY| |100 |159 |
|1 | TABLE SCAN |t_normal_idx(idx)|100 |54 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
group([t_normal_idx.c3]), agg_func(nil)
1 - output([t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
*************** Case 666(end) **************
*************** Case 667 ***************
SQL: select c3 from t_normal_idx where c2=1 group by c3;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |MERGE GROUP BY| |100 |79 |
|1 | TABLE SCAN |t_normal_idx(idx)|100 |57 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
group([t_normal_idx.c3]), agg_func(nil)
1 - output([t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,MIN,MIN,MIN,MIN,MIN ; 1,MAX,MAX,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?])
*************** Case 667(end) **************
*************** Case 668 ***************
SQL: select c3 from t_normal_idx where c2 is null group by c3;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |MERGE GROUP BY| |100 |79 |
|1 | TABLE SCAN |t_normal_idx(idx)|100 |57 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
group([t_normal_idx.c3]), agg_func(nil)
1 - output([t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(NULL,MIN,MIN,MIN,MIN,MIN ; NULL,MAX,MAX,MAX,MAX,MAX),
range_cond([(T_OP_IS, t_normal_idx.c2, NULL, 0)])
*************** Case 668(end) **************
*************** Case 669 ***************
SQL: select c3 from t_normal_idx where c2=1 and c3 is null group by c4,c5;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |MERGE GROUP BY| |100 |92 |
|1 | TABLE SCAN |t_normal_idx(idx)|100 |61 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
group([t_normal_idx.c4], [t_normal_idx.c5]), agg_func(nil)
1 - output([t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5]), filter(nil),
access([t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,NULL,MIN,MIN,MIN,MIN ; 1,NULL,MAX,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?], [(T_OP_IS, t_normal_idx.c3, NULL, 0)])
*************** Case 669(end) **************
*************** Case 670 ***************
SQL: select c3 from t_normal_idx where c2=1 and c3 is null and c4=1 group by c5,c6;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |MERGE GROUP BY| |100 |94 |
|1 | TABLE SCAN |t_normal_idx(idx)|100 |63 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
group([t_normal_idx.c5], [t_normal_idx.c6]), agg_func(nil)
1 - output([t_normal_idx.c3], [t_normal_idx.c5], [t_normal_idx.c6]), filter(nil),
access([t_normal_idx.c3], [t_normal_idx.c5], [t_normal_idx.c6]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,NULL,1,MIN,MIN,MIN ; 1,NULL,1,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?], [t_normal_idx.c4 = ?], [(T_OP_IS, t_normal_idx.c3, NULL, 0)])
*************** Case 670(end) **************
*************** Case 671 ***************
SQL: select c3 from t_normal_idx where c2 is null and c3 is null and c4 is null and c5 is null group by c6;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |MERGE GROUP BY| |100 |85 |
|1 | TABLE SCAN |t_normal_idx(idx)|100 |63 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
group([t_normal_idx.c6]), agg_func(nil)
1 - output([t_normal_idx.c3], [t_normal_idx.c6]), filter(nil),
access([t_normal_idx.c3], [t_normal_idx.c6]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(NULL,NULL,NULL,NULL,MIN,MIN ; NULL,NULL,NULL,NULL,MAX,MAX),
range_cond([(T_OP_IS, t_normal_idx.c2, NULL, 0)], [(T_OP_IS, t_normal_idx.c3, NULL, 0)], [(T_OP_IS, t_normal_idx.c4, NULL, 0)], [(T_OP_IS, t_normal_idx.c5, NULL, 0)])
*************** Case 671(end) **************
*************** Case 672 ***************
SQL: select c3 from t_normal_idx where c2 is null and c3=1 group by c4;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |MERGE GROUP BY| |100 |81 |
|1 | TABLE SCAN |t_normal_idx(idx)|100 |59 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
group([t_normal_idx.c4]), agg_func(nil)
1 - output([t_normal_idx.c3], [t_normal_idx.c4]), filter(nil),
access([t_normal_idx.c3], [t_normal_idx.c4]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(NULL,1,MIN,MIN,MIN,MIN ; NULL,1,MAX,MAX,MAX,MAX),
range_cond([t_normal_idx.c3 = ?], [(T_OP_IS, t_normal_idx.c2, NULL, 0)])
*************** Case 672(end) **************
*************** Case 673 ***************
SQL: select c3 from t_normal_idx where c2 is null and c3=1 and c4 is null group by c5,c6;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |MERGE GROUP BY| |100 |94 |
|1 | TABLE SCAN |t_normal_idx(idx)|100 |63 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
group([t_normal_idx.c5], [t_normal_idx.c6]), agg_func(nil)
1 - output([t_normal_idx.c3], [t_normal_idx.c5], [t_normal_idx.c6]), filter(nil),
access([t_normal_idx.c3], [t_normal_idx.c5], [t_normal_idx.c6]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(NULL,1,NULL,MIN,MIN,MIN ; NULL,1,NULL,MAX,MAX,MAX),
range_cond([t_normal_idx.c3 = ?], [(T_OP_IS, t_normal_idx.c2, NULL, 0)], [(T_OP_IS, t_normal_idx.c4, NULL, 0)])
*************** Case 673(end) **************
*************** Case 674 ***************
SQL: select c3 from t_normal_idx where c2=1 and c3 is null and c4=1 group by c3,c5,c6;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |MERGE GROUP BY| |100 |94 |
|1 | TABLE SCAN |t_normal_idx(idx)|100 |63 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
group([t_normal_idx.c5], [t_normal_idx.c6]), agg_func(nil)
1 - output([t_normal_idx.c3], [t_normal_idx.c5], [t_normal_idx.c6]), filter(nil),
access([t_normal_idx.c3], [t_normal_idx.c5], [t_normal_idx.c6]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,NULL,1,MIN,MIN,MIN ; 1,NULL,1,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?], [t_normal_idx.c4 = ?], [(T_OP_IS, t_normal_idx.c3, NULL, 0)])
*************** Case 674(end) **************
*************** Case 675 ***************
SQL: select c3 from t_normal_idx where c2=1 and c3 is null and c4=1 group by c2,c3,c4,c5,c6 ;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |MERGE GROUP BY| |100 |94 |
|1 | TABLE SCAN |t_normal_idx(idx)|100 |63 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
group([t_normal_idx.c5], [t_normal_idx.c6]), agg_func(nil)
1 - output([t_normal_idx.c3], [t_normal_idx.c5], [t_normal_idx.c6]), filter(nil),
access([t_normal_idx.c3], [t_normal_idx.c5], [t_normal_idx.c6]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,NULL,1,MIN,MIN,MIN ; 1,NULL,1,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?], [t_normal_idx.c4 = ?], [(T_OP_IS, t_normal_idx.c3, NULL, 0)])
*************** Case 675(end) **************
*************** Case 676 ***************
SQL: select c3 from t_normal_idx where c2=1 and c3 is null and c4=1 and c6 is null group by c5,c6;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |MERGE GROUP BY| |0 |80 |
|1 | TABLE SCAN |t_normal_idx(idx)|0 |80 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
group([t_normal_idx.c5]), agg_func(nil)
1 - output([t_normal_idx.c3], [t_normal_idx.c5]), filter([(T_OP_IS, t_normal_idx.c6, NULL, 0)]),
access([t_normal_idx.c3], [t_normal_idx.c6], [t_normal_idx.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,NULL,1,MIN,MIN,MIN ; 1,NULL,1,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?], [t_normal_idx.c4 = ?], [(T_OP_IS, t_normal_idx.c3, NULL, 0)])
*************** Case 676(end) **************
*************** Case 677 ***************
SQL: select c3 from t_normal_idx where c2=1 and c4 is null and c5=1 group by c3,c6;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |MERGE GROUP BY| |0 |97 |
|1 | TABLE SCAN |t_normal_idx(idx)|0 |97 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
group([t_normal_idx.c3], [t_normal_idx.c6]), agg_func(nil)
1 - output([t_normal_idx.c3], [t_normal_idx.c6]), filter([(T_OP_IS, t_normal_idx.c4, NULL, 0)], [t_normal_idx.c5 = ?]),
access([t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c3], [t_normal_idx.c6]), partitions(p0),
is_index_back=false, filter_before_indexback[false,false],
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,MIN,MIN,MIN,MIN,MIN ; 1,MAX,MAX,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?])
*************** Case 677(end) **************
*************** Case 678 ***************
SQL: select c3 from t_normal_idx where c2=1 and c3 is null and c5=1 group by c4,c6;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |MERGE GROUP BY| |1 |80 |
|1 | TABLE SCAN |t_normal_idx(idx)|1 |80 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
group([t_normal_idx.c4], [t_normal_idx.c6]), agg_func(nil)
1 - output([t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c6]), filter([t_normal_idx.c5 = ?]),
access([t_normal_idx.c3], [t_normal_idx.c5], [t_normal_idx.c4], [t_normal_idx.c6]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(1,NULL,MIN,MIN,MIN,MIN ; 1,NULL,MAX,MAX,MAX,MAX),
range_cond([t_normal_idx.c2 = ?], [(T_OP_IS, t_normal_idx.c3, NULL, 0)])
*************** Case 678(end) **************
*************** Case 679 ***************
SQL: select c3 from t_normal_idx where c2 is not null group by c3;
===================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------
|0 |HASH GROUP BY| |100 |178 |
|1 | TABLE SCAN |t_normal_idx(idx)|100 |73 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c3]), filter(nil),
group([t_normal_idx.c3]), agg_func(nil)
1 - output([t_normal_idx.c3]), filter([(T_OP_IS_NOT, t_normal_idx.c2, NULL, 0)]),
access([t_normal_idx.c2], [t_normal_idx.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
*************** Case 679(end) **************
*************** Case 680 ***************
SQL: select c1 from t7 where c1=(select t7.c1 as c from t7 t having c1>(select c from t7));
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
-----------------------------------------
|0 |SUBPLAN FILTER | |1 |19672|
|1 | TABLE SCAN |t7 |100 |88 |
|2 | SUBPLAN FILTER| |50 |189 |
|3 | TABLE SCAN |t |100 |88 |
|4 | TABLE SCAN |t7 |100 |88 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter([t7.c1 = subquery(1)]),
exec_params_([t7.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([?]), filter([?]),
exec_params_(nil), onetime_exprs_([? > subquery(1)]), init_plan_idxs_(nil)
3 - output([1]), filter(nil),
access([t.c1]), partitions(p0),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
4 - output([?]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 680(end) **************
*************** Case 681 ***************
SQL: select c1+1 as c from t7 group by (select c from t7 t);
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
-----------------------------------------
|0 |HASH GROUP BY | |1 |10266|
|1 | SUBPLAN FILTER| |100 |10232|
|2 | TABLE SCAN |t7 |100 |88 |
|3 | TABLE SCAN |t |100 |88 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1 + ?]), filter(nil),
group([subquery(1)]), agg_func(nil)
1 - output([t7.c1 + ?], [subquery(1)]), filter(nil),
exec_params_([t7.c1 + ?]), onetime_exprs_(nil), init_plan_idxs_(nil)
2 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([?]), filter(nil),
access([t.c1]), partitions(p0),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
*************** Case 681(end) **************
*************** Case 682 ***************
SQL: select count(c1) + 1 from t7 having (select count(t7.c1) from t7 t)>0;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |SUBPLAN FILTER | |1 |209 |
|1 | SCALAR GROUP BY| |1 |107 |
|2 | TABLE SCAN |t7 |100 |88 |
|3 | TABLE SCAN |t |100 |88 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(t7.c1) + ?]), filter([subquery(1) > ?]),
exec_params_([T_FUN_COUNT(t7.c1)]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([T_FUN_COUNT(t7.c1)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(t7.c1)])
2 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([?]), filter(nil),
access([t.c1]), partitions(p0),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
*************** Case 682(end) **************
*************** Case 683 ***************
SQL: select count(c1) + 1 as c from t7 having (select c from t7 t)>0;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |SUBPLAN FILTER | |1 |209 |
|1 | SCALAR GROUP BY| |1 |107 |
|2 | TABLE SCAN |t7 |100 |88 |
|3 | TABLE SCAN |t |100 |88 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(t7.c1) + ?]), filter([subquery(1) > ?]),
exec_params_([T_FUN_COUNT(t7.c1) + ?]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([T_FUN_COUNT(t7.c1)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(t7.c1)])
2 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([?]), filter(nil),
access([t.c1]), partitions(p0),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
*************** Case 683(end) **************
*************** Case 684 ***************
SQL: select (select c1 from t7 t) as c from t7 group by (select c from t7 tt);
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |HASH GROUP BY | |1 |2339|
|1 | SUBPLAN FILTER | |100 |2306|
|2 | SUBPLAN FILTER| |100 |189 |
|3 | TABLE SCAN |t7 |100 |88 |
|4 | TABLE SCAN |t |100 |88 |
|5 | TABLE SCAN |tt |100 |88 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([?]), filter(nil),
group([subquery(1)]), agg_func(nil)
1 - output([?], [subquery(1)]), filter(nil),
exec_params_(nil), onetime_exprs_(nil), init_plan_idxs_([1])
2 - output([?]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
3 - output([1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
4 - output([t.c1]), filter(nil),
access([t.c1]), partitions(p0),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
5 - output([?]), filter(nil),
access([tt.c1]), partitions(p0),
is_index_back=false,
range_key([tt.c1]), range(MIN ; MAX)always true
*************** Case 684(end) **************
*************** Case 685 ***************
SQL: select 1 as c, c1 from t7 having c1>(select c from t7 t);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |34 |134 |
|1 | TABLE SCAN |t7 |34 |42 |
|2 | TABLE SCAN |t |100 |88 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([?], [t7.c1]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([t7.c1 > ?])
2 - output([?]), filter(nil),
access([t.c1]), partitions(p0),
is_index_back=false,
range_key([t.c1]), range(MIN ; MAX)always true
*************** Case 685(end) **************
*************** Case 686 ***************
SQL: SELECT c7 FROM query_range1 t8_1 WHERE ( ( t8_1.c7 in ((450) , (2001)) ) ) OR ( ( t8_1.c7 < 220 ) );
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t8_1|100 |110 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t8_1.c7]), filter([t8_1.c7 IN (?, ?) OR t8_1.c7 < ?]),
access([t8_1.c7]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t8_1.c9], [t8_1.c11], [t8_1.c8], [t8_1.c1], [t8_1.c12], [t8_1.c7], [t8_1.c5]), range(MIN,MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
*************** Case 686(end) **************
*************** Case 687 ***************
SQL: select (1>(select count(*) from t2 where c1=1)) from t1 where c1=1;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |105 |
|1 | EXCHANGE OUT REMOTE | |1 |105 |
|2 | NESTED-LOOP JOIN CARTESIAN| |1 |105 |
|3 | TABLE GET |t1 |1 |52 |
|4 | SUBPLAN SCAN |VIEW1|1 |53 |
|5 | SCALAR GROUP BY | |1 |53 |
|6 | TABLE GET |t2 |1 |52 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([? > VIEW1.count(*)]), filter(nil)
1 - output([? > VIEW1.count(*)]), filter(nil)
2 - output([? > VIEW1.count(*)]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
3 - output([1]), filter(nil),
access([t1.c1]), partitions(p1),
is_index_back=false,
range_key([t1.c1]), range[1 ; 1],
range_cond([t1.c1 = ?])
4 - output([VIEW1.count(*)]), filter(nil),
access([VIEW1.count(*)])
5 - output([T_FUN_COUNT(*)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)])
6 - output([1]), filter(nil),
access([t2.c1]), partitions(p1),
is_index_back=false,
range_key([t2.c1]), range[1 ; 1],
range_cond([t2.c1 = ?])
*************** Case 687(end) **************
*************** Case 688 ***************
SQL: select c1 from t1 group by c1, 'a' asc;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |990 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |966 |
|2 | SORT | |500 |966 |
|3 | PX PARTITION ITERATOR | |500 |331 |
|4 | TABLE SCAN |t1 |500 |331 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
3 - output([t1.c1]), filter(nil),
force partition granule, asc.
4 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 688(end) **************
*************** Case 689 ***************
SQL: select c1 from t1 order by c1, 'a' asc;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |990 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |966 |
|2 | SORT | |500 |966 |
|3 | PX PARTITION ITERATOR | |500 |331 |
|4 | TABLE SCAN |t1 |500 |331 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
1 - output([t1.c1]), filter(nil), dop=1
2 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
3 - output([t1.c1]), filter(nil),
force partition granule, asc.
4 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 689(end) **************
*************** Case 690 ***************
SQL: select c1, exists(select c1 from t7) from t7 group by 2;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |MERGE GROUP BY | |1 |203 |
|1 | SUBPLAN FILTER| |100 |189 |
|2 | TABLE SCAN |t7 |100 |88 |
|3 | TABLE SCAN |t7 |100 |88 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [?]), filter(nil),
group(nil), agg_func(nil)
1 - output([t7.c1], [?]), filter(nil),
exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
2 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 690(end) **************
*************** Case 691 ***************
SQL: select * from t1 where c1 is false;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |1 |426 |
|1 | EXCHANGE OUT DISTR |:EX10000|1 |426 |
|2 | PX PARTITION ITERATOR| |1 |426 |
|3 | TABLE SCAN |t1 |1 |426 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter([(T_OP_IS, t1.c1, 0, 0)]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 691(end) **************
*************** Case 692 ***************
SQL: select * from t1 where (c1 + 1) is false;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |250 |449 |
|1 | EXCHANGE OUT DISTR |:EX10000|250 |426 |
|2 | PX PARTITION ITERATOR| |250 |426 |
|3 | TABLE SCAN |t1 |250 |426 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter([(T_OP_IS, t1.c1 + ?, 0, 0)]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 692(end) **************
*************** Case 693 ***************
SQL: select * from t1 where c1 is null;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([0])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 693(end) **************
*************** Case 694 ***************
SQL: select * from t1 where c2 is null;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000 |500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(NULL,MIN ; NULL,MAX),
range_cond([(T_OP_IS, t1.c2, NULL, 0)])
*************** Case 694(end) **************
*************** Case 695 ***************
SQL: select * from t1 where c2 is not null;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |490 |472 |
|1 | EXCHANGE OUT DISTR |:EX10000|490 |426 |
|2 | PX PARTITION ITERATOR| |490 |426 |
|3 | TABLE SCAN |t1 |490 |426 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter([(T_OP_IS_NOT, t1.c2, NULL, 0)]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 695(end) **************
*************** Case 696 ***************
SQL: select * from t1 where c1 is not null;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([1])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 696(end) **************
*************** Case 697 ***************
SQL: select * from t1 where (c1 + 1) is null;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |250 |449 |
|1 | EXCHANGE OUT DISTR |:EX10000|250 |426 |
|2 | PX PARTITION ITERATOR| |250 |426 |
|3 | TABLE SCAN |t1 |250 |426 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c1], [t1.c2]), filter([(T_OP_IS, t1.c1 + ?, NULL, 0)]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 697(end) **************
*************** Case 698 ***************
SQL: select /*+ index(y_t1 i1)*/* from y_t1 where c2=10 order by c1;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|y_t1|1 |109 |
===================================
Outputs & filters:
-------------------------------------
0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter([y_t1.c2 = ?]),
access([y_t1.c2], [y_t1.c1], [y_t1.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([y_t1.c1]), range(MIN ; MAX)always true
*************** Case 698(end) **************
*************** Case 699 ***************
SQL: select /*+ index(y_t1 y_t1_i1) */ * from y_t1 where c2=10 order by c1;
=============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------
|0 |SORT | |1 |122 |
|1 | TABLE SCAN|y_t1(y_t1_i1)|1 |121 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter(nil), sort_keys([y_t1.c1, ASC])
1 - output([y_t1.c2], [y_t1.c1], [y_t1.c3]), filter([y_t1.c2 = ?]),
access([y_t1.c2], [y_t1.c1], [y_t1.c3]), partitions(p0),
is_index_back=true, filter_before_indexback[true],
range_key([y_t1.c2], [y_t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 699(end) **************
*************** Case 700 ***************
SQL: select /*+ index(y_t1 y_t1_i1) */ * from y_t1 where c2='10' order by c1;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|y_t1(y_t1_i1)|100 |612 |
============================================
Outputs & filters:
-------------------------------------
0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter(nil),
access([y_t1.c2], [y_t1.c1], [y_t1.c3]), partitions(p0),
is_index_back=true,
range_key([y_t1.c2], [y_t1.c1]), range(10,MIN ; 10,MAX),
range_cond([y_t1.c2 = ?])
*************** Case 700(end) **************
*************** Case 701 ***************
SQL: select /*+ index(y_t1 y_t1_i1) */ * from y_t1 where c2=c1 order by c1;
=============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------
|0 |SORT | |1 |119 |
|1 | TABLE SCAN|y_t1(y_t1_i1)|1 |118 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter(nil), sort_keys([y_t1.c1, ASC])
1 - output([y_t1.c2], [y_t1.c1], [y_t1.c3]), filter([y_t1.c2 = y_t1.c1]),
access([y_t1.c2], [y_t1.c1], [y_t1.c3]), partitions(p0),
is_index_back=true, filter_before_indexback[true],
range_key([y_t1.c2], [y_t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 701(end) **************
*************** Case 702 ***************
SQL: select * from y_t1 where c2=c1 order by c1, c2;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|y_t1|1 |109 |
===================================
Outputs & filters:
-------------------------------------
0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter([y_t1.c2 = y_t1.c1]),
access([y_t1.c2], [y_t1.c1], [y_t1.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([y_t1.c1]), range(MIN ; MAX)always true
*************** Case 702(end) **************
*************** Case 703 ***************
SQL: select /*+ index(y_t1 y_t1_i1) */ * from y_t1 where c2=c1 order by c1, c2;
=============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------
|0 |SORT | |1 |119 |
|1 | TABLE SCAN|y_t1(y_t1_i1)|1 |118 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter(nil), sort_keys([y_t1.c1, ASC])
1 - output([y_t1.c2], [y_t1.c1], [y_t1.c3]), filter([y_t1.c2 = y_t1.c1]),
access([y_t1.c2], [y_t1.c1], [y_t1.c3]), partitions(p0),
is_index_back=true, filter_before_indexback[true],
range_key([y_t1.c2], [y_t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 703(end) **************
*************** Case 704 ***************
SQL: select /*+ index(y_t1 y_t1_i2) */ * from y_t1 where c3=c1 order by c1, c3;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|y_t1(y_t1_i2)|1 |118 |
============================================
Outputs & filters:
-------------------------------------
0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter([y_t1.c3 = y_t1.c1]),
access([y_t1.c3], [y_t1.c1], [y_t1.c2]), partitions(p0),
is_index_back=true, filter_before_indexback[true],
range_key([y_t1.c3], [y_t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 704(end) **************
*************** Case 705 ***************
SQL: select /*+ index(y_t1 y_t1_i2) */ * from y_t1 where c3=10 order by c1;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|y_t1(y_t1_i2)|100 |612 |
============================================
Outputs & filters:
-------------------------------------
0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter(nil),
access([y_t1.c3], [y_t1.c1], [y_t1.c2]), partitions(p0),
is_index_back=true,
range_key([y_t1.c3], [y_t1.c1]), range(10,MIN ; 10,MAX),
range_cond([y_t1.c3 = ?])
*************** Case 705(end) **************
*************** Case 706 ***************
SQL: select /*+ index(y_t1 y_t1_i2) */ * from y_t1 where c3='10' order by c1;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|y_t1(y_t1_i2)|100 |612 |
============================================
Outputs & filters:
-------------------------------------
0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter(nil),
access([y_t1.c3], [y_t1.c1], [y_t1.c2]), partitions(p0),
is_index_back=true,
range_key([y_t1.c3], [y_t1.c1]), range(10,MIN ; 10,MAX),
range_cond([y_t1.c3 = ?])
*************** Case 706(end) **************
*************** Case 707 ***************
SQL: select /*+ index(y_t1 y_t1_i2) */ * from y_t1 where c3=c1 order by c1;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|y_t1(y_t1_i2)|1 |118 |
============================================
Outputs & filters:
-------------------------------------
0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter([y_t1.c3 = y_t1.c1]),
access([y_t1.c3], [y_t1.c1], [y_t1.c2]), partitions(p0),
is_index_back=true, filter_before_indexback[true],
range_key([y_t1.c3], [y_t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 707(end) **************
*************** Case 708 ***************
SQL: select a from y_t3 where a = 'A' collate utf8mb4_general_ci order by a;
====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------
|0 |SORT | |1 |142 |
|1 | TABLE SCAN|y_t3|1 |141 |
====================================
Outputs & filters:
-------------------------------------
0 - output([y_t3.a]), filter(nil), sort_keys([y_t3.a, ASC])
1 - output([y_t3.a]), filter([y_t3.a = ?]),
access([y_t3.a]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([y_t3.__pk_increment], [y_t3.__pk_cluster_id], [y_t3.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 708(end) **************
*************** Case 709 ***************
SQL: select * from hint.t1 group by b having (select b from hint.t2 limit 1);
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |HASH GROUP BY | |50 |192 |
|1 | SUBPLAN FILTER| |50 |140 |
|2 | TABLE SCAN |t1 |100 |90 |
|3 | TABLE SCAN |t2 |1 |36 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t1.a], [t1.b]), filter(nil),
group([t1.b]), agg_func(nil)
1 - output([t1.a], [t1.b]), filter([?]),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
2 - output([t1.a], [t1.b]), filter(nil),
access([t1.a], [t1.b]), partitions(p0),
is_index_back=false,
range_key([t1.a]), range(MIN ; MAX)always true
3 - output([t2.b]), filter(nil),
access([t2.b]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t2.a]), range(MIN ; MAX)always true
*************** Case 709(end) **************
*************** Case 710 ***************
SQL: select * from hint.t1 group by b having (select b from hint.t2 limit 1) = 1;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |HASH GROUP BY | |50 |192 |
|1 | SUBPLAN FILTER| |50 |140 |
|2 | TABLE SCAN |t1 |100 |90 |
|3 | TABLE SCAN |t2 |1 |36 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t1.a], [t1.b]), filter(nil),
group([t1.b]), agg_func(nil)
1 - output([t1.a], [t1.b]), filter([?]),
exec_params_(nil), onetime_exprs_([subquery(1) = ?]), init_plan_idxs_(nil)
2 - output([t1.a], [t1.b]), filter(nil),
access([t1.a], [t1.b]), partitions(p0),
is_index_back=false,
range_key([t1.a]), range(MIN ; MAX)always true
3 - output([t2.b]), filter(nil),
access([t2.b]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t2.a]), range(MIN ; MAX)always true
*************** Case 710(end) **************
*************** Case 711 ***************
SQL: select * from hint.t1 group by b having (select b from hint.t2 limit 1) = 1 or sum(b) = 1;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |5 |250 |
|1 | HASH GROUP BY| |100 |200 |
|2 | TABLE SCAN |t1 |100 |90 |
|3 | TABLE SCAN |t2 |1 |36 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t1.a], [t1.b]), filter([? OR T_FUN_SUM(t1.b) = ?]),
exec_params_(nil), onetime_exprs_([subquery(1) = ?]), init_plan_idxs_(nil)
1 - output([t1.a], [t1.b], [T_FUN_SUM(t1.b)]), filter(nil),
group([t1.b]), agg_func([T_FUN_SUM(t1.b)])
2 - output([t1.a], [t1.b]), filter(nil),
access([t1.a], [t1.b]), partitions(p0),
is_index_back=false,
range_key([t1.a]), range(MIN ; MAX)always true
3 - output([t2.b]), filter(nil),
access([t2.b]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t2.a]), range(MIN ; MAX)always true
*************** Case 711(end) **************
*************** Case 712 ***************
SQL: select c1 from t0 where pk is null;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t0 |100 |90 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t0.c1]), filter(nil), startup_filter([0]),
access([t0.c1]), partitions(p0),
is_index_back=false,
range_key([t0.pk]), range(MIN ; MAX)always true
*************** Case 712(end) **************
*************** Case 713 ***************
SQL: select c1 from t0 where pk <=> null;
==================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------
|0 |TABLE GET|t0 |1 |52 |
==================================
Outputs & filters:
-------------------------------------
0 - output([t0.c1]), filter(nil),
access([t0.c1]), partitions(p0),
is_index_back=false,
range_key([t0.pk]), range[NULL ; NULL],
range_cond([t0.pk <=> ?])
*************** Case 713(end) **************
*************** Case 714 ***************
SQL: select c1 from t4 where c1 <=> null and c2 <=> null;
===========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------
|0 |TABLE GET|t4(idx_t4_c2)|1 |52 |
===========================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c1]), range[NULL,NULL ; NULL,NULL],
range_cond([t4.c1 <=> ?], [t4.c2 <=> ?])
*************** Case 714(end) **************
*************** Case 715 ***************
SQL: select c1 from t4 where c1 <=> 1 and c2 <=> 1;
==================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------
|0 |TABLE GET|t4 |1 |52 |
==================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range[1,1 ; 1,1],
range_cond([t4.c1 <=> ?], [t4.c2 <=> ?])
*************** Case 715(end) **************
*************** Case 716 ***************
SQL: select c1 from t4 where c1 is null and c2 <=> null;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|t4(idx_t4_c2)|100 |54 |
============================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1]), filter(nil), startup_filter([0]),
access([t4.c1]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 716(end) **************
*************** Case 717 ***************
SQL: select c1 from (select c1, c2 from t1 limit 1) ta group by ta.c1;
======================================================
|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), 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,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 717(end) **************
*************** Case 718 ***************
SQL: select * from (select count(c1) from t1) ta;
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |522 |
|1 | PX COORDINATOR | |1 |426 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |426 |
|3 | MERGE GROUP BY | |1 |426 |
|4 | PX PARTITION ITERATOR| |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1))])
1 - output([T_FUN_COUNT(t1.c1)]), filter(nil)
2 - output([T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
3 - output([T_FUN_COUNT(t1.c1)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(t1.c1)])
4 - output([t1.c1]), filter(nil),
force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 718(end) **************
*************** Case 719 ***************
SQL: select c1 from (select c1, c2 from (select * from t4 limit 10)ta limit 5) ta1 group by ta1.c1;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |MERGE GROUP BY| |5 |39 |
|1 | SUBPLAN SCAN |ta1 |5 |38 |
|2 | TABLE SCAN |t4 |5 |37 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([ta1.c1]), filter(nil),
group([ta1.c1]), agg_func(nil)
1 - output([ta1.c1]), filter(nil),
access([ta1.c1])
2 - output([t4.c1]), filter(nil),
access([t4.c1]), partitions(p0),
limit(?), offset(nil),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 719(end) **************
*************** Case 720 ***************
SQL: select tb.a from (select a, b from (select * from t12 limit 10)ta limit 5) ta1 join (select a, b from t13 limit 10) tb on ta1.a = tb.a;
======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
--------------------------------------
|0 |MERGE JOIN | |5 |81 |
|1 | SUBPLAN SCAN|ta1 |5 |38 |
|2 | TABLE SCAN |t12 |5 |37 |
|3 | SUBPLAN SCAN|tb |10 |39 |
|4 | TABLE SCAN |t13 |10 |38 |
======================================
Outputs & filters:
-------------------------------------
0 - output([tb.a]), filter(nil),
equal_conds([ta1.a = tb.a]), other_conds(nil)
1 - output([ta1.a]), filter(nil),
access([ta1.a])
2 - output([t12.a]), filter(nil),
access([t12.a]), partitions(p0),
limit(?), offset(nil),
is_index_back=false,
range_key([t12.a]), range(MIN ; MAX)always true
3 - output([tb.a]), filter(nil),
access([tb.a])
4 - output([t13.a]), filter(nil),
access([t13.a]), partitions(p0),
limit(10), offset(nil),
is_index_back=false,
range_key([t13.a]), range(MIN ; MAX)always true
*************** Case 720(end) **************
*************** Case 721 ***************
SQL: select t13.a from (select * from t12) ta, t13;
===================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |10000 |7270|
|1 | TABLE SCAN |t13 |100 |88 |
|2 | MATERIAL | |100 |106 |
|3 | TABLE SCAN |t12 |100 |88 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t13.a]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t13.a]), filter(nil),
access([t13.a]), partitions(p0),
is_index_back=false,
range_key([t13.a]), range(MIN ; MAX)always true
2 - output([1]), filter(nil)
3 - output([1]), filter(nil),
access([t12.a]), partitions(p0),
is_index_back=false,
range_key([t12.a]), range(MIN ; MAX)always true
*************** Case 721(end) **************
*************** Case 722 ***************
SQL: select ta.a from (select * from t12) ta where ta.a > (select t13.a from t13 where t13.b < ta.b limit 1) ;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |34 |3888|
|1 | TABLE SCAN |t12 |100 |90 |
|2 | TABLE SCAN |t13 |1 |38 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t12.a]), filter([t12.a > subquery(1)]),
exec_params_([t12.b]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t12.a], [t12.b]), filter(nil),
access([t12.a], [t12.b]), partitions(p0),
is_index_back=false,
range_key([t12.a]), range(MIN ; MAX)always true
2 - output([t13.a]), filter([t13.b < ?]),
access([t13.b], [t13.a]), partitions(p0),
limit(1), offset(nil),
is_index_back=false, filter_before_indexback[false],
range_key([t13.a]), range(MIN ; MAX)always true
*************** Case 722(end) **************
*************** Case 723 ***************
SQL: select (select min(c1) from agg_t2) from agg_t1;
===========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------
|0 |SUBPLAN FILTER | |1 |209 |
|1 | SCALAR GROUP BY| |1 |107 |
|2 | TABLE SCAN |agg_t1|100 |88 |
|3 | TABLE SCAN |agg_t2|100 |88 |
===========================================
Outputs & filters:
-------------------------------------
0 - output([subquery(1)]), filter(nil),
exec_params_([T_FUN_MIN(agg_t1.c1)]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([T_FUN_MIN(agg_t1.c1)]), filter(nil),
group(nil), agg_func([T_FUN_MIN(agg_t1.c1)])
2 - output([agg_t1.c1]), filter(nil),
access([agg_t1.c1]), partitions(p0),
is_index_back=false,
range_key([agg_t1.c1]), range(MIN ; MAX)always true
3 - output([?]), filter(nil),
access([agg_t2.c2]), partitions(p0),
is_index_back=false,
range_key([agg_t2.c2]), range(MIN ; MAX)always true
*************** Case 723(end) **************
*************** Case 724 ***************
SQL: select * from (select c1 from t1 order by c1) ta limit 1;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |LIMIT | |1 |37 |
|1 | PX COORDINATOR MERGE SORT | |1 |37 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |37 |
|3 | LIMIT | |1 |37 |
|4 | TOP-N SORT | |1 |37 |
|5 | PX PARTITION ITERATOR | |1 |36 |
|6 | TABLE SCAN |t1 |1 |36 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1]), filter(nil), limit(1), 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), limit(1), offset(nil)
4 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), topn(1), 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(1), offset(nil),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 724(end) **************
*************** Case 725 ***************
SQL: select * from t4,t7 order by t4.c3;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |10000 |7400|
|1 | TABLE SCAN |t4(idx_t4_c3)|100 |92 |
|2 | MATERIAL | |100 |127 |
|3 | TABLE SCAN |t7 |100 |90 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil),
access([t4.c1], [t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c3], [t4.c1], [t4.c2]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([t7.c1], [t7.c2]), filter(nil)
3 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 725(end) **************
*************** Case 726 ***************
SQL: select /*+use_nl(tg1 tg2)*/* from tg1, tg1 tg2 where tg1.c1=tg2.c1 and tg1.c2=1 and tg1.c3=1 and tg2.c2=2 and tg2.c3=2;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |NESTED-LOOP JOIN| |1 |131 |
|1 | TABLE SCAN |tg1 |1 |130 |
|2 | TABLE GET |tg2 |1 |36 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5], [tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5]), filter(nil),
conds(nil), nl_params_([tg1.c1]), batch_join=true
1 - output([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5]), filter([tg1.c2 = ?], [tg1.c3 = ?]),
access([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false,false],
range_key([tg1.c1], [tg1.c2], [tg1.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5]), filter(nil),
access([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5]), partitions(p0),
is_index_back=false,
range_key([tg2.c1], [tg2.c2], [tg2.c3]), range(MIN ; MAX),
range_cond([tg2.c2 = ?], [tg2.c3 = ?], [? = tg2.c1])
*************** Case 726(end) **************
*************** Case 727 ***************
SQL: select /*+use_nl(tg1 tg2)*/* from tg1, tg1 tg2 where tg1.c1=tg2.c1 and tg1.c2=1 and tg1.c3=1 and tg2.c2=2 and tg2.c3=2 and tg1.c2 = tg2.c2;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |NESTED-LOOP JOIN| |1 |147 |
|1 | TABLE SCAN |tg1 |1 |147 |
|2 | TABLE GET |tg2 |1 |36 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5], [tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5]), filter(nil),
conds(nil), nl_params_([tg1.c1]), batch_join=true
1 - output([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5]), filter([tg1.c2 = ?], [tg1.c3 = ?], [tg1.c2 = ?]),
access([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false,false,false],
range_key([tg1.c1], [tg1.c2], [tg1.c3]), range(MAX,MAX,MAX ; MIN,MIN,MIN)always false
2 - output([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5]), filter(nil),
access([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5]), partitions(p0),
is_index_back=false,
range_key([tg2.c1], [tg2.c2], [tg2.c3]), range(MIN ; MAX),
range_cond([tg2.c2 = ?], [tg2.c3 = ?], [tg2.c2 = ?], [? = tg2.c1])
*************** Case 727(end) **************
*************** Case 728 ***************
SQL: select /*+use_nl(tg1 tg2)*/* from tg1, tg1 tg2 where tg1.c1=tg2.c1 and tg1.c2=1 and tg1.c3 = 1 and tg2.c2=1 and tg2.c3=1 or tg2.c1=2 and tg2.c2=2 and tg2.c3 = 4 and tg1.c1 = 1 and tg1.c2 = 2 and tg1.c3 = 4;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |NESTED-LOOP JOIN| |1 |210 |
|1 | TABLE SCAN |tg1 |1 |105 |
|2 | MATERIAL | |1 |105 |
|3 | TABLE SCAN |tg2 |1 |105 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5], [tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5]), filter(nil),
conds([(T_OP_AND, tg1.c1 = tg2.c1, tg1.c2 = ?, tg1.c3 = ?, tg2.c2 = ?, tg2.c3 = ?) OR (T_OP_AND, tg2.c1 = ?, tg2.c2 = ?, tg2.c3 = ?, tg1.c1 = ?, tg1.c2 = ?, tg1.c3 = ?)]), nl_params_(nil), batch_join=false
1 - output([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c1 = ?], [tg1.c2 = ?], [tg1.c3 = ?]), filter([tg1.c2 = ? AND tg1.c3 = ? OR (T_OP_AND, tg1.c1 = ?, tg1.c2 = ?, tg1.c3 = ?)]),
access([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tg1.c1], [tg1.c2], [tg1.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5], [tg2.c2 = ?], [tg2.c3 = ?], [tg2.c1 = ?], [tg2.c2 = ?], [tg2.c3 = ?]), filter(nil)
3 - output([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5], [tg2.c2 = ?], [tg2.c3 = ?], [tg2.c1 = ?], [tg2.c2 = ?], [tg2.c3 = ?]), filter([tg2.c2 = ? AND tg2.c3 = ? OR (T_OP_AND, tg2.c1 = ?, tg2.c2 = ?, tg2.c3 = ?)]),
access([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tg2.c1], [tg2.c2], [tg2.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 728(end) **************
*************** Case 729 ***************
SQL: select /*+use_nl(tg2 tg1)*/* from tg2,tg1 where tg1.c1=tg2.c1 and tg1.c2=1 and tg1.c3=1 or tg1.c2=2 and tg1.c3=2 and tg1.c1 = 2 and tg2.c1 = 3 and tg2.c2 = 3 and tg2.c3 = 3;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |NESTED-LOOP JOIN| |1 |202 |
|1 | TABLE SCAN |tg2 |100 |97 |
|2 | MATERIAL | |1 |105 |
|3 | TABLE SCAN |tg1 |1 |105 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5], [tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5]), filter(nil),
conds([(T_OP_AND, tg1.c1 = tg2.c1, tg1.c2 = ?, tg1.c3 = ?) OR (T_OP_AND, tg1.c2 = ?, tg1.c3 = ?, tg1.c1 = ?, tg2.c1 = ?, tg2.c2 = ?, tg2.c3 = ?)]), nl_params_(nil), batch_join=false
1 - output([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5]), filter(nil),
access([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5]), partitions(p0),
is_index_back=false,
range_key([tg2.c1], [tg2.c2], [tg2.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c1 = ?]), filter(nil)
3 - output([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c1 = ?]), filter([tg1.c2 = ? AND tg1.c3 = ? OR (T_OP_AND, tg1.c2 = ?, tg1.c3 = ?, tg1.c1 = ?)]),
access([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tg1.c1], [tg1.c2], [tg1.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 729(end) **************
*************** Case 730 ***************
SQL: select /*+use_nl(tg1 tg2)*/* from tg2,tg1 where tg1.c1=tg2.c1 and tg1.c2=1 and tg1.c3=1 or tg1.c2=2 and tg1.c3=2 and tg1.c1 = 2 and tg2.c1 = 3 and tg2.c2 = 3 and tg2.c3 = 3 or tg1.c2=3 and tg1.c3=3 and tg1.c1 = 3 and tg2.c1 = 4 and tg2.c2 = 4 and tg2.c3 = 4;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |NESTED-LOOP JOIN| |1 |202 |
|1 | TABLE SCAN |tg2 |100 |97 |
|2 | MATERIAL | |1 |105 |
|3 | TABLE SCAN |tg1 |1 |105 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5], [tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5]), filter(nil),
conds([(T_OP_OR, (T_OP_AND, tg1.c1 = tg2.c1, tg1.c2 = ?, tg1.c3 = ?), (T_OP_AND, tg1.c2 = ?, tg1.c3 = ?, tg1.c1 = ?, tg2.c1 = ?, tg2.c2 = ?, tg2.c3 = ?), (T_OP_AND, tg1.c2 = ?, tg1.c3 = ?, tg1.c1 = ?, tg2.c1 = ?, tg2.c2 = ?, tg2.c3 = ?))]), nl_params_(nil), batch_join=false
1 - output([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5]), filter(nil),
access([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5]), partitions(p0),
is_index_back=false,
range_key([tg2.c1], [tg2.c2], [tg2.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c1 = ?], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c1 = ?]), filter(nil)
3 - output([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c1 = ?], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c1 = ?]), filter([(T_OP_OR, tg1.c2 = ? AND tg1.c3 = ?, (T_OP_AND, tg1.c2 = ?, tg1.c3 = ?, tg1.c1 = ?), (T_OP_AND, tg1.c2 = ?, tg1.c3 = ?, tg1.c1 = ?))]),
access([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tg1.c1], [tg1.c2], [tg1.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 730(end) **************
*************** Case 731 ***************
SQL: select /*+use_nl(tg1 tg2)*/* from tg2,tg1 where tg1.c1=tg2.c1 and tg1.c2=1 and tg1.c3=1 or tg1.c2=2 and tg1.c3=2 and tg1.c1 = 2 and tg2.c1 = 3 and tg2.c2 = 3 and tg2.c3 = 3 or tg1.c2=3 and tg1.c3=3 and tg1.c1 = 3 and tg2.c1 = 4 and tg2.c2 = 4 and tg2.c3 = 4;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |NESTED-LOOP JOIN| |1 |202 |
|1 | TABLE SCAN |tg2 |100 |97 |
|2 | MATERIAL | |1 |105 |
|3 | TABLE SCAN |tg1 |1 |105 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5], [tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5]), filter(nil),
conds([(T_OP_OR, (T_OP_AND, tg1.c1 = tg2.c1, tg1.c2 = ?, tg1.c3 = ?), (T_OP_AND, tg1.c2 = ?, tg1.c3 = ?, tg1.c1 = ?, tg2.c1 = ?, tg2.c2 = ?, tg2.c3 = ?), (T_OP_AND, tg1.c2 = ?, tg1.c3 = ?, tg1.c1 = ?, tg2.c1 = ?, tg2.c2 = ?, tg2.c3 = ?))]), nl_params_(nil), batch_join=false
1 - output([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5]), filter(nil),
access([tg2.c1], [tg2.c2], [tg2.c3], [tg2.c4], [tg2.c5]), partitions(p0),
is_index_back=false,
range_key([tg2.c1], [tg2.c2], [tg2.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
2 - output([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c1 = ?], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c1 = ?]), filter(nil)
3 - output([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c1 = ?], [tg1.c2 = ?], [tg1.c3 = ?], [tg1.c1 = ?]), filter([(T_OP_OR, tg1.c2 = ? AND tg1.c3 = ?, (T_OP_AND, tg1.c2 = ?, tg1.c3 = ?, tg1.c1 = ?), (T_OP_AND, tg1.c2 = ?, tg1.c3 = ?, tg1.c1 = ?))]),
access([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tg1.c1], [tg1.c2], [tg1.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 731(end) **************
*************** Case 732 ***************
SQL: select /*+ use_nl(t1, t2) */ t2.c2, t2.c3 from (select * from y_t4 t where t.c1=100 order by t.c2 DESC, t.c3 DESC limit 1) t1 join y_t4 t2 on t1.c2=t2.c2 and t1.c3=t2.c3 order by t2.c2 DESC, t2.c3 DESC;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |SORT | |1 |168 |
|1 | NESTED-LOOP JOIN| |1 |166 |
|2 | TABLE SCAN |t2 |100 |92 |
|3 | MATERIAL | |1 |37 |
|4 | SUBPLAN SCAN |t1 |1 |37 |
|5 | TABLE SCAN |t(Reverse)|1 |36 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c2, DESC], [t2.c3, DESC])
1 - output([t2.c2], [t2.c3]), filter(nil),
conds([t1.c2 = t2.c2], [t1.c3 = t2.c3]), nl_params_(nil), batch_join=false
2 - output([t2.c2], [t2.c3]), filter(nil),
access([t2.c2], [t2.c3]), partitions(p0),
is_index_back=false,
range_key([t2.c1], [t2.c2], [t2.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
3 - output([t1.c2], [t1.c3]), filter(nil)
4 - output([t1.c2], [t1.c3]), filter(nil),
access([t1.c2], [t1.c3])
5 - output([t.c2], [t.c3]), filter(nil),
access([t.c2], [t.c3]), partitions(p0),
limit(1), offset(nil),
is_index_back=false,
range_key([t.c1], [t.c2], [t.c3]), range(100,MIN,MIN ; 100,MAX,MAX),
range_cond([t.c1 = ?])
*************** Case 732(end) **************
*************** Case 733 ***************
SQL: select count(1) from (select * from t1 order by c2 limit 10) t;
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |55 |
|1 | SUBPLAN SCAN |t |10 |53 |
|2 | LIMIT | |10 |52 |
|3 | PX COORDINATOR MERGE SORT | |10 |50 |
|4 | EXCHANGE OUT DISTR |:EX10000 |10 |49 |
|5 | LIMIT | |10 |49 |
|6 | TOP-N SORT | |10 |48 |
|7 | PX PARTITION ITERATOR | |10 |38 |
|8 | TABLE SCAN |t1(idx_t1_c2)|10 |38 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(?)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(?)])
1 - output([1]), filter(nil),
access(nil)
2 - output([1]), filter(nil), limit(10), offset(nil)
3 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
4 - output([t1.c2]), filter(nil), dop=1
5 - output([t1.c2]), filter(nil), limit(10), offset(nil)
6 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(10), local merge sort
7 - output([t1.c2]), filter(nil),
force partition granule, asc.
8 - output([t1.c2]), filter(nil),
access([t1.c2]), partitions(p[0-4]),
limit(10), offset(nil),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 733(end) **************
*************** Case 734 ***************
SQL: select count(1) from (select c1, c2, (select c3 from t2) as ca from t1 order by ca limit 10) t;
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |313 |
|1 | SUBPLAN SCAN |t |10 |311 |
|2 | LIMIT | |10 |310 |
|3 | SUBPLAN FILTER | |10 |308 |
|4 | PX COORDINATOR | |10 |38 |
|5 | EXCHANGE OUT DISTR |:EX10000|10 |38 |
|6 | PX PARTITION ITERATOR| |10 |38 |
|7 | TABLE SCAN |t1 |10 |38 |
|8 | PX COORDINATOR | |300 |269 |
|9 | EXCHANGE OUT DISTR |:EX20000|300 |198 |
|10| PX PARTITION ITERATOR| |300 |198 |
|11| TABLE SCAN |t2 |300 |198 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(?)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(?)])
1 - output([1]), filter(nil),
access(nil)
2 - output([1]), filter(nil), limit(10), offset(nil)
3 - output([1]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
4 - output([1]), filter(nil)
5 - output([1]), filter(nil), dop=1
6 - output([1]), filter(nil),
force partition granule, asc.
7 - output([1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
8 - output([t2.c3]), filter(nil)
9 - output([t2.c3]), filter(nil), dop=1
10 - output([t2.c3]), filter(nil),
force partition granule, asc.
11 - output([t2.c3]), filter(nil),
access([t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 734(end) **************
*************** Case 735 ***************
SQL: select distinct c3, c2 from t4;
===================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------
|0 |MERGE DISTINCT| |100 |123 |
|1 | TABLE SCAN |t4(idx_t4_c2_c3)|100 |92 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t4.c3], [t4.c2]), filter(nil),
distinct([t4.c2], [t4.c3])
1 - output([t4.c3], [t4.c2]), filter(nil),
access([t4.c3], [t4.c2]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 735(end) **************
*************** Case 736 ***************
SQL: select count(c2) from t4 group by c3, c2;
===================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------
|0 |MERGE GROUP BY| |100 |128 |
|1 | TABLE SCAN |t4(idx_t4_c2_c3)|100 |92 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(t4.c2)]), filter(nil),
group([t4.c2], [t4.c3]), agg_func([T_FUN_COUNT(t4.c2)])
1 - output([t4.c2], [t4.c3]), filter(nil),
access([t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 736(end) **************
*************** Case 737 ***************
SQL: select count(c2) from t4 group by c3, c1, c2;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|t4(idx_t4_c2)|100 |54 |
============================================
Outputs & filters:
-------------------------------------
0 - output([CASE WHEN (T_OP_IS_NOT, t4.c2, NULL, 0) THEN 1 ELSE 0 END]), filter(nil),
access([t4.c2]), partitions(p0),
is_index_back=false,
range_key([t4.c2], [t4.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 737(end) **************
*************** Case 738 ***************
SQL: select count(c2) from y_t4 group by c2, c1;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |MERGE GROUP BY| |100 |128 |
|1 | TABLE SCAN |y_t4|100 |92 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(y_t4.c2)]), filter(nil),
group([y_t4.c1], [y_t4.c2]), agg_func([T_FUN_COUNT(y_t4.c2)])
1 - output([y_t4.c2], [y_t4.c1]), filter(nil),
access([y_t4.c2], [y_t4.c1]), partitions(p0),
is_index_back=false,
range_key([y_t4.c1], [y_t4.c2], [y_t4.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 738(end) **************
*************** Case 739 ***************
SQL: select count(c4) from tg1 group by c4, c3, c5, c2, c1;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|tg1 |100 |95 |
===================================
Outputs & filters:
-------------------------------------
0 - output([CASE WHEN (T_OP_IS_NOT, tg1.c4, NULL, 0) THEN 1 ELSE 0 END]), filter(nil),
access([tg1.c4]), partitions(p0),
is_index_back=false,
range_key([tg1.c1], [tg1.c2], [tg1.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 739(end) **************
*************** Case 740 ***************
SQL: select distinct c3, c2, c4, c5, c1 from tg1;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|tg1 |100 |97 |
===================================
Outputs & filters:
-------------------------------------
0 - output([tg1.c3], [tg1.c2], [tg1.c4], [tg1.c5], [tg1.c1]), filter(nil),
access([tg1.c3], [tg1.c2], [tg1.c4], [tg1.c5], [tg1.c1]), partitions(p0),
is_index_back=false,
range_key([tg1.c1], [tg1.c2], [tg1.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 740(end) **************
*************** Case 741 ***************
SQL: select distinct b from y_t5 where (a2 >= 'b') and (b = 'a');
=============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------
|0 |TABLE SCAN|y_t5(idx_t1_1)|1 |155 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([y_t5.b]), filter([y_t5.a2 >= ?], [y_t5.b = ?]),
access([y_t5.a2], [y_t5.b]), partitions(p0),
limit(1), offset(nil),
is_index_back=false, filter_before_indexback[false,false],
range_key([y_t5.a1], [y_t5.a2], [y_t5.b], [y_t5.c], [y_t5.__pk_increment], [y_t5.__pk_cluster_id], [y_t5.__pk_partition_id]), range(MIN,MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX,MAX)always true
*************** Case 741(end) **************
*************** Case 742 ***************
SQL: select distinct c2 from y_t6 where c1=c2;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|y_t6(y_t6_i1)|1 |63 |
============================================
Outputs & filters:
-------------------------------------
0 - output([y_t6.c2]), filter([y_t6.c1 = y_t6.c2]),
access([y_t6.c1], [y_t6.c2]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([y_t6.c2], [y_t6.c3], [y_t6.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 742(end) **************
*************** Case 743 ***************
SQL: select * from tt1 where c2 like "a%";
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|tt1 |100 |137 |
===================================
Outputs & filters:
-------------------------------------
0 - output([tt1.c1], [tt1.c2]), filter([(T_OP_LIKE, tt1.c2, 'a%', '\\')]),
access([tt1.c2], [tt1.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tt1.c1]), range(MIN ; MAX)always true
*************** Case 743(end) **************
*************** Case 744 ***************
SQL: select * from tt1 where c2 like "%a";
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|tt1 |34 |137 |
===================================
Outputs & filters:
-------------------------------------
0 - output([tt1.c1], [tt1.c2]), filter([(T_OP_LIKE, tt1.c2, '%a', '\\')]),
access([tt1.c2], [tt1.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tt1.c1]), range(MIN ; MAX)always true
*************** Case 744(end) **************
*************** Case 745 ***************
SQL: select * from tt1 where c2 like "ab%";
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|tt1 |5 |137 |
===================================
Outputs & filters:
-------------------------------------
0 - output([tt1.c1], [tt1.c2]), filter([(T_OP_LIKE, tt1.c2, 'ab%', '\\')]),
access([tt1.c2], [tt1.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tt1.c1]), range(MIN ; MAX)always true
*************** Case 745(end) **************
*************** Case 746 ***************
SQL: select * from tt1 where c2 between "aa" and "ab";
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|tt1 |5 |137 |
===================================
Outputs & filters:
-------------------------------------
0 - output([tt1.c1], [tt1.c2]), filter([(T_OP_BTW, tt1.c2, ?, ?)]),
access([tt1.c2], [tt1.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tt1.c1]), range(MIN ; MAX)always true
*************** Case 746(end) **************
*************** Case 747 ***************
SQL: select * from tt1 where c2 between "aa" and "ai";
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|tt1 |33 |137 |
===================================
Outputs & filters:
-------------------------------------
0 - output([tt1.c1], [tt1.c2]), filter([(T_OP_BTW, tt1.c2, ?, ?)]),
access([tt1.c2], [tt1.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tt1.c1]), range(MIN ; MAX)always true
*************** Case 747(end) **************
*************** Case 748 ***************
SQL: select * from tt1 where c2 not between "aa" and "ab";
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|tt1 |100 |137 |
===================================
Outputs & filters:
-------------------------------------
0 - output([tt1.c1], [tt1.c2]), filter([(T_OP_NOT_BTW, tt1.c2, ?, ?)]),
access([tt1.c2], [tt1.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tt1.c1]), range(MIN ; MAX)always true
*************** Case 748(end) **************
*************** Case 749 ***************
SQL: select * from tt1 where c2 not between "aa" and "ai";
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|tt1 |71 |137 |
===================================
Outputs & filters:
-------------------------------------
0 - output([tt1.c1], [tt1.c2]), filter([(T_OP_NOT_BTW, tt1.c2, ?, ?)]),
access([tt1.c2], [tt1.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tt1.c1]), range(MIN ; MAX)always true
*************** Case 749(end) **************
*************** Case 750 ***************
SQL: select * from tt1 where "ag" between c2 and "ai";
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|tt1 |26 |137 |
===================================
Outputs & filters:
-------------------------------------
0 - output([tt1.c1], [tt1.c2]), filter([(T_OP_BTW, ?, tt1.c2, ?)]),
access([tt1.c2], [tt1.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tt1.c1]), range(MIN ; MAX)always true
*************** Case 750(end) **************
*************** Case 751 ***************
SQL: select * from tt1 where "ag" between "aa" and "c2";
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|tt1 |100 |90 |
===================================
Outputs & filters:
-------------------------------------
0 - output([tt1.c1], [tt1.c2]), filter(nil), startup_filter([1]),
access([tt1.c1], [tt1.c2]), partitions(p0),
is_index_back=false,
range_key([tt1.c1]), range(MIN ; MAX)always true
*************** Case 751(end) **************
*************** Case 752 ***************
SQL: select * from tt1 where 'ag' not between c1 and 'ai';
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|tt1 |34 |137 |
===================================
Outputs & filters:
-------------------------------------
0 - output([tt1.c1], [tt1.c2]), filter([(T_OP_NOT_BTW, ?, tt1.c1, ?)]),
access([tt1.c1], [tt1.c2]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tt1.c1]), range(MIN ; MAX)always true
*************** Case 752(end) **************
*************** Case 753 ***************
SQL: select /*+index(t_normal_idx idx)*/* from t_normal_idx order by c3 limit 1;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN| |1 |124 |
|1 | LIMIT | |1 |87 |
|2 | TOP-N SORT | |1 |87 |
|3 | TABLE SCAN |t_normal_idx(idx) |100 |54 |
|4 | TABLE GET |t_normal_idx_alias|1 |37 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c1], [t_normal_idx_alias.c2], [t_normal_idx.c3], [t_normal_idx_alias.c4], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), filter(nil),
conds(nil), nl_params_([t_normal_idx.c1]), batch_join=true
1 - output([t_normal_idx.c1], [t_normal_idx.c3]), filter(nil), limit(1), offset(nil)
2 - output([t_normal_idx.c1], [t_normal_idx.c3]), filter(nil), sort_keys([t_normal_idx.c3, ASC]), topn(1)
3 - output([t_normal_idx.c1], [t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c1], [t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
4 - output([t_normal_idx_alias.c2], [t_normal_idx_alias.c4], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), filter(nil),
access([t_normal_idx_alias.c2], [t_normal_idx_alias.c4], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx_alias.c1]), range(MIN ; MAX),
range_cond([t_normal_idx_alias.c1 = ?])
*************** Case 753(end) **************
*************** Case 754 ***************
SQL: select /*+index(t_normal_idx idx)*/* from t_normal_idx where c4>1 order by c3 limit 1;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN| |1 |150 |
|1 | LIMIT | |1 |114 |
|2 | TOP-N SORT | |1 |113 |
|3 | TABLE SCAN |t_normal_idx(idx) |96 |73 |
|4 | TABLE GET |t_normal_idx_alias|1 |37 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c1], [t_normal_idx_alias.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), filter(nil),
conds(nil), nl_params_([t_normal_idx.c1]), batch_join=true
1 - output([t_normal_idx.c1], [t_normal_idx.c3], [t_normal_idx.c4]), filter(nil), limit(1), offset(nil)
2 - output([t_normal_idx.c1], [t_normal_idx.c3], [t_normal_idx.c4]), filter(nil), sort_keys([t_normal_idx.c3, ASC]), topn(1)
3 - output([t_normal_idx.c4], [t_normal_idx.c1], [t_normal_idx.c3]), filter([t_normal_idx.c4 > ?]),
access([t_normal_idx.c4], [t_normal_idx.c1], [t_normal_idx.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
4 - output([t_normal_idx_alias.c2], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), filter(nil),
access([t_normal_idx_alias.c2], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx_alias.c1]), range(MIN ; MAX),
range_cond([t_normal_idx_alias.c1 = ?])
*************** Case 754(end) **************
*************** Case 755 ***************
SQL: select /*+index(t_normal_idx idx)*/* from t_normal_idx order by c2 limit 1;
================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------
|0 |TABLE SCAN|t_normal_idx(idx)|1 |89 |
================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9], [t_normal_idx.c10]), filter(nil),
access([t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9], [t_normal_idx.c10]), partitions(p0),
limit(1), offset(nil),
is_index_back=true,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
*************** Case 755(end) **************
*************** Case 756 ***************
SQL: select /*+index(t_normal_idx idx)*/* from t_normal_idx where c10>1 order by c3 limit 1;
==================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------
|0 |LIMIT | |1 |795 |
|1 | TOP-N SORT | |1 |795 |
|2 | TABLE SCAN|t_normal_idx(idx)|96 |693 |
==================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9], [t_normal_idx.c10]), filter(nil), limit(1), offset(nil)
1 - output([t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9], [t_normal_idx.c10]), filter(nil), sort_keys([t_normal_idx.c3, ASC]), topn(1)
2 - output([t_normal_idx.c10], [t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9]), filter([t_normal_idx.c10 > ?]),
access([t_normal_idx.c10], [t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9]), partitions(p0),
is_index_back=true, filter_before_indexback[false],
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
*************** Case 756(end) **************
*************** Case 757 ***************
SQL: select /*+index(t_normal_idx idx)*/c2,c9,c10 from t_normal_idx order by c3 limit 1;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN| |1 |124 |
|1 | LIMIT | |1 |87 |
|2 | TOP-N SORT | |1 |87 |
|3 | TABLE SCAN |t_normal_idx(idx) |100 |54 |
|4 | TABLE GET |t_normal_idx_alias|1 |37 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx_alias.c2], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), filter(nil),
conds(nil), nl_params_([t_normal_idx.c1]), batch_join=true
1 - output([t_normal_idx.c1]), filter(nil), limit(1), offset(nil)
2 - output([t_normal_idx.c1]), filter(nil), sort_keys([t_normal_idx.c3, ASC]), topn(1)
3 - output([t_normal_idx.c3], [t_normal_idx.c1]), filter(nil),
access([t_normal_idx.c3], [t_normal_idx.c1]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
4 - output([t_normal_idx_alias.c2], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), filter(nil),
access([t_normal_idx_alias.c2], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx_alias.c1]), range(MIN ; MAX),
range_cond([t_normal_idx_alias.c1 = ?])
*************** Case 757(end) **************
*************** Case 758 ***************
SQL: select /*+index(t_normal_idx idx)*/c1,c9 from t_normal_idx order by c3 limit 1;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN| |1 |124 |
|1 | LIMIT | |1 |87 |
|2 | TOP-N SORT | |1 |87 |
|3 | TABLE SCAN |t_normal_idx(idx) |100 |54 |
|4 | TABLE GET |t_normal_idx_alias|1 |37 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c1], [t_normal_idx_alias.c9]), filter(nil),
conds(nil), nl_params_([t_normal_idx.c1]), batch_join=true
1 - output([t_normal_idx.c1]), filter(nil), limit(1), offset(nil)
2 - output([t_normal_idx.c1]), filter(nil), sort_keys([t_normal_idx.c3, ASC]), topn(1)
3 - output([t_normal_idx.c1], [t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c1], [t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
4 - output([t_normal_idx_alias.c9]), filter(nil),
access([t_normal_idx_alias.c9]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx_alias.c1]), range(MIN ; MAX),
range_cond([t_normal_idx_alias.c1 = ?])
*************** Case 758(end) **************
*************** Case 759 ***************
SQL: select /*+index(t_normal_idx idx)*/c1,c9 from t_normal_idx order by c1 limit 1;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN| |1 |112 |
|1 | LIMIT | |1 |75 |
|2 | TOP-N SORT | |1 |75 |
|3 | TABLE SCAN |t_normal_idx(idx) |100 |52 |
|4 | TABLE GET |t_normal_idx_alias|1 |37 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c1], [t_normal_idx_alias.c9]), filter(nil),
conds(nil), nl_params_([t_normal_idx.c1]), batch_join=true
1 - output([t_normal_idx.c1]), filter(nil), limit(1), offset(nil)
2 - output([t_normal_idx.c1]), filter(nil), sort_keys([t_normal_idx.c1, ASC]), topn(1)
3 - output([t_normal_idx.c1]), filter(nil),
access([t_normal_idx.c1]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
4 - output([t_normal_idx_alias.c9]), filter(nil),
access([t_normal_idx_alias.c9]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx_alias.c1]), range(MIN ; MAX),
range_cond([t_normal_idx_alias.c1 = ?])
*************** Case 759(end) **************
*************** Case 760 ***************
SQL: select /*+index(t_normal_idx idx)*/c1,c9 from t_normal_idx order by c3 limit 1 offset 10;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN| |1 |156 |
|1 | LIMIT | |1 |119 |
|2 | TOP-N SORT | |11 |118 |
|3 | TABLE SCAN |t_normal_idx(idx) |100 |54 |
|4 | TABLE GET |t_normal_idx_alias|1 |37 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c1], [t_normal_idx_alias.c9]), filter(nil),
conds(nil), nl_params_([t_normal_idx.c1]), batch_join=true
1 - output([t_normal_idx.c1]), filter(nil), limit(1), offset(?)
2 - output([t_normal_idx.c1]), filter(nil), sort_keys([t_normal_idx.c3, ASC]), topn(1 + ?)
3 - output([t_normal_idx.c1], [t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c1], [t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
4 - output([t_normal_idx_alias.c9]), filter(nil),
access([t_normal_idx_alias.c9]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx_alias.c1]), range(MIN ; MAX),
range_cond([t_normal_idx_alias.c1 = ?])
*************** Case 760(end) **************
*************** Case 761 ***************
SQL: select /*+index(t_normal_idx idx)*/c1,c9 from t_normal_idx order by c3 desc limit 1 offset 10;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN| |1 |156 |
|1 | LIMIT | |1 |119 |
|2 | TOP-N SORT | |11 |118 |
|3 | TABLE SCAN |t_normal_idx(idx) |100 |54 |
|4 | TABLE GET |t_normal_idx_alias|1 |37 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c1], [t_normal_idx_alias.c9]), filter(nil),
conds(nil), nl_params_([t_normal_idx.c1]), batch_join=true
1 - output([t_normal_idx.c1]), filter(nil), limit(1), offset(?)
2 - output([t_normal_idx.c1]), filter(nil), sort_keys([t_normal_idx.c3, DESC]), topn(1 + ?)
3 - output([t_normal_idx.c1], [t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c1], [t_normal_idx.c3]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
4 - output([t_normal_idx_alias.c9]), filter(nil),
access([t_normal_idx_alias.c9]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx_alias.c1]), range(MIN ; MAX),
range_cond([t_normal_idx_alias.c1 = ?])
*************** Case 761(end) **************
*************** Case 762 ***************
SQL: select /*+index(t_normal_idx idx)*/c1,c9 from t_normal_idx order by c3 desc ,c4 desc limit 1 offset 10;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN| |1 |169 |
|1 | LIMIT | |1 |132 |
|2 | TOP-N SORT | |11 |130 |
|3 | TABLE SCAN |t_normal_idx(idx) |100 |57 |
|4 | TABLE GET |t_normal_idx_alias|1 |37 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c1], [t_normal_idx_alias.c9]), filter(nil),
conds(nil), nl_params_([t_normal_idx.c1]), batch_join=true
1 - output([t_normal_idx.c1]), filter(nil), limit(1), offset(?)
2 - output([t_normal_idx.c1]), filter(nil), sort_keys([t_normal_idx.c3, DESC], [t_normal_idx.c4, DESC]), topn(1 + ?)
3 - output([t_normal_idx.c1], [t_normal_idx.c3], [t_normal_idx.c4]), filter(nil),
access([t_normal_idx.c1], [t_normal_idx.c3], [t_normal_idx.c4]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
4 - output([t_normal_idx_alias.c9]), filter(nil),
access([t_normal_idx_alias.c9]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx_alias.c1]), range(MIN ; MAX),
range_cond([t_normal_idx_alias.c1 = ?])
*************** Case 762(end) **************
*************** Case 763 ***************
SQL: select /*+index(t_normal_idx idx)*/c1,c9 from t_normal_idx order by c3 desc, c4 limit 1 offset 10;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN| |1 |169 |
|1 | LIMIT | |1 |132 |
|2 | TOP-N SORT | |11 |130 |
|3 | TABLE SCAN |t_normal_idx(idx) |100 |57 |
|4 | TABLE GET |t_normal_idx_alias|1 |37 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c1], [t_normal_idx_alias.c9]), filter(nil),
conds(nil), nl_params_([t_normal_idx.c1]), batch_join=true
1 - output([t_normal_idx.c1]), filter(nil), limit(1), offset(?)
2 - output([t_normal_idx.c1]), filter(nil), sort_keys([t_normal_idx.c3, DESC], [t_normal_idx.c4, ASC]), topn(1 + ?)
3 - output([t_normal_idx.c1], [t_normal_idx.c3], [t_normal_idx.c4]), filter(nil),
access([t_normal_idx.c1], [t_normal_idx.c3], [t_normal_idx.c4]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
4 - output([t_normal_idx_alias.c9]), filter(nil),
access([t_normal_idx_alias.c9]), partitions(p0),
is_index_back=false,
range_key([t_normal_idx_alias.c1]), range(MIN ; MAX),
range_cond([t_normal_idx_alias.c1 = ?])
*************** Case 763(end) **************
*************** Case 764 ***************
SQL: select /*+no_use_late_materialization index(t_normal_idx idx)*/c1,c9 from t_normal_idx order by c3 desc limit 1 offset 10;
==================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------
|0 |LIMIT | |1 |687 |
|1 | TOP-N SORT | |11 |686 |
|2 | TABLE SCAN|t_normal_idx(idx)|100 |612 |
==================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c1], [t_normal_idx.c9]), filter(nil), limit(1), offset(?)
1 - output([t_normal_idx.c1], [t_normal_idx.c9]), filter(nil), sort_keys([t_normal_idx.c3, DESC]), topn(1 + ?)
2 - output([t_normal_idx.c1], [t_normal_idx.c9], [t_normal_idx.c3]), filter(nil),
access([t_normal_idx.c1], [t_normal_idx.c9], [t_normal_idx.c3]), partitions(p0),
is_index_back=true,
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
*************** Case 764(end) **************
*************** Case 765 ***************
SQL: select /*+use_late_materialization index(t_normal_idx idx)*/* from t_normal_idx where c10>1 order by c3 limit 1;
==================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------
|0 |LIMIT | |1 |795 |
|1 | TOP-N SORT | |1 |795 |
|2 | TABLE SCAN|t_normal_idx(idx)|96 |693 |
==================================================
Outputs & filters:
-------------------------------------
0 - output([t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9], [t_normal_idx.c10]), filter(nil), limit(1), offset(nil)
1 - output([t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9], [t_normal_idx.c10]), filter(nil), sort_keys([t_normal_idx.c3, ASC]), topn(1)
2 - output([t_normal_idx.c10], [t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9]), filter([t_normal_idx.c10 > ?]),
access([t_normal_idx.c10], [t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9]), partitions(p0),
is_index_back=true, filter_before_indexback[false],
range_key([t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c1]), range(MIN,MIN,MIN,MIN,MIN,MIN ; MAX,MAX,MAX,MAX,MAX,MAX)always true
*************** Case 765(end) **************
*************** Case 766 ***************
SQL: select * from t7, t8 where t7.c1 = t8.c1 limit 1;
==========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------------
|0 |LIMIT | |1 |73 |
|1 | NESTED-LOOP JOIN| |1 |73 |
|2 | TABLE SCAN |t7 |1 |36 |
|3 | TABLE GET |t8 |1 |36 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil), limit(1), offset(nil)
1 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_([t7.c1]), batch_join=true
2 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX),
range_cond([? = t8.c1])
*************** Case 766(end) **************
*************** Case 767 ***************
SQL: select * from t7, t8 where t7.c1 = t8.c2 limit 1;
==========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
------------------------------------------
|0 |LIMIT | |1 |73 |
|1 | NESTED-LOOP JOIN| |1 |73 |
|2 | TABLE SCAN |t8 |1 |36 |
|3 | TABLE GET |t7 |1 |36 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil), limit(1), offset(nil)
1 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_([t8.c2]), batch_join=true
2 - output([t8.c2], [t8.c1]), filter(nil),
access([t8.c2], [t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
3 - output([t7.c1], [t7.c2]), filter(nil),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX),
range_cond([t7.c1 = ?])
*************** Case 767(end) **************
*************** Case 768 ***************
SQL: select * from t7, t8 where t7.c2 = t8.c2 limit 1;
=====================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-------------------------------------
|0 |LIMIT | |1 |255 |
|1 | HASH JOIN | |1 |255 |
|2 | TABLE SCAN|t7 |100 |90 |
|3 | TABLE SCAN|t8 |1 |36 |
=====================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil), limit(1), offset(nil)
1 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
equal_conds([t7.c2 = t8.c2]), other_conds(nil)
2 - output([t7.c2], [t7.c1]), filter(nil),
access([t7.c2], [t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c2], [t8.c1]), filter(nil),
access([t8.c2], [t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 768(end) **************
*************** Case 769 ***************
SQL: select * from t7 where c1=c2 and c2='1';
==================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------
|0 |TABLE GET|t7 |1 |53 |
==================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter([t7.c2 = ?]),
access([t7.c1], [t7.c2]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range[1 ; 1],
range_cond([t7.c1 = ?])
*************** Case 769(end) **************
*************** Case 770 ***************
SQL: select * from y_t7 where c1=c2 and c1=cast('2010-10-10 00:00:00' as datetime);
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|y_t7|1 |124 |
===================================
Outputs & filters:
-------------------------------------
0 - output([y_t7.c1], [y_t7.c2], [y_t7.c3]), filter([y_t7.c1 = y_t7.c2], [y_t7.c1 = ?]),
access([y_t7.c1], [y_t7.c2], [y_t7.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false,false],
range_key([y_t7.__pk_increment], [y_t7.__pk_cluster_id], [y_t7.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
*************** Case 770(end) **************
*************** Case 771 ***************
SQL: select * from t1 order by c1,(select c1 from t2);
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------
|0 |SORT | |500 |1396|
|1 | SUBPLAN FILTER | |500 |663 |
|2 | PX COORDINATOR | |500 |389 |
|3 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|4 | PX PARTITION ITERATOR| |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
|6 | PX COORDINATOR | |300 |206 |
|7 | EXCHANGE OUT DISTR |:EX20000|300 |192 |
|8 | PX PARTITION ITERATOR| |300 |192 |
|9 | TABLE SCAN |t2 |300 |192 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC])
1 - output([t1.c1], [t1.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
2 - output([t1.c1], [t1.c2]), filter(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil)
7 - output([t2.c1]), filter(nil), dop=1
8 - output([t2.c1]), filter(nil),
force partition granule, asc.
9 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 771(end) **************
*************** Case 772 ***************
SQL: select * from (select * from t1 order by c1)v;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |1122|
|1 | EXCHANGE OUT DISTR |:EX10000|500 |1074|
|2 | SORT | |500 |1074|
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC])
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
3 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 772(end) **************
*************** Case 773 ***************
SQL: select * from (select * from t1 order by c1)v,t2;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
---------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |150000 |108575|
|1 | PX COORDINATOR | |300 |290 |
|2 | EXCHANGE OUT DISTR |:EX10000|300 |205 |
|3 | PX PARTITION ITERATOR | |300 |205 |
|4 | TABLE SCAN |t2 |300 |205 |
|5 | MATERIAL | |500 |573 |
|6 | PX COORDINATOR | |500 |389 |
|7 | EXCHANGE OUT DISTR |:EX20000|500 |342 |
|8 | PX PARTITION ITERATOR | |500 |342 |
|9 | TABLE SCAN |t1 |500 |342 |
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
5 - output([t1.c1], [t1.c2]), filter(nil)
6 - output([t1.c1], [t1.c2]), filter(nil)
7 - output([t1.c1], [t1.c2]), filter(nil), dop=1
8 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
9 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 773(end) **************
*************** Case 774 ***************
SQL: select * from (select * from t1 order by c1)v,(select * from t2 order by c1)vv;
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
---------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |150000 |108575|
|1 | PX COORDINATOR | |300 |290 |
|2 | EXCHANGE OUT DISTR |:EX10000|300 |205 |
|3 | PX PARTITION ITERATOR | |300 |205 |
|4 | TABLE SCAN |t2 |300 |205 |
|5 | MATERIAL | |500 |573 |
|6 | PX COORDINATOR | |500 |389 |
|7 | EXCHANGE OUT DISTR |:EX20000|500 |342 |
|8 | PX PARTITION ITERATOR | |500 |342 |
|9 | TABLE SCAN |t1 |500 |342 |
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
5 - output([t1.c1], [t1.c2]), filter(nil)
6 - output([t1.c1], [t1.c2]), filter(nil)
7 - output([t1.c1], [t1.c2]), filter(nil), dop=1
8 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
9 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 774(end) **************
*************** Case 775 ***************
SQL: select * from t1 order by c1,(select c1 from t2 order by c1,(select c1 from t3 order by c1));
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |SORT | |500 |1586|
|1 | SUBPLAN FILTER | |500 |853 |
|2 | PX COORDINATOR | |500 |389 |
|3 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
|6 | SUBPLAN FILTER | |300 |396 |
|7 | PX COORDINATOR | |300 |206 |
|8 | EXCHANGE OUT DISTR |:EX20000|300 |192 |
|9 | PX PARTITION ITERATOR| |300 |192 |
|10| TABLE SCAN |t2 |300 |192 |
|11| PX COORDINATOR | |200 |149 |
|12| EXCHANGE OUT DISTR |:EX30000|200 |140 |
|13| PX PARTITION ITERATOR| |200 |140 |
|14| TABLE SCAN |t3 |200 |140 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC])
1 - output([t1.c1], [t1.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
2 - output([t1.c1], [t1.c2]), filter(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
7 - output([t2.c1]), filter(nil)
8 - output([t2.c1]), filter(nil), dop=1
9 - output([t2.c1]), filter(nil),
force partition granule, asc.
10 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
11 - output([t3.c1]), filter(nil)
12 - output([t3.c1]), filter(nil), dop=1
13 - output([t3.c1]), filter(nil),
force partition granule, asc.
14 - output([t3.c1]), filter(nil),
access([t3.c1]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
*************** Case 775(end) **************
*************** Case 776 ***************
SQL: (select c1 from t1) intersect (select c1 from t2);
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1380|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1366|
|2 | MERGE INTERSECT DISTINCT | |300 |1366|
|3 | SORT | |500 |966 |
|4 | PX PARTITION ITERATOR | |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |192 |
|8 | PX PARTITION ITERATOR | |300 |192 |
|9 | TABLE SCAN |t2 |300 |192 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([INTERSECT([1])]), filter(nil)
1 - output([INTERSECT([1])]), filter(nil), dop=1
2 - output([INTERSECT([1])]), filter(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
7 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
8 - output([t2.c1]), filter(nil),
force partition granule, asc.
9 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 776(end) **************
*************** Case 777 ***************
SQL: (select c1 from t1 order by c1) intersect (select c1 from t2 order by c1);
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1380|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1366|
|2 | MERGE INTERSECT DISTINCT | |300 |1366|
|3 | SORT | |500 |966 |
|4 | PX PARTITION ITERATOR | |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |192 |
|8 | PX PARTITION ITERATOR | |300 |192 |
|9 | TABLE SCAN |t2 |300 |192 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([INTERSECT([1])]), filter(nil)
1 - output([INTERSECT([1])]), filter(nil), dop=1
2 - output([INTERSECT([1])]), filter(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
7 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
8 - output([t2.c1]), filter(nil),
force partition granule, asc.
9 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 777(end) **************
*************** Case 778 ***************
SQL: (select c1 from t1 order by c2,(select c1 from t3 order by c1)) intersect (select c1 from t2 order by c2,(select c1 from t3 order by c1));
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |300 |1380|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1366|
|2 | MERGE INTERSECT DISTINCT | |300 |1366|
|3 | SORT | |500 |966 |
|4 | PX PARTITION ITERATOR | |500 |331 |
|5 | TABLE SCAN |t1 |500 |331 |
|6 | EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|300 |192 |
|8 | PX PARTITION ITERATOR | |300 |192 |
|9 | TABLE SCAN |t2 |300 |192 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([INTERSECT([1])]), filter(nil)
1 - output([INTERSECT([1])]), filter(nil), dop=1
2 - output([INTERSECT([1])]), filter(nil)
3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
7 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
8 - output([t2.c1]), filter(nil),
force partition granule, asc.
9 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 778(end) **************
*************** Case 779 ***************
SQL: select * from t1 order by c1,(select c1 from t2 where t1.c1=t2.c1 order by c1,(select c1 from t3 where t1.c1=t3.c1));
========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
--------------------------------------------------------
|0 |SORT | |500 |36907|
|1 | SUBPLAN FILTER | |500 |36549|
|2 | PX COORDINATOR | |500 |389 |
|3 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
|6 | SUBPLAN FILTER | |1 |73 |
|7 | PX COORDINATOR | |1 |36 |
|8 | EXCHANGE OUT DISTR |:EX20000|1 |36 |
|9 | PX PARTITION ITERATOR| |1 |36 |
|10| TABLE GET |t2 |1 |36 |
|11| PX COORDINATOR | |1 |36 |
|12| EXCHANGE OUT DISTR |:EX30000|1 |36 |
|13| PX PARTITION ITERATOR| |1 |36 |
|14| TABLE GET |t3 |1 |36 |
========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC], [subquery(1), ASC])
1 - output([t1.c1], [t1.c2], [subquery(1)]), filter(nil),
exec_params_([t1.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
2 - output([t1.c1], [t1.c2]), filter(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), dop=1
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
7 - output([t2.c1]), filter(nil)
8 - output([t2.c1]), filter(nil), dop=1
9 - output([t2.c1]), filter(nil),
force partition granule, asc.
10 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true,
range_cond([? = t2.c1])
11 - output([t3.c1]), filter(nil)
12 - output([t3.c1]), filter(nil), dop=1
13 - output([t3.c1]), filter(nil),
force partition granule, asc.
14 - output([t3.c1]), filter(nil),
access([t3.c1]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true,
range_cond([? = t3.c1])
*************** Case 779(end) **************
*************** Case 780 ***************
SQL: select t12.c1 from t1 t12,t2 t22 where t12.c1 in (select c3 from t1 where c1=5 AND c2>=t22.c1);
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------
|0 |HASH JOIN | |97 |1059|
|1 | PX COORDINATOR | |100 |240 |
|2 | EXCHANGE OUT DISTR |:EX10001|100 |207 |
|3 | NESTED-LOOP JOIN | |100 |207 |
|4 | EXCHANGE IN DISTR | |1 |53 |
|5 | EXCHANGE OUT DISTR (BC2HOST)|:EX10000|1 |52 |
|6 | TABLE GET |t1 |1 |52 |
|7 | PX PARTITION ITERATOR | |100 |90 |
|8 | TABLE SCAN |t22 |100 |90 |
|9 | PX COORDINATOR | |500 |354 |
|10| EXCHANGE OUT DISTR |:EX20000|500 |331 |
|11| PX PARTITION ITERATOR | |500 |331 |
|12| TABLE SCAN |t12 |500 |331 |
==============================================================
Outputs & filters:
-------------------------------------
0 - output([t12.c1]), filter(nil),
equal_conds([t12.c1 = t22.c3]), other_conds(nil)
1 - output([t22.c3]), filter(nil)
2 - output([t22.c3]), filter(nil), dop=1
3 - output([t22.c3]), filter(nil),
conds(nil), nl_params_([t1.c2]), batch_join=false
4 - output([t1.c2]), filter(nil)
5 - output([t1.c2]), filter(nil), is_single, dop=1
6 - output([t1.c2]), filter(nil),
access([t1.c2]), partitions(p0),
is_index_back=false,
range_key([t1.c1]), range[5 ; 5],
range_cond([t1.c1 = ?])
7 - output([t22.c3]), filter(nil),
access all, force partition granule, asc.
8 - output([t22.c3]), filter(nil),
access([t22.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t22.c1]), range(MIN ; MAX),
range_cond([? >= t22.c1])
9 - output([t12.c1]), filter(nil)
10 - output([t12.c1]), filter(nil), dop=1
11 - output([t12.c1]), filter(nil),
force partition granule, asc.
12 - output([t12.c1]), filter(nil),
access([t12.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t12.c1]), range(MIN ; MAX)always true
*************** Case 780(end) **************
*************** Case 781 ***************
SQL: select t12.c1 from t1 t12,t2 t22 where t12.c1 not in (select c3 from t1 where c1=5 AND c2>=t22.c1);
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
----------------------------------------------------------
|0 |NESTED-LOOP ANTI JOIN | |101612 |186420|
|1 | NESTED-LOOP JOIN CARTESIAN| |150000 |106861|
|2 | PX COORDINATOR | |300 |269 |
|3 | EXCHANGE OUT DISTR |:EX10000|300 |198 |
|4 | PX PARTITION ITERATOR | |300 |198 |
|5 | TABLE SCAN |t22 |300 |198 |
|6 | MATERIAL | |500 |446 |
|7 | PX COORDINATOR | |500 |354 |
|8 | EXCHANGE OUT DISTR |:EX20000|500 |331 |
|9 | PX PARTITION ITERATOR | |500 |331 |
|10| TABLE SCAN |t12 |500 |331 |
|11| MATERIAL | |1 |53 |
|12| SUBPLAN SCAN |VIEW1 |1 |53 |
|13| TABLE GET |t1 |1 |52 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t12.c1]), filter(nil),
conds([VIEW1.t1.c2 >= t22.c1], [t12.c1 = t22.c3 OR (T_OP_IS, t22.c3, NULL, 0)]), nl_params_(nil), batch_join=false
1 - output([t12.c1], [t22.c1], [t22.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t22.c1], [t22.c3]), filter(nil)
3 - output([t22.c1], [t22.c3]), filter(nil), dop=1
4 - output([t22.c1], [t22.c3]), filter(nil),
force partition granule, asc.
5 - output([t22.c1], [t22.c3]), filter(nil),
access([t22.c1], [t22.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t22.c1]), range(MIN ; MAX)always true
6 - output([t12.c1]), filter(nil)
7 - output([t12.c1]), filter(nil)
8 - output([t12.c1]), filter(nil), dop=1
9 - output([t12.c1]), filter(nil),
force partition granule, asc.
10 - output([t12.c1]), filter(nil),
access([t12.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t12.c1]), range(MIN ; MAX)always true
11 - output([VIEW1.t1.c2]), filter(nil)
12 - output([VIEW1.t1.c2]), filter(nil),
access([VIEW1.t1.c2])
13 - output([t1.c2]), filter(nil),
access([t1.c2]), partitions(p0),
is_index_back=false,
range_key([t1.c1]), range[5 ; 5],
range_cond([t1.c1 = ?])
*************** Case 781(end) **************
*************** Case 782 ***************
SQL: select t12.c1 from t7 t12,t8 t22 where t12.c1 in (select c3 from t4 where c1=5 AND c2>=t22.c1);
======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
------------------------------------------------------
|0 |MERGE SEMI JOIN | |3334 |12269|
|1 | NESTED-LOOP JOIN CARTESIAN| |10000 |7270 |
|2 | TABLE SCAN |t12 |100 |88 |
|3 | MATERIAL | |100 |106 |
|4 | TABLE SCAN |t22 |100 |88 |
|5 | SORT | |100 |233 |
|6 | SUBPLAN SCAN |VIEW1|100 |106 |
|7 | TABLE SCAN |t4 |100 |92 |
======================================================
Outputs & filters:
-------------------------------------
0 - output([t12.c1]), filter(nil),
equal_conds([t12.c1 = VIEW1.t4.c3]), other_conds([VIEW1.t4.c2 >= t22.c1])
1 - output([t12.c1], [t22.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t12.c1]), filter(nil),
access([t12.c1]), partitions(p0),
is_index_back=false,
range_key([t12.c1]), range(MIN ; MAX)always true
3 - output([t22.c1]), filter(nil)
4 - output([t22.c1]), filter(nil),
access([t22.c1]), partitions(p0),
is_index_back=false,
range_key([t22.c1]), range(MIN ; MAX)always true
5 - output([VIEW1.t4.c2], [VIEW1.t4.c3]), filter(nil), sort_keys([VIEW1.t4.c3, ASC])
6 - output([VIEW1.t4.c2], [VIEW1.t4.c3]), filter(nil),
access([VIEW1.t4.c2], [VIEW1.t4.c3])
7 - output([t4.c2], [t4.c3]), filter(nil),
access([t4.c2], [t4.c3]), partitions(p0),
is_index_back=false,
range_key([t4.c1], [t4.c2]), range(5,MIN ; 5,MAX),
range_cond([t4.c1 = ?])
*************** Case 782(end) **************
*************** Case 783 ***************
SQL: select t12.c1 from t1 t12,t2 t22 where t12.c1+t22.c1 in (select c3 from t1 where c1=5);
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
----------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN | |750 |113293|
|1 | TABLE GET |t1 |1 |52 |
|2 | MATERIAL | |750 |56784 |
|3 | NESTED-LOOP JOIN | |750 |55957 |
|4 | PX COORDINATOR | |300 |269 |
|5 | EXCHANGE OUT DISTR |:EX10000|300 |198 |
|6 | PX PARTITION ITERATOR | |300 |198 |
|7 | TABLE SCAN |t22 |300 |198 |
|8 | MATERIAL | |500 |446 |
|9 | PX COORDINATOR | |500 |354 |
|10| EXCHANGE OUT DISTR |:EX20000|500 |331 |
|11| PX PARTITION ITERATOR| |500 |331 |
|12| TABLE SCAN |t12 |500 |331 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t12.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([1]), filter(nil),
access([t1.c1]), partitions(p0),
is_index_back=false,
range_key([t1.c1]), range[5 ; 5],
range_cond([t1.c1 = ?])
2 - output([t12.c1]), filter(nil)
3 - output([t12.c1]), filter(nil),
conds([t12.c1 + t22.c1 = t22.c3]), nl_params_(nil), batch_join=false
4 - output([t22.c1], [t22.c3]), filter(nil)
5 - output([t22.c1], [t22.c3]), filter(nil), dop=1
6 - output([t22.c1], [t22.c3]), filter(nil),
force partition granule, asc.
7 - output([t22.c1], [t22.c3]), filter(nil),
access([t22.c1], [t22.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t22.c1]), range(MIN ; MAX)always true
8 - output([t12.c1]), filter(nil)
9 - output([t12.c1]), filter(nil)
10 - output([t12.c1]), filter(nil), dop=1
11 - output([t12.c1]), filter(nil),
force partition granule, asc.
12 - output([t12.c1]), filter(nil),
access([t12.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t12.c1]), range(MIN ; MAX)always true
*************** Case 783(end) **************
*************** Case 784 ***************
SQL: select t12.c1 from t1 t12,t2 t22 where t12.c1+t22.c1 not in (select c3 from t1 where c1=5);
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
----------------------------------------------------------
|0 |NESTED-LOOP ANTI JOIN | |72138 |188874|
|1 | NESTED-LOOP JOIN CARTESIAN| |150000 |106861|
|2 | PX COORDINATOR | |300 |269 |
|3 | EXCHANGE OUT DISTR |:EX10000|300 |198 |
|4 | PX PARTITION ITERATOR | |300 |198 |
|5 | TABLE SCAN |t22 |300 |198 |
|6 | MATERIAL | |500 |446 |
|7 | PX COORDINATOR | |500 |354 |
|8 | EXCHANGE OUT DISTR |:EX20000|500 |331 |
|9 | PX PARTITION ITERATOR | |500 |331 |
|10| TABLE SCAN |t12 |500 |331 |
|11| MATERIAL | |1 |53 |
|12| SUBPLAN SCAN |VIEW1 |1 |53 |
|13| TABLE GET |t1 |1 |52 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t12.c1]), filter(nil),
conds([(T_OP_OR, t12.c1 + t22.c1 = t22.c3, (T_OP_IS, t12.c1 + t22.c1, NULL, 0), (T_OP_IS, t22.c3, NULL, 0))]), nl_params_(nil), batch_join=false
1 - output([t12.c1], [t22.c1], [t22.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t22.c1], [t22.c3]), filter(nil)
3 - output([t22.c1], [t22.c3]), filter(nil), dop=1
4 - output([t22.c1], [t22.c3]), filter(nil),
force partition granule, asc.
5 - output([t22.c1], [t22.c3]), filter(nil),
access([t22.c1], [t22.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t22.c1]), range(MIN ; MAX)always true
6 - output([t12.c1]), filter(nil)
7 - output([t12.c1]), filter(nil)
8 - output([t12.c1]), filter(nil), dop=1
9 - output([t12.c1]), filter(nil),
force partition granule, asc.
10 - output([t12.c1]), filter(nil),
access([t12.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t12.c1]), range(MIN ; MAX)always true
11 - output([1]), filter(nil)
12 - output([1]), filter(nil),
access(nil)
13 - output([1]), filter(nil),
access([t1.c1]), partitions(p0),
is_index_back=false,
range_key([t1.c1]), range[5 ; 5],
range_cond([t1.c1 = ?])
*************** Case 784(end) **************
*************** Case 785 ***************
SQL: select count(t12.c1) from t1 t12,t2 t22 where t12.c1>SOME(select c3 from t1 where c1=5 AND c1=10 AND c2>=t22.c1) AND t22.c2>=5 AND t12.c2<SOME(select c1 from t1 where c2=3 AND c2<10 AND c3<=t12.c1);
================================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------------------------
|0 |SCALAR GROUP BY | |1 |230 |
|1 | NESTED-LOOP JOIN | |14 |228 |
|2 | SUBPLAN SCAN |VIEW3 |1 |38 |
|3 | SCALAR GROUP BY | |1 |38 |
|4 | SUBPLAN SCAN |VIEW4 |1 |38 |
|5 | LIMIT | |1 |38 |
|6 | PX COORDINATOR MERGE SORT | |1 |37 |
|7 | EXCHANGE OUT DISTR |:EX10000 |1 |37 |
|8 | LIMIT | |1 |37 |
|9 | TOP-N SORT | |1 |37 |
|10| PX PARTITION ITERATOR | |1 |36 |
|11| TABLE SCAN |t1(idx_t1_c2,Reverse)|1 |36 |
|12| PX COORDINATOR | |42 |174 |
|13| EXCHANGE OUT DISTR |:EX20002 |42 |154 |
|14| NESTED-LOOP JOIN | |42 |154 |
|15| EXCHANGE IN DISTR | |1 |93 |
|16| EXCHANGE OUT DISTR (BC2HOST) |:EX20001 |1 |93 |
|17| MATERIAL | |1 |93 |
|18| NESTED-LOOP JOIN | |1 |92 |
|19| EXCHANGE IN DISTR | |1 |90 |
|20| EXCHANGE OUT DISTR (BC2HOST)|:EX20000 |1 |90 |
|21| TABLE GET |t1 |1 |90 |
|22| PX PARTITION ITERATOR | |75 |109 |
|23| TABLE SCAN |t22 |75 |109 |
|24| PX PARTITION ITERATOR | |56 |46 |
|25| TABLE SCAN |t12 |56 |46 |
================================================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(t12.c1)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(t12.c1)])
1 - output([t12.c1]), filter(nil),
conds([t12.c2 < VIEW3.VIEW2.T_FUN_MAX(t1.c1)]), nl_params_(nil), batch_join=false
2 - output([VIEW3.VIEW2.T_FUN_MAX(t1.c1)]), filter(nil),
access([VIEW3.VIEW2.T_FUN_MAX(t1.c1)])
3 - output([T_FUN_MAX(VIEW4.c1)]), filter(nil),
group(nil), agg_func([T_FUN_MAX(VIEW4.c1)])
4 - output([VIEW4.c1]), filter(nil),
access([VIEW4.c1])
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), 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.c2], [t1.c1]), range(3,MIN ; 3,MAX),
range_cond([t1.c2 = ?], [t1.c2 < ?])
12 - output([t12.c1], [t12.c2]), filter(nil)
13 - output([t12.c1], [t12.c2]), filter(nil), dop=1
14 - output([t12.c1], [t12.c2]), filter(nil),
conds(nil), nl_params_([t22.c3]), batch_join=false
15 - output([t22.c3]), filter(nil)
16 - output([t22.c3]), filter(nil), dop=1
17 - output([t22.c3]), filter(nil)
18 - output([t22.c3]), filter(nil),
conds(nil), nl_params_([t1.c2]), batch_join=false
19 - output([t1.c2]), filter(nil)
20 - output([t1.c2]), filter(nil), is_single, dop=1
21 - output([t1.c2]), filter(nil),
access([t1.c2]), partitions(p0),
is_index_back=false,
range_key([t1.c1]), range(MAX ; MIN)always false,
range_cond([t1.c1 = ?], [t1.c1 = ?])
22 - output([t22.c3]), filter(nil),
access all, force partition granule, asc.
23 - output([t22.c3]), filter([t22.c2 >= ?]),
access([t22.c3], [t22.c2]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t22.c1]), range(MIN ; MAX),
range_cond([? >= t22.c1])
24 - output([t12.c1], [t12.c2]), filter(nil),
access all, force partition granule, asc.
25 - output([t12.c1], [t12.c2]), filter(nil),
access([t12.c1], [t12.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t12.c1]), range(MIN ; MAX),
range_cond([t12.c1 > ?], [? <= t12.c1])
*************** Case 785(end) **************
*************** Case 786 ***************
SQL: select c1 from t7 group by c1, (select c2 from t7);
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t7 |100 |88 |
===================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 786(end) **************
*************** Case 787 ***************
SQL: select c1 from t7 order by c1, (select c2 from t7);
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |SUBPLAN FILTER| |100 |192 |
|1 | TABLE SCAN |t7 |100 |88 |
|2 | TABLE SCAN |t7 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t7.c2]), filter(nil),
access([t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 787(end) **************
*************** Case 788 ***************
SQL: select * from t7 where c2 in (select c2 from (select c2, sum(c1) from t7 group by c2) t);
=========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------
|0 |HASH JOIN | |100 |500 |
|1 | SUBPLAN SCAN |VIEW1|100 |208 |
|2 | HASH GROUP BY| |100 |195 |
|3 | TABLE SCAN |t7 |100 |90 |
|4 | TABLE SCAN |t7 |100 |90 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2]), filter(nil),
equal_conds([t7.c2 = VIEW1.c2]), other_conds(nil)
1 - output([VIEW1.c2]), filter(nil),
access([VIEW1.c2])
2 - output([t7.c2]), filter(nil),
group([t7.c2]), agg_func(nil)
3 - output([t7.c2]), filter(nil),
access([t7.c2]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
4 - output([t7.c2], [t7.c1]), filter(nil),
access([t7.c2], [t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 788(end) **************
*************** Case 789 ***************
SQL: select * from ts where c1 =1 and c2 > '2011-01-10' order by c2;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |200 |175 |
|1 | EXCHANGE OUT DISTR |:EX10000|200 |144 |
|2 | PX PARTITION ITERATOR | |200 |144 |
|3 | TABLE SCAN |ts |200 |144 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([ts.c1], [ts.c2]), filter(nil), sort_keys([ts.c2, ASC])
1 - output([ts.c1], [ts.c2]), filter(nil), dop=1
2 - output([ts.c1], [ts.c2]), filter(nil),
force partition granule, asc.
3 - output([ts.c1], [ts.c2]), filter(nil),
access([ts.c1], [ts.c2]), partitions(p1sp[0-1]),
is_index_back=false,
range_key([ts.c1], [ts.c2]), range(1,2011-01-10 00:00:00.000000 ; 1,MAX),
range_cond([ts.c1 = ?], [ts.c2 > ?])
*************** Case 789(end) **************
*************** Case 790 ***************
SQL: select * from tr where c1 > 1 order by c1;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |300 |227 |
|1 | EXCHANGE OUT DISTR |:EX10000|300 |198 |
|2 | PX PARTITION ITERATOR | |300 |198 |
|3 | TABLE SCAN |tr |300 |198 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([tr.c1], [tr.c2]), filter(nil), sort_keys([tr.c1, ASC])
1 - output([tr.c1], [tr.c2]), filter(nil), dop=1
2 - output([tr.c1], [tr.c2]), filter(nil),
force partition granule, asc.
3 - output([tr.c1], [tr.c2]), filter(nil),
access([tr.c1], [tr.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([tr.c1], [tr.c2]), range(1,MAX ; MAX,MAX),
range_cond([tr.c1 > ?])
*************** Case 790(end) **************
*************** Case 791 ***************
SQL: select/*+index(t_idx_back t_idx_c2)*/ c3 from t_idx_back;
===================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------
|0 |TABLE SCAN|t_idx_back(t_idx_c2)|100 |90 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t_idx_back.c3]), filter(nil),
access([t_idx_back.c3]), partitions(p0),
is_index_back=false,
range_key([t_idx_back.c2], [t_idx_back.c1]), range(MIN,MIN ; MAX,MAX)always true
*************** Case 791(end) **************
*************** Case 792 ***************
SQL: select /*+no_use_hash_aggregation*/ distinct c2 from t0;
=======================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------
|0 |MERGE DISTINCT| |100 |220 |
|1 | SORT | |100 |198 |
|2 | TABLE SCAN |t0 |100 |90 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t0.c2]), filter(nil),
distinct([t0.c2])
1 - output([t0.c2]), filter(nil), sort_keys([t0.c2, ASC])
2 - output([t0.c2]), filter(nil),
access([t0.c2]), partitions(p0),
is_index_back=false,
range_key([t0.pk]), range(MIN ; MAX)always true
*************** Case 792(end) **************
*************** Case 793 ***************
SQL: select * from tidx where c3 = 1;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|tidx|1 |118 |
===================================
Outputs & filters:
-------------------------------------
0 - output([tidx.c1], [tidx.c2], [tidx.c3], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), filter([tidx.c3 = ?]),
access([tidx.c3], [tidx.c1], [tidx.c2], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tidx.c1]), range(MIN ; MAX)always true
*************** Case 793(end) **************
*************** Case 794 ***************
SQL: select * from tidx where c2 > 0 and c2 < 1000 order by c2 limit 100;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|tidx(tidx_c2)|100 |649 |
============================================
Outputs & filters:
-------------------------------------
0 - output([tidx.c1], [tidx.c2], [tidx.c3], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), filter(nil),
access([tidx.c2], [tidx.c1], [tidx.c3], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), partitions(p0),
limit(100), offset(nil),
is_index_back=true,
range_key([tidx.c2], [tidx.c3], [tidx.c1]), range(0,MAX,MAX ; 1000,MIN,MIN),
range_cond([tidx.c2 > ?], [tidx.c2 < ?])
*************** Case 794(end) **************
*************** Case 795 ***************
SQL: select * from tidx where c2 > 0 and c2 < 1000 limit 100;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|tidx(tidx_c2)|100 |649 |
============================================
Outputs & filters:
-------------------------------------
0 - output([tidx.c1], [tidx.c2], [tidx.c3], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), filter(nil),
access([tidx.c2], [tidx.c1], [tidx.c3], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), partitions(p0),
limit(100), offset(nil),
is_index_back=true,
range_key([tidx.c2], [tidx.c3], [tidx.c1]), range(0,MAX,MAX ; 1000,MIN,MIN),
range_cond([tidx.c2 > ?], [tidx.c2 < ?])
*************** Case 795(end) **************
*************** Case 796 ***************
SQL: select c1, max(c3) over (partition by c2 order by c3) from t2;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR | |300 |1098|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1013|
|2 | WINDOW FUNCTION | |300 |1013|
|3 | SORT | |300 |955 |
|4 | EXCHANGE IN DISTR | |300 |290 |
|5 | EXCHANGE OUT DISTR (HASH)|:EX10000|300 |205 |
|6 | PX PARTITION ITERATOR | |300 |205 |
|7 | TABLE SCAN |t2 |300 |205 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [T_FUN_MAX(t2.c3)]), filter(nil)
1 - output([t2.c1], [T_FUN_MAX(t2.c3)]), filter(nil), dop=1
2 - output([t2.c1], [T_FUN_MAX(t2.c3)]), filter(nil),
win_expr(T_FUN_MAX(t2.c3)), partition_by([t2.c2]), order_by([t2.c3, ASC]), window_type(RANGE), upper(UNBOUNDED PRECEDING), lower(CURRENT ROW)
3 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC], [t2.c3, ASC])
4 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil)
5 - (#keys=1, [t2.c2]), output([t2.c1], [t2.c3], [t2.c2]), filter(nil), dop=1
6 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
force partition granule, asc.
7 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
access([t2.c1], [t2.c3], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 796(end) **************
*************** Case 797 ***************
SQL: select c1, max(c3) over (partition by c2 order by c3), max(c3) over (partition by c2) from t2;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR | |300 |1098|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1013|
|2 | WINDOW FUNCTION | |300 |1013|
|3 | SORT | |300 |955 |
|4 | EXCHANGE IN DISTR | |300 |290 |
|5 | EXCHANGE OUT DISTR (HASH)|:EX10000|300 |205 |
|6 | PX PARTITION ITERATOR | |300 |205 |
|7 | TABLE SCAN |t2 |300 |205 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [T_FUN_MAX(t2.c3)], [T_FUN_MAX(t2.c3)]), filter(nil)
1 - output([t2.c1], [T_FUN_MAX(t2.c3)], [T_FUN_MAX(t2.c3)]), filter(nil), dop=1
2 - output([t2.c1], [T_FUN_MAX(t2.c3)], [T_FUN_MAX(t2.c3)]), filter(nil),
win_expr(T_FUN_MAX(t2.c3)), partition_by([t2.c2]), order_by([t2.c3, ASC]), window_type(RANGE), upper(UNBOUNDED PRECEDING), lower(CURRENT ROW)
win_expr(T_FUN_MAX(t2.c3)), partition_by([t2.c2]), order_by(nil), window_type(RANGE), upper(UNBOUNDED PRECEDING), lower(UNBOUNDED FOLLOWING)
3 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC], [t2.c3, ASC])
4 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil)
5 - (#keys=1, [t2.c2]), output([t2.c1], [t2.c3], [t2.c2]), filter(nil), dop=1
6 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
force partition granule, asc.
7 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
access([t2.c1], [t2.c3], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 797(end) **************
*************** Case 798 ***************
SQL: select c1, max(c3) over (partition by c2 order by c3 rows between 1 preceding and 2 following) from t2 order by c2,c3;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |300 |1098|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1013|
|2 | WINDOW FUNCTION | |300 |1013|
|3 | SORT | |300 |955 |
|4 | EXCHANGE IN DISTR | |300 |290 |
|5 | EXCHANGE OUT DISTR (HASH)|:EX10000|300 |205 |
|6 | PX PARTITION ITERATOR | |300 |205 |
|7 | TABLE SCAN |t2 |300 |205 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [T_FUN_MAX(t2.c3)]), filter(nil), sort_keys([t2.c2, ASC], [t2.c3, ASC])
1 - output([t2.c1], [T_FUN_MAX(t2.c3)], [t2.c3], [t2.c2]), filter(nil), dop=1
2 - output([t2.c1], [T_FUN_MAX(t2.c3)], [t2.c3], [t2.c2]), filter(nil),
win_expr(T_FUN_MAX(t2.c3)), partition_by([t2.c2]), order_by([t2.c3, ASC]), window_type(ROWS), upper(? PRECEDING), lower(? FOLLOWING)
3 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC], [t2.c3, ASC])
4 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil)
5 - (#keys=1, [t2.c2]), output([t2.c1], [t2.c3], [t2.c2]), filter(nil), dop=1
6 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
force partition granule, asc.
7 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
access([t2.c1], [t2.c3], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 798(end) **************
*************** Case 799 ***************
SQL: select c1, max(c3) over (partition by c2 order by c3 rows between 1 preceding and 2 following) from t2 order by c3,c2;
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |300 |2704|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |2618|
|2 | SORT | |300 |2618|
|3 | WINDOW FUNCTION | |300 |1013|
|4 | SORT | |300 |955 |
|5 | EXCHANGE IN DISTR | |300 |290 |
|6 | EXCHANGE OUT DISTR (HASH)|:EX10000|300 |205 |
|7 | PX PARTITION ITERATOR | |300 |205 |
|8 | TABLE SCAN |t2 |300 |205 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [T_FUN_MAX(t2.c3)]), filter(nil), sort_keys([t2.c3, ASC], [t2.c2, ASC])
1 - output([t2.c1], [T_FUN_MAX(t2.c3)], [t2.c3], [t2.c2]), filter(nil), dop=1
2 - output([t2.c1], [T_FUN_MAX(t2.c3)], [t2.c3], [t2.c2]), filter(nil), sort_keys([t2.c3, ASC], [t2.c2, ASC])
3 - output([t2.c1], [T_FUN_MAX(t2.c3)], [t2.c3], [t2.c2]), filter(nil),
win_expr(T_FUN_MAX(t2.c3)), partition_by([t2.c2]), order_by([t2.c3, ASC]), window_type(ROWS), upper(? PRECEDING), lower(? FOLLOWING)
4 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC], [t2.c3, ASC])
5 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil)
6 - (#keys=1, [t2.c2]), output([t2.c1], [t2.c3], [t2.c2]), filter(nil), dop=1
7 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
force partition granule, asc.
8 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
access([t2.c1], [t2.c3], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 799(end) **************
*************** Case 800 ***************
SQL: select c1, max(c3) over (partition by c2 order by c3 rows between 1 preceding and unbounded following) from t2;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR | |300 |1098|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1013|
|2 | WINDOW FUNCTION | |300 |1013|
|3 | SORT | |300 |955 |
|4 | EXCHANGE IN DISTR | |300 |290 |
|5 | EXCHANGE OUT DISTR (HASH)|:EX10000|300 |205 |
|6 | PX PARTITION ITERATOR | |300 |205 |
|7 | TABLE SCAN |t2 |300 |205 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [T_FUN_MAX(t2.c3)]), filter(nil)
1 - output([t2.c1], [T_FUN_MAX(t2.c3)]), filter(nil), dop=1
2 - output([t2.c1], [T_FUN_MAX(t2.c3)]), filter(nil),
win_expr(T_FUN_MAX(t2.c3)), partition_by([t2.c2]), order_by([t2.c3, ASC]), window_type(ROWS), upper(? PRECEDING), lower(UNBOUNDED FOLLOWING)
3 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC], [t2.c3, ASC])
4 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil)
5 - (#keys=1, [t2.c2]), output([t2.c1], [t2.c3], [t2.c2]), filter(nil), dop=1
6 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
force partition granule, asc.
7 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
access([t2.c1], [t2.c3], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 800(end) **************
*************** Case 801 ***************
SQL: select c1, max(c3) over (partition by c2 order by c3 rows between 1 preceding and 2 following) from t2;
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------------
|0 |PX COORDINATOR | |300 |1098|
|1 | EXCHANGE OUT DISTR |:EX10001|300 |1013|
|2 | WINDOW FUNCTION | |300 |1013|
|3 | SORT | |300 |955 |
|4 | EXCHANGE IN DISTR | |300 |290 |
|5 | EXCHANGE OUT DISTR (HASH)|:EX10000|300 |205 |
|6 | PX PARTITION ITERATOR | |300 |205 |
|7 | TABLE SCAN |t2 |300 |205 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [T_FUN_MAX(t2.c3)]), filter(nil)
1 - output([t2.c1], [T_FUN_MAX(t2.c3)]), filter(nil), dop=1
2 - output([t2.c1], [T_FUN_MAX(t2.c3)]), filter(nil),
win_expr(T_FUN_MAX(t2.c3)), partition_by([t2.c2]), order_by([t2.c3, ASC]), window_type(ROWS), upper(? PRECEDING), lower(? FOLLOWING)
3 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC], [t2.c3, ASC])
4 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil)
5 - (#keys=1, [t2.c2]), output([t2.c1], [t2.c3], [t2.c2]), filter(nil), dop=1
6 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
force partition granule, asc.
7 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil),
access([t2.c1], [t2.c3], [t2.c2]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 801(end) **************
*************** Case 802 ***************
SQL: select * from tg where c1 = 'bcde';
==================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------
|0 |TABLE GET|tg |1 |53 |
==================================
Outputs & filters:
-------------------------------------
0 - output([tg.c1], [tg.c2], [tg.c3]), filter(nil),
access([tg.c1], [tg.c2], [tg.c3]), partitions(p0),
is_index_back=false,
range_key([tg.c1]), range[bcde ; bcde],
range_cond([tg.c1 = ?])
*************** Case 802(end) **************
*************** Case 803 ***************
SQL: select * from tg where c1 = 'baaaa';
=============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------
|0 |EXCHANGE IN REMOTE | |1 |53 |
|1 | EXCHANGE OUT REMOTE| |1 |53 |
|2 | TABLE GET |tg |1 |53 |
=============================================
Outputs & filters:
-------------------------------------
0 - output([tg.c1], [tg.c2], [tg.c3]), filter(nil)
1 - output([tg.c1], [tg.c2], [tg.c3]), filter(nil)
2 - output([tg.c1], [tg.c2], [tg.c3]), filter(nil),
access([tg.c1], [tg.c2], [tg.c3]), partitions(p1),
is_index_back=false,
range_key([tg.c1]), range[baaaa ; baaaa],
range_cond([tg.c1 = ?])
*************** Case 803(end) **************
*************** Case 804 ***************
SQL: select * from tg where c1 = 'bcde' and (c2 = 'cde' or c2 = 'baaaa');
==================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------
|0 |TABLE GET|tg |1 |53 |
==================================
Outputs & filters:
-------------------------------------
0 - output([tg.c1], [tg.c2], [tg.c3]), filter([tg.c2 = ? OR tg.c2 = ?]),
access([tg.c1], [tg.c2], [tg.c3]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([tg.c1]), range[bcde ; bcde],
range_cond([tg.c1 = ?])
*************** Case 804(end) **************
*************** Case 805 ***************
SQL: select z1.a, z2.a from z1 full outer join z2 on z1.a = z2.a order by z1.a, z2.a;
===============================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------------
|0 |SORT | |100 |390 |
|1 | MERGE FULL OUTER JOIN| |100 |262 |
|2 | TABLE SCAN |z1 |100 |88 |
|3 | TABLE SCAN |z2 |100 |88 |
===============================================
Outputs & filters:
-------------------------------------
0 - output([z1.a], [z2.a]), filter(nil), sort_keys([z1.a, ASC], [z2.a, ASC])
1 - output([z1.a], [z2.a]), filter(nil),
equal_conds([z1.a = z2.a]), other_conds(nil)
2 - output([z1.a]), filter(nil),
access([z1.a]), partitions(p0),
is_index_back=false,
range_key([z1.a]), range(MIN ; MAX)always true
3 - output([z2.a]), filter(nil),
access([z2.a]), partitions(p0),
is_index_back=false,
range_key([z2.a]), range(MIN ; MAX)always true
*************** Case 805(end) **************
*************** Case 806 ***************
SQL: select t7.c1 from t7,t8 where t7.c1 > (select t0.c1 from t0 where t7.c1);
=======================================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
-------------------------------------------------------
|0 |SUBPLAN FILTER | |3334 |1043728|
|1 | NESTED-LOOP JOIN CARTESIAN| |10000 |7270 |
|2 | TABLE SCAN |t7 |100 |88 |
|3 | MATERIAL | |100 |106 |
|4 | TABLE SCAN |t8 |100 |88 |
|5 | TABLE SCAN |t0 |100 |90 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter([t7.c1 > subquery(1)]),
exec_params_([t7.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t7.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([1]), filter(nil)
4 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([t0.c1]), filter(nil), startup_filter([?]),
access([t0.c1]), partitions(p0),
is_index_back=false,
range_key([t0.pk]), range(MIN ; MAX)always true
*************** Case 806(end) **************
*************** Case 807 ***************
SQL: select t7.c1 from t7,t8 where t7.c1 > (select t0.c1 from t0 where t7.c1 + 1);
=======================================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
-------------------------------------------------------
|0 |SUBPLAN FILTER | |3334 |1043728|
|1 | NESTED-LOOP JOIN CARTESIAN| |10000 |7270 |
|2 | TABLE SCAN |t7 |100 |88 |
|3 | MATERIAL | |100 |106 |
|4 | TABLE SCAN |t8 |100 |88 |
|5 | TABLE SCAN |t0 |100 |90 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter([t7.c1 > subquery(1)]),
exec_params_([t7.c1 + ?]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t7.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([1]), filter(nil)
4 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
5 - output([t0.c1]), filter(nil), startup_filter([?]),
access([t0.c1]), partitions(p0),
is_index_back=false,
range_key([t0.pk]), range(MIN ; MAX)always true
*************** Case 807(end) **************
*************** Case 808 ***************
SQL: select t7.c1 from t7,t8 where t7.c1 > (select t0.c1 from t0 where 1);
====================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------------------
|0 |SUBPLAN FILTER | |3334 |3044|
|1 | NESTED-LOOP JOIN CARTESIAN| |3334 |2494|
|2 | TABLE SCAN |t8 |100 |88 |
|3 | MATERIAL | |34 |48 |
|4 | TABLE SCAN |t7 |34 |42 |
|5 | TABLE SCAN |t0 |100 |90 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
1 - output([t7.c1]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([1]), filter(nil),
access([t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
3 - output([t7.c1]), filter(nil)
4 - output([t7.c1]), filter(nil),
access([t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true,
range_cond([t7.c1 > ?])
5 - output([t0.c1]), filter(nil), startup_filter([1]),
access([t0.c1]), partitions(p0),
is_index_back=false,
range_key([t0.pk]), range(MIN ; MAX)always true
*************** Case 808(end) **************
*************** Case 809 ***************
SQL: select t12.c1 from t1 t12,t2 t22 where t12.c1 in (select c3 from t1 where c1 = 5 AND c2 = t22.c1);
==============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------------------------
|0 |PX COORDINATOR | |1 |128 |
|1 | EXCHANGE OUT DISTR |:EX10002|1 |128 |
|2 | NESTED-LOOP JOIN | |1 |128 |
|3 | EXCHANGE IN DISTR | |1 |91 |
|4 | EXCHANGE OUT DISTR (BC2HOST) |:EX10001|1 |91 |
|5 | MATERIAL | |1 |91 |
|6 | NESTED-LOOP JOIN | |1 |89 |
|7 | EXCHANGE IN DISTR | |1 |53 |
|8 | EXCHANGE OUT DISTR (PKEY)|:EX10000|1 |52 |
|9 | TABLE GET |t1 |1 |52 |
|10| PX PARTITION ITERATOR | |1 |36 |
|11| TABLE GET |t22 |1 |36 |
|12| PX PARTITION ITERATOR | |1 |36 |
|13| TABLE GET |t12 |1 |36 |
==============================================================
Outputs & filters:
-------------------------------------
0 - output([t12.c1]), filter(nil)
1 - output([t12.c1]), filter(nil), dop=1
2 - output([t12.c1]), filter(nil),
conds(nil), nl_params_([t22.c3]), batch_join=false
3 - output([t22.c3]), filter(nil)
4 - output([t22.c3]), filter(nil), dop=1
5 - output([t22.c3]), filter(nil)
6 - output([t22.c3]), filter(nil),
conds(nil), nl_params_([t1.c2]), batch_join=false
7 - output([t1.c2], [PARTITION_ID]), filter(nil)
8 - (#keys=1, [t1.c2]), output([t1.c2], [PARTITION_ID]), filter(nil), is_single, dop=1
9 - output([t1.c2]), filter(nil),
access([t1.c2]), partitions(p0),
is_index_back=false,
range_key([t1.c1]), range[5 ; 5],
range_cond([t1.c1 = ?])
10 - output([t22.c3]), filter(nil),
affinitize, force partition granule, asc.
11 - output([t22.c3]), filter(nil),
access([t22.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t22.c1]), range(MIN ; MAX),
range_cond([? = t22.c1])
12 - output([t12.c1]), filter(nil),
access all, force partition granule, asc.
13 - output([t12.c1]), filter(nil),
access([t12.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t12.c1]), range(MIN ; MAX),
range_cond([t12.c1 = ?])
*************** Case 809(end) **************
*************** Case 810 ***************
SQL: select * from t1 join t5 on t1.c1 = t5.c3 where t5.c3 > 0 and t5.c3 < 100 order by t5.c3 limit 100;
===================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------------
|0 |LIMIT | |100 |1910|
|1 | PX COORDINATOR MERGE SORT | |100 |1896|
|2 | EXCHANGE OUT DISTR |:EX10001 |100 |1872|
|3 | LIMIT | |100 |1872|
|4 | MERGE JOIN | |100 |1859|
|5 | EXCHANGE IN MERGE SORT DISTR| |177 |1127|
|6 | EXCHANGE OUT DISTR (PKEY) |:EX10000 |177 |1102|
|7 | PX PARTITION ITERATOR | |177 |1102|
|8 | TABLE SCAN |t5(idx_t5_c3)|177 |1102|
|9 | SORT | |294 |608 |
|10| PX PARTITION ITERATOR | |294 |197 |
|11| TABLE SCAN |t1 |294 |197 |
===================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t5.c1], [t5.c2], [t5.c3]), filter(nil), limit(100), offset(nil)
1 - output([t1.c1], [t1.c2], [t5.c1], [t5.c2], [t5.c3]), filter(nil), sort_keys([t5.c3, ASC])
2 - output([t1.c1], [t1.c2], [t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2], [t5.c1], [t5.c2], [t5.c3]), filter(nil), limit(100), offset(nil)
4 - output([t1.c1], [t1.c2], [t5.c1], [t5.c2], [t5.c3]), filter(nil),
equal_conds([t1.c1 = t5.c3]), other_conds(nil)
5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), sort_keys([t5.c3, ASC]), Local Order
6 - (#keys=1, [t5.c3]), output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
7 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
force partition granule, asc.
8 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
access([t5.c2], [t5.c3], [t5.c1]), partitions(p[0-2]),
is_index_back=true,
range_key([t5.c3], [t5.c2]), range(0,MAX ; 100,MIN),
range_cond([t5.c3 > ?], [t5.c3 < ?])
9 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
10 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
11 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(0 ; 100),
range_cond([t1.c1 < ?], [t1.c1 > ?])
*************** Case 810(end) **************
*************** Case 811 ***************
SQL: select * from t1 join t5 on t1.c1 = t5.c3 where t5.c3 > 0 and t5.c3 < 100 order by t5.c3 limit 10000;
===================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------------
|0 |LIMIT | |290 |3390|
|1 | PX COORDINATOR MERGE SORT | |290 |3350|
|2 | EXCHANGE OUT DISTR |:EX10001 |290 |3281|
|3 | LIMIT | |290 |3281|
|4 | MERGE JOIN | |290 |3241|
|5 | EXCHANGE IN MERGE SORT DISTR| |300 |1885|
|6 | EXCHANGE OUT DISTR (PKEY) |:EX10000 |300 |1842|
|7 | PX PARTITION ITERATOR | |300 |1842|
|8 | TABLE SCAN |t5(idx_t5_c3)|300 |1842|
|9 | SORT | |500 |1074|
|10| PX PARTITION ITERATOR | |500 |342 |
|11| TABLE SCAN |t1 |500 |342 |
===================================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t5.c1], [t5.c2], [t5.c3]), filter(nil), limit(10000), offset(nil)
1 - output([t1.c1], [t1.c2], [t5.c1], [t5.c2], [t5.c3]), filter(nil), sort_keys([t5.c3, ASC])
2 - output([t1.c1], [t1.c2], [t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
3 - output([t1.c1], [t1.c2], [t5.c1], [t5.c2], [t5.c3]), filter(nil), limit(10000), offset(nil)
4 - output([t1.c1], [t1.c2], [t5.c1], [t5.c2], [t5.c3]), filter(nil),
equal_conds([t1.c1 = t5.c3]), other_conds(nil)
5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), sort_keys([t5.c3, ASC]), Local Order
6 - (#keys=1, [t5.c3]), output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
7 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
force partition granule, asc.
8 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil),
access([t5.c2], [t5.c3], [t5.c1]), partitions(p[0-2]),
is_index_back=true,
range_key([t5.c3], [t5.c2]), range(0,MAX ; 100,MIN),
range_cond([t5.c3 > ?], [t5.c3 < ?])
9 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
10 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
11 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(0 ; 100),
range_cond([t1.c1 < ?], [t1.c1 > ?])
*************** Case 811(end) **************
*************** Case 812 ***************
SQL: select * from tidx where c2 > 0 and c2 < 1000 order by c2 limit 10000;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|tidx(tidx_c2)|100 |649 |
============================================
Outputs & filters:
-------------------------------------
0 - output([tidx.c1], [tidx.c2], [tidx.c3], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), filter(nil),
access([tidx.c2], [tidx.c1], [tidx.c3], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), partitions(p0),
limit(10000), offset(nil),
is_index_back=true,
range_key([tidx.c2], [tidx.c3], [tidx.c1]), range(0,MAX,MAX ; 1000,MIN,MIN),
range_cond([tidx.c2 > ?], [tidx.c2 < ?])
*************** Case 812(end) **************
*************** Case 813 ***************
SQL: select * from tidx where c2 > 0 and c2 < 1000 limit 10000;
============================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
--------------------------------------------
|0 |TABLE SCAN|tidx(tidx_c2)|100 |649 |
============================================
Outputs & filters:
-------------------------------------
0 - output([tidx.c1], [tidx.c2], [tidx.c3], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), filter(nil),
access([tidx.c2], [tidx.c1], [tidx.c3], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), partitions(p0),
limit(10000), offset(nil),
is_index_back=true,
range_key([tidx.c2], [tidx.c3], [tidx.c1]), range(0,MAX,MAX ; 1000,MIN,MIN),
range_cond([tidx.c2 > ?], [tidx.c2 < ?])
*************** Case 813(end) **************
*************** Case 814 ***************
SQL: select c2 from (select c1, c2 from t1 group by 1) a;
====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------
|0 |PX COORDINATOR | |500 |389 |
|1 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|2 | PX PARTITION ITERATOR| |500 |342 |
|3 | TABLE SCAN |t1 |500 |342 |
====================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2]), filter(nil)
1 - output([t1.c2]), filter(nil), dop=1
2 - output([t1.c2]), filter(nil),
force partition granule, asc.
3 - output([t1.c2]), filter(nil),
access([t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 814(end) **************
*************** Case 815 ***************
SQL: select c2 from (select c1, c2 from t1 order by 1) a;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |1122|
|1 | EXCHANGE OUT DISTR |:EX10000|500 |1074|
|2 | SORT | |500 |1074|
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2]), filter(nil), sort_keys([t1.c1, ASC])
1 - output([t1.c2], [t1.c1]), filter(nil), dop=1
2 - output([t1.c2], [t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
3 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 815(end) **************
*************** Case 816 ***************
SQL: select c2 from (select c1 + c2, c2 from t1 order by 1) a;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |PX COORDINATOR MERGE SORT | |500 |1122|
|1 | EXCHANGE OUT DISTR |:EX10000|500 |1074|
|2 | SORT | |500 |1074|
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c2]), filter(nil), sort_keys([t1.c1 + t1.c2, ASC])
1 - output([t1.c2], [t1.c1 + t1.c2]), filter(nil), dop=1
2 - output([t1.c2], [t1.c1 + t1.c2]), filter(nil), sort_keys([t1.c1 + t1.c2, ASC])
3 - output([t1.c2], [t1.c1 + t1.c2]), filter(nil),
force partition granule, asc.
4 - output([t1.c2], [t1.c1 + t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 816(end) **************
*************** Case 817 ***************
SQL: select * from t1 where t1.c2 = 5 or exists (select 1 from t2 where t1.c1 = t2.c1);
==================================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------------
|0 |UNION ALL | |750 |1869|
|1 | PX COORDINATOR | |500 |389 |
|2 | EXCHANGE OUT DISTR |:EX10000 |500 |342 |
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
|5 | PX COORDINATOR | |251 |1194|
|6 | EXCHANGE OUT DISTR |:EX20001 |251 |1158|
|7 | MERGE JOIN | |251 |1158|
|8 | SORT | |250 |729 |
|9 | PX PARTITION ITERATOR | |250 |384 |
|10| TABLE SCAN |t1 |250 |384 |
|11| EXCHANGE IN MERGE SORT DISTR| |300 |206 |
|12| EXCHANGE OUT DISTR (PKEY) |:EX20000 |300 |192 |
|13| PX PARTITION ITERATOR | |300 |192 |
|14| TABLE SCAN |t2 |300 |192 |
==================================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])]), filter(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.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(5,MIN ; 5,MAX),
range_cond([t1.c2 = ?])
5 - output([t1.c1], [t1.c2]), filter(nil)
6 - output([t1.c1], [t1.c2]), filter(nil), dop=1
7 - output([t1.c1], [t1.c2]), filter(nil),
equal_conds([t1.c1 = t2.c1]), other_conds(nil)
8 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
9 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
10 - output([t1.c1], [t1.c2]), filter([lnnvl(t1.c2 = ?)]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
11 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
12 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
13 - output([t2.c1]), filter(nil),
force partition granule, asc.
14 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 817(end) **************
*************** Case 818 ***************
SQL: select * from t1 where t1.c2 = 5 or exists (select 1 from t2 where t1.c1 > t2.c1);
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
------------------------------------------------------------
|0 |UNION ALL | |584 |10119|
|1 | PX COORDINATOR | |500 |389 |
|2 | EXCHANGE OUT DISTR |:EX10000 |500 |342 |
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
|5 | NESTED-LOOP SEMI JOIN | |84 |9507 |
|6 | PX COORDINATOR | |250 |407 |
|7 | EXCHANGE OUT DISTR |:EX20000 |250 |384 |
|8 | PX PARTITION ITERATOR| |250 |384 |
|9 | TABLE SCAN |t1 |250 |384 |
|10| PX COORDINATOR | |1 |36 |
|11| EXCHANGE OUT DISTR |:EX30000 |1 |36 |
|12| PX PARTITION ITERATOR| |1 |36 |
|13| TABLE SCAN |t2 |1 |36 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])]), filter(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.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(5,MIN ; 5,MAX),
range_cond([t1.c2 = ?])
5 - output([t1.c1], [t1.c2]), filter(nil),
conds(nil), nl_params_([t1.c1]), batch_join=false
6 - output([t1.c1], [t1.c2]), filter(nil)
7 - output([t1.c1], [t1.c2]), filter(nil), dop=1
8 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
9 - output([t1.c1], [t1.c2]), filter([lnnvl(t1.c2 = ?)]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
10 - output([1]), filter(nil)
11 - output([1]), filter(nil), dop=1
12 - output([1]), filter(nil),
force partition granule, asc.
13 - output([1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX),
range_cond([? > t2.c1])
*************** Case 818(end) **************
*************** Case 819 ***************
SQL: select * from t1 where t1.c2 = 5 or exists (select 1 from t2 where t1.c1 < t2.c1);
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
------------------------------------------------------------
|0 |UNION ALL | |584 |10119|
|1 | PX COORDINATOR | |500 |389 |
|2 | EXCHANGE OUT DISTR |:EX10000 |500 |342 |
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
|5 | NESTED-LOOP SEMI JOIN | |84 |9507 |
|6 | PX COORDINATOR | |250 |407 |
|7 | EXCHANGE OUT DISTR |:EX20000 |250 |384 |
|8 | PX PARTITION ITERATOR| |250 |384 |
|9 | TABLE SCAN |t1 |250 |384 |
|10| PX COORDINATOR | |1 |36 |
|11| EXCHANGE OUT DISTR |:EX30000 |1 |36 |
|12| PX PARTITION ITERATOR| |1 |36 |
|13| TABLE SCAN |t2 |1 |36 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])]), filter(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.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(5,MIN ; 5,MAX),
range_cond([t1.c2 = ?])
5 - output([t1.c1], [t1.c2]), filter(nil),
conds(nil), nl_params_([t1.c1]), batch_join=false
6 - output([t1.c1], [t1.c2]), filter(nil)
7 - output([t1.c1], [t1.c2]), filter(nil), dop=1
8 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
9 - output([t1.c1], [t1.c2]), filter([lnnvl(t1.c2 = ?)]),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false, filter_before_indexback[false],
range_key([t1.c1]), range(MIN ; MAX)always true
10 - output([1]), filter(nil)
11 - output([1]), filter(nil), dop=1
12 - output([1]), filter(nil),
force partition granule, asc.
13 - output([1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX),
range_cond([? < t2.c1])
*************** Case 819(end) **************
*************** Case 820 ***************
SQL: select * from t1, t2 where t1.c1 > exists(select c1 from t2 where t2.c1 = t1.c1);
===========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
-----------------------------------------------------------
|0 |SUBPLAN FILTER | |50000 |5584376|
|1 | NESTED-LOOP JOIN CARTESIAN| |150000 |108575 |
|2 | PX COORDINATOR | |300 |290 |
|3 | EXCHANGE OUT DISTR |:EX10000|300 |205 |
|4 | PX PARTITION ITERATOR | |300 |205 |
|5 | TABLE SCAN |t2 |300 |205 |
|6 | MATERIAL | |500 |573 |
|7 | PX COORDINATOR | |500 |389 |
|8 | EXCHANGE OUT DISTR |:EX20000|500 |342 |
|9 | PX PARTITION ITERATOR | |500 |342 |
|10| TABLE SCAN |t1 |500 |342 |
|11| LIMIT | |1 |37 |
|12| PX COORDINATOR | |1 |37 |
|13| EXCHANGE OUT DISTR |:EX30000|1 |37 |
|14| LIMIT | |1 |37 |
|15| PX PARTITION ITERATOR | |1 |36 |
|16| TABLE GET |t2 |1 |36 |
===========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter([t1.c1 > (T_OP_EXISTS, subquery(1))]),
exec_params_([t1.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
6 - output([t1.c1], [t1.c2]), filter(nil)
7 - output([t1.c1], [t1.c2]), filter(nil)
8 - output([t1.c1], [t1.c2]), filter(nil), dop=1
9 - output([t1.c1], [t1.c2]), filter(nil),
force partition granule, asc.
10 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
11 - output([1]), filter(nil), limit(1), offset(nil)
12 - output([1]), filter(nil)
13 - output([1]), filter(nil), dop=1
14 - output([1]), filter(nil), limit(1), offset(nil)
15 - output([1]), filter(nil),
force partition granule, asc.
16 - output([1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
limit(1), offset(nil),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true,
range_cond([t2.c1 = ?])
*************** Case 820(end) **************
*************** Case 821 ***************
SQL: select * from t1 where (select c1 from t2 limit 1)+1 in (select 2 from t3 where t1.c1=t3.c1);
=============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------------
|0 |SUBPLAN FILTER | |100 |1530|
|1 | PX COORDINATOR | |200 |1467|
|2 | EXCHANGE OUT DISTR |:EX10001|200 |1438|
|3 | MERGE JOIN | |200 |1438|
|4 | SORT | |500 |1074|
|5 | PX PARTITION ITERATOR | |500 |342 |
|6 | TABLE SCAN |t1 |500 |342 |
|7 | EXCHANGE IN MERGE SORT DISTR| |200 |149 |
|8 | EXCHANGE OUT DISTR (PKEY) |:EX10000|200 |140 |
|9 | PX PARTITION ITERATOR | |200 |140 |
|10| TABLE SCAN |t3 |200 |140 |
|11| LIMIT | |1 |37 |
|12| PX COORDINATOR | |1 |37 |
|13| EXCHANGE OUT DISTR |:EX20000|1 |37 |
|14| LIMIT | |1 |37 |
|15| PX PARTITION ITERATOR | |1 |36 |
|16| TABLE SCAN |t2 |1 |36 |
=============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter([?]),
exec_params_(nil), onetime_exprs_([subquery(1) + ? = ?]), init_plan_idxs_(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),
equal_conds([t1.c1 = t3.c1]), other_conds(nil)
4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
5 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
6 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t3.c1]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
8 - (#keys=1, [t3.c1]), output([t3.c1]), filter(nil), dop=1
9 - output([t3.c1]), filter(nil),
force partition granule, asc.
10 - output([t3.c1]), filter(nil),
access([t3.c1]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
11 - output([t2.c1]), filter(nil), limit(1), offset(nil)
12 - output([t2.c1]), filter(nil)
13 - output([t2.c1]), filter(nil), dop=1
14 - output([t2.c1]), filter(nil), limit(1), offset(nil)
15 - output([t2.c1]), filter(nil),
force partition granule, asc.
16 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
limit(1), offset(nil),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 821(end) **************
*************** Case 822 ***************
SQL: select * from t1 having count(*) > (select c1 from t2 where t1.c1=t2.c1);
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |SUBPLAN FILTER | |1 |569 |
|1 | SCALAR GROUP BY | |1 |533 |
|2 | PX COORDINATOR | |1 |437 |
|3 | EXCHANGE OUT DISTR |:EX10000|1 |437 |
|4 | MERGE GROUP BY | |1 |437 |
|5 | PX PARTITION ITERATOR| |500 |342 |
|6 | TABLE SCAN |t1 |500 |342 |
|7 | PX COORDINATOR | |1 |36 |
|8 | EXCHANGE OUT DISTR |:EX20000|1 |36 |
|9 | PX PARTITION ITERATOR | |1 |36 |
|10| TABLE GET |t2 |1 |36 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter([T_FUN_COUNT_SUM(T_FUN_COUNT(*)) > subquery(1)]),
exec_params_([t1.c1]), onetime_exprs_(nil), init_plan_idxs_(nil)
1 - output([t1.c1], [t1.c2], [T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
2 - output([t1.c1], [t1.c2], [T_FUN_COUNT(*)]), filter(nil)
3 - output([t1.c1], [t1.c2], [T_FUN_COUNT(*)]), filter(nil), dop=1
4 - output([t1.c1], [t1.c2], [T_FUN_COUNT(*)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(*)])
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]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
7 - output([t2.c1]), filter(nil)
8 - output([t2.c1]), filter(nil), dop=1
9 - output([t2.c1]), filter(nil),
force partition granule, asc.
10 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true,
range_cond([? = t2.c1])
*************** Case 822(end) **************
*************** Case 823 ***************
SQL: select * from t1, t2 where t2.c1 = t1.c1 and t2.c1 = (select c1 from t3 where t3.c1 = t1.c1);
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |200 |2636|
|1 | EXCHANGE OUT DISTR |:EX10002|200 |2550|
|2 | MERGE JOIN | |200 |2550|
|3 | EXCHANGE IN MERGE SORT DISTR | |200 |1261|
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|200 |1195|
|5 | MERGE JOIN | |200 |1195|
|6 | SORT | |300 |859 |
|7 | PX PARTITION ITERATOR | |300 |205 |
|8 | TABLE SCAN |t2 |300 |205 |
|9 | EXCHANGE IN MERGE SORT DISTR| |200 |149 |
|10| EXCHANGE OUT DISTR (PKEY) |:EX10000|200 |140 |
|11| PX PARTITION ITERATOR | |200 |140 |
|12| TABLE SCAN |t3 |200 |140 |
|13| SORT | |500 |1074|
|14| PX PARTITION ITERATOR | |500 |342 |
|15| TABLE SCAN |t1 |500 |342 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t2.c1 = t1.c1]), other_conds(nil)
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC])
4 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t2.c1 = t3.c1]), other_conds(nil)
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
affinitize, force partition granule, asc.
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
9 - output([t3.c1]), filter(nil), sort_keys([t3.c1, ASC]), Local Order
10 - (#keys=1, [t3.c1]), output([t3.c1]), filter(nil), dop=1
11 - output([t3.c1]), filter(nil),
force partition granule, asc.
12 - output([t3.c1]), filter(nil),
access([t3.c1]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
13 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
14 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
15 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 823(end) **************
*************** Case 824 ***************
SQL: select * from (select c1+1 as a1 from t1 where t1.c2 = 2) a, t2 where a.a1 = t2.c2 or t2.c1 = ANY(select c3 from t3 where t3.c1 > a.a1);
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
---------------------------------------------------------------
|0 |UNION ALL | |9072 |129412|
|1 | HASH JOIN | |300 |1641 |
|2 | PX COORDINATOR | |500 |389 |
|3 | EXCHANGE OUT DISTR |:EX10000 |500 |342 |
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1(idx_t1_c2)|500 |342 |
|6 | PX COORDINATOR | |300 |290 |
|7 | EXCHANGE OUT DISTR |:EX20000 |300 |205 |
|8 | PX PARTITION ITERATOR | |300 |205 |
|9 | TABLE SCAN |t2 |300 |205 |
|10| HASH RIGHT SEMI JOIN | |8772 |123345|
|11| PX COORDINATOR | |200 |191 |
|12| EXCHANGE OUT DISTR |:EX30000 |200 |144 |
|13| PX PARTITION ITERATOR | |200 |144 |
|14| TABLE SCAN |t3 |200 |144 |
|15| NESTED-LOOP JOIN | |75000 |82932 |
|16| PX COORDINATOR | |300 |290 |
|17| EXCHANGE OUT DISTR |:EX40000 |300 |205 |
|18| PX PARTITION ITERATOR | |300 |205 |
|19| TABLE SCAN |t2 |300 |205 |
|20| MATERIAL | |500 |573 |
|21| PX COORDINATOR | |500 |389 |
|22| EXCHANGE OUT DISTR |:EX50000 |500 |342 |
|23| PX PARTITION ITERATOR| |500 |342 |
|24| TABLE SCAN |t1(idx_t1_c2)|500 |342 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([UNION([1])], [UNION([2])], [UNION([3])], [UNION([4])]), filter(nil)
1 - output([t1.c1 + ?], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t1.c1 + ? = t2.c2]), other_conds(nil)
2 - output([t1.c1 + ?]), filter(nil)
3 - output([t1.c1 + ?]), filter(nil), dop=1
4 - output([t1.c1 + ?]), filter(nil),
force partition granule, asc.
5 - output([t1.c1 + ?]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(2,MIN ; 2,MAX),
range_cond([t1.c2 = ?])
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
10 - output([t1.c1 + ?], [t2.c1], [t2.c2], [t2.c3]), filter(nil),
equal_conds([t2.c1 = t3.c3]), other_conds([t3.c1 > t1.c1 + ?])
11 - output([t3.c1], [t3.c3]), filter(nil)
12 - output([t3.c1], [t3.c3]), filter(nil), dop=1
13 - output([t3.c1], [t3.c3]), filter(nil),
force partition granule, asc.
14 - output([t3.c1], [t3.c3]), filter(nil),
access([t3.c1], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
15 - output([t1.c1], [t2.c1], [t2.c2], [t2.c3], [t1.c1 + ?]), filter(nil),
conds([lnnvl(t1.c1 + ? = t2.c2)]), nl_params_(nil), batch_join=false
16 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
17 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
18 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
19 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
20 - output([t1.c1]), filter(nil)
21 - output([t1.c1]), filter(nil)
22 - output([t1.c1]), filter(nil), dop=1
23 - output([t1.c1]), filter(nil),
force partition granule, asc.
24 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c2], [t1.c1]), range(2,MIN ; 2,MAX),
range_cond([t1.c2 = ?])
*************** Case 824(end) **************
*************** Case 825 ***************
SQL: select * from t1 where t1.c1 > (select sum(c1) from t2 where t2.c1 = t1.c1);
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |PX COORDINATOR | |100 |1477|
|1 | EXCHANGE OUT DISTR |:EX10001|100 |1462|
|2 | MERGE JOIN | |100 |1462|
|3 | SORT | |500 |1074|
|4 | PX PARTITION ITERATOR | |500 |342 |
|5 | TABLE SCAN |t1 |500 |342 |
|6 | EXCHANGE IN MERGE SORT DISTR| |100 |246 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|100 |242 |
|8 | PX PARTITION ITERATOR | |100 |242 |
|9 | TABLE SCAN |t2 |100 |242 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
equal_conds([t2.c1 = t1.c1]), other_conds(nil)
3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
4 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
5 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
6 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
7 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
8 - output([t2.c1]), filter(nil),
force partition granule, asc.
9 - output([t2.c1]), filter([t2.c1 > cast(t2.c1, DECIMAL(11, 0))]),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 825(end) **************
*************** Case 826 ***************
SQL: select * from t1 where t1.c1 > (select sum(c1) from t2 where t2.c1 = t1.c1 and t2.c2 > (select max(c2) from t3 where t3.c1 = t2.c1));
===============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------------------------------
|0 |PX COORDINATOR | |34 |1930|
|1 | EXCHANGE OUT DISTR |:EX10002|34 |1921|
|2 | MERGE JOIN | |34 |1921|
|3 | EXCHANGE IN MERGE SORT DISTR | |34 |754 |
|4 | EXCHANGE OUT DISTR (PKEY) |:EX10001|34 |747 |
|5 | MERGE JOIN | |34 |747 |
|6 | EXCHANGE IN MERGE SORT DISTR| |100 |258 |
|7 | EXCHANGE OUT DISTR (PKEY) |:EX10000|100 |248 |
|8 | PX PARTITION ITERATOR | |100 |248 |
|9 | TABLE SCAN |t2 |100 |248 |
|10| SORT | |200 |415 |
|11| PX PARTITION ITERATOR | |200 |144 |
|12| TABLE SCAN |t3 |200 |144 |
|13| SORT | |500 |1074|
|14| PX PARTITION ITERATOR | |500 |342 |
|15| TABLE SCAN |t1 |500 |342 |
===============================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter(nil)
1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
2 - output([t1.c1], [t1.c2]), filter(nil),
equal_conds([t2.c1 = t1.c1]), other_conds(nil)
3 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC])
4 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
5 - output([t2.c1]), filter(nil),
equal_conds([t3.c1 = t2.c1]), other_conds([t2.c2 > t3.c2])
6 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
7 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2]), filter(nil), dop=1
8 - output([t2.c1], [t2.c2]), filter(nil),
force partition granule, asc.
9 - output([t2.c1], [t2.c2]), filter([t2.c1 > cast(t2.c1, DECIMAL(11, 0))]),
access([t2.c1], [t2.c2]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range(MIN ; MAX)always true
10 - output([t3.c2], [t3.c1]), filter(nil), sort_keys([t3.c1, ASC]), local merge sort
11 - output([t3.c1], [t3.c2]), filter(nil),
affinitize, force partition granule, asc.
12 - output([t3.c1], [t3.c2]), filter(nil),
access([t3.c1], [t3.c2]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
13 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
14 - output([t1.c1], [t1.c2]), filter(nil),
affinitize, force partition granule, asc.
15 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
*************** Case 826(end) **************
*************** Case 827 ***************
SQL: select * from t1 where t1.c2 in (select avg(c1) from t2 where t2.c1 = t1.c1 union select count(1) from t3 where t3.c1 = t1.c1);
=========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
---------------------------------------------------------
|0 |SUBPLAN FILTER | |250 |37313|
|1 | PX COORDINATOR | |500 |389 |
|2 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
|5 | MERGE UNION DISTINCT | |2 |74 |
|6 | SCALAR GROUP BY | |1 |37 |
|7 | PX COORDINATOR | |1 |37 |
|8 | EXCHANGE OUT DISTR |:EX20000|1 |37 |
|9 | MERGE GROUP BY | |1 |37 |
|10| PX PARTITION ITERATOR| |1 |36 |
|11| TABLE GET |t2 |1 |36 |
|12| SCALAR GROUP BY | |1 |37 |
|13| PX COORDINATOR | |1 |37 |
|14| EXCHANGE OUT DISTR |:EX30000|1 |37 |
|15| MERGE GROUP BY | |1 |37 |
|16| PX PARTITION ITERATOR| |1 |36 |
|17| TABLE GET |t3 |1 |36 |
=========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter([t1.c2 = ANY(subquery(1))]),
exec_params_([t1.c1]), onetime_exprs_(nil), init_plan_idxs_(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.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([UNION([1])]), filter(nil)
6 - output([T_FUN_SUM(T_FUN_SUM(t2.c1)) / T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1))]), filter(nil),
group(nil), agg_func([T_FUN_SUM(T_FUN_SUM(t2.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1))])
7 - output([T_FUN_SUM(t2.c1)], [T_FUN_COUNT(t2.c1)]), filter(nil)
8 - output([T_FUN_SUM(t2.c1)], [T_FUN_COUNT(t2.c1)]), filter(nil), dop=1
9 - output([T_FUN_SUM(t2.c1)], [T_FUN_COUNT(t2.c1)]), filter(nil),
group(nil), agg_func([T_FUN_SUM(t2.c1)], [T_FUN_COUNT(t2.c1)])
10 - output([t2.c1]), filter(nil),
force partition granule, asc.
11 - output([t2.c1]), filter(nil),
access([t2.c1]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true,
range_cond([t2.c1 = ?])
12 - output([cast(T_FUN_COUNT_SUM(T_FUN_COUNT(?)), DECIMAL(24, 4))]), filter(nil),
group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(?))])
13 - output([T_FUN_COUNT(?)]), filter(nil)
14 - output([T_FUN_COUNT(?)]), filter(nil), dop=1
15 - output([T_FUN_COUNT(?)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(?)])
16 - output([1]), filter(nil),
force partition granule, asc.
17 - output([1]), filter(nil),
access([t3.c1]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true,
range_cond([t3.c1 = ?])
*************** Case 827(end) **************
*************** Case 828 ***************
SQL: select * from t1 where t1.c1 != (select c2 from t2 where t2.c1 = (select max(c2) from t3 where t3.c1 = t1.c1) order by t2.c2 limit 1);
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
----------------------------------------------------------
|0 |SUBPLAN FILTER | |499 |36879|
|1 | PX COORDINATOR | |500 |389 |
|2 | EXCHANGE OUT DISTR |:EX10000|500 |342 |
|3 | PX PARTITION ITERATOR | |500 |342 |
|4 | TABLE SCAN |t1 |500 |342 |
|5 | LIMIT | |1 |73 |
|6 | SUBPLAN FILTER | |1 |73 |
|7 | PX COORDINATOR | |1 |37 |
|8 | EXCHANGE OUT DISTR |:EX20000|1 |36 |
|9 | PX PARTITION ITERATOR | |1 |36 |
|10| TABLE GET |t2 |1 |36 |
|11| SCALAR GROUP BY | |1 |37 |
|12| PX COORDINATOR | |1 |37 |
|13| EXCHANGE OUT DISTR |:EX30000|1 |37 |
|14| MERGE GROUP BY | |1 |37 |
|15| PX PARTITION ITERATOR| |1 |36 |
|16| TABLE GET |t3 |1 |36 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2]), filter([t1.c1 != subquery(1)]),
exec_params_([t1.c1]), onetime_exprs_(nil), init_plan_idxs_(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.
4 - output([t1.c1], [t1.c2]), filter(nil),
access([t1.c1], [t1.c2]), partitions(p[0-4]),
is_index_back=false,
range_key([t1.c1]), range(MIN ; MAX)always true
5 - output([t2.c2]), filter(nil), limit(1), offset(nil)
6 - output([t2.c2]), filter(nil),
exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
7 - output([t2.c2]), filter(nil)
8 - output([t2.c2]), filter(nil), dop=1
9 - output([t2.c2]), filter(nil),
force partition granule, asc.
10 - 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,
range_cond([t2.c1 = ?])
11 - output([T_FUN_MAX(T_FUN_MAX(t3.c2))]), filter(nil),
group(nil), agg_func([T_FUN_MAX(T_FUN_MAX(t3.c2))])
12 - output([T_FUN_MAX(t3.c2)]), filter(nil)
13 - output([T_FUN_MAX(t3.c2)]), filter(nil), dop=1
14 - output([T_FUN_MAX(t3.c2)]), filter(nil),
group(nil), agg_func([T_FUN_MAX(t3.c2)])
15 - output([t3.c2]), filter(nil),
force partition granule, asc.
16 - output([t3.c2]), filter(nil),
access([t3.c2]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true,
range_cond([t3.c1 = ?])
*************** Case 828(end) **************
*************** Case 829 ***************
SQL: select /*both need not sort*/ * from t7 left join t8 on t7.c2 = t8.c2 where t8.c2 = 5;
===================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |1 |214 |
|1 | TABLE SCAN |t7 |1 |107 |
|2 | MATERIAL | |1 |107 |
|3 | TABLE SCAN |t8 |1 |107 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t7.c2], [t7.c1]), filter([t7.c2 = ?]),
access([t7.c2], [t7.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c1], [t8.c2]), filter(nil)
3 - output([t8.c2], [t8.c1]), filter([t8.c2 = ?]),
access([t8.c2], [t8.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 829(end) **************
*************** Case 830 ***************
SQL: select /*both need sort*/ * from t7 left join t8 on t7.c2 = t8.c2 where t8.c2 IS NULL;
========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
----------------------------------------
|0 |HASH OUTER JOIN| |99 |400 |
|1 | TABLE SCAN |t7 |100 |90 |
|2 | TABLE SCAN |t8 |100 |90 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter([(T_OP_IS, t8.c2, NULL, 0)]),
equal_conds([t7.c2 = t8.c2]), other_conds(nil)
1 - output([t7.c2], [t7.c1]), filter(nil),
access([t7.c2], [t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
2 - output([t8.c2], [t8.c1]), filter(nil),
access([t8.c2], [t8.c1]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 830(end) **************
*************** Case 831 ***************
SQL: select /*both need not sort*/* from t7 left join t8 on t7.c2 = t8.c1 where t8.c1 = 5;
===================================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
---------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |1 |160 |
|1 | TABLE GET |t8 |1 |52 |
|2 | TABLE SCAN |t7 |1 |107 |
===================================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil),
conds(nil), nl_params_(nil), batch_join=true
1 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range[5 ; 5],
range_cond([t8.c1 = ?])
2 - output([t7.c2], [t7.c1]), filter([t7.c2 = ?]),
access([t7.c2], [t7.c1]), partitions(p0),
is_index_back=false, filter_before_indexback[false],
range_key([t7.c1]), range(MIN ; MAX)always true
*************** Case 831(end) **************
*************** Case 832 ***************
SQL: select /*left need sort*/ * from t7 left join t8 on t7.c2 = t8.c1 where t8.c1 IS NULL;
=========================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |MERGE OUTER JOIN| |99 |394 |
|1 | SORT | |100 |217 |
|2 | TABLE SCAN |t7 |100 |90 |
|3 | TABLE SCAN |t8 |100 |90 |
=========================================
Outputs & filters:
-------------------------------------
0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter([(T_OP_IS, t8.c1, NULL, 0)]),
equal_conds([t7.c2 = t8.c1]), other_conds(nil)
1 - output([t7.c1], [t7.c2]), filter(nil), sort_keys([t7.c2, ASC])
2 - output([t7.c2], [t7.c1]), filter(nil),
access([t7.c2], [t7.c1]), partitions(p0),
is_index_back=false,
range_key([t7.c1]), range(MIN ; MAX)always true
3 - output([t8.c1], [t8.c2]), filter(nil),
access([t8.c1], [t8.c2]), partitions(p0),
is_index_back=false,
range_key([t8.c1]), range(MIN ; MAX)always true
*************** Case 832(end) **************
*************** Case 833 ***************
SQL: select /*both need not sort*/ * from t2 left join t3 on t2.c2 = t3.c2 where t3.c2 = 5;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |6 |444 |
|1 | PX COORDINATOR | |3 |256 |
|2 | EXCHANGE OUT DISTR |:EX10000|3 |255 |
|3 | PX PARTITION ITERATOR | |3 |255 |
|4 | TABLE SCAN |t2 |3 |255 |
|5 | MATERIAL | |2 |185 |
|6 | PX COORDINATOR | |2 |183 |
|7 | EXCHANGE OUT DISTR |:EX20000|2 |182 |
|8 | PX PARTITION ITERATOR | |2 |182 |
|9 | TABLE SCAN |t3 |2 |182 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
4 - output([t2.c1], [t2.c2], [t2.c3]), filter([t2.c2 = ?]),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range(MIN ; MAX)always true
5 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
6 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
7 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
8 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
force partition granule, asc.
9 - output([t3.c1], [t3.c2], [t3.c3]), filter([t3.c2 = ?]),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false, filter_before_indexback[false],
range_key([t3.c1]), range(MIN ; MAX)always true
*************** Case 833(end) **************
*************** Case 834 ***************
SQL: select /*both need sort*/ * from t2 left join t3 on t2.c2 = t3.c2 where t3.c2 IS NULL;
=====================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |HASH RIGHT OUTER JOIN | |298 |1323|
|1 | PX COORDINATOR | |200 |205 |
|2 | EXCHANGE OUT DISTR |:EX10000|200 |149 |
|3 | PX PARTITION ITERATOR| |200 |149 |
|4 | TABLE SCAN |t3 |200 |149 |
|5 | PX COORDINATOR | |300 |290 |
|6 | EXCHANGE OUT DISTR |:EX20000|300 |205 |
|7 | PX PARTITION ITERATOR| |300 |205 |
|8 | TABLE SCAN |t2 |300 |205 |
=====================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter([(T_OP_IS, t3.c2, NULL, 0)]),
equal_conds([t2.c2 = t3.c2]), other_conds(nil)
1 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
2 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
3 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
force partition granule, asc.
4 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 834(end) **************
*************** Case 835 ***************
SQL: select /*both need not sort*/* from t2 left join t3 on t2.c2 = t3.c1 where t3.c1 = 5;
=======================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
-------------------------------------------------------
|0 |NESTED-LOOP JOIN CARTESIAN| |3 |310 |
|1 | PX COORDINATOR | |1 |53 |
|2 | EXCHANGE OUT DISTR |:EX10000|1 |53 |
|3 | TABLE GET |t3 |1 |53 |
|4 | PX COORDINATOR | |3 |256 |
|5 | EXCHANGE OUT DISTR |:EX20000|3 |255 |
|6 | PX PARTITION ITERATOR | |3 |255 |
|7 | TABLE SCAN |t2 |3 |255 |
=======================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil),
conds(nil), nl_params_(nil), batch_join=false
1 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
2 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), is_single, dop=1
3 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p1),
is_index_back=false,
range_key([t3.c1]), range[5 ; 5],
range_cond([t3.c1 = ?])
4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
7 - output([t2.c1], [t2.c2], [t2.c3]), filter([t2.c2 = ?]),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false, filter_before_indexback[false],
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 835(end) **************
*************** Case 836 ***************
SQL: select /*left need sort*/ * from t2 left join t3 on t2.c2 = t3.c1 where t3.c1 IS NULL;
==========================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
----------------------------------------------------------
|0 |PX COORDINATOR | |299 |1281|
|1 | EXCHANGE OUT DISTR |:EX10001|299 |1111|
|2 | HASH RIGHT OUTER JOIN | |299 |1111|
|3 | PX PARTITION ITERATOR | |200 |149 |
|4 | TABLE SCAN |t3 |200 |149 |
|5 | EXCHANGE IN DISTR | |300 |290 |
|6 | EXCHANGE OUT DISTR (PKEY)|:EX10000|300 |205 |
|7 | PX PARTITION ITERATOR | |300 |205 |
|8 | TABLE SCAN |t2 |300 |205 |
==========================================================
Outputs & filters:
-------------------------------------
0 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil)
1 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
2 - output([t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter([(T_OP_IS, t3.c1, NULL, 0)]),
equal_conds([t2.c2 = t3.c1]), other_conds(nil)
3 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
affinitize, force partition granule, asc.
4 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil),
access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1]),
is_index_back=false,
range_key([t3.c1]), range(MIN ; MAX)always true
5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
6 - (#keys=1, [t2.c2]), output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
force partition granule, asc.
8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]),
is_index_back=false,
range_key([t2.c1]), range(MIN ; MAX)always true
*************** Case 836(end) **************
*************** Case 837 ***************
SQL: select count(1) from rpt_adgroup_tag_realtime where thedate = '2017-09-25 00:00:00' and custid = '1102225352' and (custid,thedate,productlineid,campaignid,adgroupid,targetingtagid,tagvalue,pid,hour,traffictype,mechanism,productid) > (1102225352,'2017-09-25 00:00:00',-1,16138889,761211164,358940752715,358940752716,'420651_1007',12,1,2,-1);
============================================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------------------------
|0 |SCALAR GROUP BY| |1 |146 |
|1 | TABLE SCAN |rpt_adgroup_tag_realtime|1 |146 |
============================================================
Outputs & filters:
-------------------------------------
0 - output([T_FUN_COUNT(?)]), filter(nil),
group(nil), agg_func([T_FUN_COUNT(?)])
1 - output([1]), filter([rpt_adgroup_tag_realtime.thedate = ?], [rpt_adgroup_tag_realtime.custid = ?], [(rpt_adgroup_tag_realtime.custid, rpt_adgroup_tag_realtime.thedate, rpt_adgroup_tag_realtime.productlineid, rpt_adgroup_tag_realtime.campaignid, rpt_adgroup_tag_realtime.adgroupid, rpt_adgroup_tag_realtime.targetingtagid, rpt_adgroup_tag_realtime.tagvalue, rpt_adgroup_tag_realtime.pid, rpt_adgroup_tag_realtime.hour, rpt_adgroup_tag_realtime.traffictype, rpt_adgroup_tag_realtime.mechanism, rpt_adgroup_tag_realtime.productid) > (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]),
access([rpt_adgroup_tag_realtime.thedate], [rpt_adgroup_tag_realtime.custid], [rpt_adgroup_tag_realtime.productlineid], [rpt_adgroup_tag_realtime.campaignid], [rpt_adgroup_tag_realtime.adgroupid], [rpt_adgroup_tag_realtime.targetingtagid], [rpt_adgroup_tag_realtime.tagvalue], [rpt_adgroup_tag_realtime.pid], [rpt_adgroup_tag_realtime.hour], [rpt_adgroup_tag_realtime.traffictype], [rpt_adgroup_tag_realtime.mechanism], [rpt_adgroup_tag_realtime.productid]), partitions(p4sp2),
is_index_back=false, filter_before_indexback[false,false,false],
range_key([rpt_adgroup_tag_realtime.custid], [rpt_adgroup_tag_realtime.thedate], [rpt_adgroup_tag_realtime.productlineid], [rpt_adgroup_tag_realtime.campaignid], [rpt_adgroup_tag_realtime.adgroupid], [rpt_adgroup_tag_realtime.targetingtagid], [rpt_adgroup_tag_realtime.tagvalue], [rpt_adgroup_tag_realtime.pid], [rpt_adgroup_tag_realtime.hour], [rpt_adgroup_tag_realtime.traffictype], [rpt_adgroup_tag_realtime.mechanism], [rpt_adgroup_tag_realtime.productid]), range(1102225352,MIN,MIN,MIN,MIN,MIN,MIN,MIN,MIN,MIN,MIN,MIN ; 1102225352,MAX,MAX,MAX,MAX,MAX,MAX,MAX,MAX,MAX,MAX,MAX)
*************** Case 837(end) **************
*************** Case 838 ***************
SQL: select * from query_range where c1=3 and (c1, c2, c3)>(1, 2, 3) and (c1, c2, c3)>(2, 1, 2);
==========================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------------
|0 |TABLE SCAN|query_range|1 |130 |
==========================================
Outputs & filters:
-------------------------------------
0 - output([query_range.c1], [query_range.c2], [query_range.c3], [query_range.c4], [query_range.c5]), filter([query_range.c1 = ?], [(query_range.c1, query_range.c2, query_range.c3) > (?, ?, ?)], [(query_range.c1, query_range.c2, query_range.c3) > (?, ?, ?)]),
access([query_range.c1], [query_range.c2], [query_range.c3], [query_range.c4], [query_range.c5]), partitions(p0),
is_index_back=false, filter_before_indexback[false,false,false],
range_key([query_range.c1], [query_range.c2], [query_range.c3]), range(3,MIN,MIN ; 3,MAX,MAX)
*************** Case 838(end) **************
*************** Case 839 ***************
SQL: select * from cb_loan_acctbal_01 a where (a.balcatcd, a.baltypcd) in (('NOTE', 'BAL'), ('NOTE', 'GINT'), ('ODP', 'GINT'), ('RCVB', 'INT'), ('RCVB', 'ODPI')) and a.preeffdate and '2017-10-16' < a.effdate;
===================================
|ID|OPERATOR |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|a |1 |600 |
===================================
Outputs & filters:
-------------------------------------
0 - output([a.acctnbr], [a.balcatcd], [a.baltypcd], [a.preeffdate], [a.preamt], [a.effdate], [a.amt], [a.mainttellerid], [a.maintbranchnbr], [a.gmt_create], [a.gmt_modified], [a.oddfreqnextduedate], [a.nextrcvbnbr], [a.nextratechangedate]), filter([(a.balcatcd, a.baltypcd) IN ((?, ?), (?, ?), (?, ?), (?, ?), (?, ?))], [? < a.effdate], [a.preeffdate]),
access([a.balcatcd], [a.baltypcd], [a.preeffdate], [a.effdate], [a.acctnbr], [a.preamt], [a.amt], [a.mainttellerid], [a.maintbranchnbr], [a.gmt_create], [a.gmt_modified], [a.oddfreqnextduedate], [a.nextrcvbnbr], [a.nextratechangedate]), partitions(p0),
is_index_back=false, filter_before_indexback[false,false,false],
range_key([a.balcatcd], [a.baltypcd], [a.effdate], [a.acctnbr]), range(NOTE,BAL,2017-10-16,MAX ; NOTE,BAL,MAX,MAX), (NOTE,GINT,2017-10-16,MAX ; NOTE,GINT,MAX,MAX), (ODP,GINT,2017-10-16,MAX ; ODP,GINT,MAX,MAX), (RCVB,INT,2017-10-16,MAX ; RCVB,INT,MAX,MAX), (RCVB,ODPI,2017-10-16,MAX ; RCVB,ODPI,MAX,MAX)
*************** Case 839(end) **************
*************** Case 840 ***************
SQL: use query_range;
*************** Case 841 ***************
SQL: select * from range_t1 where (a, b)>(1, 1) and (a, b)=(1, 2);
=======================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------
|0 |TABLE SCAN|range_t1|1 |132 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([range_t1.a], [range_t1.b]), filter([range_t1.a = ?], [range_t1.b = ?], [(range_t1.a, range_t1.b) > (?, ?)]),
access([range_t1.a], [range_t1.b]), partitions(p0),
is_index_back=false, filter_before_indexback[false,false,false],
range_key([range_t1.a], [range_t1.b]), range(1,MIN ; 1,MAX)
*************** Case 841(end) **************
*************** Case 842 ***************
SQL: select * from range_t1 where (a, b)>(1, 1) and a=1;
=======================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------
|0 |TABLE SCAN|range_t1|1 |115 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([range_t1.a], [range_t1.b]), filter([range_t1.a = ?], [(range_t1.a, range_t1.b) > (?, ?)]),
access([range_t1.a], [range_t1.b]), partitions(p0),
is_index_back=false, filter_before_indexback[false,false],
range_key([range_t1.a], [range_t1.b]), range(1,MIN ; 1,MAX)
*************** Case 842(end) **************
*************** Case 843 ***************
SQL: select * from range_t1 where (a, b)>(1, 1) and b=2;
=======================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
---------------------------------------
|0 |TABLE SCAN|range_t1|1 |115 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([range_t1.a], [range_t1.b]), filter([range_t1.b = ?], [(range_t1.a, range_t1.b) > (?, ?)]),
access([range_t1.a], [range_t1.b]), partitions(p0),
is_index_back=false, filter_before_indexback[false,false],
range_key([range_t1.a], [range_t1.b]), range(1,1 ; MAX,MAX)
*************** Case 843(end) **************
*************** Case 844 ***************
SQL: select * from test1 where (id, dt) > (0, '2017-01-02') and (id, dt) <= (1, '2017-01-03');
====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------
|0 |TABLE SCAN|test1|8 |107 |
====================================
Outputs & filters:
-------------------------------------
0 - output([test1.id], [test1.dt]), filter([(test1.id, test1.dt) <= (?, ?)], [(test1.id, test1.dt) > (?, ?)]),
access([test1.id], [test1.dt]), partitions(p0),
is_index_back=false, filter_before_indexback[false,false],
range_key([test1.id], [test1.dt]), range(0,2017-01-02 00:00:00.000000 ; 1,2017-01-03 00:00:00.000000]
*************** Case 844(end) **************
*************** Case 845 ***************
SQL: select * from test1 where (id, dt) > (0, '2017-01-02') and (id, dt) <= (1, '2017-01-03') and dt < '2017-01-02';
====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------
|0 |TABLE SCAN|test1|2 |115 |
====================================
Outputs & filters:
-------------------------------------
0 - output([test1.id], [test1.dt]), filter([(test1.id, test1.dt) <= (?, ?)], [test1.dt < ?], [(test1.id, test1.dt) > (?, ?)]),
access([test1.id], [test1.dt]), partitions(p0),
is_index_back=false, filter_before_indexback[false,false,false],
range_key([test1.id], [test1.dt]), range(0,2017-01-02 00:00:00.000000 ; 1,2017-01-03 00:00:00.000000]
*************** Case 845(end) **************
*************** Case 846 ***************
SQL: select * from test1 where (id, dt) > (0, '2017-01-01') and (id, dt) <= (1, '2017-01-03') and dt = '2017-01-02';
====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------
|0 |TABLE SCAN|test1|1 |115 |
====================================
Outputs & filters:
-------------------------------------
0 - output([test1.id], [test1.dt]), filter([test1.dt = ?], [(test1.id, test1.dt) <= (?, ?)], [(test1.id, test1.dt) > (?, ?)]),
access([test1.id], [test1.dt]), partitions(p0),
is_index_back=false, filter_before_indexback[false,false,false],
range_key([test1.id], [test1.dt]), range(0,2017-01-01 00:00:00.000000 ; 1,2017-01-03 00:00:00.000000]
*************** Case 846(end) **************
*************** Case 847 ***************
SQL: select * from test1 where (id, dt) > (0, '2017-01-02') and (id, dt) <= (1, '2017-01-03') and dt = '2017-01-02';
====================================
|ID|OPERATOR |NAME |EST. ROWS|COST|
------------------------------------
|0 |TABLE SCAN|test1|1 |115 |
====================================
Outputs & filters:
-------------------------------------
0 - output([test1.id], [test1.dt]), filter([test1.dt = ?], [(test1.id, test1.dt) <= (?, ?)], [(test1.id, test1.dt) > (?, ?)]),
access([test1.id], [test1.dt]), partitions(p0),
is_index_back=false, filter_before_indexback[false,false,false],
range_key([test1.id], [test1.dt]), range(0,2017-01-02 00:00:00.000000 ; 1,2017-01-03 00:00:00.000000]
*************** Case 847(end) **************