27527 lines
		
	
	
		
			1.1 MiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			27527 lines
		
	
	
		
			1.1 MiB
		
	
	
	
	
	
	
	
***************   Case 1   ***************
 | 
						|
 | 
						|
SQL: select * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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      |567 |
 | 
						|
|1 | EXCHANGE OUT DISTR       |:EX10000     |500      |540 |
 | 
						|
|2 |  SORT                    |             |500      |488 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |             |500      |387 |
 | 
						|
|4 |    TABLE SCAN            |t1(idx_t1_c2)|500      |387 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2)]), filter(nil), sort_keys([t1.c2, ASC])
 | 
						|
  1 - output([t1.c2], [INTERNAL_FUNCTION(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.
 | 
						|
  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      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1 + t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1 + t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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      |248 |
 | 
						|
|1 | PX COORDINATOR          |        |100      |247 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|100      |241 |
 | 
						|
|3 |   LIMIT                 |        |100      |231 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |100      |229 |
 | 
						|
|5 |     TABLE SCAN          |t1      |100      |229 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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      |261 |
 | 
						|
|1 | PX COORDINATOR          |        |100      |259 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|100      |250 |
 | 
						|
|3 |   LIMIT                 |        |100      |231 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |100      |229 |
 | 
						|
|5 |     TABLE SCAN          |t1      |100      |229 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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      |279 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT |        |100      |278 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000|100      |268 |
 | 
						|
|3 |   TOP-N SORT              |        |100      |250 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |100      |229 |
 | 
						|
|5 |     TABLE SCAN            |t1      |100      |229 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil), limit(100), offset(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC])
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), topn(100), local merge sort
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 8(end)  ************** 
 | 
						|
 | 
						|
***************   Case 9   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 order by c1 limit 100; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |LIMIT                      |        |100      |267 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT |        |100      |265 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000|100      |260 |
 | 
						|
|3 |   TOP-N SORT              |        |100      |249 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |100      |229 |
 | 
						|
|5 |     TABLE SCAN            |t1      |100      |229 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
 | 
						|
  1 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
 | 
						|
  2 - output([t1.c1]), filter(nil), dop=1
 | 
						|
  3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), topn(100), local merge sort
 | 
						|
  4 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 9(end)  ************** 
 | 
						|
 | 
						|
***************   Case 10   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 order by c2 limit 100; 
 | 
						|
 | 
						|
=============================================================
 | 
						|
|ID|OPERATOR                   |NAME         |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------------
 | 
						|
|0 |LIMIT                      |             |100      |279 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT |             |100      |278 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000     |100      |268 |
 | 
						|
|3 |   TOP-N SORT              |             |100      |250 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |             |100      |229 |
 | 
						|
|5 |     TABLE SCAN            |t1(idx_t1_c2)|100      |229 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
 | 
						|
  1 - output([t1.c1]), filter(nil), sort_keys([t1.c2, ASC])
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(100), local merge sort
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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.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      |281 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT |             |100      |279 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000     |100      |270 |
 | 
						|
|3 |   TOP-N SORT              |             |100      |251 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |             |100      |230 |
 | 
						|
|5 |     TABLE SCAN            |t1(idx_t1_c2)|100      |230 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
 | 
						|
  1 - output([t1.c1]), filter(nil), sort_keys([t1.c2, ASC])
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(100), local merge sort
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - 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                      |             |5        |230 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT |             |5        |230 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000     |5        |229 |
 | 
						|
|3 |   TOP-N SORT              |             |5        |228 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |             |5        |227 |
 | 
						|
|5 |     TABLE SCAN            |t1(idx_t1_c2)|5        |227 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1]), filter(nil), limit(100), offset(nil)
 | 
						|
  1 - output([t1.c1]), filter(nil), sort_keys([t1.c2, ASC])
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(100), local merge sort
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - 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      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001     |100      |509 |
 | 
						|
|2 |  MERGE GROUP BY               |             |100      |469 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|             |100      |462 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |448 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |             |100      |418 |
 | 
						|
|6 |      MERGE GROUP BY           |             |100      |418 |
 | 
						|
|7 |       TABLE SCAN              |t1(idx_t1_c2)|500      |387 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2, T_FUN_SUM(T_FUN_SUM(t1.c1)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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      |576 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001     |100      |550 |
 | 
						|
|2 |  MERGE GROUP BY               |             |100      |492 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|             |100      |483 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |465 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |             |100      |427 |
 | 
						|
|6 |      MERGE GROUP BY           |             |100      |427 |
 | 
						|
|7 |       TABLE SCAN              |t1(idx_t1_c2)|500      |387 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2, T_FUN_SUM(T_FUN_SUM(t1.c1)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)), DECIMAL(20, 0)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c2, T_FUN_SUM(T_FUN_SUM(t1.c1)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)), DECIMAL(20, 0)))]), 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.
 | 
						|
  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      |261 |
 | 
						|
|1 | PX COORDINATOR          |        |100      |259 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|100      |250 |
 | 
						|
|3 |   LIMIT                 |        |100      |231 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |100      |229 |
 | 
						|
|5 |     TABLE SCAN          |t1      |100      |229 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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      |311 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT       |             |100      |309 |
 | 
						|
|2 |  EXCHANGE OUT DISTR             |:EX10001     |100      |296 |
 | 
						|
|3 |   LIMIT                         |             |100      |269 |
 | 
						|
|4 |    MERGE GROUP BY               |             |100      |267 |
 | 
						|
|5 |     EXCHANGE IN MERGE SORT DISTR|             |100      |262 |
 | 
						|
|6 |      EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |252 |
 | 
						|
|7 |       PX PARTITION ITERATOR     |             |100      |234 |
 | 
						|
|8 |        MERGE GROUP BY           |             |100      |234 |
 | 
						|
|9 |         TABLE SCAN              |t1(idx_t1_c2)|100      |229 |
 | 
						|
===================================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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      |349 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT       |             |100      |347 |
 | 
						|
|2 |  EXCHANGE OUT DISTR             |:EX10001     |100      |328 |
 | 
						|
|3 |   LIMIT                         |             |100      |288 |
 | 
						|
|4 |    MERGE GROUP BY               |             |100      |287 |
 | 
						|
|5 |     EXCHANGE IN MERGE SORT DISTR|             |100      |279 |
 | 
						|
|6 |      EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |265 |
 | 
						|
|7 |       PX PARTITION ITERATOR     |             |100      |236 |
 | 
						|
|8 |        MERGE GROUP BY           |             |100      |236 |
 | 
						|
|9 |         TABLE SCAN              |t1(idx_t1_c2)|100      |229 |
 | 
						|
===================================================================
 | 
						|
 | 
						|
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))]), 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([t1.c2], [T_FUN_SUM(t1.c1)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
 | 
						|
  6 - (#keys=1, [t1.c2]), output([t1.c2], [T_FUN_SUM(t1.c1)]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c2], [T_FUN_SUM(t1.c1)]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - output([t1.c2], [T_FUN_SUM(t1.c1)]), 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      |350 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT       |             |100      |348 |
 | 
						|
|2 |  EXCHANGE OUT DISTR             |:EX10001     |100      |330 |
 | 
						|
|3 |   LIMIT                         |             |100      |289 |
 | 
						|
|4 |    MERGE GROUP BY               |             |100      |288 |
 | 
						|
|5 |     EXCHANGE IN MERGE SORT DISTR|             |100      |280 |
 | 
						|
|6 |      EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |266 |
 | 
						|
|7 |       PX PARTITION ITERATOR     |             |100      |237 |
 | 
						|
|8 |        MERGE GROUP BY           |             |100      |237 |
 | 
						|
|9 |         TABLE SCAN              |t1(idx_t1_c2)|100      |230 |
 | 
						|
===================================================================
 | 
						|
 | 
						|
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))]), 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([t1.c2], [T_FUN_SUM(t1.c1)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
 | 
						|
  6 - (#keys=1, [t1.c2]), output([t1.c2], [T_FUN_SUM(t1.c1)]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c2], [T_FUN_SUM(t1.c1)]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - output([t1.c2], [T_FUN_SUM(t1.c1)]), 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      |340 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT       |             |100      |338 |
 | 
						|
|2 |  EXCHANGE OUT DISTR             |:EX10001     |100      |321 |
 | 
						|
|3 |   LIMIT                         |             |100      |285 |
 | 
						|
|4 |    MERGE GROUP BY               |             |100      |283 |
 | 
						|
|5 |     EXCHANGE IN MERGE SORT DISTR|             |100      |276 |
 | 
						|
|6 |      EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |263 |
 | 
						|
|7 |       PX PARTITION ITERATOR     |             |100      |236 |
 | 
						|
|8 |        MERGE GROUP BY           |             |100      |236 |
 | 
						|
|9 |         TABLE SCAN              |t1(idx_t1_c2)|100      |229 |
 | 
						|
===================================================================
 | 
						|
 | 
						|
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))]), 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([t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
 | 
						|
  6 - (#keys=1, [t1.c2]), output([t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - output([t1.c2], [T_FUN_COUNT(t1.c1)]), 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      |340 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT       |             |100      |338 |
 | 
						|
|2 |  EXCHANGE OUT DISTR             |:EX10001     |100      |321 |
 | 
						|
|3 |   LIMIT                         |             |100      |285 |
 | 
						|
|4 |    MERGE GROUP BY               |             |100      |283 |
 | 
						|
|5 |     EXCHANGE IN MERGE SORT DISTR|             |100      |276 |
 | 
						|
|6 |      EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |263 |
 | 
						|
|7 |       PX PARTITION ITERATOR     |             |100      |236 |
 | 
						|
|8 |        MERGE GROUP BY           |             |100      |236 |
 | 
						|
|9 |         TABLE SCAN              |t1(idx_t1_c2)|100      |229 |
 | 
						|
===================================================================
 | 
						|
 | 
						|
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))]), 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([t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
 | 
						|
  6 - (#keys=1, [t1.c2]), output([t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - output([t1.c2], [T_FUN_COUNT(t1.c1)]), 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      |314 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT       |             |100      |312 |
 | 
						|
|2 |  EXCHANGE OUT DISTR             |:EX10001     |100      |299 |
 | 
						|
|3 |   LIMIT                         |             |100      |272 |
 | 
						|
|4 |    MERGE GROUP BY               |             |100      |270 |
 | 
						|
|5 |     EXCHANGE IN MERGE SORT DISTR|             |100      |264 |
 | 
						|
|6 |      EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |254 |
 | 
						|
|7 |       PX PARTITION ITERATOR     |             |100      |235 |
 | 
						|
|8 |        MERGE GROUP BY           |             |100      |235 |
 | 
						|
|9 |         TABLE SCAN              |t1(idx_t1_c2)|100      |229 |
 | 
						|
===================================================================
 | 
						|
 | 
						|
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(*))]), 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([t1.c2], [T_FUN_COUNT(*)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
 | 
						|
  6 - (#keys=1, [t1.c2]), output([t1.c2], [T_FUN_COUNT(*)]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c2], [T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - output([t1.c2], [T_FUN_COUNT(*)]), 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      |390 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT       |             |100      |388 |
 | 
						|
|2 |  EXCHANGE OUT DISTR             |:EX10001     |100      |362 |
 | 
						|
|3 |   LIMIT                         |             |100      |305 |
 | 
						|
|4 |    MERGE GROUP BY               |             |100      |303 |
 | 
						|
|5 |     EXCHANGE IN MERGE SORT DISTR|             |100      |293 |
 | 
						|
|6 |      EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |276 |
 | 
						|
|7 |       PX PARTITION ITERATOR     |             |100      |238 |
 | 
						|
|8 |        MERGE GROUP BY           |             |100      |238 |
 | 
						|
|9 |         TABLE SCAN              |t1(idx_t1_c2)|100      |229 |
 | 
						|
===================================================================
 | 
						|
 | 
						|
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(*))]), 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([t1.c2], [T_FUN_SUM(t1.c1)], [T_FUN_COUNT(*)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
 | 
						|
  6 - (#keys=1, [t1.c2]), output([t1.c2], [T_FUN_SUM(t1.c1)], [T_FUN_COUNT(*)]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c2], [T_FUN_SUM(t1.c1)], [T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - output([t1.c2], [T_FUN_SUM(t1.c1)], [T_FUN_COUNT(*)]), 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      |519 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001     |100      |502 |
 | 
						|
|2 |  MERGE GROUP BY               |             |100      |466 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|             |100      |459 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |446 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |             |100      |418 |
 | 
						|
|6 |      MERGE GROUP BY           |             |100      |418 |
 | 
						|
|7 |       TABLE SCAN              |t1(idx_t1_c2)|500      |387 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2, T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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      |414 |
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN  |        |100      |413 |
 | 
						|
|2 |  SUBPLAN SCAN               |VIEW1   |1        |228 |
 | 
						|
|3 |   LIMIT                     |        |1        |227 |
 | 
						|
|4 |    PX COORDINATOR           |        |1        |227 |
 | 
						|
|5 |     EXCHANGE OUT DISTR      |:EX10000|1        |227 |
 | 
						|
|6 |      LIMIT                  |        |1        |227 |
 | 
						|
|7 |       PX PARTITION ITERATOR |        |1        |227 |
 | 
						|
|8 |        TABLE SCAN           |t1      |1        |227 |
 | 
						|
|9 |  MATERIAL                   |        |100      |160 |
 | 
						|
|10|   SUBPLAN SCAN              |VIEW2   |100      |159 |
 | 
						|
|11|    LIMIT                    |        |100      |158 |
 | 
						|
|12|     PX COORDINATOR          |        |100      |156 |
 | 
						|
|13|      EXCHANGE OUT DISTR     |:EX20000|100      |150 |
 | 
						|
|14|       LIMIT                 |        |100      |140 |
 | 
						|
|15|        PX PARTITION ITERATOR|        |100      |138 |
 | 
						|
|16|         TABLE SCAN          |t2      |100      |138 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([VIEW1.t1.c1]), filter(nil), limit(100), offset(nil)
 | 
						|
  1 - output([VIEW1.t1.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  2 - output([VIEW1.t1.c1]), filter(nil), 
 | 
						|
      access([VIEW1.t1.c1])
 | 
						|
  3 - output([t1.c1]), filter(nil), limit(100), offset(nil)
 | 
						|
  4 - output([t1.c1]), filter(nil)
 | 
						|
  5 - output([t1.c1]), filter(nil), dop=1
 | 
						|
  6 - output([t1.c1]), filter(nil), limit(100), offset(nil)
 | 
						|
  7 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - 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
 | 
						|
  9 - output(nil), filter(nil)
 | 
						|
  10 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  11 - output([1]), filter(nil), limit(100), offset(nil)
 | 
						|
  12 - output(nil), filter(nil)
 | 
						|
  13 - output(nil), filter(nil), dop=1
 | 
						|
  14 - output(nil), filter(nil), limit(100), offset(nil)
 | 
						|
  15 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  16 - output(nil), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p[0-2]), 
 | 
						|
      limit(100), offset(nil), 
 | 
						|
      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      |633 |
 | 
						|
|1 | PX COORDINATOR                |        |100      |631 |
 | 
						|
|2 |  EXCHANGE OUT DISTR           |:EX10001|100      |621 |
 | 
						|
|3 |   LIMIT                       |        |100      |603 |
 | 
						|
|4 |    HASH JOIN                  |        |100      |601 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|6 |      TABLE SCAN               |t2      |300      |233 |
 | 
						|
|7 |     EXCHANGE IN DISTR         |        |167      |257 |
 | 
						|
|8 |      EXCHANGE OUT DISTR (PKEY)|:EX10000|167      |247 |
 | 
						|
|9 |       PX PARTITION ITERATOR   |        |167      |230 |
 | 
						|
|10|        TABLE SCAN             |t1      |167      |230 |
 | 
						|
============================================================
 | 
						|
 | 
						|
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([t2.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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([t1.c1]), filter(nil)
 | 
						|
  8 - (#keys=1, [t1.c1]), output([t1.c1]), filter(nil), dop=1
 | 
						|
  9 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 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                     |        |82       |1300|
 | 
						|
|1 | PX COORDINATOR               |        |100      |158 |
 | 
						|
|2 |  EXCHANGE OUT DISTR          |:EX10000|100      |137 |
 | 
						|
|3 |   PX PARTITION ITERATOR      |        |100      |93  |
 | 
						|
|4 |    TABLE SCAN                |t3      |100      |93  |
 | 
						|
|5 | PX COORDINATOR               |        |100      |1056|
 | 
						|
|6 |  EXCHANGE OUT DISTR          |:EX20001|100      |1024|
 | 
						|
|7 |   HASH JOIN                  |        |100      |954 |
 | 
						|
|8 |    EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|9 |     EXCHANGE OUT DISTR (PKEY)|:EX20000|500      |481 |
 | 
						|
|10|      PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|11|       TABLE SCAN             |t1      |500      |387 |
 | 
						|
|12|    PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|13|     TABLE SCAN               |t2      |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1]), filter(nil), 
 | 
						|
      equal_conds([t2.c3 = t3.c3]), other_conds(nil)
 | 
						|
  1 - output([t3.c3]), filter(nil)
 | 
						|
  2 - output([t3.c3]), filter(nil), dop=1
 | 
						|
  3 - output([t3.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  4 - 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 > ?])
 | 
						|
  5 - output([t1.c1], [t2.c3]), filter(nil)
 | 
						|
  6 - output([t1.c1], [t2.c3]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c1], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds([t1.c2 > t2.c2])
 | 
						|
  8 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  9 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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.
 | 
						|
  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)always true
 | 
						|
 | 
						|
*************** 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   |166619|
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10003|150000   |141301|
 | 
						|
|2 |  HASH JOIN                    |        |150000   |87585 |
 | 
						|
|3 |   PX PARTITION ITERATOR       |        |200      |155   |
 | 
						|
|4 |    TABLE SCAN                 |t3      |200      |155   |
 | 
						|
|5 |   EXCHANGE IN DISTR           |        |150000   |50629 |
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)  |:EX10002|150000   |36655 |
 | 
						|
|7 |     NESTED-LOOP JOIN CARTESIAN|        |150000   |8483  |
 | 
						|
|8 |      EXCHANGE IN DISTR        |        |300      |280   |
 | 
						|
|9 |       EXCHANGE OUT DISTR      |:EX10000|300      |263   |
 | 
						|
|10|        PX PARTITION ITERATOR  |        |300      |233   |
 | 
						|
|11|         TABLE SCAN            |t2      |300      |233   |
 | 
						|
|12|      MATERIAL                 |        |500      |468   |
 | 
						|
|13|       EXCHANGE IN DISTR       |        |500      |466   |
 | 
						|
|14|        EXCHANGE OUT DISTR     |:EX10001|500      |439   |
 | 
						|
|15|         PX PARTITION ITERATOR |        |500      |387   |
 | 
						|
|16|          TABLE SCAN           |t1      |500      |387   |
 | 
						|
==============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t3.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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([t2.c1]), filter(nil)
 | 
						|
  9 - output([t2.c1]), filter(nil), dop=1
 | 
						|
  10 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  12 - output([t1.c1]), filter(nil)
 | 
						|
  13 - output([t1.c1]), filter(nil)
 | 
						|
  14 - output([t1.c1]), filter(nil), dop=1
 | 
						|
  15 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 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                     |        |4        |1673|
 | 
						|
|1 | PX COORDINATOR               |        |200      |1022|
 | 
						|
|2 |  EXCHANGE OUT DISTR          |:EX10001|200      |965 |
 | 
						|
|3 |   HASH JOIN                  |        |200      |842 |
 | 
						|
|4 |    PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|5 |     TABLE SCAN               |t1      |500      |387 |
 | 
						|
|6 |    EXCHANGE IN DISTR         |        |200      |285 |
 | 
						|
|7 |     EXCHANGE OUT DISTR (PKEY)|:EX10000|200      |244 |
 | 
						|
|8 |      PX PARTITION ITERATOR   |        |200      |155 |
 | 
						|
|9 |       TABLE SCAN             |t3      |200      |155 |
 | 
						|
|10| PX COORDINATOR               |        |300      |428 |
 | 
						|
|11|  EXCHANGE OUT DISTR          |:EX20000|300      |366 |
 | 
						|
|12|   PX PARTITION ITERATOR      |        |300      |233 |
 | 
						|
|13|    TABLE SCAN                |t2      |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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([t3.c1], [t3.c3]), filter(nil)
 | 
						|
  7 - (#keys=1, [t3.c1]), output([t3.c1], [t3.c3]), filter(nil), dop=1
 | 
						|
  8 - output([t3.c1], [t3.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  9 - 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
 | 
						|
  10 - output([t2.c2], [t2.c3]), filter(nil)
 | 
						|
  11 - output([t2.c2], [t2.c3]), filter(nil), dop=1
 | 
						|
  12 - output([t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  13 - 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      |1342|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|300      |1303|
 | 
						|
|2 |  HASH JOIN                     |        |300      |1221|
 | 
						|
|3 |   PX PARTITION ITERATOR        |        |200      |155 |
 | 
						|
|4 |    TABLE SCAN                  |t3      |200      |155 |
 | 
						|
|5 |   EXCHANGE IN DISTR            |        |300      |943 |
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|300      |915 |
 | 
						|
|7 |     HASH JOIN                  |        |300      |859 |
 | 
						|
|8 |      EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|9 |       EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|10|        PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|11|         TABLE SCAN             |t2      |300      |233 |
 | 
						|
|12|      PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|13|       TABLE SCAN               |t1      |500      |387 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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], [t2.c1]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  8 - output([t2.c1]), filter(nil)
 | 
						|
  9 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  10 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  12 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  13 - 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 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               |        |487      |7244|
 | 
						|
|1 | HASH JOIN                     |        |811      |1519|
 | 
						|
|2 |  PX COORDINATOR               |        |200      |822 |
 | 
						|
|3 |   EXCHANGE OUT DISTR          |:EX10001|200      |796 |
 | 
						|
|4 |    HASH JOIN                  |        |200      |741 |
 | 
						|
|5 |     EXCHANGE IN DISTR         |        |200      |187 |
 | 
						|
|6 |      EXCHANGE OUT DISTR (PKEY)|:EX10000|200      |176 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |        |200      |155 |
 | 
						|
|8 |        TABLE SCAN             |t3      |200      |155 |
 | 
						|
|9 |     PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|10|      TABLE SCAN               |t1      |500      |387 |
 | 
						|
|11|  PX COORDINATOR               |        |500      |528 |
 | 
						|
|12|   EXCHANGE OUT DISTR          |:EX20000|500      |481 |
 | 
						|
|13|    PX PARTITION ITERATOR      |        |500      |387 |
 | 
						|
|14|     TABLE SCAN                |tt      |500      |387 |
 | 
						|
|15| MATERIAL                      |        |300      |281 |
 | 
						|
|16|  PX COORDINATOR               |        |300      |280 |
 | 
						|
|17|   EXCHANGE OUT DISTR          |:EX30000|300      |263 |
 | 
						|
|18|    PX PARTITION ITERATOR      |        |300      |233 |
 | 
						|
|19|     TABLE SCAN                |t2      |300      |233 |
 | 
						|
============================================================
 | 
						|
 | 
						|
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)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t3.c1]), other_conds(nil)
 | 
						|
  5 - output([t3.c1]), filter(nil)
 | 
						|
  6 - (#keys=1, [t3.c1]), output([t3.c1]), filter(nil), dop=1
 | 
						|
  7 - output([t3.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - 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
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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([tt.c1], [tt.c2]), filter(nil)
 | 
						|
  12 - output([tt.c1], [tt.c2]), filter(nil), dop=1
 | 
						|
  13 - output([tt.c1], [tt.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  14 - output([tt.c1], [tt.c2]), filter(nil), 
 | 
						|
      access([tt.c1], [tt.c2]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([tt.c1]), range(MIN ; MAX)always true
 | 
						|
  15 - output([t2.c1]), filter(nil)
 | 
						|
  16 - output([t2.c1]), filter(nil)
 | 
						|
  17 - output([t2.c1]), filter(nil), dop=1
 | 
						|
  18 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  19 - 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      |943 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |915 |
 | 
						|
|2 |  HASH JOIN                  |        |300      |859 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|6 |      TABLE SCAN             |t2      |300      |233 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|8 |    TABLE SCAN               |t1      |500      |387 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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)
 | 
						|
  4 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 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       |213 |
 | 
						|
|1 | EXCHANGE OUT DISTR                |:EX10002|10       |212 |
 | 
						|
|2 |  NESTED-LOOP JOIN                 |        |10       |210 |
 | 
						|
|3 |   EXCHANGE IN DISTR               |        |10       |144 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)      |:EX10001|10       |143 |
 | 
						|
|5 |     SUBPLAN SCAN                  |t       |10       |142 |
 | 
						|
|6 |      LIMIT                        |        |10       |142 |
 | 
						|
|7 |       EXCHANGE IN MERGE SORT DISTR|        |10       |142 |
 | 
						|
|8 |        EXCHANGE OUT DISTR         |:EX10000|10       |141 |
 | 
						|
|9 |         TOP-N SORT                |        |10       |139 |
 | 
						|
|10|          PX PARTITION ITERATOR    |        |10       |137 |
 | 
						|
|11|           TABLE SCAN              |t2      |10       |137 |
 | 
						|
|12|   PX PARTITION ITERATOR           |        |1        |29  |
 | 
						|
|13|    TABLE GET                      |t1      |1        |29  |
 | 
						|
================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t.c1]), batch_join=false
 | 
						|
  3 - output([PARTITION_ID], [t.c1]), filter(nil)
 | 
						|
  4 - (#keys=1, [t.c1]), output([PARTITION_ID], [t.c1]), filter(nil), is_single, dop=1
 | 
						|
  5 - output([t.c1]), filter(nil), 
 | 
						|
      access([t.c1])
 | 
						|
  6 - output([t2.c1]), filter(nil), limit(10), offset(nil)
 | 
						|
  7 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC])
 | 
						|
  8 - output([t2.c1]), filter(nil), dop=1
 | 
						|
  9 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), topn(10), local merge sort
 | 
						|
  10 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  11 - 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
 | 
						|
  12 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  13 - 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 |        |1        |228 |
 | 
						|
|1 | EXCHANGE OUT DISTR       |:EX10000|1        |228 |
 | 
						|
|2 |  SORT                    |        |1        |227 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |1        |227 |
 | 
						|
|4 |    TABLE SCAN            |t1      |1        |227 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c1 + t1.c2)]), filter(nil), sort_keys([t1.c2 + t1.c1, ASC])
 | 
						|
  1 - output([t1.c2 + t1.c1], [INTERNAL_FUNCTION(t1.c1, t1.c1 + t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c2 + t1.c1], [t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2 + t1.c1, ASC])
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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(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      |1260|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |1164|
 | 
						|
|2 |  HASH JOIN                  |        |300      |954 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|6 |      TABLE SCAN             |t1      |500      |387 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.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)
 | 
						|
  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.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 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      |1160|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |1075|
 | 
						|
|2 |  HASH JOIN                  |        |300      |891 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |500      |466 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |439 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|6 |      TABLE SCAN             |t1      |500      |387 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t2.c2, t2.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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)
 | 
						|
  4 - (#keys=1, [t1.c1]), output([t1.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 37(end)  ************** 
 | 
						|
 | 
						|
***************   Case 38   ***************
 | 
						|
 | 
						|
SQL: select c2 from t1 order by c1; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR MERGE SORT |        |500      |631 |
 | 
						|
|1 | EXCHANGE OUT DISTR       |:EX10000|500      |584 |
 | 
						|
|2 |  SORT                    |        |500      |490 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN            |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2)]), filter(nil), sort_keys([t1.c1, ASC])
 | 
						|
  1 - output([t1.c1], [INTERNAL_FUNCTION(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.
 | 
						|
  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      |1471|
 | 
						|
|1 | EXCHANGE OUT DISTR           |:EX10001|300      |1375|
 | 
						|
|2 |  SORT                        |        |300      |1165|
 | 
						|
|3 |   HASH JOIN                  |        |300      |954 |
 | 
						|
|4 |    EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|5 |     EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|6 |      PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|7 |       TABLE SCAN             |t1      |500      |387 |
 | 
						|
|8 |    PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|9 |     TABLE SCAN               |t2      |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t2.c2, t2.c3)]), filter(nil), sort_keys([t1.c2, ASC])
 | 
						|
  1 - output([t1.c2], [INTERNAL_FUNCTION(t1.c1, t2.c2, t2.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c2], [t1.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t1.c2, ASC])
 | 
						|
  3 - output([t1.c2], [t1.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  4 - output([t1.c2], [t1.c1]), filter(nil)
 | 
						|
  5 - (#keys=1, [t1.c1]), output([t1.c2], [t1.c1]), filter(nil), dop=1
 | 
						|
  6 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 39(end)  ************** 
 | 
						|
 | 
						|
***************   Case 40   ***************
 | 
						|
 | 
						|
SQL: select /*+ INDEX(t1 INVALID_INDEX) */ c1 from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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      |567 |
 | 
						|
|1 | EXCHANGE OUT DISTR       |:EX10000|500      |540 |
 | 
						|
|2 |  SORT                    |        |500      |488 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN            |t       |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t.c1)]), filter(nil), sort_keys([t.c1, ASC])
 | 
						|
  1 - output([t.c1], [INTERNAL_FUNCTION(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.
 | 
						|
  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      |78  |
 | 
						|
===========================================
 | 
						|
 | 
						|
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      |78  |
 | 
						|
===========================================
 | 
						|
 | 
						|
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                    |        |0        |228 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |228 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |227 |
 | 
						|
|3 |   LIMIT                 |        |1        |227 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |1        |227 |
 | 
						|
|5 |     TABLE SCAN          |t1      |1        |227 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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], [10 + ?]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - output([t1.c1], [t1.c2], [10 + ?]), 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        |92  |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|2        |92  |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |2        |91  |
 | 
						|
|3 |   TABLE GET           |t1      |2        |91  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t1  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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       |699 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|23       |689 |
 | 
						|
|2 |  HASH JOIN                  |        |23       |665 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |200      |310 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|200      |261 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |200      |155 |
 | 
						|
|6 |      TABLE SCAN             |t3      |200      |155 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t2.c1], [t3.c1], [t2.c3], [t3.c3], [t2.c2], [t3.c2]), filter(nil), 
 | 
						|
      equal_conds([t2.c1 = t3.c1]), other_conds([t2.c3 > t3.c3], [t2.c2 < t3.c2])
 | 
						|
  3 - output([t3.c1], [t3.c3], [t3.c2]), filter(nil)
 | 
						|
  4 - (#keys=1, [t3.c1]), output([t3.c1], [t3.c3], [t3.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
  7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 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               |        |257      |981 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|257      |947 |
 | 
						|
|2 |  HASH JOIN                  |        |257      |877 |
 | 
						|
|3 |   PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN               |t1      |500      |387 |
 | 
						|
|5 |   EXCHANGE IN DISTR         |        |257      |308 |
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|257      |284 |
 | 
						|
|7 |     PX PARTITION ITERATOR   |        |257      |236 |
 | 
						|
|8 |      TABLE SCAN             |t2      |257      |236 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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)
 | 
						|
  6 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  7 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - 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      |1460|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|500      |1300|
 | 
						|
|2 |  HASH OUTER JOIN            |        |500      |950 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|6 |      TABLE SCAN             |t1      |500      |387 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |285      |232 |
 | 
						|
|8 |    TABLE SCAN               |t2      |285      |232 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.c1], [t1.c2], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds([t1.c1 > ?])
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  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.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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(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 ANTI JOIN       |        |25       |803 |
 | 
						|
|1 | PX COORDINATOR             |        |500      |528 |
 | 
						|
|2 |  EXCHANGE OUT DISTR        |:EX10000|500      |481 |
 | 
						|
|3 |   PX PARTITION ITERATOR    |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN              |t1      |500      |387 |
 | 
						|
|5 | MATERIAL                   |        |1        |137 |
 | 
						|
|6 |  SUBPLAN SCAN              |VIEW1   |1        |137 |
 | 
						|
|7 |   LIMIT                    |        |1        |137 |
 | 
						|
|8 |    PX COORDINATOR          |        |1        |137 |
 | 
						|
|9 |     EXCHANGE OUT DISTR     |:EX20000|1        |137 |
 | 
						|
|10|      LIMIT                 |        |1        |137 |
 | 
						|
|11|       PX PARTITION ITERATOR|        |1        |137 |
 | 
						|
|12|        TABLE SCAN          |t2      |1        |137 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [?], [?], [?]), filter(nil), 
 | 
						|
      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.
 | 
						|
  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(nil), filter(nil)
 | 
						|
  6 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  7 - output([1]), filter(nil), limit(1), offset(nil)
 | 
						|
  8 - output(nil), filter(nil)
 | 
						|
  9 - output(nil), filter(nil), dop=1
 | 
						|
  10 - output(nil), filter(nil), limit(1), offset(nil)
 | 
						|
  11 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  12 - output(nil), 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 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   |8729|
 | 
						|
|1 | PX COORDINATOR           |        |300      |464 |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|300      |391 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN            |t2      |300      |233 |
 | 
						|
|5 | MATERIAL                 |        |500      |531 |
 | 
						|
|6 |  PX COORDINATOR          |        |500      |528 |
 | 
						|
|7 |   EXCHANGE OUT DISTR     |:EX20000|500      |481 |
 | 
						|
|8 |    PX PARTITION ITERATOR |        |500      |387 |
 | 
						|
|9 |     TABLE SCAN           |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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.
 | 
						|
  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                  |        |120      |1198|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|120      |1183|
 | 
						|
|2 |  HASH JOIN                     |        |120      |1150|
 | 
						|
|3 |   PX PARTITION ITERATOR        |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN                  |t2      |300      |233 |
 | 
						|
|5 |   EXCHANGE IN DISTR            |        |200      |798 |
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|200      |779 |
 | 
						|
|7 |     HASH JOIN                  |        |200      |741 |
 | 
						|
|8 |      EXCHANGE IN DISTR         |        |200      |187 |
 | 
						|
|9 |       EXCHANGE OUT DISTR (PKEY)|:EX10000|200      |176 |
 | 
						|
|10|        PX PARTITION ITERATOR   |        |200      |155 |
 | 
						|
|11|         TABLE SCAN             |t3      |200      |155 |
 | 
						|
|12|      PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|13|       TABLE SCAN               |t1      |500      |387 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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]), filter(nil)
 | 
						|
  6 - (#keys=1, [t1.c1]), output([t1.c1]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c1]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t3.c1]), other_conds(nil)
 | 
						|
  8 - output([t3.c1]), filter(nil)
 | 
						|
  9 - (#keys=1, [t3.c1]), output([t3.c1]), filter(nil), dop=1
 | 
						|
  10 - output([t3.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  11 - 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
 | 
						|
  12 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  13 - 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 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               |        |487      |7244|
 | 
						|
|1 | HASH JOIN                     |        |811      |1519|
 | 
						|
|2 |  PX COORDINATOR               |        |200      |822 |
 | 
						|
|3 |   EXCHANGE OUT DISTR          |:EX10001|200      |796 |
 | 
						|
|4 |    HASH JOIN                  |        |200      |741 |
 | 
						|
|5 |     EXCHANGE IN DISTR         |        |200      |187 |
 | 
						|
|6 |      EXCHANGE OUT DISTR (PKEY)|:EX10000|200      |176 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |        |200      |155 |
 | 
						|
|8 |        TABLE SCAN             |t3      |200      |155 |
 | 
						|
|9 |     PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|10|      TABLE SCAN               |t1      |500      |387 |
 | 
						|
|11|  PX COORDINATOR               |        |500      |528 |
 | 
						|
|12|   EXCHANGE OUT DISTR          |:EX20000|500      |481 |
 | 
						|
|13|    PX PARTITION ITERATOR      |        |500      |387 |
 | 
						|
|14|     TABLE SCAN                |tt      |500      |387 |
 | 
						|
|15| MATERIAL                      |        |300      |281 |
 | 
						|
|16|  PX COORDINATOR               |        |300      |280 |
 | 
						|
|17|   EXCHANGE OUT DISTR          |:EX30000|300      |263 |
 | 
						|
|18|    PX PARTITION ITERATOR      |        |300      |233 |
 | 
						|
|19|     TABLE SCAN                |t2      |300      |233 |
 | 
						|
============================================================
 | 
						|
 | 
						|
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)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t3.c1]), other_conds(nil)
 | 
						|
  5 - output([t3.c1]), filter(nil)
 | 
						|
  6 - (#keys=1, [t3.c1]), output([t3.c1]), filter(nil), dop=1
 | 
						|
  7 - output([t3.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - 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
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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([tt.c1], [tt.c2]), filter(nil)
 | 
						|
  12 - output([tt.c1], [tt.c2]), filter(nil), dop=1
 | 
						|
  13 - output([tt.c1], [tt.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  14 - output([tt.c1], [tt.c2]), filter(nil), 
 | 
						|
      access([tt.c1], [tt.c2]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([tt.c1]), range(MIN ; MAX)always true
 | 
						|
  15 - output([t2.c1]), filter(nil)
 | 
						|
  16 - output([t2.c1]), filter(nil)
 | 
						|
  17 - output([t2.c1]), filter(nil), dop=1
 | 
						|
  18 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  19 - 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                     |        |1        |1596|
 | 
						|
|1 | EXCHANGE OUT DISTR                |:EX10003|1        |1596|
 | 
						|
|2 |  NESTED-LOOP JOIN                 |        |1        |1595|
 | 
						|
|3 |   EXCHANGE IN DISTR               |        |3        |1579|
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)      |:EX10002|3        |1579|
 | 
						|
|5 |     HASH JOIN                     |        |3        |1578|
 | 
						|
|6 |      EXCHANGE IN DISTR            |        |300      |980 |
 | 
						|
|7 |       EXCHANGE OUT DISTR (PKEY)   |:EX10001|300      |941 |
 | 
						|
|8 |        HASH JOIN                  |        |300      |859 |
 | 
						|
|9 |         EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|10|          EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|11|           PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|12|            TABLE SCAN             |t2      |300      |233 |
 | 
						|
|13|         PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|14|          TABLE SCAN               |t1      |500      |387 |
 | 
						|
|15|      PX PARTITION ITERATOR        |        |500      |387 |
 | 
						|
|16|       TABLE SCAN                  |tt      |500      |387 |
 | 
						|
|17|   PX PARTITION ITERATOR           |        |1        |12  |
 | 
						|
|18|    TABLE GET                      |t3      |1        |12  |
 | 
						|
================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t1.c1]), batch_join=false
 | 
						|
  3 - output([t1.c1], [PARTITION_ID]), filter(nil)
 | 
						|
  4 - (#keys=1, [t1.c1]), output([t1.c1], [PARTITION_ID]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c1]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 + t2.c1 = tt.c1], [t1.c2 = tt.c2]), other_conds(nil)
 | 
						|
  6 - output([t1.c1], [t1.c1 + t2.c1], [t1.c2]), filter(nil)
 | 
						|
  7 - (#keys=1, [t1.c1 + t2.c1]), output([t1.c1], [t1.c1 + t2.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  8 - output([t1.c1], [t2.c1], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  9 - output([t2.c1]), filter(nil)
 | 
						|
  10 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  11 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  12 - 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
 | 
						|
  13 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  14 - 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
 | 
						|
  15 - output([tt.c1], [tt.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  16 - output([tt.c1], [tt.c2]), filter(nil), 
 | 
						|
      access([tt.c1], [tt.c2]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([tt.c1]), range(MIN ; MAX)always true
 | 
						|
  17 - output(nil), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  18 - output(nil), filter(nil), 
 | 
						|
      access([t3.c1]), partitions(p[0-1]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t3.c1]), range(MIN ; MAX), 
 | 
						|
      range_cond([? = t3.c1])
 | 
						|
 | 
						|
*************** Case 54(end)  ************** 
 | 
						|
 | 
						|
***************   Case 55   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where true; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 left join t2 t on t1.c1=t.c1 where false; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |500      |1464|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|500      |1304|
 | 
						|
|2 |  HASH OUTER JOIN            |        |500      |954 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|6 |      TABLE SCAN             |t1      |500      |387 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t       |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t.c1, t.c2, t.c3)]), filter(nil), startup_filter([0])
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t.c1, t.c2, t.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t.c1], [t1.c2], [t.c2], [t.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t.c1]), other_conds(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  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.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  8 - 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 56(end)  ************** 
 | 
						|
 | 
						|
***************   Case 57   ***************
 | 
						|
 | 
						|
SQL: select * from t_time where c1 is NULL; 
 | 
						|
 | 
						|
=====================================
 | 
						|
|ID|OPERATOR  |NAME  |EST. ROWS|COST|
 | 
						|
-------------------------------------
 | 
						|
|0 |TABLE SCAN|t_time|50       |80  |
 | 
						|
=====================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t_time.c1]), filter([(T_OP_IS, cast(t_time.c1, BIGINT(-1, 0)), NULL, 1)]), 
 | 
						|
      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 57(end)  ************** 
 | 
						|
 | 
						|
***************   Case 58   ***************
 | 
						|
 | 
						|
SQL: select * from t_time where c1 is NULL and c1 < '2017-01-02'; 
 | 
						|
 | 
						|
=====================================
 | 
						|
|ID|OPERATOR  |NAME  |EST. ROWS|COST|
 | 
						|
-------------------------------------
 | 
						|
|0 |TABLE SCAN|t_time|50       |80  |
 | 
						|
=====================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t_time.c1]), filter([(T_OP_IS, cast(t_time.c1, BIGINT(-1, 0)), NULL, 1)]), 
 | 
						|
      access([t_time.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([t_time.c1]), range(NULL ; 2017-01-02), 
 | 
						|
      range_cond([cast(t_time.c1, DATETIME(-1, -1)) < ?])
 | 
						|
 | 
						|
*************** Case 58(end)  ************** 
 | 
						|
 | 
						|
***************   Case 59   ***************
 | 
						|
 | 
						|
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|56       |80  |
 | 
						|
=====================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t_time.c1]), filter([(T_OP_IS, cast(t_time.c1, BIGINT(-1, 0)), NULL, 1) OR cast(t_time.c1, DATETIME(-1, -1)) < ?]), 
 | 
						|
      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 59(end)  ************** 
 | 
						|
 | 
						|
***************   Case 60   ***************
 | 
						|
 | 
						|
SQL: select * from t_time where c1 is NULL and c1 > '2017-01-02'; 
 | 
						|
 | 
						|
=====================================
 | 
						|
|ID|OPERATOR  |NAME  |EST. ROWS|COST|
 | 
						|
-------------------------------------
 | 
						|
|0 |TABLE SCAN|t_time|50       |80  |
 | 
						|
=====================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t_time.c1]), filter([(T_OP_IS, cast(t_time.c1, BIGINT(-1, 0)), NULL, 1)]), 
 | 
						|
      access([t_time.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([t_time.c1]), range(2017-01-02 ; MAX), 
 | 
						|
      range_cond([cast(t_time.c1, DATETIME(-1, -1)) > ?])
 | 
						|
 | 
						|
*************** Case 60(end)  ************** 
 | 
						|
 | 
						|
***************   Case 61   ***************
 | 
						|
 | 
						|
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|95       |80  |
 | 
						|
=====================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t_time.c1]), filter([(T_OP_IS, cast(t_time.c1, BIGINT(-1, 0)), NULL, 1) OR cast(t_time.c1, DATETIME(-1, -1)) > ?]), 
 | 
						|
      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 61(end)  ************** 
 | 
						|
 | 
						|
***************   Case 62   ***************
 | 
						|
 | 
						|
SQL: select * from t_time where c1 <=> '2017-01-02'; 
 | 
						|
 | 
						|
====================================
 | 
						|
|ID|OPERATOR |NAME  |EST. ROWS|COST|
 | 
						|
------------------------------------
 | 
						|
|0 |TABLE GET|t_time|1        |46  |
 | 
						|
====================================
 | 
						|
 | 
						|
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([cast(t_time.c1, DATETIME(-1, -1)) <=> ?])
 | 
						|
 | 
						|
*************** Case 62(end)  ************** 
 | 
						|
 | 
						|
***************   Case 63   ***************
 | 
						|
 | 
						|
SQL: select * from t_time where not c1 <=> '2017-01-02'; 
 | 
						|
 | 
						|
=====================================
 | 
						|
|ID|OPERATOR  |NAME  |EST. ROWS|COST|
 | 
						|
-------------------------------------
 | 
						|
|0 |TABLE SCAN|t_time|99       |80  |
 | 
						|
=====================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t_time.c1]), filter([(T_OP_NOT, cast(t_time.c1, DATETIME(-1, -1)) <=> ?)]), 
 | 
						|
      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 63(end)  ************** 
 | 
						|
 | 
						|
***************   Case 64   ***************
 | 
						|
 | 
						|
SQL: select * from t_time where c1 > '2017-01-02'; 
 | 
						|
 | 
						|
=====================================
 | 
						|
|ID|OPERATOR  |NAME  |EST. ROWS|COST|
 | 
						|
-------------------------------------
 | 
						|
|0 |TABLE SCAN|t_time|100      |78  |
 | 
						|
=====================================
 | 
						|
 | 
						|
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([cast(t_time.c1, DATETIME(-1, -1)) > ?])
 | 
						|
 | 
						|
*************** Case 64(end)  ************** 
 | 
						|
 | 
						|
***************   Case 65   ***************
 | 
						|
 | 
						|
SQL: select * from t_time where c1 < '2017-01-02'; 
 | 
						|
 | 
						|
=====================================
 | 
						|
|ID|OPERATOR  |NAME  |EST. ROWS|COST|
 | 
						|
-------------------------------------
 | 
						|
|0 |TABLE SCAN|t_time|100      |78  |
 | 
						|
=====================================
 | 
						|
 | 
						|
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([cast(t_time.c1, DATETIME(-1, -1)) < ?])
 | 
						|
 | 
						|
*************** Case 65(end)  ************** 
 | 
						|
 | 
						|
***************   Case 66   ***************
 | 
						|
 | 
						|
SQL: select * from t_time where c1 = '2017-01-02'; 
 | 
						|
 | 
						|
====================================
 | 
						|
|ID|OPERATOR |NAME  |EST. ROWS|COST|
 | 
						|
------------------------------------
 | 
						|
|0 |TABLE GET|t_time|1        |46  |
 | 
						|
====================================
 | 
						|
 | 
						|
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([cast(t_time.c1, DATETIME(-1, -1)) = ?])
 | 
						|
 | 
						|
*************** Case 66(end)  ************** 
 | 
						|
 | 
						|
***************   Case 67   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
=====================================
 | 
						|
 | 
						|
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([cast(t_time.c1, DATETIME(-1, -1)) > ?], [cast(t_time.c1, DATETIME(-1, -1)) < ?])
 | 
						|
 | 
						|
*************** Case 67(end)  ************** 
 | 
						|
 | 
						|
***************   Case 68   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
=====================================
 | 
						|
 | 
						|
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([cast(t_time.c1, DATETIME(-1, -1)) > ?], [cast(t_time.c1, DATETIME(-1, -1)) < ?], [cast(t_time.c1, DATETIME(-1, -1)) < ?])
 | 
						|
 | 
						|
*************** Case 68(end)  ************** 
 | 
						|
 | 
						|
***************   Case 69   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
====================================
 | 
						|
 | 
						|
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([cast(t_time.c1, DATETIME(-1, -1)) > ?], [cast(t_time.c1, DATETIME(-1, -1)) < ?], [cast(t_time.c1, DATETIME(-1, -1)) = ?])
 | 
						|
 | 
						|
*************** Case 69(end)  ************** 
 | 
						|
 | 
						|
***************   Case 70   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
====================================
 | 
						|
 | 
						|
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([cast(t_time.c1, DATETIME(-1, -1)) > ?], [cast(t_time.c1, DATETIME(-1, -1)) < ?], [cast(t_time.c1, DATETIME(-1, -1)) = ?])
 | 
						|
 | 
						|
*************** Case 70(end)  ************** 
 | 
						|
 | 
						|
***************   Case 71   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
=====================================
 | 
						|
 | 
						|
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([cast(t_time.c1, DATETIME(-1, -1)) >= ?], [cast(t_time.c1, DATETIME(-1, -1)) <= ?])
 | 
						|
 | 
						|
*************** Case 71(end)  ************** 
 | 
						|
 | 
						|
***************   Case 72   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
=====================================
 | 
						|
 | 
						|
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([cast(t_time.c1, DATETIME(-1, -1)) >= ?], [cast(t_time.c1, DATETIME(-1, -1)) <= ?], [cast(t_time.c1, DATETIME(-1, -1)) <= ?])
 | 
						|
 | 
						|
*************** Case 72(end)  ************** 
 | 
						|
 | 
						|
***************   Case 73   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
====================================
 | 
						|
 | 
						|
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([cast(t_time.c1, DATETIME(-1, -1)) >= ?], [cast(t_time.c1, DATETIME(-1, -1)) <= ?], [cast(t_time.c1, DATETIME(-1, -1)) = ?])
 | 
						|
 | 
						|
*************** Case 73(end)  ************** 
 | 
						|
 | 
						|
***************   Case 74   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
====================================
 | 
						|
 | 
						|
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([cast(t_time.c1, DATETIME(-1, -1)) >= ?], [cast(t_time.c1, DATETIME(-1, -1)) <= ?], [cast(t_time.c1, DATETIME(-1, -1)) = ?])
 | 
						|
 | 
						|
*************** Case 74(end)  ************** 
 | 
						|
 | 
						|
***************   Case 75   ***************
 | 
						|
 | 
						|
SQL: select usec_to_time(c1) as modify_time_us from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(usec_to_time(cast(t1.c1, BIGINT(-1, 0))))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(usec_to_time(cast(t1.c1, BIGINT(-1, 0))))]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 75(end)  ************** 
 | 
						|
 | 
						|
***************   Case 76   ***************
 | 
						|
 | 
						|
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      |279 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT |             |100      |278 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000     |100      |268 |
 | 
						|
|3 |   TOP-N SORT              |             |100      |250 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |             |100      |229 |
 | 
						|
|5 |     TABLE SCAN            |t1(idx_t1_c2)|100      |229 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [?]), filter(nil), limit(100), offset(nil)
 | 
						|
  1 - output([t1.c1]), filter(nil), sort_keys([t1.c2, ASC])
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(100), local merge sort
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 76(end)  ************** 
 | 
						|
 | 
						|
***************   Case 77   ***************
 | 
						|
 | 
						|
SQL: select 'ob' from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(?)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(?)]), filter(nil), dop=1
 | 
						|
  2 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output(nil), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 77(end)  ************** 
 | 
						|
 | 
						|
***************   Case 78   ***************
 | 
						|
 | 
						|
SQL: select c1, 'ob' from t1 where c1 > 100 order by c2; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR MERGE SORT |        |1        |228 |
 | 
						|
|1 | EXCHANGE OUT DISTR       |:EX10000|1        |228 |
 | 
						|
|2 |  SORT                    |        |1        |227 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |1        |227 |
 | 
						|
|4 |    TABLE SCAN            |t1      |1        |227 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, ?)]), filter(nil), sort_keys([t1.c2, ASC])
 | 
						|
  1 - output([t1.c2], [INTERNAL_FUNCTION(t1.c1, ?)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c2], [t1.c1]), filter(nil), sort_keys([t1.c2, ASC])
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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(100 ; MAX), 
 | 
						|
      range_cond([t1.c1 > ?])
 | 
						|
 | 
						|
*************** Case 78(end)  ************** 
 | 
						|
 | 
						|
***************   Case 79   ***************
 | 
						|
 | 
						|
SQL: select c1, 1 + 1 from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, ?)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, ?)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 79(end)  ************** 
 | 
						|
 | 
						|
***************   Case 80   ***************
 | 
						|
 | 
						|
SQL: select c1, 1 + 1 from t1 order by c1 limit 100; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |LIMIT                      |        |100      |267 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT |        |100      |265 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000|100      |260 |
 | 
						|
|3 |   TOP-N SORT              |        |100      |249 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |100      |229 |
 | 
						|
|5 |     TABLE SCAN            |t1      |100      |229 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [?]), filter(nil), limit(100), offset(nil)
 | 
						|
  1 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC])
 | 
						|
  2 - output([t1.c1]), filter(nil), dop=1
 | 
						|
  3 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), topn(100), local merge sort
 | 
						|
  4 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 80(end)  ************** 
 | 
						|
 | 
						|
***************   Case 81   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 union select c2 from t2; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |800      |1152|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|800      |1108|
 | 
						|
|2 |  HASH UNION DISTINCT        |        |800      |1025|
 | 
						|
|3 |   PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN               |t1      |500      |387 |
 | 
						|
|5 |   EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|7 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|8 |      TABLE SCAN             |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(UNION([1]))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(UNION([1]))]), filter(nil), dop=1
 | 
						|
  2 - output([UNION([1])]), filter(nil)
 | 
						|
  3 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 - (#keys=1, [t2.c2]), output([t2.c2]), filter(nil), dop=1
 | 
						|
  7 - output([t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 81(end)  ************** 
 | 
						|
 | 
						|
***************   Case 82   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 union all select c2 from t2; 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |UNION ALL               |        |800      |760 |
 | 
						|
|1 | PX COORDINATOR         |        |500      |466 |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|3 |   PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|4 |    TABLE SCAN          |t1      |500      |387 |
 | 
						|
|5 | PX COORDINATOR         |        |300      |280 |
 | 
						|
|6 |  EXCHANGE OUT DISTR    |:EX20000|300      |263 |
 | 
						|
|7 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|8 |    TABLE SCAN          |t2      |300      |233 |
 | 
						|
=====================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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.
 | 
						|
  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 82(end)  ************** 
 | 
						|
 | 
						|
***************   Case 83   ***************
 | 
						|
 | 
						|
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      |1473|
 | 
						|
|1 | EXCHANGE OUT DISTR           |:EX10001|500      |1445|
 | 
						|
|2 |  SORT                        |        |500      |1394|
 | 
						|
|3 |   HASH EXCEPT DISTINCT       |        |500      |1025|
 | 
						|
|4 |    PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|5 |     TABLE SCAN               |t1      |500      |387 |
 | 
						|
|6 |    EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|7 |     EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|8 |      PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|9 |       TABLE SCAN             |t2      |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(EXCEPT([1]))]), filter(nil), sort_keys([EXCEPT([1]), ASC])
 | 
						|
  1 - output([EXCEPT([1])], [INTERNAL_FUNCTION(EXCEPT([1]))]), filter(nil), dop=1
 | 
						|
  2 - output([EXCEPT([1])]), filter(nil), sort_keys([EXCEPT([1]), ASC])
 | 
						|
  3 - output([EXCEPT([1])]), filter(nil)
 | 
						|
  4 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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)
 | 
						|
  7 - (#keys=1, [t2.c2]), output([t2.c2]), filter(nil), dop=1
 | 
						|
  8 - output([t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  9 - 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 83(end)  ************** 
 | 
						|
 | 
						|
***************   Case 84   ***************
 | 
						|
 | 
						|
SQL: (select c1 from t1) intersect (select c2 from t2) order by c1 limit 100; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |LIMIT                          |        |100      |955 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT     |        |100      |953 |
 | 
						|
|2 |  EXCHANGE OUT DISTR           |:EX10001|100      |948 |
 | 
						|
|3 |   TOP-N SORT                  |        |100      |937 |
 | 
						|
|4 |    HASH INTERSECT DISTINCT    |        |300      |881 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|6 |      TABLE SCAN               |t1      |500      |387 |
 | 
						|
|7 |     EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|8 |      EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|9 |       PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|10|        TABLE SCAN             |t2      |300      |233 |
 | 
						|
============================================================
 | 
						|
 | 
						|
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), sort_keys([INTERSECT([1]), ASC]), topn(100)
 | 
						|
  4 - output([INTERSECT([1])]), filter(nil)
 | 
						|
  5 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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]), filter(nil)
 | 
						|
  8 - (#keys=1, [t2.c2]), output([t2.c2]), filter(nil), dop=1
 | 
						|
  9 - output([t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 (select c1 from t2) order by c1; 
 | 
						|
 | 
						|
===========================================================
 | 
						|
|ID|OPERATOR                      |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR MERGE SORT     |        |800      |1785|
 | 
						|
|1 | EXCHANGE OUT DISTR           |:EX10001|800      |1741|
 | 
						|
|2 |  SORT                        |        |800      |1659|
 | 
						|
|3 |   HASH UNION DISTINCT        |        |800      |1025|
 | 
						|
|4 |    PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|5 |     TABLE SCAN               |t1      |500      |387 |
 | 
						|
|6 |    EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|7 |     EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|8 |      PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|9 |       TABLE SCAN             |t2      |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(UNION([1]))]), filter(nil), sort_keys([UNION([1]), ASC])
 | 
						|
  1 - output([UNION([1])], [INTERNAL_FUNCTION(UNION([1]))]), filter(nil), dop=1
 | 
						|
  2 - output([UNION([1])]), filter(nil), sort_keys([UNION([1]), ASC])
 | 
						|
  3 - output([UNION([1])]), filter(nil)
 | 
						|
  4 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  8 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 85(end)  ************** 
 | 
						|
 | 
						|
***************   Case 86   ***************
 | 
						|
 | 
						|
SQL: (select c1 from t1) union all (select c1 from t2) order by c1; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SORT                     |        |800      |1393|
 | 
						|
|1 | UNION ALL               |        |800      |760 |
 | 
						|
|2 |  PX COORDINATOR         |        |500      |466 |
 | 
						|
|3 |   EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1      |500      |387 |
 | 
						|
|6 |  PX COORDINATOR         |        |300      |280 |
 | 
						|
|7 |   EXCHANGE OUT DISTR    |:EX20000|300      |263 |
 | 
						|
|8 |    PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|9 |     TABLE SCAN          |t2      |300      |233 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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.
 | 
						|
  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 86(end)  ************** 
 | 
						|
 | 
						|
***************   Case 87   ***************
 | 
						|
 | 
						|
SQL: (select c2 from t1 order by c1) union (select c1 from t1 order by c2); 
 | 
						|
 | 
						|
===============================================================
 | 
						|
|ID|OPERATOR                     |NAME         |EST. ROWS|COST|
 | 
						|
---------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |             |1000     |1459|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001     |1000     |1404|
 | 
						|
|2 |  HASH UNION DISTINCT        |             |1000     |1301|
 | 
						|
|3 |   PX PARTITION ITERATOR     |             |500      |387 |
 | 
						|
|4 |    TABLE SCAN               |t1           |500      |387 |
 | 
						|
|5 |   EXCHANGE IN DISTR         |             |500      |466 |
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)|:EX10000     |500      |439 |
 | 
						|
|7 |     PX PARTITION ITERATOR   |             |500      |387 |
 | 
						|
|8 |      TABLE SCAN             |t1(idx_t1_c2)|500      |387 |
 | 
						|
===============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(UNION([1]))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(UNION([1]))]), filter(nil), dop=1
 | 
						|
  2 - output([UNION([1])]), filter(nil)
 | 
						|
  3 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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([t1.c2]), filter(nil)
 | 
						|
  6 - (#keys=1, [t1.c2]), output([t1.c2]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 87(end)  ************** 
 | 
						|
 | 
						|
***************   Case 88   ***************
 | 
						|
 | 
						|
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     |950 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|1000     |894 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |1000     |792 |
 | 
						|
|3 |   UNION ALL           |        |1000     |792 |
 | 
						|
|4 |    TABLE SCAN         |t1      |500      |387 |
 | 
						|
|5 |    TABLE SCAN         |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(UNION([1]))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(UNION([1]))]), filter(nil), dop=1
 | 
						|
  2 - output([UNION([1])]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  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 88(end)  ************** 
 | 
						|
 | 
						|
***************   Case 89   ***************
 | 
						|
 | 
						|
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      |1001|
 | 
						|
|1 | EXCHANGE OUT DISTR               |:EX10002|502      |954 |
 | 
						|
|2 |  HASH UNION DISTINCT             |        |502      |860 |
 | 
						|
|3 |   PX PARTITION ITERATOR          |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN                    |t1      |500      |387 |
 | 
						|
|5 |   EXCHANGE IN DISTR              |        |2        |248 |
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)     |:EX10001|2        |247 |
 | 
						|
|7 |     LIMIT                        |        |2        |247 |
 | 
						|
|8 |      EXCHANGE IN MERGE SORT DISTR|        |2        |247 |
 | 
						|
|9 |       EXCHANGE OUT DISTR         |:EX10000|2        |247 |
 | 
						|
|10|        TOP-N SORT                |        |2        |247 |
 | 
						|
|11|         PX PARTITION ITERATOR    |        |300      |233 |
 | 
						|
|12|          TABLE SCAN              |t2      |300      |233 |
 | 
						|
===============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(UNION([1]))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(UNION([1]))]), filter(nil), dop=1
 | 
						|
  2 - output([UNION([1])]), filter(nil)
 | 
						|
  3 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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)
 | 
						|
  6 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), is_single, dop=1
 | 
						|
  7 - output([t2.c1]), filter(nil), limit(2), offset(nil)
 | 
						|
  8 - output([t2.c1]), filter(nil), sort_keys([t2.c2, ASC])
 | 
						|
  9 - output([t2.c1], [t2.c2]), filter(nil), dop=1
 | 
						|
  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.
 | 
						|
  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 89(end)  ************** 
 | 
						|
 | 
						|
***************   Case 90   ***************
 | 
						|
 | 
						|
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      |722 |
 | 
						|
|1 | PX COORDINATOR             |        |500      |466 |
 | 
						|
|2 |  EXCHANGE OUT DISTR        |:EX10000|500      |439 |
 | 
						|
|3 |   PX PARTITION ITERATOR    |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN              |t1      |500      |387 |
 | 
						|
|5 | LIMIT                      |        |2        |247 |
 | 
						|
|6 |  PX COORDINATOR MERGE SORT |        |2        |247 |
 | 
						|
|7 |   EXCHANGE OUT DISTR       |:EX20000|2        |247 |
 | 
						|
|8 |    TOP-N SORT              |        |2        |247 |
 | 
						|
|9 |     PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|10|      TABLE SCAN            |t2      |300      |233 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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]), 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), sort_keys([t2.c2, ASC]), topn(2)
 | 
						|
  9 - output([t2.c1], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  10 - 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 90(end)  ************** 
 | 
						|
 | 
						|
***************   Case 91   ***************
 | 
						|
 | 
						|
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 |HASH DISTINCT                |        |1        |1436|
 | 
						|
|1 | UNION ALL                   |        |1002     |1196|
 | 
						|
|2 |  PX COORDINATOR             |        |500      |466 |
 | 
						|
|3 |   EXCHANGE OUT DISTR        |:EX10000|500      |439 |
 | 
						|
|4 |    PX PARTITION ITERATOR    |        |500      |387 |
 | 
						|
|5 |     TABLE SCAN              |t1      |500      |387 |
 | 
						|
|6 |  LIMIT                      |        |2        |247 |
 | 
						|
|7 |   PX COORDINATOR MERGE SORT |        |2        |247 |
 | 
						|
|8 |    EXCHANGE OUT DISTR       |:EX20000|2        |247 |
 | 
						|
|9 |     TOP-N SORT              |        |2        |247 |
 | 
						|
|10|      PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|11|       TABLE SCAN            |t2      |300      |233 |
 | 
						|
|12|  PX COORDINATOR             |        |500      |466 |
 | 
						|
|13|   EXCHANGE OUT DISTR        |:EX30000|500      |439 |
 | 
						|
|14|    PX PARTITION ITERATOR    |        |500      |387 |
 | 
						|
|15|     TABLE SCAN              |t1      |500      |387 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])]), filter(nil), 
 | 
						|
      distinct([UNION([1])])
 | 
						|
  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.
 | 
						|
  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]), 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), sort_keys([t2.c2, ASC]), topn(2)
 | 
						|
  10 - output([t2.c1], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  12 - output([t1.c1]), filter(nil)
 | 
						|
  13 - output([t1.c1]), filter(nil), dop=1
 | 
						|
  14 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 91(end)  ************** 
 | 
						|
 | 
						|
***************   Case 92   ***************
 | 
						|
 | 
						|
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     |1196|
 | 
						|
|1 | PX COORDINATOR             |        |500      |466 |
 | 
						|
|2 |  EXCHANGE OUT DISTR        |:EX10000|500      |439 |
 | 
						|
|3 |   PX PARTITION ITERATOR    |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN              |t1      |500      |387 |
 | 
						|
|5 | LIMIT                      |        |2        |247 |
 | 
						|
|6 |  PX COORDINATOR MERGE SORT |        |2        |247 |
 | 
						|
|7 |   EXCHANGE OUT DISTR       |:EX20000|2        |247 |
 | 
						|
|8 |    TOP-N SORT              |        |2        |247 |
 | 
						|
|9 |     PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|10|      TABLE SCAN            |t2      |300      |233 |
 | 
						|
|11| PX COORDINATOR             |        |500      |466 |
 | 
						|
|12|  EXCHANGE OUT DISTR        |:EX30000|500      |439 |
 | 
						|
|13|   PX PARTITION ITERATOR    |        |500      |387 |
 | 
						|
|14|    TABLE SCAN              |t1      |500      |387 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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]), 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), sort_keys([t2.c2, ASC]), topn(2)
 | 
						|
  9 - output([t2.c1], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  10 - 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
 | 
						|
  11 - output([t1.c1]), filter(nil)
 | 
						|
  12 - output([t1.c1]), filter(nil), dop=1
 | 
						|
  13 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 92(end)  ************** 
 | 
						|
 | 
						|
***************   Case 93   ***************
 | 
						|
 | 
						|
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        |477 |
 | 
						|
|1 | LIMIT                      |             |2        |228 |
 | 
						|
|2 |  PX COORDINATOR MERGE SORT |             |2        |228 |
 | 
						|
|3 |   EXCHANGE OUT DISTR       |:EX10000     |2        |228 |
 | 
						|
|4 |    TOP-N SORT              |             |2        |228 |
 | 
						|
|5 |     PX PARTITION ITERATOR  |             |2        |227 |
 | 
						|
|6 |      TABLE SCAN            |t1(idx_t1_c2)|2        |227 |
 | 
						|
|7 | LIMIT                      |             |2        |247 |
 | 
						|
|8 |  PX COORDINATOR MERGE SORT |             |2        |247 |
 | 
						|
|9 |   EXCHANGE OUT DISTR       |:EX20000     |2        |247 |
 | 
						|
|10|    TOP-N SORT              |             |2        |247 |
 | 
						|
|11|     PX PARTITION ITERATOR  |             |300      |233 |
 | 
						|
|12|      TABLE SCAN            |t2           |300      |233 |
 | 
						|
==============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])]), filter(nil)
 | 
						|
  1 - output([t1.c1]), filter(nil), limit(2), offset(nil)
 | 
						|
  2 - output([t1.c1]), 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]), topn(2), local merge sort
 | 
						|
  5 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  7 - output([t2.c1]), filter(nil), limit(2), offset(nil)
 | 
						|
  8 - output([t2.c1]), filter(nil), sort_keys([t2.c2, ASC])
 | 
						|
  9 - output([t2.c1], [t2.c2]), filter(nil), dop=1
 | 
						|
  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.
 | 
						|
  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 93(end)  ************** 
 | 
						|
 | 
						|
***************   Case 94   ***************
 | 
						|
 | 
						|
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        |475 |
 | 
						|
|1 | LIMIT                      |             |2        |228 |
 | 
						|
|2 |  PX COORDINATOR MERGE SORT |             |2        |228 |
 | 
						|
|3 |   EXCHANGE OUT DISTR       |:EX10000     |2        |228 |
 | 
						|
|4 |    TOP-N SORT              |             |2        |228 |
 | 
						|
|5 |     PX PARTITION ITERATOR  |             |2        |227 |
 | 
						|
|6 |      TABLE SCAN            |t1(idx_t1_c2)|2        |227 |
 | 
						|
|7 | LIMIT                      |             |2        |247 |
 | 
						|
|8 |  PX COORDINATOR MERGE SORT |             |2        |247 |
 | 
						|
|9 |   EXCHANGE OUT DISTR       |:EX20000     |2        |247 |
 | 
						|
|10|    TOP-N SORT              |             |2        |247 |
 | 
						|
|11|     PX PARTITION ITERATOR  |             |300      |233 |
 | 
						|
|12|      TABLE SCAN            |t2           |300      |233 |
 | 
						|
==============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])]), filter(nil)
 | 
						|
  1 - output([t1.c1]), filter(nil), limit(2), offset(nil)
 | 
						|
  2 - output([t1.c1]), 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]), topn(2), local merge sort
 | 
						|
  5 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  7 - output([t2.c1]), filter(nil), limit(2), offset(nil)
 | 
						|
  8 - output([t2.c1]), filter(nil), sort_keys([t2.c2, ASC])
 | 
						|
  9 - output([t2.c1], [t2.c2]), filter(nil), dop=1
 | 
						|
  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.
 | 
						|
  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 94(end)  ************** 
 | 
						|
 | 
						|
***************   Case 95   ***************
 | 
						|
 | 
						|
SQL: (select c1 from t1) union (select c2 from t1) union (select c2 from t2); 
 | 
						|
 | 
						|
===========================================================
 | 
						|
|ID|OPERATOR                 |NAME         |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------
 | 
						|
|0 |HASH DISTINCT            |             |1        |1545|
 | 
						|
|1 | UNION ALL               |             |1300     |1234|
 | 
						|
|2 |  PX COORDINATOR         |             |500      |466 |
 | 
						|
|3 |   EXCHANGE OUT DISTR    |:EX10000     |500      |439 |
 | 
						|
|4 |    PX PARTITION ITERATOR|             |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1           |500      |387 |
 | 
						|
|6 |  PX COORDINATOR         |             |500      |466 |
 | 
						|
|7 |   EXCHANGE OUT DISTR    |:EX20000     |500      |439 |
 | 
						|
|8 |    PX PARTITION ITERATOR|             |500      |387 |
 | 
						|
|9 |     TABLE SCAN          |t1(idx_t1_c2)|500      |387 |
 | 
						|
|10|  PX COORDINATOR         |             |300      |280 |
 | 
						|
|11|   EXCHANGE OUT DISTR    |:EX30000     |300      |263 |
 | 
						|
|12|    PX PARTITION ITERATOR|             |300      |233 |
 | 
						|
|13|     TABLE SCAN          |t2           |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])]), filter(nil), 
 | 
						|
      distinct([UNION([1])])
 | 
						|
  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.
 | 
						|
  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([t1.c2]), filter(nil)
 | 
						|
  7 - output([t1.c2]), filter(nil), dop=1
 | 
						|
  8 - output([t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  10 - output([t2.c2]), filter(nil)
 | 
						|
  11 - output([t2.c2]), filter(nil), dop=1
 | 
						|
  12 - output([t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  13 - 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 95(end)  ************** 
 | 
						|
 | 
						|
***************   Case 96   ***************
 | 
						|
 | 
						|
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                                |             |1        |1176|
 | 
						|
|1 | MERGE DISTINCT                      |             |1        |1176|
 | 
						|
|2 |  SORT                               |             |100      |1171|
 | 
						|
|3 |   UNION ALL                         |             |300      |968 |
 | 
						|
|4 |    LIMIT                            |             |100      |267 |
 | 
						|
|5 |     PX COORDINATOR MERGE SORT       |             |100      |265 |
 | 
						|
|6 |      EXCHANGE OUT DISTR             |:EX10000     |100      |260 |
 | 
						|
|7 |       TOP-N SORT                    |             |100      |249 |
 | 
						|
|8 |        PX PARTITION ITERATOR        |             |100      |229 |
 | 
						|
|9 |         TABLE SCAN                  |t1           |100      |229 |
 | 
						|
|10|    LIMIT                            |             |100      |273 |
 | 
						|
|11|     PX COORDINATOR MERGE SORT       |             |100      |272 |
 | 
						|
|12|      EXCHANGE OUT DISTR             |:EX20001     |100      |266 |
 | 
						|
|13|       LIMIT                         |             |100      |256 |
 | 
						|
|14|        MERGE DISTINCT               |             |100      |254 |
 | 
						|
|15|         EXCHANGE IN MERGE SORT DISTR|             |100      |249 |
 | 
						|
|16|          EXCHANGE OUT DISTR (HASH)  |:EX20000     |100      |244 |
 | 
						|
|17|           PX PARTITION ITERATOR     |             |100      |234 |
 | 
						|
|18|            MERGE DISTINCT           |             |100      |234 |
 | 
						|
|19|             TABLE SCAN              |t1(idx_t1_c2)|100      |229 |
 | 
						|
|20|    LIMIT                            |             |100      |422 |
 | 
						|
|21|     PX COORDINATOR MERGE SORT       |             |100      |421 |
 | 
						|
|22|      EXCHANGE OUT DISTR             |:EX30001     |100      |415 |
 | 
						|
|23|       TOP-N SORT                    |             |100      |405 |
 | 
						|
|24|        HASH DISTINCT                |             |100      |386 |
 | 
						|
|25|         EXCHANGE IN DISTR           |             |100      |341 |
 | 
						|
|26|          EXCHANGE OUT DISTR (HASH)  |:EX30000     |100      |335 |
 | 
						|
|27|           HASH DISTINCT             |             |100      |325 |
 | 
						|
|28|            PX PARTITION ITERATOR    |             |300      |233 |
 | 
						|
|29|             TABLE SCAN              |t2           |300      |233 |
 | 
						|
=======================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])]), filter(nil), limit(100), offset(nil)
 | 
						|
  1 - output([UNION([1])]), filter(nil), 
 | 
						|
      distinct([UNION([1])])
 | 
						|
  2 - output([UNION([1])]), filter(nil), sort_keys([UNION([1]), ASC])
 | 
						|
  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), sort_keys([t1.c1, ASC]), topn(100), local merge sort
 | 
						|
  8 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  9 - output([t1.c1]), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4]), 
 | 
						|
      limit(100), offset(nil), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
  10 - output([t1.c2]), filter(nil), limit(100), offset(nil)
 | 
						|
  11 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC])
 | 
						|
  12 - output([t1.c2]), filter(nil), dop=1
 | 
						|
  13 - output([t1.c2]), filter(nil), limit(100), offset(nil)
 | 
						|
  14 - output([t1.c2]), filter(nil), 
 | 
						|
      distinct([t1.c2])
 | 
						|
  15 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
 | 
						|
  16 - (#keys=1, [t1.c2]), output([t1.c2]), filter(nil), dop=1
 | 
						|
  17 - output([t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  18 - output([t1.c2]), filter(nil), 
 | 
						|
      distinct([t1.c2])
 | 
						|
  19 - output([t1.c2]), filter(nil), 
 | 
						|
      access([t1.c2]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c2], [t1.c1]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  20 - output([t2.c2]), filter(nil), limit(100), offset(nil)
 | 
						|
  21 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC])
 | 
						|
  22 - output([t2.c2]), filter(nil), dop=1
 | 
						|
  23 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC]), topn(100)
 | 
						|
  24 - output([t2.c2]), filter(nil), 
 | 
						|
      distinct([t2.c2])
 | 
						|
  25 - output([t2.c2]), filter(nil)
 | 
						|
  26 - (#keys=1, [t2.c2]), output([t2.c2]), filter(nil), dop=1
 | 
						|
  27 - output([t2.c2]), filter(nil), 
 | 
						|
      distinct([t2.c2])
 | 
						|
  28 - output([t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  29 - 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 96(end)  ************** 
 | 
						|
 | 
						|
***************   Case 97   ***************
 | 
						|
 | 
						|
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 |TOP-N SORT                     |             |100      |2028|
 | 
						|
|1 | HASH INTERSECT DISTINCT       |             |300      |1971|
 | 
						|
|2 |  PX COORDINATOR               |             |1000     |1459|
 | 
						|
|3 |   EXCHANGE OUT DISTR          |:EX10001     |1000     |1404|
 | 
						|
|4 |    HASH UNION DISTINCT        |             |1000     |1301|
 | 
						|
|5 |     PX PARTITION ITERATOR     |             |500      |387 |
 | 
						|
|6 |      TABLE SCAN               |t1           |500      |387 |
 | 
						|
|7 |     EXCHANGE IN DISTR         |             |500      |466 |
 | 
						|
|8 |      EXCHANGE OUT DISTR (PKEY)|:EX10000     |500      |439 |
 | 
						|
|9 |       PX PARTITION ITERATOR   |             |500      |387 |
 | 
						|
|10|        TABLE SCAN             |t1(idx_t1_c2)|500      |387 |
 | 
						|
|11|  PX COORDINATOR               |             |300      |280 |
 | 
						|
|12|   EXCHANGE OUT DISTR          |:EX20000     |300      |263 |
 | 
						|
|13|    PX PARTITION ITERATOR      |             |300      |233 |
 | 
						|
|14|     TABLE SCAN                |t2           |300      |233 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERSECT([1])]), filter(nil), sort_keys([INTERSECT([1]), ASC]), topn(100)
 | 
						|
  1 - output([INTERSECT([1])]), filter(nil)
 | 
						|
  2 - output([UNION([1])]), filter(nil)
 | 
						|
  3 - output([UNION([1])]), filter(nil), dop=1
 | 
						|
  4 - output([UNION([1])]), filter(nil)
 | 
						|
  5 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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)
 | 
						|
  8 - (#keys=1, [t1.c2]), output([t1.c2]), filter(nil), dop=1
 | 
						|
  9 - output([t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  10 - 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
 | 
						|
  11 - output([t2.c2]), filter(nil)
 | 
						|
  12 - output([t2.c2]), filter(nil), dop=1
 | 
						|
  13 - output([t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  14 - 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 97(end)  ************** 
 | 
						|
 | 
						|
***************   Case 98   ***************
 | 
						|
 | 
						|
SQL: select distinct(c2) from t1; 
 | 
						|
 | 
						|
=================================================================
 | 
						|
|ID|OPERATOR                       |NAME         |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |             |100      |445 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001     |100      |440 |
 | 
						|
|2 |  MERGE DISTINCT               |             |100      |430 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|             |100      |425 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |419 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |             |100      |409 |
 | 
						|
|6 |      MERGE DISTINCT           |             |100      |409 |
 | 
						|
|7 |       TABLE SCAN              |t1(idx_t1_c2)|500      |387 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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 98(end)  ************** 
 | 
						|
 | 
						|
***************   Case 99   ***************
 | 
						|
 | 
						|
SQL: select/*+(use_order_distinct)*/ distinct(c1) from t4; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |MERGE DISTINCT|    |10       |82  |
 | 
						|
|1 | TABLE SCAN   |t4  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 99(end)  ************** 
 | 
						|
 | 
						|
***************   Case 100   ***************
 | 
						|
 | 
						|
SQL: select distinct c1, c2 from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 100(end)  ************** 
 | 
						|
 | 
						|
***************   Case 101   ***************
 | 
						|
 | 
						|
SQL: select distinct c1, c2 from t4; 
 | 
						|
 | 
						|
============================================
 | 
						|
|ID|OPERATOR  |NAME         |EST. ROWS|COST|
 | 
						|
--------------------------------------------
 | 
						|
|0 |TABLE SCAN|t4(idx_t4_c2)|100      |78  |
 | 
						|
============================================
 | 
						|
 | 
						|
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 101(end)  ************** 
 | 
						|
 | 
						|
***************   Case 102   ***************
 | 
						|
 | 
						|
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      |1462|
 | 
						|
|1 | EXCHANGE OUT DISTR               |:EX10002|300      |1411|
 | 
						|
|2 |  MERGE DISTINCT                  |        |300      |1304|
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR   |        |300      |1286|
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)     |:EX10001|300      |1235|
 | 
						|
|5 |     MERGE DISTINCT               |        |300      |1128|
 | 
						|
|6 |      SORT                        |        |300      |1110|
 | 
						|
|7 |       HASH JOIN                  |        |300      |897 |
 | 
						|
|8 |        EXCHANGE IN DISTR         |        |300      |317 |
 | 
						|
|9 |         EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |289 |
 | 
						|
|10|          PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|11|           TABLE SCAN             |t2      |300      |233 |
 | 
						|
|12|        PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|13|         TABLE SCAN               |t1      |500      |387 |
 | 
						|
===============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2, t2.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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), sort_keys([t1.c2, ASC], [t2.c2, ASC])
 | 
						|
  4 - (#keys=2, [t1.c2], [t2.c2]), output([t1.c2], [t2.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c2], [t2.c2]), filter(nil), 
 | 
						|
      distinct([t1.c2], [t2.c2])
 | 
						|
  6 - output([t1.c2], [t2.c2]), filter(nil), sort_keys([t1.c2, ASC], [t2.c2, ASC])
 | 
						|
  7 - output([t1.c2], [t2.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  8 - output([t2.c2], [t2.c1]), filter(nil)
 | 
						|
  9 - (#keys=1, [t2.c1]), output([t2.c2], [t2.c1]), filter(nil), dop=1
 | 
						|
  10 - output([t2.c1], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  12 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 102(end)  ************** 
 | 
						|
 | 
						|
***************   Case 103   ***************
 | 
						|
 | 
						|
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      |1012|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |973 |
 | 
						|
|2 |  HASH JOIN                  |        |300      |891 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |500      |466 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |439 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|6 |      TABLE SCAN             |t1      |500      |387 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t2.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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)
 | 
						|
  4 - (#keys=1, [t1.c1]), output([t1.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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], [t2.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 103(end)  ************** 
 | 
						|
 | 
						|
***************   Case 104   ***************
 | 
						|
 | 
						|
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               |        |90       |482 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|90       |466 |
 | 
						|
|2 |  HASH JOIN                  |        |90       |434 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |100      |106 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|100      |97  |
 | 
						|
|5 |     TABLE SCAN              |t4      |100      |78  |
 | 
						|
|6 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|7 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t4.c1, t4.c2, t2.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.c1], [t2.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 104(end)  ************** 
 | 
						|
 | 
						|
***************   Case 105   ***************
 | 
						|
 | 
						|
SQL: select distinct c1 as ali_name from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 105(end)  ************** 
 | 
						|
 | 
						|
***************   Case 106   ***************
 | 
						|
 | 
						|
SQL: select distinct c2 as ali_name from t1; 
 | 
						|
 | 
						|
=================================================================
 | 
						|
|ID|OPERATOR                       |NAME         |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |             |100      |445 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001     |100      |440 |
 | 
						|
|2 |  MERGE DISTINCT               |             |100      |430 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|             |100      |425 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |419 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |             |100      |409 |
 | 
						|
|6 |      MERGE DISTINCT           |             |100      |409 |
 | 
						|
|7 |       TABLE SCAN              |t1(idx_t1_c2)|500      |387 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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 106(end)  ************** 
 | 
						|
 | 
						|
***************   Case 107   ***************
 | 
						|
 | 
						|
SQL: select distinct c1 * c2 from t1; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |500      |1089|
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|500      |1042|
 | 
						|
|2 |  MERGE DISTINCT               |        |500      |948 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |500      |923 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000|500      |877 |
 | 
						|
|5 |     MERGE DISTINCT            |        |500      |783 |
 | 
						|
|6 |      SORT                     |        |500      |758 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|8 |        TABLE SCAN             |t1      |500      |387 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1 * t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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), sort_keys([t1.c1 * t1.c2, ASC])
 | 
						|
  4 - (#keys=1, [t1.c1 * t1.c2]), output([t1.c1 * t1.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c1 * t1.c2]), filter(nil), 
 | 
						|
      distinct([t1.c1 * t1.c2])
 | 
						|
  6 - output([t1.c1 * t1.c2]), filter(nil), sort_keys([t1.c1 * t1.c2, ASC])
 | 
						|
  7 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 107(end)  ************** 
 | 
						|
 | 
						|
***************   Case 108   ***************
 | 
						|
 | 
						|
SQL: select distinct 1, 2 from t1; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |LIMIT                    |        |1        |227 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |227 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |227 |
 | 
						|
|3 |   LIMIT                 |        |1        |227 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |1        |227 |
 | 
						|
|5 |     TABLE SCAN          |t1      |1        |227 |
 | 
						|
======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?], [?]), filter(nil), limit(1), offset(nil)
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - output(nil), filter(nil), dop=1
 | 
						|
  3 - output(nil), filter(nil), limit(1), offset(nil)
 | 
						|
  4 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - output(nil), 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 108(end)  ************** 
 | 
						|
 | 
						|
***************   Case 109   ***************
 | 
						|
 | 
						|
SQL: select distinct c2 from t4 order by c2 limit 3; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR       |NAME            |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |LIMIT          |                |3        |46  |
 | 
						|
|1 | MERGE DISTINCT|                |3        |46  |
 | 
						|
|2 |  TABLE SCAN   |t4(idx_t4_c2_c3)|4        |46  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 109(end)  ************** 
 | 
						|
 | 
						|
***************   Case 110   ***************
 | 
						|
 | 
						|
SQL: select distinct c2 from t4 order by c2; 
 | 
						|
 | 
						|
===================================================
 | 
						|
|ID|OPERATOR      |NAME            |EST. ROWS|COST|
 | 
						|
---------------------------------------------------
 | 
						|
|0 |MERGE DISTINCT|                |10       |82  |
 | 
						|
|1 | TABLE SCAN   |t4(idx_t4_c2_c3)|100      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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.c3], [t4.c1]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 110(end)  ************** 
 | 
						|
 | 
						|
***************   Case 111   ***************
 | 
						|
 | 
						|
SQL: select distinct c2 from t4 order by c3; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR       |NAME            |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |SORT           |                |10       |85  |
 | 
						|
|1 | MERGE DISTINCT|                |10       |82  |
 | 
						|
|2 |  TABLE SCAN   |t4(idx_t4_c2_c3)|100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c2]), filter(nil), sort_keys([t4.c3, ASC])
 | 
						|
  1 - output([t4.c3], [t4.c2]), 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 111(end)  ************** 
 | 
						|
 | 
						|
***************   Case 112   ***************
 | 
						|
 | 
						|
SQL: select distinct c1, c2 from t4 order by c3; 
 | 
						|
 | 
						|
============================================
 | 
						|
|ID|OPERATOR  |NAME         |EST. ROWS|COST|
 | 
						|
--------------------------------------------
 | 
						|
|0 |TABLE SCAN|t4(idx_t4_c3)|100      |78  |
 | 
						|
============================================
 | 
						|
 | 
						|
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 112(end)  ************** 
 | 
						|
 | 
						|
***************   Case 113   ***************
 | 
						|
 | 
						|
SQL: select distinct c2 from t4 order by c3 limit 3; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR       |NAME            |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |TOP-N SORT     |                |3        |83  |
 | 
						|
|1 | MERGE DISTINCT|                |10       |82  |
 | 
						|
|2 |  TABLE SCAN   |t4(idx_t4_c2_c3)|100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c2]), filter(nil), sort_keys([t4.c3, ASC]), topn(3)
 | 
						|
  1 - output([t4.c3], [t4.c2]), 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 113(end)  ************** 
 | 
						|
 | 
						|
***************   Case 114   ***************
 | 
						|
 | 
						|
SQL: select distinct c2 from t4 order by c3 limit 3; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR       |NAME            |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |TOP-N SORT     |                |3        |83  |
 | 
						|
|1 | MERGE DISTINCT|                |10       |82  |
 | 
						|
|2 |  TABLE SCAN   |t4(idx_t4_c2_c3)|100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c2]), filter(nil), sort_keys([t4.c3, ASC]), topn(3)
 | 
						|
  1 - output([t4.c3], [t4.c2]), 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 c2 from t5 order by c3 limit 3; 
 | 
						|
 | 
						|
==============================================================
 | 
						|
|ID|OPERATOR                         |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------------
 | 
						|
|0 |LIMIT                            |        |3        |286 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT       |        |3        |286 |
 | 
						|
|2 |  EXCHANGE OUT DISTR             |:EX10001|3        |286 |
 | 
						|
|3 |   TOP-N SORT                    |        |3        |285 |
 | 
						|
|4 |    MERGE DISTINCT               |        |100      |279 |
 | 
						|
|5 |     EXCHANGE IN MERGE SORT DISTR|        |100      |274 |
 | 
						|
|6 |      EXCHANGE OUT DISTR (HASH)  |:EX10000|100      |265 |
 | 
						|
|7 |       PX PARTITION ITERATOR     |        |100      |246 |
 | 
						|
|8 |        MERGE DISTINCT           |        |100      |246 |
 | 
						|
|9 |         TABLE SCAN              |t5      |300      |233 |
 | 
						|
==============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t5.c2]), filter(nil), limit(3), offset(nil)
 | 
						|
  1 - output([t5.c2]), 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), sort_keys([t5.c3, ASC]), topn(3)
 | 
						|
  4 - output([t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      distinct([t5.c2])
 | 
						|
  5 - output([t5.c2], [t5.c3]), filter(nil), sort_keys([t5.c2, ASC]), Local Order
 | 
						|
  6 - (#keys=1, [t5.c2]), output([t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  7 - output([t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - output([t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      distinct([t5.c2])
 | 
						|
  9 - 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 115(end)  ************** 
 | 
						|
 | 
						|
***************   Case 116   ***************
 | 
						|
 | 
						|
SQL: select distinct c2 from t5 order by c3; 
 | 
						|
 | 
						|
==================================================================
 | 
						|
|ID|OPERATOR                        |NAME         |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR MERGE SORT       |             |100      |363 |
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10001     |100      |354 |
 | 
						|
|2 |  SORT                          |             |100      |335 |
 | 
						|
|3 |   MERGE DISTINCT               |             |100      |279 |
 | 
						|
|4 |    EXCHANGE IN MERGE SORT DISTR|             |100      |274 |
 | 
						|
|5 |     EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |265 |
 | 
						|
|6 |      PX PARTITION ITERATOR     |             |100      |246 |
 | 
						|
|7 |       MERGE DISTINCT           |             |100      |246 |
 | 
						|
|8 |        TABLE SCAN              |t5(idx_t5_c2)|300      |233 |
 | 
						|
==================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c2)]), filter(nil), sort_keys([t5.c3, ASC])
 | 
						|
  1 - output([t5.c3], [INTERNAL_FUNCTION(t5.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c3], [t5.c2]), filter(nil), sort_keys([t5.c3, ASC])
 | 
						|
  3 - output([t5.c3], [t5.c2]), filter(nil), 
 | 
						|
      distinct([t5.c2])
 | 
						|
  4 - output([t5.c3], [t5.c2]), filter(nil), sort_keys([t5.c2, ASC]), Local Order
 | 
						|
  5 - (#keys=1, [t5.c2]), output([t5.c3], [t5.c2]), filter(nil), dop=1
 | 
						|
  6 - output([t5.c3], [t5.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  7 - output([t5.c3], [t5.c2]), 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 116(end)  ************** 
 | 
						|
 | 
						|
***************   Case 117   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where c1 = 7; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t1  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 117(end)  ************** 
 | 
						|
 | 
						|
***************   Case 118   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where c1 = 5 or c1 = 7; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |2        |92  |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|2        |92  |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |2        |91  |
 | 
						|
|3 |   TABLE GET           |t1      |2        |91  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 118(end)  ************** 
 | 
						|
 | 
						|
***************   Case 119   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where c1 = 5 or c1 = 7 or c1 = 8; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |3        |137 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|3        |137 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |3        |137 |
 | 
						|
|3 |   TABLE GET           |t1      |3        |137 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 119(end)  ************** 
 | 
						|
 | 
						|
***************   Case 120   ***************
 | 
						|
 | 
						|
SQL: select c1 as alias_name from t1 where c1 = 7; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t1  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 120(end)  ************** 
 | 
						|
 | 
						|
***************   Case 121   ***************
 | 
						|
 | 
						|
SQL: select * from t5; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |300      |354 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|300      |314 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|3 |   TABLE SCAN          |t5      |300      |233 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 121(end)  ************** 
 | 
						|
 | 
						|
***************   Case 122   ***************
 | 
						|
 | 
						|
SQL: select * from t5 where c2 =3; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |3        |138 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|3        |137 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |3        |137 |
 | 
						|
|3 |   TABLE SCAN          |t5      |3        |137 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 122(end)  ************** 
 | 
						|
 | 
						|
***************   Case 123   ***************
 | 
						|
 | 
						|
SQL: select * from t5 where c2 = 5 and c3 = 7; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t5  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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.c1], [t5.c2], [t5.c3]), 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 123(end)  ************** 
 | 
						|
 | 
						|
***************   Case 124   ***************
 | 
						|
 | 
						|
SQL: select * from t5 where c2 = 6 and c3 = 7; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t5  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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.c1], [t5.c2], [t5.c3]), 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 124(end)  ************** 
 | 
						|
 | 
						|
***************   Case 125   ***************
 | 
						|
 | 
						|
SQL: select * from t5 where c2 = 11 and c3 = 8; 
 | 
						|
 | 
						|
==================================
 | 
						|
|ID|OPERATOR |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------
 | 
						|
|0 |TABLE GET|t5  |1        |46  |
 | 
						|
==================================
 | 
						|
 | 
						|
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 125(end)  ************** 
 | 
						|
 | 
						|
***************   Case 126   ***************
 | 
						|
 | 
						|
SQL: select c1 from t6; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |300      |280 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|300      |263 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|3 |   TABLE SCAN          |t6      |300      |233 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t6.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t6.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t6.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 126(end)  ************** 
 | 
						|
 | 
						|
***************   Case 127   ***************
 | 
						|
 | 
						|
SQL: select * from t6 where c1 = 3; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t6  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 127(end)  ************** 
 | 
						|
 | 
						|
***************   Case 128   ***************
 | 
						|
 | 
						|
SQL: select * from t6 where c1 = 10; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t6  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 128(end)  ************** 
 | 
						|
 | 
						|
***************   Case 129   ***************
 | 
						|
 | 
						|
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        |55  |
 | 
						|
|1 | PX COORDINATOR           |        |1        |46  |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|1        |46  |
 | 
						|
|3 |   TABLE GET              |t2      |1        |46  |
 | 
						|
|4 | PX COORDINATOR           |        |1        |46  |
 | 
						|
|5 |  EXCHANGE OUT DISTR      |:EX20000|1        |46  |
 | 
						|
|6 |   TABLE GET              |t1      |1        |46  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c2 + ?]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - output(nil), filter(nil), is_single, dop=1
 | 
						|
  3 - output(nil), filter([? = t2.c2]), 
 | 
						|
      access([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(nil), 
 | 
						|
      access([t1.c2]), partitions(p1), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range[1 ; 1], 
 | 
						|
      range_cond([t1.c1 = ?])
 | 
						|
 | 
						|
*************** Case 129(end)  ************** 
 | 
						|
 | 
						|
***************   Case 130   ***************
 | 
						|
 | 
						|
SQL: select t1.c1 from t1,t2 where t1.c1+1=t2.c1; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |501      |1036|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|501      |989 |
 | 
						|
|2 |  HASH JOIN                  |        |501      |895 |
 | 
						|
|3 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
|5 |   EXCHANGE IN DISTR         |        |500      |466 |
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |439 |
 | 
						|
|7 |     PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|8 |      TABLE SCAN             |t1      |500      |387 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 130(end)  ************** 
 | 
						|
 | 
						|
***************   Case 131   ***************
 | 
						|
 | 
						|
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        |93  |
 | 
						|
|1 | EXCHANGE OUT REMOTE        |    |1        |93  |
 | 
						|
|2 |  NESTED-LOOP JOIN CARTESIAN|    |1        |92  |
 | 
						|
|3 |   TABLE GET                |t1  |1        |46  |
 | 
						|
|4 |   TABLE GET                |t2  |1        |46  |
 | 
						|
=====================================================
 | 
						|
 | 
						|
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=false
 | 
						|
  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 131(end)  ************** 
 | 
						|
 | 
						|
***************   Case 132   ***************
 | 
						|
 | 
						|
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                  |        |120      |1756|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|120      |1691|
 | 
						|
|2 |  HASH JOIN                     |        |120      |1545|
 | 
						|
|3 |   EXCHANGE IN DISTR            |        |300      |1263|
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|300      |1167|
 | 
						|
|5 |     HASH JOIN                  |        |300      |957 |
 | 
						|
|6 |      PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|7 |       TABLE SCAN               |t2      |300      |233 |
 | 
						|
|8 |      EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|9 |       EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|10|        PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|11|         TABLE SCAN             |t1      |500      |387 |
 | 
						|
|12|   PX PARTITION ITERATOR        |        |200      |155 |
 | 
						|
|13|    TABLE SCAN                  |t3      |200      |155 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t3.c1], [t2.c1], [t2.c2], [t2.c3], [t1.c2], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t3.c1]), other_conds(nil)
 | 
						|
  3 - output([t1.c1], [t2.c1], [t2.c2], [t2.c3], [t1.c2]), filter(nil)
 | 
						|
  4 - (#keys=1, [t1.c1]), output([t1.c1], [t2.c1], [t2.c2], [t2.c3], [t1.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c1], [t2.c1], [t2.c2], [t2.c3], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  7 - 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
 | 
						|
  8 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  9 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  13 - 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 132(end)  ************** 
 | 
						|
 | 
						|
***************   Case 133   ***************
 | 
						|
 | 
						|
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                  |        |120      |1743|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|120      |1677|
 | 
						|
|2 |  HASH JOIN                     |        |120      |1532|
 | 
						|
|3 |   EXCHANGE IN DISTR            |        |200      |970 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|200      |875 |
 | 
						|
|5 |     HASH JOIN                  |        |200      |668 |
 | 
						|
|6 |      PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|7 |       TABLE SCAN               |t2      |300      |233 |
 | 
						|
|8 |      EXCHANGE IN DISTR         |        |200      |310 |
 | 
						|
|9 |       EXCHANGE OUT DISTR (PKEY)|:EX10000|200      |261 |
 | 
						|
|10|        PX PARTITION ITERATOR   |        |200      |155 |
 | 
						|
|11|         TABLE SCAN             |t3      |200      |155 |
 | 
						|
|12|   PX PARTITION ITERATOR        |        |500      |387 |
 | 
						|
|13|    TABLE SCAN                  |t1      |500      |387 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.c1], [t3.c1], [t2.c2], [t2.c3], [t3.c2], [t3.c3], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  3 - output([t2.c1], [t3.c1], [t2.c2], [t2.c3], [t3.c2], [t3.c3]), filter(nil)
 | 
						|
  4 - (#keys=1, [t2.c1]), output([t2.c1], [t3.c1], [t2.c2], [t2.c3], [t3.c2], [t3.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t2.c1], [t3.c1], [t2.c2], [t2.c3], [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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  7 - 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
 | 
						|
  8 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
 | 
						|
  9 - (#keys=1, [t3.c1]), output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
 | 
						|
  10 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  11 - 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
 | 
						|
  12 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 133(end)  ************** 
 | 
						|
 | 
						|
***************   Case 134   ***************
 | 
						|
 | 
						|
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                  |        |120      |1625|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|120      |1560|
 | 
						|
|2 |  HASH JOIN                     |        |120      |1414|
 | 
						|
|3 |   PX PARTITION ITERATOR        |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN                  |t2      |300      |233 |
 | 
						|
|5 |   EXCHANGE IN DISTR            |        |200      |1057|
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|200      |993 |
 | 
						|
|7 |     HASH JOIN                  |        |200      |853 |
 | 
						|
|8 |      EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|9 |       EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|10|        PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|11|         TABLE SCAN             |t1      |500      |387 |
 | 
						|
|12|      PX PARTITION ITERATOR     |        |200      |155 |
 | 
						|
|13|       TABLE SCAN               |t3      |200      |155 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t1.c2], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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], [t3.c1], [t1.c2], [t3.c2], [t3.c3]), filter(nil)
 | 
						|
  6 - (#keys=1, [t1.c1]), output([t1.c1], [t3.c1], [t1.c2], [t3.c2], [t3.c3]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c1], [t3.c1], [t1.c2], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t3.c1]), other_conds(nil)
 | 
						|
  8 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  9 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  13 - 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 134(end)  ************** 
 | 
						|
 | 
						|
***************   Case 135   ***************
 | 
						|
 | 
						|
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                  |        |120      |1625|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|120      |1559|
 | 
						|
|2 |  HASH JOIN                     |        |120      |1414|
 | 
						|
|3 |   EXCHANGE IN DISTR            |        |200      |1057|
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|200      |993 |
 | 
						|
|5 |     HASH JOIN                  |        |200      |853 |
 | 
						|
|6 |      EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|7 |       EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|8 |        PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|9 |         TABLE SCAN             |t1      |500      |387 |
 | 
						|
|10|      PX PARTITION ITERATOR     |        |200      |155 |
 | 
						|
|11|       TABLE SCAN               |t3      |200      |155 |
 | 
						|
|12|   PX PARTITION ITERATOR        |        |300      |233 |
 | 
						|
|13|    TABLE SCAN                  |t2      |300      |233 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.c1], [t3.c1], [t1.c2], [t3.c2], [t3.c3], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  3 - output([t1.c1], [t3.c1], [t1.c2], [t3.c2], [t3.c3]), filter(nil)
 | 
						|
  4 - (#keys=1, [t1.c1]), output([t1.c1], [t3.c1], [t1.c2], [t3.c2], [t3.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c1], [t3.c1], [t1.c2], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t3.c1]), other_conds(nil)
 | 
						|
  6 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  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.
 | 
						|
  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([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  11 - 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
 | 
						|
  12 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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)always true
 | 
						|
 | 
						|
*************** Case 135(end)  ************** 
 | 
						|
 | 
						|
***************   Case 136   ***************
 | 
						|
 | 
						|
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                  |        |120      |1626|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|120      |1561|
 | 
						|
|2 |  HASH JOIN                     |        |120      |1415|
 | 
						|
|3 |   PX PARTITION ITERATOR        |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN                  |t2      |300      |233 |
 | 
						|
|5 |   EXCHANGE IN DISTR            |        |200      |1058|
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|200      |994 |
 | 
						|
|7 |     HASH JOIN                  |        |200      |854 |
 | 
						|
|8 |      PX PARTITION ITERATOR     |        |200      |155 |
 | 
						|
|9 |       TABLE SCAN               |t3      |200      |155 |
 | 
						|
|10|      EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|11|       EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|12|        PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|13|         TABLE SCAN             |t1      |500      |387 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil)
 | 
						|
  6 - (#keys=1, [t1.c1]), output([t1.c1], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c1], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t3.c1]), other_conds(nil)
 | 
						|
  8 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  11 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  12 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 136(end)  ************** 
 | 
						|
 | 
						|
***************   Case 137   ***************
 | 
						|
 | 
						|
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                  |        |120      |1626|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|120      |1561|
 | 
						|
|2 |  HASH JOIN                     |        |120      |1415|
 | 
						|
|3 |   PX PARTITION ITERATOR        |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN                  |t2      |300      |233 |
 | 
						|
|5 |   EXCHANGE IN DISTR            |        |200      |1058|
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|200      |994 |
 | 
						|
|7 |     HASH JOIN                  |        |200      |854 |
 | 
						|
|8 |      PX PARTITION ITERATOR     |        |200      |155 |
 | 
						|
|9 |       TABLE SCAN               |t3      |200      |155 |
 | 
						|
|10|      EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|11|       EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|12|        PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|13|         TABLE SCAN             |t1      |500      |387 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil)
 | 
						|
  6 - (#keys=1, [t1.c1]), output([t1.c1], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c1], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t3.c1]), other_conds(nil)
 | 
						|
  8 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  11 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  12 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 137(end)  ************** 
 | 
						|
 | 
						|
***************   Case 138   ***************
 | 
						|
 | 
						|
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                  |        |120      |1626|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|120      |1561|
 | 
						|
|2 |  HASH JOIN                     |        |120      |1415|
 | 
						|
|3 |   PX PARTITION ITERATOR        |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN                  |t2      |300      |233 |
 | 
						|
|5 |   EXCHANGE IN DISTR            |        |200      |1058|
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|200      |994 |
 | 
						|
|7 |     HASH JOIN                  |        |200      |854 |
 | 
						|
|8 |      PX PARTITION ITERATOR     |        |200      |155 |
 | 
						|
|9 |       TABLE SCAN               |t3      |200      |155 |
 | 
						|
|10|      EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|11|       EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|12|        PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|13|         TABLE SCAN             |t1      |500      |387 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil)
 | 
						|
  6 - (#keys=1, [t1.c1]), output([t1.c1], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c1], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t3.c1]), other_conds(nil)
 | 
						|
  8 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  11 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  12 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 138(end)  ************** 
 | 
						|
 | 
						|
***************   Case 139   ***************
 | 
						|
 | 
						|
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                    |        |120      |3527|
 | 
						|
|1 | EXCHANGE OUT DISTR               |:EX10002|120      |3461|
 | 
						|
|2 |  NESTED-LOOP JOIN                |        |120      |3316|
 | 
						|
|3 |   EXCHANGE IN DISTR              |        |300      |1304|
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)     |:EX10001|300      |1208|
 | 
						|
|5 |     MERGE JOIN                   |        |300      |998 |
 | 
						|
|6 |      EXCHANGE IN MERGE SORT DISTR|        |500      |528 |
 | 
						|
|7 |       EXCHANGE OUT DISTR (PKEY)  |:EX10000|500      |481 |
 | 
						|
|8 |        PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|9 |         TABLE SCAN               |t1      |500      |387 |
 | 
						|
|10|      SORT                        |        |300      |299 |
 | 
						|
|11|       PX PARTITION ITERATOR      |        |300      |233 |
 | 
						|
|12|        TABLE SCAN                |t2      |300      |233 |
 | 
						|
|13|   PX PARTITION ITERATOR          |        |1        |12  |
 | 
						|
|14|    TABLE GET                     |t3      |1        |12  |
 | 
						|
===============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.c1], [t1.c2], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t1.c1]), batch_join=false
 | 
						|
  3 - output([t1.c1], [PARTITION_ID], [t2.c1], [t1.c2], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  4 - (#keys=1, [t1.c1]), output([t1.c1], [PARTITION_ID], [t2.c1], [t1.c2], [t2.c2], [t2.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c1], [t2.c1], [t1.c2], [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.
 | 
						|
  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.
 | 
						|
  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.
 | 
						|
  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 139(end)  ************** 
 | 
						|
 | 
						|
***************   Case 140   ***************
 | 
						|
 | 
						|
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                  |        |120      |1626|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|120      |1561|
 | 
						|
|2 |  HASH JOIN                     |        |120      |1415|
 | 
						|
|3 |   PX PARTITION ITERATOR        |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN                  |t2      |300      |233 |
 | 
						|
|5 |   EXCHANGE IN DISTR            |        |200      |1058|
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|200      |994 |
 | 
						|
|7 |     HASH JOIN                  |        |200      |854 |
 | 
						|
|8 |      PX PARTITION ITERATOR     |        |200      |155 |
 | 
						|
|9 |       TABLE SCAN               |t3      |200      |155 |
 | 
						|
|10|      EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|11|       EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|12|        PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|13|         TABLE SCAN             |t1      |500      |387 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil)
 | 
						|
  6 - (#keys=1, [t1.c1]), output([t1.c1], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c1], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t3.c1 = t1.c1]), other_conds(nil)
 | 
						|
  8 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  11 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  12 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 140(end)  ************** 
 | 
						|
 | 
						|
***************   Case 141   ***************
 | 
						|
 | 
						|
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                  |        |120      |1626|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|120      |1561|
 | 
						|
|2 |  HASH JOIN                     |        |120      |1415|
 | 
						|
|3 |   PX PARTITION ITERATOR        |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN                  |t2      |300      |233 |
 | 
						|
|5 |   EXCHANGE IN DISTR            |        |200      |1058|
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|200      |994 |
 | 
						|
|7 |     HASH JOIN                  |        |200      |854 |
 | 
						|
|8 |      PX PARTITION ITERATOR     |        |200      |155 |
 | 
						|
|9 |       TABLE SCAN               |t3      |200      |155 |
 | 
						|
|10|      EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|11|       EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|12|        PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|13|         TABLE SCAN             |t1      |500      |387 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil)
 | 
						|
  6 - (#keys=1, [t1.c1]), output([t1.c1], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c1], [t3.c1], [t3.c2], [t3.c3], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t3.c1]), other_conds(nil)
 | 
						|
  8 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  11 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  12 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 141(end)  ************** 
 | 
						|
 | 
						|
***************   Case 142   ***************
 | 
						|
 | 
						|
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                  |        |120      |4674|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|120      |4609|
 | 
						|
|2 |  MERGE JOIN                    |        |120      |4464|
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR |        |300      |4167|
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|300      |4071|
 | 
						|
|5 |     NESTED-LOOP JOIN           |        |300      |3861|
 | 
						|
|6 |      EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|7 |       EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|8 |        PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|9 |         TABLE SCAN             |t1      |500      |387 |
 | 
						|
|10|      PX PARTITION ITERATOR     |        |1        |18  |
 | 
						|
|11|       TABLE GET                |t2      |1        |18  |
 | 
						|
|12|   SORT                         |        |200      |199 |
 | 
						|
|13|    PX PARTITION ITERATOR       |        |200      |155 |
 | 
						|
|14|     TABLE SCAN                 |t3      |200      |155 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t3.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t3.c1]), other_conds(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
 | 
						|
  4 - (#keys=1, [t1.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), 
 | 
						|
      conds(nil), nl_params_([t1.c1]), batch_join=false
 | 
						|
  6 - output([t1.c1], [PARTITION_ID], [t1.c2]), filter(nil)
 | 
						|
  7 - (#keys=1, [t1.c1]), output([t1.c1], [PARTITION_ID], [t1.c2]), filter(nil), dop=1
 | 
						|
  8 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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), 
 | 
						|
      range_cond([? = t2.c1])
 | 
						|
  12 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), sort_keys([t3.c1, ASC]), local merge sort
 | 
						|
  13 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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)always true
 | 
						|
 | 
						|
*************** Case 142(end)  ************** 
 | 
						|
 | 
						|
***************   Case 143   ***************
 | 
						|
 | 
						|
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        |299 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000     |6        |298 |
 | 
						|
|2 |  PX PARTITION ITERATOR|             |6        |297 |
 | 
						|
|3 |   TABLE SCAN          |t5(idx_t5_c2)|6        |297 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 143(end)  ************** 
 | 
						|
 | 
						|
***************   Case 144   ***************
 | 
						|
 | 
						|
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        |299 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000     |6        |298 |
 | 
						|
|2 |  PX PARTITION ITERATOR|             |6        |297 |
 | 
						|
|3 |   TABLE SCAN          |t5(idx_t5_c3)|6        |297 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 144(end)  ************** 
 | 
						|
 | 
						|
***************   Case 145   ***************
 | 
						|
 | 
						|
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        |242 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|6        |241 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |6        |240 |
 | 
						|
|3 |   TABLE SCAN          |t5      |6        |240 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 145(end)  ************** 
 | 
						|
 | 
						|
***************   Case 146   ***************
 | 
						|
 | 
						|
SQL: select /*+ index(t5 idx_t5_c2) */ * from t5; 
 | 
						|
 | 
						|
=========================================================
 | 
						|
|ID|OPERATOR               |NAME         |EST. ROWS|COST|
 | 
						|
---------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |             |300      |411 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000     |300      |371 |
 | 
						|
|2 |  PX PARTITION ITERATOR|             |300      |290 |
 | 
						|
|3 |   TABLE SCAN          |t5(idx_t5_c2)|300      |290 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 146(end)  ************** 
 | 
						|
 | 
						|
***************   Case 147   ***************
 | 
						|
 | 
						|
SQL: select /*+ full(t5) */ c1, c2 from t5 where c1 = 2 or c2 =5; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |6        |242 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|6        |241 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |6        |240 |
 | 
						|
|3 |   TABLE SCAN          |t5      |6        |240 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 147(end)  ************** 
 | 
						|
 | 
						|
***************   Case 148   ***************
 | 
						|
 | 
						|
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        |299 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000     |6        |298 |
 | 
						|
|2 |  PX PARTITION ITERATOR|             |6        |297 |
 | 
						|
|3 |   TABLE SCAN          |t5(idx_t5_c2)|6        |297 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 148(end)  ************** 
 | 
						|
 | 
						|
***************   Case 149   ***************
 | 
						|
 | 
						|
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        |242 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|6        |241 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |6        |240 |
 | 
						|
|3 |   TABLE SCAN          |t5      |6        |240 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 149(end)  ************** 
 | 
						|
 | 
						|
***************   Case 150   ***************
 | 
						|
 | 
						|
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        |299 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000     |6        |298 |
 | 
						|
|2 |  PX PARTITION ITERATOR|             |6        |297 |
 | 
						|
|3 |   TABLE SCAN          |t5(idx_t5_c2)|6        |297 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 150(end)  ************** 
 | 
						|
 | 
						|
***************   Case 151   ***************
 | 
						|
 | 
						|
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        |299 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000     |6        |298 |
 | 
						|
|2 |  PX PARTITION ITERATOR|             |6        |297 |
 | 
						|
|3 |   TABLE SCAN          |t5(idx_t5_c2)|6        |297 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 (primary) where c1 =2 or c2 = 5; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |6        |242 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|6        |241 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |6        |240 |
 | 
						|
|3 |   TABLE SCAN          |t5      |6        |240 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 t1 ignore index (idx_t1_c2) where c1 =2 or c2 = 5; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |6        |402 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|6        |401 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |6        |400 |
 | 
						|
|3 |   TABLE SCAN          |t1      |6        |400 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 153(end)  ************** 
 | 
						|
 | 
						|
***************   Case 154   ***************
 | 
						|
 | 
						|
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        |242 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|6        |241 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |6        |240 |
 | 
						|
|3 |   TABLE SCAN          |t5      |6        |240 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 154(end)  ************** 
 | 
						|
 | 
						|
***************   Case 155   ***************
 | 
						|
 | 
						|
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        |242 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|6        |241 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |6        |240 |
 | 
						|
|3 |   TABLE SCAN          |t5      |6        |240 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 t5 ignore index (idx_t5_c3, primary) where c1 =2 or c2 = 5; 
 | 
						|
 | 
						|
=========================================================
 | 
						|
|ID|OPERATOR               |NAME         |EST. ROWS|COST|
 | 
						|
---------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |             |6        |299 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000     |6        |298 |
 | 
						|
|2 |  PX PARTITION ITERATOR|             |6        |297 |
 | 
						|
|3 |   TABLE SCAN          |t5(idx_t5_c2)|6        |297 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 156(end)  ************** 
 | 
						|
 | 
						|
***************   Case 157   ***************
 | 
						|
 | 
						|
SQL: select max(c2) from t1 where c1 = 2; 
 | 
						|
 | 
						|
==============================================
 | 
						|
|ID|OPERATOR            |NAME |EST. ROWS|COST|
 | 
						|
----------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |     |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|     |1        |46  |
 | 
						|
|2 |  SCALAR GROUP BY   |     |1        |46  |
 | 
						|
|3 |   SUBPLAN SCAN     |VIEW1|1        |46  |
 | 
						|
|4 |    TABLE GET       |t1   |1        |46  |
 | 
						|
==============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_MAX(VIEW1.t1.c2)]), filter(nil)
 | 
						|
  1 - output([T_FUN_MAX(VIEW1.t1.c2)]), filter(nil)
 | 
						|
  2 - output([T_FUN_MAX(VIEW1.t1.c2)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(VIEW1.t1.c2)])
 | 
						|
  3 - output([VIEW1.t1.c2]), filter(nil), 
 | 
						|
      access([VIEW1.t1.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 157(end)  ************** 
 | 
						|
 | 
						|
***************   Case 158   ***************
 | 
						|
 | 
						|
SQL: select @@sql_mode, c1 from t1 limit 1; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |LIMIT                    |        |1        |227 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |227 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |227 |
 | 
						|
|3 |   LIMIT                 |        |1        |227 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |1        |227 |
 | 
						|
|5 |     TABLE SCAN          |t1      |1        |227 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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 158(end)  ************** 
 | 
						|
 | 
						|
***************   Case 159   ***************
 | 
						|
 | 
						|
SQL: select 1+2 from dual; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |EXPRESSION|    |1        |1   |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil)
 | 
						|
      values({?})
 | 
						|
 | 
						|
*************** Case 159(end)  ************** 
 | 
						|
 | 
						|
***************   Case 160   ***************
 | 
						|
 | 
						|
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 160(end)  ************** 
 | 
						|
 | 
						|
***************   Case 161   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 where c1 = 0 and c2 = 2; 
 | 
						|
 | 
						|
==================================
 | 
						|
|ID|OPERATOR |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------
 | 
						|
|0 |TABLE GET|t1  |1        |46  |
 | 
						|
==================================
 | 
						|
 | 
						|
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 161(end)  ************** 
 | 
						|
 | 
						|
***************   Case 162   ***************
 | 
						|
 | 
						|
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        |50  |
 | 
						|
|1 | TABLE GET                |t2  |1        |46  |
 | 
						|
|2 | TABLE GET                |t3  |1        |46  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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([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 162(end)  ************** 
 | 
						|
 | 
						|
***************   Case 163   ***************
 | 
						|
 | 
						|
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        |50  |
 | 
						|
|1 | TABLE GET                |t3  |1        |46  |
 | 
						|
|2 | TABLE GET                |t2  |1        |46  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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([? = 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 163(end)  ************** 
 | 
						|
 | 
						|
***************   Case 164   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t   |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 164(end)  ************** 
 | 
						|
 | 
						|
***************   Case 165   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 partition (p1) where c1 = 3; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t1  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 165(end)  ************** 
 | 
						|
 | 
						|
***************   Case 166   ***************
 | 
						|
 | 
						|
SQL: select count(*) from t1 partition(p1); 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |82  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |82  |
 | 
						|
|2 |  SCALAR GROUP BY   |    |1        |81  |
 | 
						|
|3 |   TABLE SCAN       |t1  |100      |78  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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(nil), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p1), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 166(end)  ************** 
 | 
						|
 | 
						|
***************   Case 167   ***************
 | 
						|
 | 
						|
SQL: select * from t1 partition(p1) join t2 partition(p2) on t1.c1 = t2.c1; 
 | 
						|
 | 
						|
=================================================
 | 
						|
|ID|OPERATOR            |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------
 | 
						|
|0 |HASH JOIN           |        |100      |309 |
 | 
						|
|1 | PX COORDINATOR     |        |100      |106 |
 | 
						|
|2 |  EXCHANGE OUT DISTR|:EX10000|100      |97  |
 | 
						|
|3 |   TABLE SCAN       |t1      |100      |78  |
 | 
						|
|4 | PX COORDINATOR     |        |100      |155 |
 | 
						|
|5 |  EXCHANGE OUT DISTR|:EX20000|100      |131 |
 | 
						|
|6 |   TABLE SCAN       |t2      |100      |78  |
 | 
						|
=================================================
 | 
						|
 | 
						|
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 167(end)  ************** 
 | 
						|
 | 
						|
***************   Case 168   ***************
 | 
						|
 | 
						|
SQL: explain select * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 168(end)  ************** 
 | 
						|
 | 
						|
***************   Case 169   ***************
 | 
						|
 | 
						|
SQL: explain format = json select * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 169(end)  ************** 
 | 
						|
 | 
						|
***************   Case 170   ***************
 | 
						|
 | 
						|
SQL: select sum(c1) from t1 where c1 = 3 group by c2; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t1  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil)
 | 
						|
  1 - output([?]), filter(nil)
 | 
						|
  2 - output([?]), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p3), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range[3 ; 3], 
 | 
						|
      range_cond([t1.c1 = ?])
 | 
						|
 | 
						|
*************** Case 170(end)  ************** 
 | 
						|
 | 
						|
***************   Case 171   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t1  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 171(end)  ************** 
 | 
						|
 | 
						|
***************   Case 172   ***************
 | 
						|
 | 
						|
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        |56  |
 | 
						|
|1 | NESTED-LOOP JOIN|    |1        |56  |
 | 
						|
|2 |  TABLE SCAN     |t7  |1        |46  |
 | 
						|
|3 |  TABLE GET      |t8  |1        |5   |
 | 
						|
==========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil), limit(1), offset(nil)
 | 
						|
  1 - output(nil), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t7.c1]), batch_join=true
 | 
						|
  2 - output([t7.c1]), 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(nil), filter(nil), 
 | 
						|
      access([t8.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t8.c1]), range(MIN ; MAX), 
 | 
						|
      range_cond([? = t8.c1])
 | 
						|
 | 
						|
*************** Case 172(end)  ************** 
 | 
						|
 | 
						|
***************   Case 173   ***************
 | 
						|
 | 
						|
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|0        |79  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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.c1], [t2_no_part.c3], [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 173(end)  ************** 
 | 
						|
 | 
						|
***************   Case 174   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 174(end)  ************** 
 | 
						|
 | 
						|
***************   Case 175   ***************
 | 
						|
 | 
						|
SQL: select count(*) from t1 group by c1 having c1 = 2; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t1  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 175(end)  ************** 
 | 
						|
 | 
						|
***************   Case 176   ***************
 | 
						|
 | 
						|
SQL: select sum(c2) from t1 group by c1 having c1 = 2; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t1  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 176(end)  ************** 
 | 
						|
 | 
						|
***************   Case 177   ***************
 | 
						|
 | 
						|
SQL: select sum(c1) + count(c2) from t2_no_part; 
 | 
						|
 | 
						|
==============================================
 | 
						|
|ID|OPERATOR       |NAME      |EST. ROWS|COST|
 | 
						|
----------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY|          |1        |83  |
 | 
						|
|1 | TABLE SCAN    |t2_no_part|100      |78  |
 | 
						|
==============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_SUM(t2_no_part.c1) + cast(T_FUN_COUNT(t2_no_part.c2), DECIMAL(20, 0))]), 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 177(end)  ************** 
 | 
						|
 | 
						|
***************   Case 178   ***************
 | 
						|
 | 
						|
SQL: select sum(c1) from t2_no_part group by c2 order by sum(c1); 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR      |NAME      |EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |SORT          |          |10       |108 |
 | 
						|
|1 | HASH GROUP BY|          |10       |106 |
 | 
						|
|2 |  TABLE SCAN  |t2_no_part|100      |78  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 178(end)  ************** 
 | 
						|
 | 
						|
***************   Case 179   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
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.c2], [t4.c3], [t4.c1]), range(3,4,MIN ; 3,4,MAX), 
 | 
						|
      range_cond([t4.c2 = ?], [t4.c3 = ?])
 | 
						|
 | 
						|
*************** Case 179(end)  ************** 
 | 
						|
 | 
						|
***************   Case 180   ***************
 | 
						|
 | 
						|
SQL: select * from t4 where c1 = 2 and c2 = 3; 
 | 
						|
 | 
						|
==================================
 | 
						|
|ID|OPERATOR |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------
 | 
						|
|0 |TABLE GET|t4  |1        |46  |
 | 
						|
==================================
 | 
						|
 | 
						|
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 180(end)  ************** 
 | 
						|
 | 
						|
***************   Case 181   ***************
 | 
						|
 | 
						|
SQL: select * from t4, t7 where t4.c1 + 2 + 2 = t7.c1; 
 | 
						|
 | 
						|
====================================
 | 
						|
|ID|OPERATOR   |NAME|EST. ROWS|COST|
 | 
						|
------------------------------------
 | 
						|
|0 |HASH JOIN  |    |100      |205 |
 | 
						|
|1 | TABLE SCAN|t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN|t4  |100      |78  |
 | 
						|
====================================
 | 
						|
 | 
						|
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.c1], [t4.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 181(end)  ************** 
 | 
						|
 | 
						|
***************   Case 182   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
============================================
 | 
						|
 | 
						|
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 182(end)  ************** 
 | 
						|
 | 
						|
***************   Case 183   ***************
 | 
						|
 | 
						|
SQL: select /*+ frozen_version(10) */ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 183(end)  ************** 
 | 
						|
 | 
						|
***************   Case 184   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
==============================================
 | 
						|
 | 
						|
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 184(end)  ************** 
 | 
						|
 | 
						|
***************   Case 185   ***************
 | 
						|
 | 
						|
SQL: select * from t4 where c1 = 1 and c2 > 5 and c3 > 8; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |54       |79  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 185(end)  ************** 
 | 
						|
 | 
						|
***************   Case 186   ***************
 | 
						|
 | 
						|
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        |91  |
 | 
						|
==================================
 | 
						|
 | 
						|
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 186(end)  ************** 
 | 
						|
 | 
						|
***************   Case 187   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where c1 in (c1, 2, 3, 4); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |540 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |494 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |400 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |400 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter([t1.c1 = t1.c1 OR t1.c1 IN (?, ?, ?)]), 
 | 
						|
      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 187(end)  ************** 
 | 
						|
 | 
						|
***************   Case 188   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where (1+ 1) in (2); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 188(end)  ************** 
 | 
						|
 | 
						|
***************   Case 189   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where 1 in (c1); 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t1  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 189(end)  ************** 
 | 
						|
 | 
						|
***************   Case 190   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where 1 in (c1, c2); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |6        |402 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|6        |401 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |6        |400 |
 | 
						|
|3 |   TABLE SCAN          |t1      |6        |400 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 190(end)  ************** 
 | 
						|
 | 
						|
***************   Case 191   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where c1 = 1 or c2 = 1; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                |NAME         |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |UNION ALL               |             |4        |274 |
 | 
						|
|1 | PX COORDINATOR         |             |1        |46  |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000     |1        |46  |
 | 
						|
|3 |   TABLE GET            |t1           |1        |46  |
 | 
						|
|4 | PX COORDINATOR         |             |3        |228 |
 | 
						|
|5 |  EXCHANGE OUT DISTR    |:EX20000     |3        |228 |
 | 
						|
|6 |   PX PARTITION ITERATOR|             |3        |227 |
 | 
						|
|7 |    TABLE SCAN          |t1(idx_t1_c2)|3        |227 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])], [UNION([2])]), filter(nil)
 | 
						|
  1 - output([?], [t1.c2]), filter(nil)
 | 
						|
  2 - output([t1.c2]), filter(nil), is_single, dop=1
 | 
						|
  3 - output([t1.c2]), filter(nil), 
 | 
						|
      access([t1.c2]), 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.
 | 
						|
  7 - output([t1.c1]), filter([lnnvl(cast(t1.c1 = ?, TINYINT(-1, 0)))]), 
 | 
						|
      access([t1.c1]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([t1.c2], [t1.c1]), range(1,MIN ; 1,MAX), 
 | 
						|
      range_cond([t1.c2 = ?])
 | 
						|
 | 
						|
*************** Case 191(end)  ************** 
 | 
						|
 | 
						|
***************   Case 192   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where (1+ 1) in (1); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), startup_filter([0])
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 192(end)  ************** 
 | 
						|
 | 
						|
***************   Case 193   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where c1 in (1, 2, 3, 4); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |4        |183 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|4        |183 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |4        |182 |
 | 
						|
|3 |   TABLE GET           |t1      |4        |182 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 193(end)  ************** 
 | 
						|
 | 
						|
***************   Case 194   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where exists (select * from t2 limit 0); 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |SUBPLAN FILTER            |        |500      |537 |
 | 
						|
|1 | PX COORDINATOR           |        |500      |528 |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|500      |481 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN            |t1      |500      |387 |
 | 
						|
|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(nil), 
 | 
						|
      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.
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), startup_filter([?]), 
 | 
						|
      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(nil), filter(nil)
 | 
						|
  7 - output(nil), filter(nil), dop=1
 | 
						|
  8 - output(nil), filter(nil), limit(0), offset(nil)
 | 
						|
  9 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  10 - output(nil), 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 194(end)  ************** 
 | 
						|
 | 
						|
***************   Case 195   ***************
 | 
						|
 | 
						|
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      |188 |
 | 
						|
|1 | TABLE SCAN|t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN|t8  |100      |78  |
 | 
						|
====================================
 | 
						|
 | 
						|
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 195(end)  ************** 
 | 
						|
 | 
						|
***************   Case 196   ***************
 | 
						|
 | 
						|
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  |    |91       |236 |
 | 
						|
|1 | SORT       |    |100      |133 |
 | 
						|
|2 |  TABLE SCAN|t8  |100      |78  |
 | 
						|
|3 | TABLE SCAN |t7  |100      |78  |
 | 
						|
=====================================
 | 
						|
 | 
						|
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([t8.c1], [t8.c2]), filter(nil), sort_keys([t8.c2, ASC])
 | 
						|
  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
 | 
						|
  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 196(end)  ************** 
 | 
						|
 | 
						|
***************   Case 197   ***************
 | 
						|
 | 
						|
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      |1267|
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|500      |1173|
 | 
						|
|2 |  MERGE GROUP BY               |        |500      |973 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |500      |943 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000|500      |873 |
 | 
						|
|5 |     MERGE GROUP BY            |        |500      |726 |
 | 
						|
|6 |      SORT                     |        |500      |698 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|8 |        TABLE SCAN             |t1      |500      |387 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(cast(t1.c1, DECIMAL(11, 0)) / cast(t1.c2, DECIMAL(11, 0)), T_FUN_SUM(T_FUN_SUM(t1.c1)))]), filter(nil), sort_keys([cast(t1.c1, DECIMAL(11, 0)) / cast(t1.c2, DECIMAL(11, 0)), ASC])
 | 
						|
  1 - output([cast(t1.c1, DECIMAL(11, 0)) / cast(t1.c2, DECIMAL(11, 0))], [INTERNAL_FUNCTION(cast(t1.c1, DECIMAL(11, 0)) / cast(t1.c2, DECIMAL(11, 0)), T_FUN_SUM(T_FUN_SUM(t1.c1)))]), filter(nil), dop=1
 | 
						|
  2 - output([cast(t1.c1, DECIMAL(11, 0)) / cast(t1.c2, DECIMAL(11, 0))], [T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil), 
 | 
						|
      group([cast(t1.c1, DECIMAL(11, 0)) / cast(t1.c2, DECIMAL(11, 0))]), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))])
 | 
						|
  3 - output([cast(t1.c1, DECIMAL(11, 0)) / cast(t1.c2, DECIMAL(11, 0))], [T_FUN_SUM(t1.c1)]), filter(nil), sort_keys([cast(t1.c1, DECIMAL(11, 0)) / cast(t1.c2, DECIMAL(11, 0)), ASC])
 | 
						|
  4 - (#keys=1, [cast(t1.c1, DECIMAL(11, 0)) / cast(t1.c2, DECIMAL(11, 0))]), output([cast(t1.c1, DECIMAL(11, 0)) / cast(t1.c2, DECIMAL(11, 0))], [T_FUN_SUM(t1.c1)]), filter(nil), dop=1
 | 
						|
  5 - output([cast(t1.c1, DECIMAL(11, 0)) / cast(t1.c2, DECIMAL(11, 0))], [T_FUN_SUM(t1.c1)]), filter(nil), 
 | 
						|
      group([cast(t1.c1, DECIMAL(11, 0)) / cast(t1.c2, DECIMAL(11, 0))]), agg_func([T_FUN_SUM(t1.c1)])
 | 
						|
  6 - output([cast(t1.c1, DECIMAL(11, 0)) / cast(t1.c2, DECIMAL(11, 0))], [t1.c1]), filter(nil), sort_keys([cast(t1.c1, DECIMAL(11, 0)) / cast(t1.c2, DECIMAL(11, 0)), ASC])
 | 
						|
  7 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 197(end)  ************** 
 | 
						|
 | 
						|
***************   Case 198   ***************
 | 
						|
 | 
						|
SQL: select c2 from t1 for update; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 198(end)  ************** 
 | 
						|
 | 
						|
***************   Case 199   ***************
 | 
						|
 | 
						|
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      |925 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |840 |
 | 
						|
|2 |  HASH JOIN                  |        |300      |656 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|6 |      TABLE SCAN             |t6      |300      |233 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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([t6.c1]), filter(nil)
 | 
						|
  4 - (#keys=1, [t6.c1]), output([t6.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t6.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
  7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 199(end)  ************** 
 | 
						|
 | 
						|
***************   Case 200   ***************
 | 
						|
 | 
						|
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      |109 |
 | 
						|
|1 | TABLE SCAN|t4(idx_t4_c3)|100      |78  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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.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
 | 
						|
 | 
						|
*************** Case 200(end)  ************** 
 | 
						|
 | 
						|
***************   Case 201   ***************
 | 
						|
 | 
						|
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 |    |91       |180 |
 | 
						|
|1 | TABLE SCAN|t4  |100      |78  |
 | 
						|
|2 | TABLE SCAN|t9  |100      |78  |
 | 
						|
====================================
 | 
						|
 | 
						|
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 201(end)  ************** 
 | 
						|
 | 
						|
***************   Case 202   ***************
 | 
						|
 | 
						|
SQL: select * from t4 where t4.c1 = 1; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 202(end)  ************** 
 | 
						|
 | 
						|
***************   Case 203   ***************
 | 
						|
 | 
						|
SQL: select * from t7 group by c1 order by c1 desc; 
 | 
						|
 | 
						|
==========================================
 | 
						|
|ID|OPERATOR  |NAME       |EST. ROWS|COST|
 | 
						|
------------------------------------------
 | 
						|
|0 |TABLE SCAN|t7(Reverse)|100      |78  |
 | 
						|
==========================================
 | 
						|
 | 
						|
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 203(end)  ************** 
 | 
						|
 | 
						|
***************   Case 204   ***************
 | 
						|
 | 
						|
SQL: select * from t4 order by c1,c2 desc; 
 | 
						|
 | 
						|
====================================
 | 
						|
|ID|OPERATOR   |NAME|EST. ROWS|COST|
 | 
						|
------------------------------------
 | 
						|
|0 |SORT       |    |100      |109 |
 | 
						|
|1 | TABLE SCAN|t4  |100      |78  |
 | 
						|
====================================
 | 
						|
 | 
						|
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 204(end)  ************** 
 | 
						|
 | 
						|
***************   Case 205   ***************
 | 
						|
 | 
						|
SQL: select * from t4 order by c1 desc,c2 desc; 
 | 
						|
 | 
						|
==========================================
 | 
						|
|ID|OPERATOR  |NAME       |EST. ROWS|COST|
 | 
						|
------------------------------------------
 | 
						|
|0 |TABLE SCAN|t4(Reverse)|100      |78  |
 | 
						|
==========================================
 | 
						|
 | 
						|
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 205(end)  ************** 
 | 
						|
 | 
						|
***************   Case 206   ***************
 | 
						|
 | 
						|
SQL: select * from t1 order by c1 limit 2; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |LIMIT                      |        |2        |228 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT |        |2        |228 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000|2        |228 |
 | 
						|
|3 |   TOP-N SORT              |        |2        |228 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |2        |227 |
 | 
						|
|5 |     TABLE SCAN            |t1      |2        |227 |
 | 
						|
========================================================
 | 
						|
 | 
						|
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), sort_keys([t1.c1, ASC]), topn(2), local merge sort
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - 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 206(end)  ************** 
 | 
						|
 | 
						|
***************   Case 207   ***************
 | 
						|
 | 
						|
SQL: select * from t1 order by c2 limit 2; 
 | 
						|
 | 
						|
=============================================================
 | 
						|
|ID|OPERATOR                   |NAME         |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------------
 | 
						|
|0 |LIMIT                      |             |2        |228 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT |             |2        |228 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000     |2        |228 |
 | 
						|
|3 |   TOP-N SORT              |             |2        |228 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |             |2        |227 |
 | 
						|
|5 |     TABLE SCAN            |t1(idx_t1_c2)|2        |227 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
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), sort_keys([t1.c2, ASC]), topn(2), local merge sort
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - 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 207(end)  ************** 
 | 
						|
 | 
						|
***************   Case 208   ***************
 | 
						|
 | 
						|
SQL: select * from t2 order by c1 limit 2; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |LIMIT                      |        |2        |139 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT |        |2        |139 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000|2        |138 |
 | 
						|
|3 |   TOP-N SORT              |        |2        |137 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |2        |137 |
 | 
						|
|5 |     TABLE SCAN            |t2      |2        |137 |
 | 
						|
========================================================
 | 
						|
 | 
						|
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), sort_keys([t2.c1, ASC]), topn(2), local merge sort
 | 
						|
  4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - 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 208(end)  ************** 
 | 
						|
 | 
						|
***************   Case 209   ***************
 | 
						|
 | 
						|
SQL: select * from t2 order by c2 limit 2; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |LIMIT                      |        |2        |250 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT |        |2        |250 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000|2        |250 |
 | 
						|
|3 |   TOP-N SORT              |        |2        |249 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|5 |     TABLE SCAN            |t2      |300      |233 |
 | 
						|
========================================================
 | 
						|
 | 
						|
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), sort_keys([t2.c2, ASC]), topn(2)
 | 
						|
  4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 209(end)  ************** 
 | 
						|
 | 
						|
***************   Case 210   ***************
 | 
						|
 | 
						|
SQL: select * from (select * from t4 union select * from t4) as a; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |MERGE UNION DISTINCT|    |200      |161 |
 | 
						|
|1 | TABLE SCAN         |t4  |100      |78  |
 | 
						|
|2 | TABLE SCAN         |t4  |100      |78  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 210(end)  ************** 
 | 
						|
 | 
						|
***************   Case 211   ***************
 | 
						|
 | 
						|
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      |1063|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|500      |903 |
 | 
						|
|2 |  HASH RIGHT OUTER JOIN      |        |500      |553 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |1        |47  |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|1        |46  |
 | 
						|
|5 |     TABLE GET               |t2      |1        |46  |
 | 
						|
|6 |   PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|7 |    TABLE SCAN               |t1      |500      |387 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.c1], [t2.c2], [t2.c3], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  4 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2], [t2.c3]), filter(nil), is_single, dop=1
 | 
						|
  5 - 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 = ?])
 | 
						|
  6 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 211(end)  ************** 
 | 
						|
 | 
						|
***************   Case 212   ***************
 | 
						|
 | 
						|
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        |93  |
 | 
						|
|1 | EXCHANGE OUT REMOTE        |    |1        |93  |
 | 
						|
|2 |  NESTED-LOOP JOIN CARTESIAN|    |1        |92  |
 | 
						|
|3 |   TABLE GET                |t1  |1        |46  |
 | 
						|
|4 |   TABLE GET                |t2  |1        |46  |
 | 
						|
=====================================================
 | 
						|
 | 
						|
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=false
 | 
						|
  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 212(end)  ************** 
 | 
						|
 | 
						|
***************   Case 213   ***************
 | 
						|
 | 
						|
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      |656 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |560 |
 | 
						|
|2 |  HASH RIGHT OUTER JOIN      |        |300      |350 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |1        |46  |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|1        |46  |
 | 
						|
|5 |     TABLE GET               |t1      |1        |46  |
 | 
						|
|6 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|7 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.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)
 | 
						|
  4 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), is_single, dop=1
 | 
						|
  5 - 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 = ?])
 | 
						|
  6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  7 - 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 213(end)  ************** 
 | 
						|
 | 
						|
***************   Case 214   ***************
 | 
						|
 | 
						|
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        |93  |
 | 
						|
|1 | EXCHANGE OUT REMOTE              |    |1        |93  |
 | 
						|
|2 |  NESTED-LOOP OUTER JOIN CARTESIAN|    |1        |92  |
 | 
						|
|3 |   TABLE GET                      |t2  |1        |46  |
 | 
						|
|4 |   TABLE GET                      |t1  |1        |46  |
 | 
						|
===========================================================
 | 
						|
 | 
						|
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=false
 | 
						|
  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[2 ; 2], 
 | 
						|
      range_cond([t1.c1 = ?])
 | 
						|
 | 
						|
*************** Case 214(end)  ************** 
 | 
						|
 | 
						|
***************   Case 215   ***************
 | 
						|
 | 
						|
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      |1464|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|500      |1304|
 | 
						|
|2 |  HASH FULL OUTER JOIN       |        |500      |954 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|6 |      TABLE SCAN             |t1      |500      |387 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.c1], [t1.c2], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds([t2.c1 = ?])
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  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.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 215(end)  ************** 
 | 
						|
 | 
						|
***************   Case 216   ***************
 | 
						|
 | 
						|
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        |93  |
 | 
						|
|1 | EXCHANGE OUT REMOTE              |    |1        |93  |
 | 
						|
|2 |  NESTED-LOOP OUTER JOIN CARTESIAN|    |1        |92  |
 | 
						|
|3 |   TABLE GET                      |t2  |1        |46  |
 | 
						|
|4 |   TABLE GET                      |t1  |1        |46  |
 | 
						|
===========================================================
 | 
						|
 | 
						|
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=false
 | 
						|
  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[2 ; 2], 
 | 
						|
      range_cond([t1.c1 = ?])
 | 
						|
 | 
						|
*************** Case 216(end)  ************** 
 | 
						|
 | 
						|
***************   Case 217   ***************
 | 
						|
 | 
						|
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      |980 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |941 |
 | 
						|
|2 |  HASH JOIN                  |        |300      |859 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|6 |      TABLE SCAN             |t2      |300      |233 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|8 |    TABLE SCAN               |t1      |500      |387 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  3 - output([t2.c1]), filter(nil)
 | 
						|
  4 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 217(end)  ************** 
 | 
						|
 | 
						|
***************   Case 218   ***************
 | 
						|
 | 
						|
SQL: select c1 from (select c1, c2 from t1 limit 1) t; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |LIMIT                    |        |1        |227 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |227 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |227 |
 | 
						|
|3 |   LIMIT                 |        |1        |227 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |1        |227 |
 | 
						|
|5 |     TABLE SCAN          |t1      |1        |227 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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 218(end)  ************** 
 | 
						|
 | 
						|
***************   Case 219   ***************
 | 
						|
 | 
						|
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        |848 |
 | 
						|
|1 | PX COORDINATOR           |        |1        |848 |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|1        |848 |
 | 
						|
|3 |   MERGE GROUP BY         |        |1        |848 |
 | 
						|
|4 |    SUBPLAN SCAN          |a       |1000     |813 |
 | 
						|
|5 |     PX PARTITION ITERATOR|        |1000     |795 |
 | 
						|
|6 |      MERGE UNION DISTINCT|        |1000     |795 |
 | 
						|
|7 |       TABLE SCAN         |t1      |500      |387 |
 | 
						|
|8 |       TABLE SCAN         |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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 219(end)  ************** 
 | 
						|
 | 
						|
***************   Case 220   ***************
 | 
						|
 | 
						|
SQL: select * from t2 where 'cb' <= c3; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |0        |250 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|0        |250 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |0        |250 |
 | 
						|
|3 |   TABLE SCAN          |t2      |0        |250 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 220(end)  ************** 
 | 
						|
 | 
						|
***************   Case 221   ***************
 | 
						|
 | 
						|
SQL: select t7.c1 = t8.c2 from t7, t8 where t7.c1 = t8.c1; 
 | 
						|
 | 
						|
====================================
 | 
						|
|ID|OPERATOR   |NAME|EST. ROWS|COST|
 | 
						|
------------------------------------
 | 
						|
|0 |MERGE JOIN |    |100      |187 |
 | 
						|
|1 | TABLE SCAN|t8  |100      |78  |
 | 
						|
|2 | TABLE SCAN|t7  |100      |78  |
 | 
						|
====================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1 = t8.c2]), filter(nil), 
 | 
						|
      equal_conds([t7.c1 = t8.c1]), other_conds(nil)
 | 
						|
  1 - 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
 | 
						|
  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 221(end)  ************** 
 | 
						|
 | 
						|
***************   Case 222   ***************
 | 
						|
 | 
						|
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      |131 |
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10001|100      |118 |
 | 
						|
|2 |  NESTED-LOOP JOIN              |        |100      |90  |
 | 
						|
|3 |   EXCHANGE IN DISTR            |        |1        |46  |
 | 
						|
|4 |    EXCHANGE OUT DISTR (BC2HOST)|:EX10000|1        |46  |
 | 
						|
|5 |     SUBPLAN SCAN               |t11     |1        |46  |
 | 
						|
|6 |      TABLE SCAN                |t4      |1        |46  |
 | 
						|
|7 |   PX PARTITION ITERATOR        |        |100      |19  |
 | 
						|
|8 |    TABLE SCAN                  |t6      |100      |19  |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t11.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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(nil), filter(nil), 
 | 
						|
      access all, force partition granule.
 | 
						|
  8 - output(nil), 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 222(end)  ************** 
 | 
						|
 | 
						|
***************   Case 223   ***************
 | 
						|
 | 
						|
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   |             |2700     |1210|
 | 
						|
|1 | TABLE SCAN              |t4(idx_t4_c2)|100      |78  |
 | 
						|
|2 | MATERIAL                |             |300      |281 |
 | 
						|
|3 |  PX COORDINATOR         |             |300      |280 |
 | 
						|
|4 |   EXCHANGE OUT DISTR    |:EX10000     |300      |263 |
 | 
						|
|5 |    PX PARTITION ITERATOR|             |300      |233 |
 | 
						|
|6 |     TABLE SCAN          |t6           |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
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(nil), filter(nil)
 | 
						|
  3 - output(nil), filter(nil)
 | 
						|
  4 - output(nil), filter(nil), dop=1
 | 
						|
  5 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - output(nil), filter(nil), 
 | 
						|
      access([t6.c1]), partitions(p[0-2]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t6.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 223(end)  ************** 
 | 
						|
 | 
						|
***************   Case 224   ***************
 | 
						|
 | 
						|
SQL: select * from t2,t4 where t2.c1=t4.c1; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |90       |550 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|90       |517 |
 | 
						|
|2 |  HASH JOIN                  |        |90       |447 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |100      |118 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|100      |105 |
 | 
						|
|5 |     TABLE SCAN              |t4      |100      |78  |
 | 
						|
|6 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|7 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3, t4.c1, t4.c2, t4.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3, t4.c1, t4.c2, t4.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t2.c1], [t4.c1], [t4.c2], [t4.c3], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t2.c1 = t4.c1]), other_conds(nil)
 | 
						|
  3 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil)
 | 
						|
  4 - (#keys=1, [t4.c1]), 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([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  7 - 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 224(end)  ************** 
 | 
						|
 | 
						|
***************   Case 225   ***************
 | 
						|
 | 
						|
SQL: select * from t2,t6 where t2.c1=t6.c1; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |300      |1000|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |904 |
 | 
						|
|2 |  HASH JOIN                  |        |300      |694 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |300      |317 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |289 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|6 |      TABLE SCAN             |t6      |300      |233 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3, t6.c1, t6.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3, t6.c1, t6.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t2.c1], [t6.c1], [t6.c2], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t2.c1 = t6.c1]), other_conds(nil)
 | 
						|
  3 - output([t6.c1], [t6.c2]), filter(nil)
 | 
						|
  4 - (#keys=1, [t6.c1]), output([t6.c1], [t6.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t6.c1], [t6.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 225(end)  ************** 
 | 
						|
 | 
						|
***************   Case 226   ***************
 | 
						|
 | 
						|
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      |942 |
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|100      |903 |
 | 
						|
|2 |  HASH JOIN                     |        |100      |816 |
 | 
						|
|3 |   EXCHANGE IN DISTR            |        |100      |487 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|100      |470 |
 | 
						|
|5 |     HASH JOIN                  |        |100      |434 |
 | 
						|
|6 |      EXCHANGE IN DISTR         |        |100      |106 |
 | 
						|
|7 |       EXCHANGE OUT DISTR (PKEY)|:EX10000|100      |97  |
 | 
						|
|8 |        TABLE SCAN              |t7      |100      |78  |
 | 
						|
|9 |      PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|10|       TABLE SCAN               |t6      |300      |233 |
 | 
						|
|11|   PX PARTITION ITERATOR        |        |300      |233 |
 | 
						|
|12|    TABLE SCAN                  |t2      |300      |233 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3, t6.c1, t6.c2, t7.c1, t7.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3, t6.c1, t6.c2, t7.c1, t7.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t2.c1], [t6.c1], [t7.c1], [t7.c2], [t6.c2], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t2.c1 = t6.c1]), other_conds(nil)
 | 
						|
  3 - output([t6.c1], [t7.c1], [t7.c2], [t6.c2]), filter(nil)
 | 
						|
  4 - (#keys=1, [t6.c1]), output([t6.c1], [t7.c1], [t7.c2], [t6.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t6.c1], [t7.c1], [t7.c2], [t6.c2]), filter(nil), 
 | 
						|
      equal_conds([t6.c1 = t7.c1]), other_conds(nil)
 | 
						|
  6 - output([t7.c1], [t7.c2]), filter(nil)
 | 
						|
  7 - (#keys=1, [t7.c1]), output([t7.c1], [t7.c2]), filter(nil), is_single, dop=1
 | 
						|
  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
 | 
						|
  9 - output([t6.c1], [t6.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  10 - 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
 | 
						|
  11 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 226(end)  ************** 
 | 
						|
 | 
						|
***************   Case 227   ***************
 | 
						|
 | 
						|
SQL: select c1 from t2 union select c1 from t6; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |600      |876 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|600      |843 |
 | 
						|
|2 |  HASH UNION DISTINCT        |        |600      |781 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|6 |      TABLE SCAN             |t2      |300      |233 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t6      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(UNION([1]))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(UNION([1]))]), filter(nil), dop=1
 | 
						|
  2 - output([UNION([1])]), filter(nil)
 | 
						|
  3 - output([t2.c1]), filter(nil)
 | 
						|
  4 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  8 - 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 227(end)  ************** 
 | 
						|
 | 
						|
***************   Case 228   ***************
 | 
						|
 | 
						|
SQL: select c1 from t2 union all select c1 from t6; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |600      |570 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|600      |537 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |600      |475 |
 | 
						|
|3 |   UNION ALL           |        |600      |475 |
 | 
						|
|4 |    TABLE SCAN         |t2      |300      |233 |
 | 
						|
|5 |    TABLE SCAN         |t6      |300      |233 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(UNION([1]))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(UNION([1]))]), filter(nil), dop=1
 | 
						|
  2 - output([UNION([1])]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  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 228(end)  ************** 
 | 
						|
 | 
						|
***************   Case 229   ***************
 | 
						|
 | 
						|
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      |925 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |840 |
 | 
						|
|2 |  HASH JOIN                  |        |300      |656 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|6 |      TABLE SCAN             |t6      |300      |233 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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([t6.c1]), filter(nil)
 | 
						|
  4 - (#keys=1, [t6.c1]), output([t6.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t6.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
  7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 229(end)  ************** 
 | 
						|
 | 
						|
***************   Case 230   ***************
 | 
						|
 | 
						|
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               |        |10       |160 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|10       |157 |
 | 
						|
|2 |  NESTED-LOOP JOIN           |        |10       |151 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |10       |84  |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|10       |83  |
 | 
						|
|5 |     SUBPLAN SCAN            |VIEW2   |10       |82  |
 | 
						|
|6 |      MERGE DISTINCT         |        |10       |82  |
 | 
						|
|7 |       TABLE SCAN            |t4      |100      |78  |
 | 
						|
|8 |   PX PARTITION ITERATOR     |        |1        |18  |
 | 
						|
|9 |    TABLE GET                |t2      |1        |18  |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([VIEW2.VIEW1.t4.c1]), batch_join=false
 | 
						|
  3 - output([PARTITION_ID], [VIEW2.VIEW1.t4.c1]), filter(nil)
 | 
						|
  4 - (#keys=1, [VIEW2.VIEW1.t4.c1]), output([PARTITION_ID], [VIEW2.VIEW1.t4.c1]), filter(nil), is_single, dop=1
 | 
						|
  5 - output([VIEW2.VIEW1.t4.c1]), filter(nil), 
 | 
						|
      access([VIEW2.VIEW1.t4.c1])
 | 
						|
  6 - output([t4.c1]), filter(nil), 
 | 
						|
      distinct([t4.c1])
 | 
						|
  7 - 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
 | 
						|
  8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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), 
 | 
						|
      range_cond([t2.c1 = ?])
 | 
						|
 | 
						|
*************** Case 230(end)  ************** 
 | 
						|
 | 
						|
***************   Case 231   ***************
 | 
						|
 | 
						|
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      |1160|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |1075|
 | 
						|
|2 |  HASH JOIN                  |        |300      |891 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |500      |466 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |439 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|6 |      TABLE SCAN             |t1      |500      |387 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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([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.
 | 
						|
  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], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 231(end)  ************** 
 | 
						|
 | 
						|
***************   Case 232   ***************
 | 
						|
 | 
						|
SQL: select sum(c1) as c from t1 union select sum(c1) as c from t1; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                   |NAME        |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |TEMP TABLE TRANSFORMATION  |            |2        |406 |
 | 
						|
|1 | TEMP TABLE INSERT         |TEMP1       |1        |405 |
 | 
						|
|2 |  SCALAR GROUP BY          |            |1        |405 |
 | 
						|
|3 |   PX COORDINATOR          |            |1        |405 |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000    |1        |405 |
 | 
						|
|5 |     MERGE GROUP BY        |            |1        |405 |
 | 
						|
|6 |      PX PARTITION ITERATOR|            |500      |387 |
 | 
						|
|7 |       TABLE SCAN          |t1          |500      |387 |
 | 
						|
|8 | MERGE UNION DISTINCT      |            |2        |1   |
 | 
						|
|9 |  TEMP TABLE ACCESS        |VIEW1(TEMP1)|1        |1   |
 | 
						|
|10|  TEMP TABLE ACCESS        |VIEW2(TEMP1)|1        |1   |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])]), filter(nil)
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))])
 | 
						|
  3 - output([T_FUN_SUM(t1.c1)]), filter(nil)
 | 
						|
  4 - output([T_FUN_SUM(t1.c1)]), filter(nil), dop=1
 | 
						|
  5 - output([T_FUN_SUM(t1.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_SUM(t1.c1)])
 | 
						|
  6 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([UNION([1])]), filter(nil)
 | 
						|
  9 - output([VIEW1.T_FUN_SUM(t1.c1)]), filter(nil), 
 | 
						|
      access([VIEW1.T_FUN_SUM(t1.c1)])
 | 
						|
  10 - output([VIEW2.T_FUN_SUM(t1.c1)]), filter(nil), 
 | 
						|
      access([VIEW2.T_FUN_SUM(t1.c1)])
 | 
						|
 | 
						|
*************** Case 232(end)  ************** 
 | 
						|
 | 
						|
***************   Case 233   ***************
 | 
						|
 | 
						|
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 |TEMP TABLE TRANSFORMATION  |            |1        |406 |
 | 
						|
|1 | TEMP TABLE INSERT         |TEMP1       |1        |405 |
 | 
						|
|2 |  SCALAR GROUP BY          |            |1        |405 |
 | 
						|
|3 |   PX COORDINATOR          |            |1        |405 |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000    |1        |405 |
 | 
						|
|5 |     MERGE GROUP BY        |            |1        |405 |
 | 
						|
|6 |      PX PARTITION ITERATOR|            |500      |387 |
 | 
						|
|7 |       TABLE SCAN          |t1          |500      |387 |
 | 
						|
|8 | SCALAR GROUP BY           |            |1        |1   |
 | 
						|
|9 |  SUBPLAN SCAN             |a           |2        |1   |
 | 
						|
|10|   MERGE UNION DISTINCT    |            |2        |1   |
 | 
						|
|11|    TEMP TABLE ACCESS      |VIEW1(TEMP1)|1        |1   |
 | 
						|
|12|    TEMP TABLE ACCESS      |VIEW2(TEMP1)|1        |1   |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_SUM(a.c)]), filter(nil)
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_SUM(T_FUN_SUM(t1.c1))])
 | 
						|
  3 - output([T_FUN_SUM(t1.c1)]), filter(nil)
 | 
						|
  4 - output([T_FUN_SUM(t1.c1)]), filter(nil), dop=1
 | 
						|
  5 - output([T_FUN_SUM(t1.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_SUM(t1.c1)])
 | 
						|
  6 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([T_FUN_SUM(a.c)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_SUM(a.c)])
 | 
						|
  9 - output([a.c]), filter(nil), 
 | 
						|
      access([a.c])
 | 
						|
  10 - output([UNION([1])]), filter(nil)
 | 
						|
  11 - output([VIEW1.T_FUN_SUM(t1.c1)]), filter(nil), 
 | 
						|
      access([VIEW1.T_FUN_SUM(t1.c1)])
 | 
						|
  12 - output([VIEW2.T_FUN_SUM(t1.c1)]), filter(nil), 
 | 
						|
      access([VIEW2.T_FUN_SUM(t1.c1)])
 | 
						|
 | 
						|
*************** Case 233(end)  ************** 
 | 
						|
 | 
						|
***************   Case 234   ***************
 | 
						|
 | 
						|
SQL: select * from t4 where c1; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |50       |80  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 234(end)  ************** 
 | 
						|
 | 
						|
***************   Case 235   ***************
 | 
						|
 | 
						|
SQL: select/*+index(t4 primary)*/ * from t4 where c1; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |50       |80  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 235(end)  ************** 
 | 
						|
 | 
						|
***************   Case 236   ***************
 | 
						|
 | 
						|
SQL: select * from t4, t4 t where t4.c1; 
 | 
						|
 | 
						|
===================================================
 | 
						|
|ID|OPERATOR                  |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|    |5000     |1449|
 | 
						|
|1 | TABLE SCAN               |t   |100      |78  |
 | 
						|
|2 | MATERIAL                 |    |50       |81  |
 | 
						|
|3 |  TABLE SCAN              |t4  |50       |80  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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 236(end)  ************** 
 | 
						|
 | 
						|
***************   Case 237   ***************
 | 
						|
 | 
						|
SQL: select/*+index(t4 primary)*/ * from t4, t4 t where t4.c1; 
 | 
						|
 | 
						|
===================================================
 | 
						|
|ID|OPERATOR                  |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|    |5000     |1449|
 | 
						|
|1 | TABLE SCAN               |t   |100      |78  |
 | 
						|
|2 | MATERIAL                 |    |50       |81  |
 | 
						|
|3 |  TABLE SCAN              |t4  |50       |80  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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 237(end)  ************** 
 | 
						|
 | 
						|
***************   Case 238   ***************
 | 
						|
 | 
						|
SQL: select * from t4 left join t4 a on t4.c1; 
 | 
						|
 | 
						|
===============================================
 | 
						|
|ID|OPERATOR              |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------------------
 | 
						|
|0 |NESTED-LOOP OUTER JOIN|    |5000     |1974|
 | 
						|
|1 | TABLE SCAN           |t4  |100      |78  |
 | 
						|
|2 | MATERIAL             |    |100      |79  |
 | 
						|
|3 |  TABLE SCAN          |a   |100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [a.c1], [a.c2], [a.c3]), filter(nil), 
 | 
						|
      conds([BOOL(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 238(end)  ************** 
 | 
						|
 | 
						|
***************   Case 239   ***************
 | 
						|
 | 
						|
SQL: select t1.c2  from t1,t2 where t2.c1 in(t1.c1); 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |300      |980 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |941 |
 | 
						|
|2 |  HASH JOIN                  |        |300      |859 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|6 |      TABLE SCAN             |t2      |300      |233 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|8 |    TABLE SCAN               |t1      |500      |387 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t2.c1 = t1.c1]), other_conds(nil)
 | 
						|
  3 - output([t2.c1]), filter(nil)
 | 
						|
  4 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 239(end)  ************** 
 | 
						|
 | 
						|
***************   Case 240   ***************
 | 
						|
 | 
						|
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                  |        |60       |1568|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10001|60       |1547|
 | 
						|
|2 |  NESTED-LOOP JOIN              |        |60       |1500|
 | 
						|
|3 |   EXCHANGE IN DISTR            |        |100      |118 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (BC2HOST)|:EX10000|100      |105 |
 | 
						|
|5 |     TABLE SCAN                 |t4      |100      |78  |
 | 
						|
|6 |   PX PARTITION ITERATOR        |        |1        |12  |
 | 
						|
|7 |    TABLE GET                   |t3      |1        |12  |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t3.c1, t3.c2, t3.c3, t4.c1, t4.c2, t4.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t3.c1, t3.c2, t3.c3, t4.c1, t4.c2, t4.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t4.c1], [t4.c2], [t4.c3], [t3.c1], [t3.c2], [t3.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.
 | 
						|
  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([? IN (t3.c1, t3.c1)], [t3.c1 > ?])
 | 
						|
 | 
						|
*************** Case 240(end)  ************** 
 | 
						|
 | 
						|
***************   Case 241   ***************
 | 
						|
 | 
						|
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      |980 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |941 |
 | 
						|
|2 |  HASH JOIN                  |        |300      |859 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|6 |      TABLE SCAN             |t2      |300      |233 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|8 |    TABLE SCAN               |t1      |500      |387 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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([t2.c1]), filter(nil)
 | 
						|
  4 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 241(end)  ************** 
 | 
						|
 | 
						|
***************   Case 242   ***************
 | 
						|
 | 
						|
SQL: select /*+use_merge(t10,t11)*/* from t10, t11 where t10.c2=t11.c2; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |325      |910 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|325      |831 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |325      |660 |
 | 
						|
|3 |   MERGE JOIN          |        |325      |660 |
 | 
						|
|4 |    SORT               |        |200      |283 |
 | 
						|
|5 |     TABLE SCAN        |t10     |200      |155 |
 | 
						|
|6 |    SORT               |        |200      |283 |
 | 
						|
|7 |     TABLE SCAN        |t11     |200      |155 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t10.c1, t10.c2, t10.c3, t11.c1, t11.c2, t11.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t10.c1, t10.c2, t10.c3, t11.c1, t11.c2, t11.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t10.c2], [t11.c2], [t10.c1], [t10.c3], [t11.c1], [t11.c3]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  3 - output([t10.c2], [t11.c2], [t10.c1], [t10.c3], [t11.c1], [t11.c3]), filter(nil), 
 | 
						|
      equal_conds([t10.c2 = t11.c2]), other_conds(nil)
 | 
						|
  4 - output([t10.c2], [t10.c1], [t10.c3]), filter(nil), sort_keys([t10.c2, ASC])
 | 
						|
  5 - output([t10.c1], [t10.c2], [t10.c3]), filter(nil), 
 | 
						|
      access([t10.c1], [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
 | 
						|
  6 - output([t11.c2], [t11.c1], [t11.c3]), filter(nil), sort_keys([t11.c2, ASC])
 | 
						|
  7 - output([t11.c1], [t11.c2], [t11.c3]), filter(nil), 
 | 
						|
      access([t11.c1], [t11.c2], [t11.c3]), partitions(p[0-1]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t11.c1], [t11.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 242(end)  ************** 
 | 
						|
 | 
						|
***************   Case 243   ***************
 | 
						|
 | 
						|
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                |        |476      |1448|
 | 
						|
|1 | EXCHANGE OUT DISTR           |:EX10003|476      |1421|
 | 
						|
|2 |  HASH RIGHT ANTI JOIN        |        |476      |1373|
 | 
						|
|3 |   EXCHANGE IN DISTR          |        |25       |752 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY) |:EX10002|25       |750 |
 | 
						|
|5 |     SUBPLAN SCAN             |VIEW2   |25       |748 |
 | 
						|
|6 |      HASH RIGHT ANTI JOIN NA |        |25       |747 |
 | 
						|
|7 |       EXCHANGE IN DISTR      |        |300      |280 |
 | 
						|
|8 |        EXCHANGE OUT DISTR    |:EX10000|300      |263 |
 | 
						|
|9 |         PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|10|          TABLE SCAN          |t2      |300      |233 |
 | 
						|
|11|       EXCHANGE IN DISTR      |        |300      |317 |
 | 
						|
|12|        EXCHANGE OUT DISTR    |:EX10001|300      |289 |
 | 
						|
|13|         PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|14|          TABLE SCAN          |t2      |300      |233 |
 | 
						|
|15|   PX PARTITION ITERATOR      |        |500      |387 |
 | 
						|
|16|    TABLE SCAN                |t1      |500      |387 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = VIEW2.c1]), other_conds(nil)
 | 
						|
  3 - output([VIEW2.c1]), filter(nil)
 | 
						|
  4 - (#keys=1, [VIEW2.c1]), output([VIEW2.c1]), filter(nil), is_single, dop=1
 | 
						|
  5 - output([VIEW2.c1]), filter(nil), 
 | 
						|
      access([VIEW2.c1])
 | 
						|
  6 - output([t2.c1]), filter(nil), 
 | 
						|
      equal_conds([t2.c2 = t2.c2]), other_conds(nil)
 | 
						|
  7 - output([t2.c2]), filter(nil)
 | 
						|
  8 - output([t2.c2]), filter(nil), dop=1
 | 
						|
  9 - output([t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  11 - output([t2.c1], [t2.c2]), filter(nil)
 | 
						|
  12 - output([t2.c1], [t2.c2]), filter(nil), dop=1
 | 
						|
  13 - output([t2.c1], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  15 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 243(end)  ************** 
 | 
						|
 | 
						|
***************   Case 244   ***************
 | 
						|
 | 
						|
SQL: select distinct c1 from t1 order by c2; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                  |NAME         |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR MERGE SORT |             |500      |631 |
 | 
						|
|1 | EXCHANGE OUT DISTR       |:EX10000     |500      |584 |
 | 
						|
|2 |  SORT                    |             |500      |490 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |             |500      |387 |
 | 
						|
|4 |    TABLE SCAN            |t1(idx_t1_c2)|500      |387 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), sort_keys([t1.c2, ASC])
 | 
						|
  1 - output([t1.c2], [INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c2], [t1.c1]), filter(nil), sort_keys([t1.c2, ASC]), local merge sort
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 244(end)  ************** 
 | 
						|
 | 
						|
***************   Case 245   ***************
 | 
						|
 | 
						|
SQL: SELECT c1, c2  FROM t1 WHERE c2 IN (ROUND(-1), 0, '5', '1'); 
 | 
						|
 | 
						|
=========================================================
 | 
						|
|ID|OPERATOR               |NAME         |EST. ROWS|COST|
 | 
						|
---------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |             |18       |233 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000     |18       |231 |
 | 
						|
|2 |  PX PARTITION ITERATOR|             |18       |228 |
 | 
						|
|3 |   TABLE SCAN          |t1(idx_t1_c2)|18       |228 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 (?, ?) OR cast(t1.c2, DECIMAL(11, 0)) IN (?, ?)])
 | 
						|
 | 
						|
*************** Case 245(end)  ************** 
 | 
						|
 | 
						|
***************   Case 246   ***************
 | 
						|
 | 
						|
SQL: select count(*) from (select count(*) as a  from t4) t ; 
 | 
						|
 | 
						|
==========================================
 | 
						|
|ID|OPERATOR         |NAME|EST. ROWS|COST|
 | 
						|
------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY  |    |1        |81  |
 | 
						|
|1 | SUBPLAN SCAN    |t   |1        |81  |
 | 
						|
|2 |  SCALAR GROUP BY|    |1        |81  |
 | 
						|
|3 |   TABLE SCAN    |t4  |100      |78  |
 | 
						|
==========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(*)])
 | 
						|
  1 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  2 - output([T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(*)])
 | 
						|
  3 - output(nil), 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 246(end)  ************** 
 | 
						|
 | 
						|
***************   Case 247   ***************
 | 
						|
 | 
						|
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        |92  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |2        |92  |
 | 
						|
|2 |  UNION ALL         |    |2        |91  |
 | 
						|
|3 |   TABLE GET        |t1  |1        |46  |
 | 
						|
|4 |   TABLE GET        |t1  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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.c2]), filter(nil), 
 | 
						|
      access([t1.c2]), partitions(p2), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range[2 ; 2], 
 | 
						|
      range_cond([t1.c1 = ?])
 | 
						|
  4 - output([?], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c2]), partitions(p2), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range[2 ; 2], 
 | 
						|
      range_cond([t1.c1 = ?])
 | 
						|
 | 
						|
*************** Case 247(end)  ************** 
 | 
						|
 | 
						|
***************   Case 248   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |X   |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 248(end)  ************** 
 | 
						|
 | 
						|
***************   Case 249   ***************
 | 
						|
 | 
						|
SQL: select distinct c2, c1 from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2, t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c2, t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 249(end)  ************** 
 | 
						|
 | 
						|
***************   Case 250   ***************
 | 
						|
 | 
						|
SQL: select (select c1 from t7),c2 from t8; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |157 |
 | 
						|
|1 | TABLE SCAN   |t8  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 250(end)  ************** 
 | 
						|
 | 
						|
***************   Case 251   ***************
 | 
						|
 | 
						|
SQL: select (select c1 from t7 where c2=t8.c2), c2 from t8; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |8085|
 | 
						|
|1 | TABLE SCAN   |t8  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t7  |9        |80  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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.c1], [t7.c2]), partitions(p0), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([t7.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 251(end)  ************** 
 | 
						|
 | 
						|
***************   Case 252   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 group by (select c1 from t8), c2; 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |HASH GROUP BY  |    |10       |183 |
 | 
						|
|1 | SUBPLAN FILTER|    |100      |157 |
 | 
						|
|2 |  TABLE SCAN   |t7  |100      |78  |
 | 
						|
|3 |  TABLE SCAN   |t8  |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), 
 | 
						|
      group([t7.c2]), agg_func(nil)
 | 
						|
  1 - output([t7.c2], [t7.c1]), 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 252(end)  ************** 
 | 
						|
 | 
						|
***************   Case 253   ***************
 | 
						|
 | 
						|
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  |    |10       |8112|
 | 
						|
|1 | SUBPLAN FILTER|    |100      |8085|
 | 
						|
|2 |  TABLE SCAN   |t7  |100      |78  |
 | 
						|
|3 |  TABLE SCAN   |t8  |9        |80  |
 | 
						|
========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), 
 | 
						|
      group([subquery(1)], [t7.c2]), agg_func(nil)
 | 
						|
  1 - output([subquery(1)], [t7.c2], [t7.c1]), 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.c1], [t8.c2]), partitions(p0), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([t8.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 253(end)  ************** 
 | 
						|
 | 
						|
***************   Case 254   ***************
 | 
						|
 | 
						|
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|    |1        |84  |
 | 
						|
|1 | TABLE SCAN   |t4  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 254(end)  ************** 
 | 
						|
 | 
						|
***************   Case 255   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 order by (select c1 from t8), c2; 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |SORT           |    |100      |213 |
 | 
						|
|1 | SUBPLAN FILTER|    |100      |157 |
 | 
						|
|2 |  TABLE SCAN   |t7  |100      |78  |
 | 
						|
|3 |  TABLE SCAN   |t8  |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, ASC])
 | 
						|
  1 - output([t7.c2], [t7.c1]), 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 order by (select c1 from t8 where c2=t7.c2),c2; 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |SORT           |    |100      |8142|
 | 
						|
|1 | SUBPLAN FILTER|    |100      |8085|
 | 
						|
|2 |  TABLE SCAN   |t7  |100      |78  |
 | 
						|
|3 |  TABLE SCAN   |t8  |9        |80  |
 | 
						|
========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), sort_keys([subquery(1), ASC], [t7.c2, ASC])
 | 
						|
  1 - output([subquery(1)], [t7.c2], [t7.c1]), 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.c1], [t8.c2]), 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 (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 257(end)  ************** 
 | 
						|
 | 
						|
***************   Case 258   ***************
 | 
						|
 | 
						|
SQL: select count(1) from t1; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |1        |405 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |405 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |405 |
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |405 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1      |500      |387 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - output(nil), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 258(end)  ************** 
 | 
						|
 | 
						|
***************   Case 259   ***************
 | 
						|
 | 
						|
SQL: select (select 1); 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |EXPRESSION|    |1        |1   |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil)
 | 
						|
      values({?})
 | 
						|
 | 
						|
*************** Case 259(end)  ************** 
 | 
						|
 | 
						|
***************   Case 260   ***************
 | 
						|
 | 
						|
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 260(end)  ************** 
 | 
						|
 | 
						|
***************   Case 261   ***************
 | 
						|
 | 
						|
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 261(end)  ************** 
 | 
						|
 | 
						|
***************   Case 262   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t1 t; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST |
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |250000   |13949|
 | 
						|
|1 | PX COORDINATOR           |        |500      |528  |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|500      |481  |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |500      |387  |
 | 
						|
|4 |    TABLE SCAN            |t1      |500      |387  |
 | 
						|
|5 | MATERIAL                 |        |500      |531  |
 | 
						|
|6 |  PX COORDINATOR          |        |500      |528  |
 | 
						|
|7 |   EXCHANGE OUT DISTR     |:EX20000|500      |481  |
 | 
						|
|8 |    PX PARTITION ITERATOR |        |500      |387  |
 | 
						|
|9 |     TABLE SCAN           |t       |500      |387  |
 | 
						|
========================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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.
 | 
						|
  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 262(end)  ************** 
 | 
						|
 | 
						|
***************   Case 263   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t1 t where t1.c1<t.c1; 
 | 
						|
 | 
						|
==============================================================
 | 
						|
|ID|OPERATOR                        |NAME    |EST. ROWS|COST |
 | 
						|
--------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                  |        |83334    |80751|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10001|83334    |66686|
 | 
						|
|2 |  NESTED-LOOP JOIN              |        |83334    |36843|
 | 
						|
|3 |   EXCHANGE IN DISTR            |        |500      |949  |
 | 
						|
|4 |    EXCHANGE OUT DISTR (BC2HOST)|:EX10000|500      |763  |
 | 
						|
|5 |     PX PARTITION ITERATOR      |        |500      |387  |
 | 
						|
|6 |      TABLE SCAN                |t1      |500      |387  |
 | 
						|
|7 |   PX PARTITION ITERATOR        |        |167      |32   |
 | 
						|
|8 |    TABLE SCAN                  |t       |167      |32   |
 | 
						|
==============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t.c1, t.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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.
 | 
						|
  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 263(end)  ************** 
 | 
						|
 | 
						|
***************   Case 264   ***************
 | 
						|
 | 
						|
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      |210 |
 | 
						|
|1 | MERGE UNION DISTINCT|    |200      |161 |
 | 
						|
|2 |  TABLE SCAN         |t4  |100      |78  |
 | 
						|
|3 |  TABLE SCAN         |t4  |100      |78  |
 | 
						|
|4 | TABLE SCAN          |t4  |1        |46  |
 | 
						|
==============================================
 | 
						|
 | 
						|
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 264(end)  ************** 
 | 
						|
 | 
						|
***************   Case 265   ***************
 | 
						|
 | 
						|
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(nil)
 | 
						|
      values({?})
 | 
						|
 | 
						|
*************** Case 265(end)  ************** 
 | 
						|
 | 
						|
***************   Case 266   ***************
 | 
						|
 | 
						|
SQL: select count(c1) + 1 from t1; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |1        |405 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |405 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |405 |
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |405 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1      |500      |387 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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 266(end)  ************** 
 | 
						|
 | 
						|
***************   Case 267   ***************
 | 
						|
 | 
						|
SQL: select count(c1) + 1 + 1 from t1; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |1        |405 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |405 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |405 |
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |405 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1      |500      |387 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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 267(end)  ************** 
 | 
						|
 | 
						|
***************   Case 268   ***************
 | 
						|
 | 
						|
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        |576 |
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN     |           |500      |456 |
 | 
						|
|2 |  SUBPLAN SCAN                  |VIEW1      |1        |228 |
 | 
						|
|3 |   SCALAR GROUP BY              |           |1        |228 |
 | 
						|
|4 |    SUBPLAN SCAN                |VIEW3      |1        |228 |
 | 
						|
|5 |     LIMIT                      |           |1        |228 |
 | 
						|
|6 |      PX COORDINATOR MERGE SORT |           |1        |228 |
 | 
						|
|7 |       EXCHANGE OUT DISTR       |:EX10000   |1        |228 |
 | 
						|
|8 |        TOP-N SORT              |           |1        |227 |
 | 
						|
|9 |         PX PARTITION ITERATOR  |           |1        |227 |
 | 
						|
|10|          TABLE SCAN            |t1(Reverse)|1        |227 |
 | 
						|
|11|  PX COORDINATOR                |           |500      |466 |
 | 
						|
|12|   EXCHANGE OUT DISTR           |:EX20000   |500      |439 |
 | 
						|
|13|    PX PARTITION ITERATOR       |           |500      |387 |
 | 
						|
|14|     TABLE SCAN                 |t1         |500      |387 |
 | 
						|
================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([VIEW1.max(t1.c1)]), filter(nil), 
 | 
						|
      group([VIEW1.max(t1.c1)]), agg_func(nil)
 | 
						|
  1 - output([VIEW1.max(t1.c1)]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  2 - output([VIEW1.max(t1.c1)]), filter(nil), 
 | 
						|
      access([VIEW1.max(t1.c1)])
 | 
						|
  3 - output([T_FUN_MAX(VIEW3.t1.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(VIEW3.t1.c1)])
 | 
						|
  4 - output([VIEW3.t1.c1]), filter(nil), 
 | 
						|
      access([VIEW3.t1.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), sort_keys([t1.c1, DESC]), topn(1), local merge sort
 | 
						|
  9 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  10 - output([t1.c1]), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4]), 
 | 
						|
      limit(1), offset(nil), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
  11 - output(nil), filter(nil)
 | 
						|
  12 - output(nil), filter(nil), dop=1
 | 
						|
  13 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  14 - output(nil), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 268(end)  ************** 
 | 
						|
 | 
						|
***************   Case 269   ***************
 | 
						|
 | 
						|
SQL: ( SELECT * FROM t12 WHERE 69 > ROUND ( 3075 ) ) UNION ALL ( SELECT * FROM t12  ) UNION ( SELECT * FROM t13) ; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |MERGE UNION DISTINCT|    |200      |220 |
 | 
						|
|1 | TABLE SCAN         |t13 |100      |78  |
 | 
						|
|2 | SORT               |    |100      |136 |
 | 
						|
|3 |  TABLE SCAN        |t12 |100      |78  |
 | 
						|
=============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil)
 | 
						|
  1 - output([t13.b], [cast(t13.c, CHAR(20))], [t13.a]), filter(nil), 
 | 
						|
      access([t13.a], [t13.b], [t13.c]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t13.a]), range(MIN ; MAX)always true
 | 
						|
  2 - output([t12.a], [t12.b], [t12.c]), filter(nil), sort_keys([t12.c, ASC], [t12.a, ASC])
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 269(end)  ************** 
 | 
						|
 | 
						|
***************   Case 270   ***************
 | 
						|
 | 
						|
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 |NESTED-LOOP OUTER JOIN  |        |2        |100 |
 | 
						|
|1 | PX COORDINATOR         |        |2        |92  |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000|2        |91  |
 | 
						|
|3 |   PX PARTITION ITERATOR|        |2        |91  |
 | 
						|
|4 |    TABLE GET           |t1      |2        |91  |
 | 
						|
|5 | TABLE GET              |t1      |1        |4   |
 | 
						|
=====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [nvl(cast(t1.c2, BIGINT(1, 0)), ?)]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t1.c1]), batch_join=true
 | 
						|
  1 - output([t1.c1]), filter(nil)
 | 
						|
  2 - output([t1.c1]), filter(nil), dop=1
 | 
						|
  3 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  4 - 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 = ?])
 | 
						|
  5 - output([t1.c2]), filter(nil), 
 | 
						|
      access([t1.c2]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX), 
 | 
						|
      range_cond([t1.c1 = ?], [? = t1.c1])
 | 
						|
 | 
						|
*************** Case 270(end)  ************** 
 | 
						|
 | 
						|
***************   Case 271   ***************
 | 
						|
 | 
						|
SQL: (select * from t12 where a != 1 limit 7 ) union (select * from t13) union ( select * from t13); 
 | 
						|
 | 
						|
======================================
 | 
						|
|ID|OPERATOR     |NAME|EST. ROWS|COST|
 | 
						|
--------------------------------------
 | 
						|
|0 |HASH DISTINCT|    |1        |260 |
 | 
						|
|1 | UNION ALL   |    |207      |204 |
 | 
						|
|2 |  TABLE SCAN |t12 |7        |46  |
 | 
						|
|3 |  TABLE SCAN |t13 |100      |78  |
 | 
						|
|4 |  TABLE SCAN |t13 |100      |78  |
 | 
						|
======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil), 
 | 
						|
      distinct([UNION([1])], [UNION([2])], [UNION([3])])
 | 
						|
  1 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil)
 | 
						|
  2 - output([cast(t12.a, CHAR(20))], [t12.b], [t12.c]), 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 != ?])
 | 
						|
  3 - output([t13.b], [cast(t13.c, CHAR(20))], [t13.a]), filter(nil), 
 | 
						|
      access([t13.a], [t13.b], [t13.c]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t13.a]), range(MIN ; MAX)always true
 | 
						|
  4 - output([t13.b], [cast(t13.c, CHAR(20))], [t13.a]), filter(nil), 
 | 
						|
      access([t13.a], [t13.b], [t13.c]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t13.a]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 271(end)  ************** 
 | 
						|
 | 
						|
***************   Case 272   ***************
 | 
						|
 | 
						|
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 |1553486|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|        |60000    |5934   |
 | 
						|
|2 |  PX COORDINATOR           |        |200      |310    |
 | 
						|
|3 |   EXCHANGE OUT DISTR      |:EX10000|200      |261    |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |200      |155    |
 | 
						|
|5 |     TABLE SCAN            |t3      |200      |155    |
 | 
						|
|6 |  MATERIAL                 |        |300      |471    |
 | 
						|
|7 |   PX COORDINATOR          |        |300      |464    |
 | 
						|
|8 |    EXCHANGE OUT DISTR     |:EX20000|300      |391    |
 | 
						|
|9 |     PX PARTITION ITERATOR |        |300      |233    |
 | 
						|
|10|      TABLE SCAN           |t2      |300      |233    |
 | 
						|
|11| MATERIAL                  |        |500      |531    |
 | 
						|
|12|  PX COORDINATOR           |        |500      |528    |
 | 
						|
|13|   EXCHANGE OUT DISTR      |:EX30000|500      |481    |
 | 
						|
|14|    PX PARTITION ITERATOR  |        |500      |387    |
 | 
						|
|15|     TABLE SCAN            |t1      |500      |387    |
 | 
						|
===========================================================
 | 
						|
 | 
						|
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([t3.c1], [t3.c2], [t3.c3]), filter(nil)
 | 
						|
  3 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
 | 
						|
  4 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
 | 
						|
  9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([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.
 | 
						|
  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 272(end)  ************** 
 | 
						|
 | 
						|
***************   Case 273   ***************
 | 
						|
 | 
						|
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         |        |325      |2197|
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|325      |2118|
 | 
						|
|2 |  PX PARTITION ITERATOR|        |325      |1947|
 | 
						|
|3 |   NESTED-LOOP JOIN    |        |325      |1947|
 | 
						|
|4 |    TABLE SCAN         |t10     |200      |155 |
 | 
						|
|5 |    MATERIAL           |        |200      |157 |
 | 
						|
|6 |     TABLE SCAN        |t11     |200      |155 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t10.c1, t10.c2, t10.c3, t11.c1, t11.c2, t11.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t10.c1, t10.c2, t10.c3, t11.c1, t11.c2, t11.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t10.c2], [t11.c2], [t10.c1], [t10.c3], [t11.c1], [t11.c3]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  3 - output([t10.c2], [t11.c2], [t10.c1], [t10.c3], [t11.c1], [t11.c3]), filter(nil), 
 | 
						|
      conds([t10.c2 = t11.c2]), nl_params_(nil), batch_join=false
 | 
						|
  4 - output([t10.c1], [t10.c2], [t10.c3]), filter(nil), 
 | 
						|
      access([t10.c1], [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
 | 
						|
  5 - output([t11.c2], [t11.c1], [t11.c3]), filter(nil)
 | 
						|
  6 - output([t11.c1], [t11.c2], [t11.c3]), filter(nil), 
 | 
						|
      access([t11.c1], [t11.c2], [t11.c3]), partitions(p[0-1]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t11.c1], [t11.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 273(end)  ************** 
 | 
						|
 | 
						|
***************   Case 274   ***************
 | 
						|
 | 
						|
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       |15789|
 | 
						|
|1 | TABLE SCAN    |t4  |100      |78   |
 | 
						|
|2 | SUBPLAN FILTER|    |34       |157  |
 | 
						|
|3 |  TABLE SCAN   |t7  |34       |79   |
 | 
						|
|4 |  TABLE SCAN   |t8  |100      |78   |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 274(end)  ************** 
 | 
						|
 | 
						|
***************   Case 275   ***************
 | 
						|
 | 
						|
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 |     |10       |208 |
 | 
						|
|1 | TABLE SCAN     |t4   |100      |78  |
 | 
						|
|2 | SUBPLAN SCAN   |VIEW1|34       |125 |
 | 
						|
|3 |  SUBPLAN FILTER|     |34       |124 |
 | 
						|
|4 |   TABLE SCAN   |t7   |34       |46  |
 | 
						|
|5 |   TABLE SCAN   |t8   |100      |78  |
 | 
						|
==========================================
 | 
						|
 | 
						|
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 275(end)  ************** 
 | 
						|
 | 
						|
***************   Case 276   ***************
 | 
						|
 | 
						|
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       |12526|
 | 
						|
|1 | TABLE SCAN    |t4(idx_t4_c2)|100      |78   |
 | 
						|
|2 | SUBPLAN FILTER|             |34       |124  |
 | 
						|
|3 |  TABLE SCAN   |t7           |34       |46   |
 | 
						|
|4 |  TABLE SCAN   |t8           |100      |78   |
 | 
						|
==================================================
 | 
						|
 | 
						|
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 276(end)  ************** 
 | 
						|
 | 
						|
***************   Case 277   ***************
 | 
						|
 | 
						|
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       |15902|
 | 
						|
|1 | TABLE SCAN    |t4(idx_t4_c2)|100      |78   |
 | 
						|
|2 | SUBPLAN FILTER|             |100      |157  |
 | 
						|
|3 |  TABLE SCAN   |t7           |100      |78   |
 | 
						|
|4 |  TABLE SCAN   |t8           |100      |78   |
 | 
						|
==================================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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 277(end)  ************** 
 | 
						|
 | 
						|
***************   Case 278   ***************
 | 
						|
 | 
						|
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 |     |10       |243 |
 | 
						|
|1 | TABLE SCAN     |t4   |100      |78  |
 | 
						|
|2 | SUBPLAN SCAN   |VIEW1|100      |159 |
 | 
						|
|3 |  SUBPLAN FILTER|     |100      |157 |
 | 
						|
|4 |   TABLE SCAN   |t7   |100      |78  |
 | 
						|
|5 |   TABLE SCAN   |t8   |100      |78  |
 | 
						|
==========================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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 278(end)  ************** 
 | 
						|
 | 
						|
***************   Case 279   ***************
 | 
						|
 | 
						|
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|     |1        |167 |
 | 
						|
|1 | TABLE SCAN    |t7   |100      |78  |
 | 
						|
|2 | SUBPLAN SCAN  |VIEW1|100      |80  |
 | 
						|
|3 |  TABLE SCAN   |t8   |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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([0]), 
 | 
						|
      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 279(end)  ************** 
 | 
						|
 | 
						|
***************   Case 280   ***************
 | 
						|
 | 
						|
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       |15902|
 | 
						|
|1 | TABLE SCAN    |t4(idx_t4_c2)|100      |78   |
 | 
						|
|2 | SUBPLAN FILTER|             |100      |157  |
 | 
						|
|3 |  TABLE SCAN   |t7           |100      |78   |
 | 
						|
|4 |  TABLE SCAN   |t8           |100      |78   |
 | 
						|
==================================================
 | 
						|
 | 
						|
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(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([? > subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  3 - output([t7.c1]), filter(nil), startup_filter([?]), 
 | 
						|
      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 * 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|     |99       |132 |
 | 
						|
|1 | TABLE SCAN          |t7   |100      |78  |
 | 
						|
|2 | MATERIAL            |     |1        |46  |
 | 
						|
|3 |  SUBPLAN SCAN       |VIEW1|1        |46  |
 | 
						|
|4 |   TABLE SCAN        |t8   |1        |46  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      conds([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(nil), filter(nil)
 | 
						|
  3 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  4 - 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 > ?])
 | 
						|
 | 
						|
*************** Case 281(end)  ************** 
 | 
						|
 | 
						|
***************   Case 282   ***************
 | 
						|
 | 
						|
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        |153 |
 | 
						|
|1 | TABLE SCAN          |t7   |100      |78  |
 | 
						|
|2 | MATERIAL            |     |1        |46  |
 | 
						|
|3 |  SUBPLAN SCAN       |VIEW1|1        |46  |
 | 
						|
|4 |   TABLE SCAN        |t8   |1        |46  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      conds([t7.c1 = t7.c1 OR (T_OP_IS, t7.c1, 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(nil), filter(nil)
 | 
						|
  3 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  4 - output([1]), 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 > ?])
 | 
						|
 | 
						|
*************** Case 282(end)  ************** 
 | 
						|
 | 
						|
***************   Case 283   ***************
 | 
						|
 | 
						|
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       |1172|
 | 
						|
|1 | TABLE SCAN              |t7      |100      |78  |
 | 
						|
|2 | SUBPLAN FILTER          |        |100      |545 |
 | 
						|
|3 |  TABLE SCAN             |t8      |100      |78  |
 | 
						|
|4 |  PX COORDINATOR         |        |500      |466 |
 | 
						|
|5 |   EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|6 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|7 |     TABLE SCAN          |t1      |500      |387 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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(nil), 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.
 | 
						|
  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 283(end)  ************** 
 | 
						|
 | 
						|
***************   Case 284   ***************
 | 
						|
 | 
						|
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      |187 |
 | 
						|
|1 | TABLE SCAN|t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN|t8  |100      |78  |
 | 
						|
====================================
 | 
						|
 | 
						|
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 284(end)  ************** 
 | 
						|
 | 
						|
***************   Case 285   ***************
 | 
						|
 | 
						|
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 JOIN CARTESIAN|     |1        |92  |
 | 
						|
|1 | SUBPLAN SCAN             |VIEW1|1        |46  |
 | 
						|
|2 |  TABLE SCAN              |t8   |1        |46  |
 | 
						|
|3 | MATERIAL                 |     |1        |46  |
 | 
						|
|4 |  TABLE GET               |t7   |1        |46  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  2 - output([1]), 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)
 | 
						|
  4 - 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 = ?])
 | 
						|
 | 
						|
*************** Case 285(end)  ************** 
 | 
						|
 | 
						|
***************   Case 286   ***************
 | 
						|
 | 
						|
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 CARTESIAN|     |1        |92  |
 | 
						|
|1 | SUBPLAN SCAN             |VIEW1|1        |46  |
 | 
						|
|2 |  TABLE SCAN              |t8   |1        |46  |
 | 
						|
|3 | MATERIAL                 |     |1        |46  |
 | 
						|
|4 |  TABLE GET               |t7   |1        |46  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  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)
 | 
						|
  4 - 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 = ?])
 | 
						|
 | 
						|
*************** Case 286(end)  ************** 
 | 
						|
 | 
						|
***************   Case 287   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t1  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 287(end)  ************** 
 | 
						|
 | 
						|
***************   Case 288   ***************
 | 
						|
 | 
						|
SQL: select * from t1 partition(p1)  where c2 =1 or c2 = 2; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR            |NAME         |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |             |18       |51  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|             |18       |50  |
 | 
						|
|2 |  TABLE SCAN        |t1(idx_t1_c2)|18       |46  |
 | 
						|
======================================================
 | 
						|
 | 
						|
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 288(end)  ************** 
 | 
						|
 | 
						|
***************   Case 289   ***************
 | 
						|
 | 
						|
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  |    |2        |47  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |2        |46  |
 | 
						|
|2 |  TABLE SCAN        |t14 |2        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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.c1], [t14.c2], [t14.c3]), filter(nil), 
 | 
						|
      access([t14.c1], [t14.c2], [t14.c3]), 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 289(end)  ************** 
 | 
						|
 | 
						|
***************   Case 290   ***************
 | 
						|
 | 
						|
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  |    |2        |47  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |2        |46  |
 | 
						|
|2 |  TABLE SCAN        |t14 |2        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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.c1], [t14.c2], [t14.c3]), filter(nil), 
 | 
						|
      access([t14.c1], [t14.c2], [t14.c3]), 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 290(end)  ************** 
 | 
						|
 | 
						|
***************   Case 291   ***************
 | 
						|
 | 
						|
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        |141 |
 | 
						|
|1 | PX COORDINATOR           |        |1        |46  |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|1        |46  |
 | 
						|
|3 |   TABLE GET              |t1      |1        |46  |
 | 
						|
|4 | PX COORDINATOR           |        |1        |46  |
 | 
						|
|5 |  EXCHANGE OUT DISTR      |:EX20000|1        |46  |
 | 
						|
|6 |   TABLE GET              |t2      |1        |46  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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(nil), filter(nil)
 | 
						|
  5 - output(nil), filter(nil), is_single, dop=1
 | 
						|
  6 - output(nil), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p2), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t2.c1]), range[2 ; 2], 
 | 
						|
      range_cond([t2.c1 = ?])
 | 
						|
 | 
						|
*************** Case 291(end)  ************** 
 | 
						|
 | 
						|
***************   Case 292   ***************
 | 
						|
 | 
						|
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|        |23       |98  |
 | 
						|
|1 | PX COORDINATOR           |        |1        |46  |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|1        |46  |
 | 
						|
|3 |   TABLE GET              |t2      |1        |46  |
 | 
						|
|4 | PX COORDINATOR           |        |250      |439 |
 | 
						|
|5 |  EXCHANGE OUT DISTR      |:EX20000|250      |426 |
 | 
						|
|6 |   PX PARTITION ITERATOR  |        |250      |400 |
 | 
						|
|7 |    TABLE SCAN            |t1      |250      |400 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - output(nil), filter(nil), is_single, dop=1
 | 
						|
  3 - output(nil), 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.
 | 
						|
  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 292(end)  ************** 
 | 
						|
 | 
						|
***************   Case 293   ***************
 | 
						|
 | 
						|
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|        |45       |138 |
 | 
						|
|1 | PX COORDINATOR           |        |1        |46  |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|1        |46  |
 | 
						|
|3 |   TABLE GET              |t2      |1        |46  |
 | 
						|
|4 | PX COORDINATOR           |        |500      |466 |
 | 
						|
|5 |  EXCHANGE OUT DISTR      |:EX20000|500      |439 |
 | 
						|
|6 |   PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|7 |    TABLE SCAN            |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - output(nil), filter(nil), is_single, dop=1
 | 
						|
  3 - output(nil), 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.
 | 
						|
  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 293(end)  ************** 
 | 
						|
 | 
						|
***************   Case 294   ***************
 | 
						|
 | 
						|
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|        |23       |98  |
 | 
						|
|1 | PX COORDINATOR           |        |1        |46  |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|1        |46  |
 | 
						|
|3 |   TABLE GET              |t2      |1        |46  |
 | 
						|
|4 | PX COORDINATOR           |        |250      |439 |
 | 
						|
|5 |  EXCHANGE OUT DISTR      |:EX20000|250      |426 |
 | 
						|
|6 |   PX PARTITION ITERATOR  |        |250      |400 |
 | 
						|
|7 |    TABLE SCAN            |t1      |250      |400 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - output(nil), filter(nil), is_single, dop=1
 | 
						|
  3 - output(nil), 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.
 | 
						|
  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 294(end)  ************** 
 | 
						|
 | 
						|
***************   Case 295   ***************
 | 
						|
 | 
						|
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        |58  |
 | 
						|
|1 | PX COORDINATOR           |        |1        |46  |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|1        |46  |
 | 
						|
|3 |   TABLE GET              |t2      |1        |46  |
 | 
						|
|4 | PX COORDINATOR           |        |1        |400 |
 | 
						|
|5 |  EXCHANGE OUT DISTR      |:EX20000|1        |400 |
 | 
						|
|6 |   PX PARTITION ITERATOR  |        |1        |400 |
 | 
						|
|7 |    TABLE SCAN            |t1      |1        |400 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - output(nil), filter(nil), is_single, dop=1
 | 
						|
  3 - output(nil), 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.
 | 
						|
  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 distinct t1.c1, t1.c2 from t2 where t1.c1); 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN |        |1        |63  |
 | 
						|
|1 | PX COORDINATOR            |        |1        |46  |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000|1        |46  |
 | 
						|
|3 |   TABLE GET               |t1      |1        |46  |
 | 
						|
|4 | SUBPLAN SCAN              |VIEW1   |1        |137 |
 | 
						|
|5 |  LIMIT                    |        |1        |137 |
 | 
						|
|6 |   PX COORDINATOR          |        |1        |137 |
 | 
						|
|7 |    EXCHANGE OUT DISTR     |:EX20000|1        |137 |
 | 
						|
|8 |     LIMIT                 |        |1        |137 |
 | 
						|
|9 |      PX PARTITION ITERATOR|        |1        |137 |
 | 
						|
|10|       TABLE SCAN          |t2      |1        |137 |
 | 
						|
========================================================
 | 
						|
 | 
						|
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]), 
 | 
						|
      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])
 | 
						|
  4 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  5 - output([1]), filter(nil), limit(1), offset(nil)
 | 
						|
  6 - output(nil), filter(nil)
 | 
						|
  7 - output(nil), filter(nil), dop=1
 | 
						|
  8 - output(nil), filter(nil), limit(1), offset(nil)
 | 
						|
  9 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  10 - output(nil), 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 296(end)  ************** 
 | 
						|
 | 
						|
***************   Case 297   ***************
 | 
						|
 | 
						|
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 |        |125      |580 |
 | 
						|
|1 | SUBPLAN SCAN              |VIEW1   |1        |137 |
 | 
						|
|2 |  LIMIT                    |        |1        |137 |
 | 
						|
|3 |   PX COORDINATOR          |        |1        |137 |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000|1        |137 |
 | 
						|
|5 |     LIMIT                 |        |1        |137 |
 | 
						|
|6 |      PX PARTITION ITERATOR|        |1        |137 |
 | 
						|
|7 |       TABLE SCAN          |t2      |1        |137 |
 | 
						|
|8 | MATERIAL                  |        |125      |437 |
 | 
						|
|9 |  PX COORDINATOR           |        |125      |436 |
 | 
						|
|10|   EXCHANGE OUT DISTR      |:EX20000|125      |425 |
 | 
						|
|11|    PX PARTITION ITERATOR  |        |125      |401 |
 | 
						|
|12|     TABLE SCAN            |t1      |125      |401 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  2 - output([1]), filter(nil), limit(1), offset(nil)
 | 
						|
  3 - output(nil), filter(nil)
 | 
						|
  4 - output(nil), filter(nil), dop=1
 | 
						|
  5 - output(nil), filter(nil), limit(1), offset(nil)
 | 
						|
  6 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  7 - output(nil), 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
 | 
						|
  8 - output([t1.c2]), filter(nil)
 | 
						|
  9 - output([t1.c2]), filter(nil)
 | 
						|
  10 - output([t1.c2]), filter(nil), dop=1
 | 
						|
  11 - output([t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  12 - output([t1.c2]), filter([t1.c1], [t1.c2]), 
 | 
						|
      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
 | 
						|
 | 
						|
*************** Case 297(end)  ************** 
 | 
						|
 | 
						|
***************   Case 298   ***************
 | 
						|
 | 
						|
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        |92  |
 | 
						|
|1 | NESTED-LOOP JOIN|    |1        |85  |
 | 
						|
|2 |  TABLE SCAN     |t9  |1        |80  |
 | 
						|
|3 |  TABLE GET      |t7  |1        |5   |
 | 
						|
|4 | TABLE SCAN      |t4  |9        |5   |
 | 
						|
==========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t7.c1]), batch_join=true
 | 
						|
  1 - output([t7.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t9.c2]), batch_join=true
 | 
						|
  2 - 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
 | 
						|
  3 - 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])
 | 
						|
  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(MIN ; MAX), 
 | 
						|
      range_cond([t4.c1 = ?])
 | 
						|
 | 
						|
*************** Case 298(end)  ************** 
 | 
						|
 | 
						|
***************   Case 299   ***************
 | 
						|
 | 
						|
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|    |50       |138 |
 | 
						|
|1 | TABLE GET                |t8  |1        |46  |
 | 
						|
|2 | TABLE SCAN               |t7  |50       |80  |
 | 
						|
===================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output(nil), 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 299(end)  ************** 
 | 
						|
 | 
						|
***************   Case 300   ***************
 | 
						|
 | 
						|
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|     |1        |167 |
 | 
						|
|1 | TABLE SCAN    |t7   |100      |78  |
 | 
						|
|2 | SUBPLAN SCAN  |VIEW1|100      |80  |
 | 
						|
|3 |  TABLE SCAN   |t8   |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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([0]), 
 | 
						|
      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 300(end)  ************** 
 | 
						|
 | 
						|
***************   Case 301   ***************
 | 
						|
 | 
						|
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|    |91       |259 |
 | 
						|
|1 | MERGE JOIN   |    |91       |180 |
 | 
						|
|2 |  TABLE SCAN  |t4  |100      |78  |
 | 
						|
|3 |  TABLE SCAN  |t8  |100      |78  |
 | 
						|
|4 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1) + ? = ?]), init_plan_idxs_(nil)
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), startup_filter([?]), 
 | 
						|
      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 301(end)  ************** 
 | 
						|
 | 
						|
***************   Case 302   ***************
 | 
						|
 | 
						|
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|    |91       |259 |
 | 
						|
|1 | MERGE JOIN   |    |91       |180 |
 | 
						|
|2 |  TABLE SCAN  |t4  |100      |78  |
 | 
						|
|3 |  TABLE SCAN  |t8  |100      |78  |
 | 
						|
|4 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([? + subquery(1) + ? = ?]), init_plan_idxs_(nil)
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), startup_filter([?]), 
 | 
						|
      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 302(end)  ************** 
 | 
						|
 | 
						|
***************   Case 303   ***************
 | 
						|
 | 
						|
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       |580 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001     |95       |553 |
 | 
						|
|2 |  MERGE GROUP BY               |             |95       |496 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|             |100      |486 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |467 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |             |100      |427 |
 | 
						|
|6 |      MERGE GROUP BY           |             |100      |427 |
 | 
						|
|7 |       TABLE SCAN              |t1(idx_t1_c2)|500      |387 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(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([INTERNAL_FUNCTION(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), dop=1
 | 
						|
  2 - output([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([t1.c2], [T_FUN_SUM(t1.c1)], [T_FUN_SUM(t1.c2)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
 | 
						|
  4 - (#keys=1, [t1.c2]), output([t1.c2], [T_FUN_SUM(t1.c1)], [T_FUN_SUM(t1.c2)]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c2], [T_FUN_SUM(t1.c1)], [T_FUN_SUM(t1.c2)]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - output([t1.c2], [T_FUN_SUM(t1.c1)], [T_FUN_SUM(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 303(end)  ************** 
 | 
						|
 | 
						|
***************   Case 304   ***************
 | 
						|
 | 
						|
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        |489 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001     |5        |488 |
 | 
						|
|2 |  MERGE GROUP BY               |             |5        |485 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|             |100      |476 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |458 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |             |100      |420 |
 | 
						|
|6 |      MERGE GROUP BY           |             |100      |420 |
 | 
						|
|7 |       TABLE SCAN              |t1(idx_t1_c2)|428      |386 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_SUM(T_FUN_SUM(t1.c1)), t1.c2, T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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([t1.c2], [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([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.
 | 
						|
  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(1,MAX ; MAX,MAX), 
 | 
						|
      range_cond([t1.c2 > ?])
 | 
						|
 | 
						|
*************** Case 304(end)  ************** 
 | 
						|
 | 
						|
***************   Case 305   ***************
 | 
						|
 | 
						|
SQL: select distinct sum(c1) from t1 group by c2 having sum(c1) > 5; 
 | 
						|
 | 
						|
======================================================================
 | 
						|
|ID|OPERATOR                            |NAME         |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                      |             |95       |635 |
 | 
						|
|1 | EXCHANGE OUT DISTR                 |:EX10002     |95       |617 |
 | 
						|
|2 |  MERGE DISTINCT                    |             |95       |580 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR     |             |95       |574 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)       |:EX10001     |95       |557 |
 | 
						|
|5 |     MERGE DISTINCT                 |             |95       |519 |
 | 
						|
|6 |      SORT                          |             |95       |513 |
 | 
						|
|7 |       MERGE GROUP BY               |             |95       |469 |
 | 
						|
|8 |        EXCHANGE IN MERGE SORT DISTR|             |100      |462 |
 | 
						|
|9 |         EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |448 |
 | 
						|
|10|          PX PARTITION ITERATOR     |             |100      |418 |
 | 
						|
|11|           MERGE GROUP BY           |             |100      |418 |
 | 
						|
|12|            TABLE SCAN              |t1(idx_t1_c2)|500      |387 |
 | 
						|
======================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_SUM(T_FUN_SUM(t1.c1)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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), sort_keys([T_FUN_SUM(T_FUN_SUM(t1.c1)), ASC])
 | 
						|
  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(nil), 
 | 
						|
      distinct([T_FUN_SUM(T_FUN_SUM(t1.c1))])
 | 
						|
  6 - output([T_FUN_SUM(T_FUN_SUM(t1.c1))]), filter(nil), sort_keys([T_FUN_SUM(T_FUN_SUM(t1.c1)), ASC])
 | 
						|
  7 - 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))])
 | 
						|
  8 - output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
 | 
						|
  9 - (#keys=1, [t1.c2]), output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil), dop=1
 | 
						|
  10 - output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  11 - output([T_FUN_SUM(t1.c1)], [t1.c2]), filter(nil), 
 | 
						|
      group([t1.c2]), agg_func([T_FUN_SUM(t1.c1)])
 | 
						|
  12 - 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 305(end)  ************** 
 | 
						|
 | 
						|
***************   Case 306   ***************
 | 
						|
 | 
						|
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        |489 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001     |5        |488 |
 | 
						|
|2 |  MERGE GROUP BY               |             |5        |485 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|             |100      |476 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |458 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |             |100      |420 |
 | 
						|
|6 |      MERGE GROUP BY           |             |100      |420 |
 | 
						|
|7 |       TABLE SCAN              |t1(idx_t1_c2)|428      |386 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_SUM(T_FUN_SUM(t1.c1)), t1.c2, T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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([t1.c2], [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([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.
 | 
						|
  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(1,MAX ; MAX,MAX), 
 | 
						|
      range_cond([t1.c2 > ?])
 | 
						|
 | 
						|
*************** Case 306(end)  ************** 
 | 
						|
 | 
						|
***************   Case 307   ***************
 | 
						|
 | 
						|
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        |489 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001     |5        |488 |
 | 
						|
|2 |  MERGE GROUP BY               |             |5        |485 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|             |100      |476 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |458 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |             |100      |420 |
 | 
						|
|6 |      MERGE GROUP BY           |             |100      |420 |
 | 
						|
|7 |       TABLE SCAN              |t1(idx_t1_c2)|428      |386 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(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)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)), DECIMAL(20, 0)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)), DECIMAL(20, 0)))]), 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([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([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.
 | 
						|
  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(1,MAX ; MAX,MAX), 
 | 
						|
      range_cond([t1.c2 > ?])
 | 
						|
 | 
						|
*************** Case 307(end)  ************** 
 | 
						|
 | 
						|
***************   Case 308   ***************
 | 
						|
 | 
						|
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        |502 |
 | 
						|
|1 | EXCHANGE OUT DISTR                 |:EX10002     |5        |500 |
 | 
						|
|2 |  MERGE DISTINCT                    |             |5        |498 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR     |             |5        |498 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)       |:EX10001     |5        |496 |
 | 
						|
|5 |     MERGE DISTINCT                 |             |5        |494 |
 | 
						|
|6 |      SORT                          |             |5        |493 |
 | 
						|
|7 |       MERGE GROUP BY               |             |5        |492 |
 | 
						|
|8 |        EXCHANGE IN MERGE SORT DISTR|             |100      |483 |
 | 
						|
|9 |         EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |465 |
 | 
						|
|10|          PX PARTITION ITERATOR     |             |100      |427 |
 | 
						|
|11|           MERGE GROUP BY           |             |100      |427 |
 | 
						|
|12|            TABLE SCAN              |t1(idx_t1_c2)|500      |387 |
 | 
						|
======================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?, T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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), sort_keys([T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?, ASC], [T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?, ASC])
 | 
						|
  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(nil), 
 | 
						|
      distinct([T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?])
 | 
						|
  6 - output([T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?]), filter(nil), sort_keys([T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?, ASC], [T_FUN_SUM(T_FUN_SUM(t1.c1)) + ?, ASC])
 | 
						|
  7 - output([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))])
 | 
						|
  8 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
 | 
						|
  9 - (#keys=1, [t1.c2]), output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
 | 
						|
  10 - output([T_FUN_SUM(t1.c1)], [t1.c2], [T_FUN_COUNT(t1.c1)]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  11 - 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)])
 | 
						|
  12 - 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 * 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    |961484|
 | 
						|
|1 | NESTED-LOOP SEMI JOIN            |             |167      |956719|
 | 
						|
|2 |  PX COORDINATOR                  |             |500      |528   |
 | 
						|
|3 |   EXCHANGE OUT DISTR             |:EX10000     |500      |481   |
 | 
						|
|4 |    PX PARTITION ITERATOR         |             |500      |387   |
 | 
						|
|5 |     TABLE SCAN                   |t1           |500      |387   |
 | 
						|
|6 |  MATERIAL                        |             |20000    |157065|
 | 
						|
|7 |   SUBPLAN SCAN                   |VIEW2        |20000    |156994|
 | 
						|
|8 |    NESTED-LOOP JOIN CARTESIAN    |             |20000    |156643|
 | 
						|
|9 |     NESTED-LOOP SEMI JOIN        |             |100      |153876|
 | 
						|
|10|      PX COORDINATOR              |             |300      |280   |
 | 
						|
|11|       EXCHANGE OUT DISTR         |:EX20000     |300      |263   |
 | 
						|
|12|        PX PARTITION ITERATOR     |             |300      |233   |
 | 
						|
|13|         TABLE SCAN               |t2           |300      |233   |
 | 
						|
|14|      SUBPLAN SCAN                |VIEW1        |1        |463   |
 | 
						|
|15|       SUBPLAN FILTER             |             |1        |463   |
 | 
						|
|16|        NESTED-LOOP JOIN CARTESIAN|             |1        |326   |
 | 
						|
|17|         TABLE SCAN               |t4           |1        |46    |
 | 
						|
|18|         MATERIAL                 |             |300      |281   |
 | 
						|
|19|          PX COORDINATOR          |             |300      |280   |
 | 
						|
|20|           EXCHANGE OUT DISTR     |:EX30000     |300      |263   |
 | 
						|
|21|            PX PARTITION ITERATOR |             |300      |233   |
 | 
						|
|22|             TABLE SCAN           |t5(idx_t5_c2)|300      |233   |
 | 
						|
|23|        LIMIT                     |             |1        |137   |
 | 
						|
|24|         PX COORDINATOR           |             |1        |137   |
 | 
						|
|25|          EXCHANGE OUT DISTR      |:EX40000     |1        |137   |
 | 
						|
|26|           LIMIT                  |             |1        |137   |
 | 
						|
|27|            PX PARTITION ITERATOR |             |1        |137   |
 | 
						|
|28|             TABLE SCAN           |t2           |1        |137   |
 | 
						|
|29|     MATERIAL                     |             |200      |188   |
 | 
						|
|30|      PX COORDINATOR              |             |200      |187   |
 | 
						|
|31|       EXCHANGE OUT DISTR         |:EX50000     |200      |176   |
 | 
						|
|32|        PX PARTITION ITERATOR     |             |200      |155   |
 | 
						|
|33|         TABLE SCAN               |t3           |200      |155   |
 | 
						|
|34| MATERIAL                         |             |300      |471   |
 | 
						|
|35|  PX COORDINATOR                  |             |300      |464   |
 | 
						|
|36|   EXCHANGE OUT DISTR             |:EX60000     |300      |391   |
 | 
						|
|37|    PX PARTITION ITERATOR         |             |300      |233   |
 | 
						|
|38|     TABLE SCAN                   |t2           |300      |233   |
 | 
						|
======================================================================
 | 
						|
 | 
						|
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([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      conds([t1.c1 > VIEW2.c2]), nl_params_(nil), batch_join=false
 | 
						|
  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.
 | 
						|
  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([VIEW2.c2]), filter(nil)
 | 
						|
  7 - output([VIEW2.c2]), filter(nil), 
 | 
						|
      access([VIEW2.c2])
 | 
						|
  8 - output([t3.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  9 - output(nil), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t2.c1]), batch_join=false
 | 
						|
  10 - output([t2.c1]), filter(nil)
 | 
						|
  11 - output([t2.c1]), filter(nil), dop=1
 | 
						|
  12 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  13 - 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
 | 
						|
  14 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  15 - output([t4.c1]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
 | 
						|
  16 - output([t4.c1]), filter(nil), startup_filter([?]), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  17 - 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])
 | 
						|
  18 - output(nil), filter(nil)
 | 
						|
  19 - output(nil), filter(nil)
 | 
						|
  20 - output(nil), filter(nil), dop=1
 | 
						|
  21 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  22 - output(nil), 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
 | 
						|
  23 - output([1]), filter(nil), limit(1), offset(nil)
 | 
						|
  24 - output(nil), filter(nil)
 | 
						|
  25 - output(nil), filter(nil), dop=1
 | 
						|
  26 - output(nil), filter(nil), limit(1), offset(nil)
 | 
						|
  27 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  28 - output(nil), 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
 | 
						|
  29 - output([t3.c2]), filter(nil)
 | 
						|
  30 - output([t3.c2]), filter(nil)
 | 
						|
  31 - output([t3.c2]), filter(nil), dop=1
 | 
						|
  32 - output([t3.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  33 - 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
 | 
						|
  34 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  35 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  36 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
 | 
						|
  37 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  38 - 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 309(end)  ************** 
 | 
						|
 | 
						|
***************   Case 310   ***************
 | 
						|
 | 
						|
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 RIGHT SEMI JOIN        |     |100      |10595|
 | 
						|
|1 | SUBPLAN SCAN               |VIEW1|10000    |2911 |
 | 
						|
|2 |  NESTED-LOOP JOIN CARTESIAN|     |10000    |2736 |
 | 
						|
|3 |   TABLE SCAN               |t7   |100      |78   |
 | 
						|
|4 |   MATERIAL                 |     |100      |78   |
 | 
						|
|5 |    TABLE SCAN              |t8   |100      |78   |
 | 
						|
|6 | NESTED-LOOP JOIN CARTESIAN |     |10000    |2736 |
 | 
						|
|7 |  TABLE SCAN                |t4   |100      |78   |
 | 
						|
|8 |  MATERIAL                  |     |100      |79   |
 | 
						|
|9 |   TABLE SCAN               |t5   |100      |78   |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 + t5.c1 = VIEW1.c1]), other_conds(nil)
 | 
						|
  1 - output([VIEW1.c1]), filter(nil), 
 | 
						|
      access([VIEW1.c1])
 | 
						|
  2 - output([t7.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  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(nil), filter(nil)
 | 
						|
  5 - output(nil), filter(nil), 
 | 
						|
      access([t8.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t8.c1]), range(MIN ; MAX)always true
 | 
						|
  6 - output([t4.c1], [t4.c2], [t4.c3], [t5.c1], [t5.c2], [t5.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  7 - 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
 | 
						|
  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 310(end)  ************** 
 | 
						|
 | 
						|
***************   Case 311   ***************
 | 
						|
 | 
						|
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    |     |9000     |5677|
 | 
						|
|1 | TABLE SCAN                   |t5   |100      |78  |
 | 
						|
|2 | MATERIAL                     |     |90       |3277|
 | 
						|
|3 |  MERGE SEMI JOIN             |     |90       |3276|
 | 
						|
|4 |   TABLE SCAN                 |t4   |100      |78  |
 | 
						|
|5 |   SUBPLAN SCAN               |VIEW1|10000    |2911|
 | 
						|
|6 |    NESTED-LOOP JOIN CARTESIAN|     |10000    |2736|
 | 
						|
|7 |     TABLE SCAN               |t7   |100      |78  |
 | 
						|
|8 |     MATERIAL                 |     |100      |78  |
 | 
						|
|9 |      TABLE SCAN              |t8   |100      |78  |
 | 
						|
========================================================
 | 
						|
 | 
						|
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([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
 | 
						|
  2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil)
 | 
						|
  3 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 = VIEW1.c1]), other_conds(nil)
 | 
						|
  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(MIN,MIN ; MAX,MAX)always true
 | 
						|
  5 - output([VIEW1.c1]), filter(nil), 
 | 
						|
      access([VIEW1.c1])
 | 
						|
  6 - output([t7.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  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(nil), filter(nil)
 | 
						|
  9 - output(nil), filter(nil), 
 | 
						|
      access([t8.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t8.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 311(end)  ************** 
 | 
						|
 | 
						|
***************   Case 312   ***************
 | 
						|
 | 
						|
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                   |    |10000    |7780|
 | 
						|
|1 | TABLE SCAN                 |t8  |100      |78  |
 | 
						|
|2 | HASH JOIN                  |    |10000    |5289|
 | 
						|
|3 |  TABLE SCAN                |t7  |100      |78  |
 | 
						|
|4 |  NESTED-LOOP JOIN CARTESIAN|    |10000    |2736|
 | 
						|
|5 |   TABLE SCAN               |t4  |100      |78  |
 | 
						|
|6 |   MATERIAL                 |    |100      |79  |
 | 
						|
|7 |    TABLE SCAN              |t5  |100      |78  |
 | 
						|
=====================================================
 | 
						|
 | 
						|
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]), 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 312(end)  ************** 
 | 
						|
 | 
						|
***************   Case 313   ***************
 | 
						|
 | 
						|
SQL: select count(*) v from t1 where c2 = 1; 
 | 
						|
 | 
						|
===========================================================
 | 
						|
|ID|OPERATOR                 |NAME         |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |             |1        |228 |
 | 
						|
|1 | PX COORDINATOR          |             |1        |228 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000     |1        |228 |
 | 
						|
|3 |   MERGE GROUP BY        |             |1        |228 |
 | 
						|
|4 |    PX PARTITION ITERATOR|             |5        |227 |
 | 
						|
|5 |     TABLE SCAN          |t1(idx_t1_c2)|5        |227 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
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(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - output(nil), 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 313(end)  ************** 
 | 
						|
 | 
						|
***************   Case 314   ***************
 | 
						|
 | 
						|
SQL: select count(*) v, sum(c1) as v2 from t1 where c1 > 0; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |1        |414 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |414 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |414 |
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |414 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1      |500      |387 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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 314(end)  ************** 
 | 
						|
 | 
						|
***************   Case 315   ***************
 | 
						|
 | 
						|
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        |486 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001     |1        |486 |
 | 
						|
|2 |  MERGE GROUP BY               |             |1        |485 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|             |100      |476 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |458 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |             |100      |420 |
 | 
						|
|6 |      MERGE GROUP BY           |             |100      |420 |
 | 
						|
|7 |       TABLE SCAN              |t1(idx_t1_c2)|428      |386 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(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)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)), DECIMAL(20, 0)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)), DECIMAL(20, 0)))]), 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))], [T_FUN_SUM(T_FUN_SUM(t1.c1)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)), DECIMAL(20, 0))]), filter([T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)) > ?], [T_FUN_SUM(T_FUN_SUM(t1.c1)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)), DECIMAL(20, 0)) > ?], [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([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.
 | 
						|
  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(1,MAX ; MAX,MAX), 
 | 
						|
      range_cond([t1.c2 > ?])
 | 
						|
 | 
						|
*************** Case 315(end)  ************** 
 | 
						|
 | 
						|
***************   Case 316   ***************
 | 
						|
 | 
						|
SQL: select 1 from t15; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |400      |373 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|400      |351 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |400      |310 |
 | 
						|
|3 |   TABLE SCAN          |t15     |400      |310 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(?)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(?)]), filter(nil), dop=1
 | 
						|
  2 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output(nil), 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 316(end)  ************** 
 | 
						|
 | 
						|
***************   Case 317   ***************
 | 
						|
 | 
						|
SQL: select c1 from t15 where false; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |400      |373 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|400      |351 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |400      |310 |
 | 
						|
|3 |   TABLE SCAN          |t15     |400      |310 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t15.c1)]), filter(nil), startup_filter([0])
 | 
						|
  1 - output([INTERNAL_FUNCTION(t15.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t15.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 317(end)  ************** 
 | 
						|
 | 
						|
***************   Case 318   ***************
 | 
						|
 | 
						|
SQL: select count(1) from t15 where false; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |1        |324 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |324 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |324 |
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |324 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |400      |310 |
 | 
						|
|5 |     TABLE SCAN          |t15     |400      |310 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - output(nil), 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 318(end)  ************** 
 | 
						|
 | 
						|
***************   Case 319   ***************
 | 
						|
 | 
						|
SQL: select * from t1 order by c2,c1,c2; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                  |NAME         |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR MERGE SORT |             |500      |637 |
 | 
						|
|1 | EXCHANGE OUT DISTR       |:EX10000     |500      |591 |
 | 
						|
|2 |  SORT                    |             |500      |497 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |             |500      |387 |
 | 
						|
|4 |    TABLE SCAN            |t1(idx_t1_c2)|500      |387 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), sort_keys([t1.c2, ASC], [t1.c1, ASC])
 | 
						|
  1 - output([t1.c2], [t1.c1], [INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c2], [t1.c1]), filter(nil), sort_keys([t1.c2, ASC], [t1.c1, ASC]), local merge sort
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 319(end)  ************** 
 | 
						|
 | 
						|
***************   Case 320   ***************
 | 
						|
 | 
						|
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      |1845|
 | 
						|
|1 | EXCHANGE OUT DISTR           |:EX10001   |500      |1685|
 | 
						|
|2 |  SORT                        |           |500      |1335|
 | 
						|
|3 |   HASH OUTER JOIN            |           |500      |954 |
 | 
						|
|4 |    EXCHANGE IN DISTR         |           |500      |528 |
 | 
						|
|5 |     EXCHANGE OUT DISTR (PKEY)|:EX10000   |500      |481 |
 | 
						|
|6 |      PX PARTITION ITERATOR   |           |500      |387 |
 | 
						|
|7 |       TABLE SCAN             |t1(Reverse)|500      |387 |
 | 
						|
|8 |    PX PARTITION ITERATOR     |           |300      |233 |
 | 
						|
|9 |     TABLE SCAN               |t2(Reverse)|300      |233 |
 | 
						|
==============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c2, t2.c3)]), filter(nil), sort_keys([t1.c1, DESC])
 | 
						|
  1 - output([t1.c1], [INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c2, t2.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2], [t2.c2], [t2.c3]), filter(nil), sort_keys([t1.c1, DESC])
 | 
						|
  3 - output([t1.c1], [t1.c2], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  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.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 320(end)  ************** 
 | 
						|
 | 
						|
***************   Case 321   ***************
 | 
						|
 | 
						|
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      |1370|
 | 
						|
|1 | EXCHANGE OUT DISTR           |:EX10001   |500      |1323|
 | 
						|
|2 |  SORT                        |           |500      |1229|
 | 
						|
|3 |   HASH RIGHT OUTER JOIN      |           |500      |859 |
 | 
						|
|4 |    EXCHANGE IN DISTR         |           |300      |280 |
 | 
						|
|5 |     EXCHANGE OUT DISTR (PKEY)|:EX10000   |300      |263 |
 | 
						|
|6 |      PX PARTITION ITERATOR   |           |300      |233 |
 | 
						|
|7 |       TABLE SCAN             |t2(Reverse)|300      |233 |
 | 
						|
|8 |    PX PARTITION ITERATOR     |           |500      |387 |
 | 
						|
|9 |     TABLE SCAN               |t1(Reverse)|500      |387 |
 | 
						|
==============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(1)]), filter(nil), startup_filter([0]), sort_keys([t1.c1, DESC])
 | 
						|
  1 - output([t1.c1], [INTERNAL_FUNCTION(1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC])
 | 
						|
  3 - output([t1.c1]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  4 - output([t2.c1]), filter(nil)
 | 
						|
  5 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  6 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  7 - 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
 | 
						|
  8 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 321(end)  ************** 
 | 
						|
 | 
						|
***************   Case 322   ***************
 | 
						|
 | 
						|
SQL: select now() from t1 left outer join t2 using(c1); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(?)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(?)]), filter(nil), dop=1
 | 
						|
  2 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output(nil), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 322(end)  ************** 
 | 
						|
 | 
						|
***************   Case 323   ***************
 | 
						|
 | 
						|
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      |949 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|100      |933 |
 | 
						|
|2 |  HASH JOIN                  |        |100      |897 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |300      |317 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |289 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|6 |      TABLE SCAN             |a1      |300      |233 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|8 |    TABLE SCAN               |t1      |500      |387 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(a1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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([a1.c2], [a1.c1]), filter(nil)
 | 
						|
  4 - (#keys=1, [a1.c1]), output([a1.c2], [a1.c1]), filter(nil), dop=1
 | 
						|
  5 - output([a1.c1], [a1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
  7 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 323(end)  ************** 
 | 
						|
 | 
						|
***************   Case 324   ***************
 | 
						|
 | 
						|
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      |879 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|167      |851 |
 | 
						|
|2 |  HASH OUTER JOIN            |        |167      |791 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |167      |447 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|167      |431 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |167      |400 |
 | 
						|
|6 |      TABLE SCAN             |t1      |167      |400 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |a1      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(a1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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)
 | 
						|
  4 - (#keys=1, [t1.c1]), output([t1.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - output([t1.c1]), filter([length(cast(t1.c2, VARCHAR(1048576))) > ?]), 
 | 
						|
      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.c1], [a1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  8 - 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 324(end)  ************** 
 | 
						|
 | 
						|
***************   Case 325   ***************
 | 
						|
 | 
						|
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                     |        |811      |1482|
 | 
						|
|1 | PX COORDINATOR               |        |300      |280 |
 | 
						|
|2 |  EXCHANGE OUT DISTR          |:EX10000|300      |263 |
 | 
						|
|3 |   PX PARTITION ITERATOR      |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN                |a2      |300      |233 |
 | 
						|
|5 | PX COORDINATOR               |        |300      |1055|
 | 
						|
|6 |  EXCHANGE OUT DISTR          |:EX20001|300      |1004|
 | 
						|
|7 |   HASH JOIN                  |        |300      |897 |
 | 
						|
|8 |    EXCHANGE IN DISTR         |        |300      |317 |
 | 
						|
|9 |     EXCHANGE OUT DISTR (PKEY)|:EX20000|300      |289 |
 | 
						|
|10|      PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|11|       TABLE SCAN             |a1      |300      |233 |
 | 
						|
|12|    PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|13|     TABLE SCAN               |t1      |500      |387 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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]), filter(nil)
 | 
						|
  6 - output([t1.c2], [a1.c2]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c2], [a1.c2]), filter(nil), 
 | 
						|
      equal_conds([a1.c1 = t1.c1]), other_conds(nil)
 | 
						|
  8 - output([a1.c2], [a1.c1]), filter(nil)
 | 
						|
  9 - (#keys=1, [a1.c1]), output([a1.c2], [a1.c1]), filter(nil), dop=1
 | 
						|
  10 - output([a1.c1], [a1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  11 - 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
 | 
						|
  12 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 325(end)  ************** 
 | 
						|
 | 
						|
***************   Case 326   ***************
 | 
						|
 | 
						|
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 |HASH JOIN                   |        |1        |712 |
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN |        |1        |476 |
 | 
						|
|2 |  NESTED-LOOP JOIN CARTESIAN|        |1        |431 |
 | 
						|
|3 |   MERGE JOIN               |        |1        |385 |
 | 
						|
|4 |    NESTED-LOOP JOIN        |        |3        |339 |
 | 
						|
|5 |     PX COORDINATOR         |        |1        |47  |
 | 
						|
|6 |      EXCHANGE OUT DISTR    |:EX10000|1        |46  |
 | 
						|
|7 |       TABLE GET            |f1      |1        |46  |
 | 
						|
|8 |     PX COORDINATOR         |        |300      |391 |
 | 
						|
|9 |      EXCHANGE OUT DISTR    |:EX20000|300      |340 |
 | 
						|
|10|       PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|11|        TABLE SCAN          |t2      |300      |233 |
 | 
						|
|12|    TABLE GET               |f2      |1        |46  |
 | 
						|
|13|   MATERIAL                 |        |1        |46  |
 | 
						|
|14|    PX COORDINATOR          |        |1        |46  |
 | 
						|
|15|     EXCHANGE OUT DISTR     |:EX30000|1        |46  |
 | 
						|
|16|      TABLE GET             |a1      |1        |46  |
 | 
						|
|17|  MATERIAL                  |        |1        |46  |
 | 
						|
|18|   PX COORDINATOR           |        |1        |46  |
 | 
						|
|19|    EXCHANGE OUT DISTR      |:EX40000|1        |46  |
 | 
						|
|20|     TABLE GET              |a2      |1        |46  |
 | 
						|
|21| PX COORDINATOR             |        |200      |187 |
 | 
						|
|22|  EXCHANGE OUT DISTR        |:EX50000|200      |176 |
 | 
						|
|23|   PX PARTITION ITERATOR    |        |200      |155 |
 | 
						|
|24|    TABLE SCAN              |f_acc   |200      |155 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([f_acc.c2], [a1.c2], [a2.c2]), filter(nil), 
 | 
						|
      equal_conds([least(a1.c2, a2.c2) = f_acc.c2]), other_conds(nil)
 | 
						|
  1 - output([a1.c2], [a2.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  2 - output([a1.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  3 - output(nil), filter(nil), 
 | 
						|
      equal_conds([f2.c3 = t2.c3]), other_conds(nil)
 | 
						|
  4 - output([t2.c3]), filter(nil), 
 | 
						|
      conds([t2.c3 = f1.c3]), nl_params_(nil), batch_join=false
 | 
						|
  5 - output([f1.c3]), filter(nil)
 | 
						|
  6 - output([f1.c3]), filter(nil), is_single, dop=1
 | 
						|
  7 - 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 = ?])
 | 
						|
  8 - output([t2.c3]), filter(nil)
 | 
						|
  9 - output([t2.c3]), filter(nil), dop=1
 | 
						|
  10 - output([t2.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  12 - 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 = ?])
 | 
						|
  13 - output([a1.c2]), filter(nil)
 | 
						|
  14 - output([a1.c2]), filter(nil)
 | 
						|
  15 - output([a1.c2]), filter(nil), is_single, dop=1
 | 
						|
  16 - 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 = ?])
 | 
						|
  17 - output([a2.c2]), filter(nil)
 | 
						|
  18 - output([a2.c2]), filter(nil)
 | 
						|
  19 - output([a2.c2]), filter(nil), is_single, dop=1
 | 
						|
  20 - 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 = ?])
 | 
						|
  21 - output([f_acc.c2]), filter(nil)
 | 
						|
  22 - output([f_acc.c2]), filter(nil), dop=1
 | 
						|
  23 - output([f_acc.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  24 - 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 326(end)  ************** 
 | 
						|
 | 
						|
***************   Case 327   ***************
 | 
						|
 | 
						|
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 |HASH JOIN                  |        |5        |622 |
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|        |3        |386 |
 | 
						|
|2 |  NESTED-LOOP JOIN         |        |3        |339 |
 | 
						|
|3 |   PX COORDINATOR          |        |1        |47  |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000|1        |46  |
 | 
						|
|5 |     TABLE GET             |f1      |1        |46  |
 | 
						|
|6 |   PX COORDINATOR          |        |300      |391 |
 | 
						|
|7 |    EXCHANGE OUT DISTR     |:EX20000|300      |340 |
 | 
						|
|8 |     PX PARTITION ITERATOR |        |300      |233 |
 | 
						|
|9 |      TABLE SCAN           |t2      |300      |233 |
 | 
						|
|10|  MATERIAL                 |        |1        |46  |
 | 
						|
|11|   PX COORDINATOR          |        |1        |46  |
 | 
						|
|12|    EXCHANGE OUT DISTR     |:EX30000|1        |46  |
 | 
						|
|13|     TABLE GET             |a1      |1        |46  |
 | 
						|
|14| PX COORDINATOR            |        |200      |187 |
 | 
						|
|15|  EXCHANGE OUT DISTR       |:EX40000|200      |176 |
 | 
						|
|16|   PX PARTITION ITERATOR   |        |200      |155 |
 | 
						|
|17|    TABLE SCAN             |f_acc   |200      |155 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([f_acc.c2], [a1.c2], [a1.c2]), filter(nil), 
 | 
						|
      equal_conds([least(a1.c2, a1.c2) = f_acc.c2]), other_conds(nil)
 | 
						|
  1 - output([a1.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  2 - output(nil), filter(nil), 
 | 
						|
      conds([f1.c3 = t2.c3]), nl_params_(nil), batch_join=false
 | 
						|
  3 - output([f1.c3]), filter(nil)
 | 
						|
  4 - output([f1.c3]), filter(nil), is_single, dop=1
 | 
						|
  5 - 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 = ?])
 | 
						|
  6 - output([t2.c3]), filter(nil)
 | 
						|
  7 - output([t2.c3]), filter(nil), dop=1
 | 
						|
  8 - output([t2.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  9 - 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
 | 
						|
  10 - output([a1.c2]), filter(nil)
 | 
						|
  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.
 | 
						|
  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 327(end)  ************** 
 | 
						|
 | 
						|
***************   Case 328   ***************
 | 
						|
 | 
						|
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      |        |44       |644 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|44       |629 |
 | 
						|
|2 |  SORT                         |        |44       |595 |
 | 
						|
|3 |   HASH JOIN                   |        |44       |574 |
 | 
						|
|4 |    HASH JOIN                  |        |66       |350 |
 | 
						|
|5 |     EXCHANGE IN DISTR         |        |100      |118 |
 | 
						|
|6 |      EXCHANGE OUT DISTR (PKEY)|:EX10000|100      |105 |
 | 
						|
|7 |       TABLE SCAN              |t9      |100      |78  |
 | 
						|
|8 |     PX PARTITION ITERATOR     |        |200      |155 |
 | 
						|
|9 |      TABLE SCAN               |t10     |200      |155 |
 | 
						|
|10|    PX PARTITION ITERATOR      |        |200      |155 |
 | 
						|
|11|     TABLE SCAN                |t11     |200      |155 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(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([t11.c3], [t11.c2], [INTERNAL_FUNCTION(t9.c1, t9.c2, t9.c3, t10.c1, t10.c2, t10.c3, t11.c1, t11.c2, t11.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t11.c3], [t11.c2], [t9.c2], [t9.c3], [t10.c2], [t10.c3], [t9.c1], [t10.c1], [t11.c1]), filter(nil), sort_keys([t11.c3, ASC], [t11.c2, ASC])
 | 
						|
  3 - output([t11.c3], [t11.c2], [t9.c2], [t9.c3], [t10.c2], [t10.c3], [t9.c1], [t10.c1], [t11.c1]), filter(nil), 
 | 
						|
      equal_conds([t9.c2 = t11.c2], [t9.c3 = t11.c3]), other_conds(nil)
 | 
						|
  4 - output([t9.c2], [t9.c3], [t10.c2], [t10.c3], [t9.c1], [t10.c1]), 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.c1], [t9.c2], [t9.c3]), filter(nil), 
 | 
						|
      access([t9.c1], [t9.c2], [t9.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t9.c1]), range(MIN ; MAX)always true
 | 
						|
  8 - output([t10.c1], [t10.c2], [t10.c3]), filter(nil), 
 | 
						|
      affinitize, partition wise, force partition granule.
 | 
						|
  9 - output([t10.c1], [t10.c2], [t10.c3]), filter(nil), 
 | 
						|
      access([t10.c1], [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
 | 
						|
  10 - output([t11.c1], [t11.c2], [t11.c3]), filter(nil), 
 | 
						|
      affinitize, partition wise, force partition granule.
 | 
						|
  11 - output([t11.c1], [t11.c2], [t11.c3]), filter(nil), 
 | 
						|
      access([t11.c1], [t11.c2], [t11.c3]), partitions(p[0-1]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t11.c1], [t11.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 328(end)  ************** 
 | 
						|
 | 
						|
***************   Case 329   ***************
 | 
						|
 | 
						|
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     |        |66       |407 |
 | 
						|
|1 | EXCHANGE OUT DISTR           |:EX10001|66       |396 |
 | 
						|
|2 |  SORT                        |        |66       |372 |
 | 
						|
|3 |   HASH JOIN                  |        |66       |337 |
 | 
						|
|4 |    EXCHANGE IN DISTR         |        |100      |106 |
 | 
						|
|5 |     EXCHANGE OUT DISTR (PKEY)|:EX10000|100      |97  |
 | 
						|
|6 |      TABLE SCAN              |t9      |100      |78  |
 | 
						|
|7 |    PX PARTITION ITERATOR     |        |200      |155 |
 | 
						|
|8 |     TABLE SCAN               |t10     |200      |155 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t9.c2, t9.c3, t9.c2, t10.c3)]), filter(nil), sort_keys([t9.c2, ASC], [t9.c3, DESC])
 | 
						|
  1 - output([t9.c2], [t9.c3], [INTERNAL_FUNCTION(t9.c2, t9.c3, t9.c2, 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.
 | 
						|
  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 329(end)  ************** 
 | 
						|
 | 
						|
***************   Case 330   ***************
 | 
						|
 | 
						|
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                |        |90       |8828|
 | 
						|
|1 | PX COORDINATOR               |        |90       |649 |
 | 
						|
|2 |  EXCHANGE OUT DISTR          |:EX10001|90       |641 |
 | 
						|
|3 |   HASH JOIN                  |        |90       |624 |
 | 
						|
|4 |    EXCHANGE IN DISTR         |        |100      |94  |
 | 
						|
|5 |     EXCHANGE OUT DISTR (PKEY)|:EX10000|100      |88  |
 | 
						|
|6 |      TABLE SCAN              |t4      |100      |78  |
 | 
						|
|7 |    PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|8 |     TABLE SCAN               |t1      |500      |387 |
 | 
						|
|9 | SCALAR GROUP BY              |        |1        |46  |
 | 
						|
|10|  TABLE GET                   |t7      |1        |46  |
 | 
						|
|11| SCALAR GROUP BY              |        |1        |46  |
 | 
						|
|12|  TABLE GET                   |t8      |1        |46  |
 | 
						|
===========================================================
 | 
						|
 | 
						|
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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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_COUNT(t7.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(t7.c1)])
 | 
						|
  10 - 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 = ?])
 | 
						|
  11 - output([T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(*)])
 | 
						|
  12 - output(nil), 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 330(end)  ************** 
 | 
						|
 | 
						|
***************   Case 331   ***************
 | 
						|
 | 
						|
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     |        |90       |391 |
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN    |        |90       |285 |
 | 
						|
|2 |  SUBPLAN SCAN                 |VIEW2   |1        |81  |
 | 
						|
|3 |   SCALAR GROUP BY             |        |1        |81  |
 | 
						|
|4 |    TABLE SCAN                 |t7      |100      |78  |
 | 
						|
|5 |  PX COORDINATOR               |        |90       |649 |
 | 
						|
|6 |   EXCHANGE OUT DISTR          |:EX10001|90       |641 |
 | 
						|
|7 |    HASH JOIN                  |        |90       |624 |
 | 
						|
|8 |     EXCHANGE IN DISTR         |        |100      |94  |
 | 
						|
|9 |      EXCHANGE OUT DISTR (PKEY)|:EX10000|100      |88  |
 | 
						|
|10|       TABLE SCAN              |t4      |100      |78  |
 | 
						|
|11|     PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|12|      TABLE SCAN               |t1      |500      |387 |
 | 
						|
|13| MATERIAL                      |        |1        |81  |
 | 
						|
|14|  SUBPLAN SCAN                 |VIEW3   |1        |81  |
 | 
						|
|15|   SCALAR GROUP BY             |        |1        |81  |
 | 
						|
|16|    TABLE SCAN                 |t8      |100      |78  |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [VIEW2.count(c1)], [VIEW3.count(c1)]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t4.c1], [VIEW2.count(c1)]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  2 - output([VIEW2.count(c1)]), filter(nil), 
 | 
						|
      access([VIEW2.count(c1)])
 | 
						|
  3 - output([T_FUN_COUNT(t7.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(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([t4.c1]), filter(nil)
 | 
						|
  6 - output([t4.c1]), filter(nil), dop=1
 | 
						|
  7 - output([t4.c1]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 = t1.c1]), other_conds(nil)
 | 
						|
  8 - output([t4.c1]), filter(nil)
 | 
						|
  9 - (#keys=1, [t4.c1]), output([t4.c1]), filter(nil), is_single, dop=1
 | 
						|
  10 - 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
 | 
						|
  11 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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([VIEW3.count(c1)]), filter(nil)
 | 
						|
  14 - output([VIEW3.count(c1)]), filter(nil), 
 | 
						|
      access([VIEW3.count(c1)])
 | 
						|
  15 - output([T_FUN_COUNT(t8.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(t8.c1)])
 | 
						|
  16 - output([t8.c1]), filter(nil), 
 | 
						|
      access([t8.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t8.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 331(end)  ************** 
 | 
						|
 | 
						|
***************   Case 332   ***************
 | 
						|
 | 
						|
SQL: select distinct (select c1) from t4 limit 100; 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |LIMIT          |    |10       |82  |
 | 
						|
|1 | MERGE DISTINCT|    |10       |82  |
 | 
						|
|2 |  TABLE SCAN   |t4  |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
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 332(end)  ************** 
 | 
						|
 | 
						|
***************   Case 333   ***************
 | 
						|
 | 
						|
SQL: select * from t7,t8 where t7.c1=t8.c1 having false; 
 | 
						|
 | 
						|
===================================================
 | 
						|
|ID|OPERATOR                  |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|    |10000    |2736|
 | 
						|
|1 | TABLE SCAN               |t7  |100      |78  |
 | 
						|
|2 | MATERIAL                 |    |100      |79  |
 | 
						|
|3 |  TABLE SCAN              |t8  |100      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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 333(end)  ************** 
 | 
						|
 | 
						|
***************   Case 334   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 334(end)  ************** 
 | 
						|
 | 
						|
***************   Case 335   ***************
 | 
						|
 | 
						|
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       |4619|
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 335(end)  ************** 
 | 
						|
 | 
						|
***************   Case 336   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t14 where t1.c1 = t14.c3; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |450      |1309|
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|450      |1216|
 | 
						|
|2 |  PX PARTITION ITERATOR|        |450      |1016|
 | 
						|
|3 |   HASH JOIN           |        |450      |1016|
 | 
						|
|4 |    TABLE SCAN         |t1      |500      |387 |
 | 
						|
|5 |    TABLE SCAN         |t14     |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t14.c1, t14.c2, t14.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t14.c1, t14.c2, t14.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t14.c3], [t1.c2], [t14.c1], [t14.c2]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  3 - output([t1.c1], [t14.c3], [t1.c2], [t14.c1], [t14.c2]), 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.c1], [t14.c2], [t14.c3]), filter(nil), 
 | 
						|
      access([t14.c1], [t14.c2], [t14.c3]), 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 336(end)  ************** 
 | 
						|
 | 
						|
***************   Case 337   ***************
 | 
						|
 | 
						|
SQL: select * from t5,t16 where t5.c2 = t16.c2; 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |HASH JOIN               |        |730      |853 |
 | 
						|
|1 | PX COORDINATOR         |        |300      |354 |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000|300      |314 |
 | 
						|
|3 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|4 |    TABLE SCAN          |t5      |300      |233 |
 | 
						|
|5 | PX COORDINATOR         |        |300      |354 |
 | 
						|
|6 |  EXCHANGE OUT DISTR    |:EX20000|300      |314 |
 | 
						|
|7 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|8 |    TABLE SCAN          |t16     |300      |233 |
 | 
						|
=====================================================
 | 
						|
 | 
						|
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.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  3 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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)
 | 
						|
  6 - output([t16.c1], [t16.c2], [t16.c3]), filter(nil), dop=1
 | 
						|
  7 - output([t16.c3], [t16.c2], [t16.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - output([t16.c3], [t16.c2], [t16.c1]), filter(nil), 
 | 
						|
      access([t16.c3], [t16.c2], [t16.c1]), partitions(p[0-2]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t16.c3], [t16.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 337(end)  ************** 
 | 
						|
 | 
						|
***************   Case 338   ***************
 | 
						|
 | 
						|
SQL: select * from t5,t16 where t5.c2 = t16.c2 and t5.c3 = t16.c3; 
 | 
						|
 | 
						|
=========================================================
 | 
						|
|ID|OPERATOR               |NAME         |EST. ROWS|COST|
 | 
						|
---------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |             |197      |749 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000     |197      |701 |
 | 
						|
|2 |  PX PARTITION ITERATOR|             |197      |597 |
 | 
						|
|3 |   MERGE JOIN          |             |197      |597 |
 | 
						|
|4 |    TABLE SCAN         |t5(idx_t5_c3)|300      |290 |
 | 
						|
|5 |    TABLE SCAN         |t16          |300      |233 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3, t16.c1, t16.c2, t16.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3, t16.c1, t16.c2, t16.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c3], [t16.c3], [t5.c2], [t16.c2], [t5.c1], [t16.c1]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  3 - output([t5.c3], [t16.c3], [t5.c2], [t16.c2], [t5.c1], [t16.c1]), filter(nil), 
 | 
						|
      equal_conds([t5.c3 = t16.c3], [t5.c2 = t16.c2]), 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=true, 
 | 
						|
      range_key([t5.c3], [t5.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  5 - output([t16.c3], [t16.c2], [t16.c1]), filter(nil), 
 | 
						|
      access([t16.c3], [t16.c2], [t16.c1]), partitions(p[0-2]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t16.c3], [t16.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 338(end)  ************** 
 | 
						|
 | 
						|
***************   Case 339   ***************
 | 
						|
 | 
						|
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         |             |160      |712 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000     |160      |673 |
 | 
						|
|2 |  PX PARTITION ITERATOR|             |160      |589 |
 | 
						|
|3 |   MERGE JOIN          |             |160      |589 |
 | 
						|
|4 |    TABLE SCAN         |t5(idx_t5_c3)|300      |290 |
 | 
						|
|5 |    TABLE SCAN         |t16          |300      |233 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3, t16.c1, t16.c2, t16.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3, t16.c1, t16.c2, t16.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c3], [t16.c3], [t5.c2], [t16.c2], [t5.c1], [t16.c1]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  3 - output([t5.c3], [t16.c3], [t5.c2], [t16.c2], [t5.c1], [t16.c1]), filter(nil), 
 | 
						|
      equal_conds([t5.c3 = t16.c3], [t5.c2 = t16.c2], [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=true, 
 | 
						|
      range_key([t5.c3], [t5.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  5 - output([t16.c3], [t16.c2], [t16.c1]), filter(nil), 
 | 
						|
      access([t16.c3], [t16.c2], [t16.c1]), partitions(p[0-2]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t16.c3], [t16.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 339(end)  ************** 
 | 
						|
 | 
						|
***************   Case 340   ***************
 | 
						|
 | 
						|
SQL: select * from t17,t18 where t17.c2 + t17.c3 = t18.c2 + t18.c3; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |450      |959 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|450      |849 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |450      |611 |
 | 
						|
|3 |   HASH JOIN           |        |450      |611 |
 | 
						|
|4 |    TABLE SCAN         |t17     |300      |233 |
 | 
						|
|5 |    TABLE SCAN         |t18     |300      |233 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t17.c1, t17.c2, t17.c3, t18.c1, t18.c2, t18.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t17.c1, t17.c2, t17.c3, t18.c1, t18.c2, t18.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t17.c2], [t17.c3], [t18.c2], [t18.c3], [t17.c1], [t18.c1]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  3 - output([t17.c2], [t17.c3], [t18.c2], [t18.c3], [t17.c1], [t18.c1]), filter(nil), 
 | 
						|
      equal_conds([t17.c2 + t17.c3 = t18.c2 + t18.c3]), other_conds(nil)
 | 
						|
  4 - output([t17.c1], [t17.c2], [t17.c3]), filter(nil), 
 | 
						|
      access([t17.c1], [t17.c2], [t17.c3]), 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.c1], [t18.c2], [t18.c3]), filter(nil), 
 | 
						|
      access([t18.c1], [t18.c2], [t18.c3]), 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 340(end)  ************** 
 | 
						|
 | 
						|
***************   Case 341   ***************
 | 
						|
 | 
						|
SQL: select * from z1,z2 where z1.a = z2.a; 
 | 
						|
 | 
						|
====================================
 | 
						|
|ID|OPERATOR   |NAME|EST. ROWS|COST|
 | 
						|
------------------------------------
 | 
						|
|0 |MERGE JOIN |    |100      |188 |
 | 
						|
|1 | TABLE SCAN|z1  |100      |78  |
 | 
						|
|2 | TABLE SCAN|z2  |100      |78  |
 | 
						|
====================================
 | 
						|
 | 
						|
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 341(end)  ************** 
 | 
						|
 | 
						|
***************   Case 342   ***************
 | 
						|
 | 
						|
SQL: select * from t2,t6 where t2.c1 = t6.c1; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |300      |1000|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |904 |
 | 
						|
|2 |  HASH JOIN                  |        |300      |694 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |300      |317 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |289 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|6 |      TABLE SCAN             |t6      |300      |233 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3, t6.c1, t6.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3, t6.c1, t6.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t2.c1], [t6.c1], [t6.c2], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t2.c1 = t6.c1]), other_conds(nil)
 | 
						|
  3 - output([t6.c1], [t6.c2]), filter(nil)
 | 
						|
  4 - (#keys=1, [t6.c1]), output([t6.c1], [t6.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t6.c1], [t6.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 342(end)  ************** 
 | 
						|
 | 
						|
***************   Case 343   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t2 where t1.c1 = t2.c1; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |300      |1260|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |1164|
 | 
						|
|2 |  HASH JOIN                  |        |300      |954 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|6 |      TABLE SCAN             |t1      |500      |387 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.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)
 | 
						|
  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.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 343(end)  ************** 
 | 
						|
 | 
						|
***************   Case 344   ***************
 | 
						|
 | 
						|
SQL: select * from t5,t6 where t5.c2 = t6.c1; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |270      |907 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|270      |851 |
 | 
						|
|2 |  HASH JOIN                  |        |270      |731 |
 | 
						|
|3 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN               |t6      |300      |233 |
 | 
						|
|5 |   EXCHANGE IN DISTR         |        |300      |354 |
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |314 |
 | 
						|
|7 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|8 |      TABLE SCAN             |t5      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3, t6.c1, t6.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3, t6.c1, t6.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t6.c1], [t6.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      equal_conds([t5.c2 = t6.c1]), other_conds(nil)
 | 
						|
  3 - output([t6.c1], [t6.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  4 - 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
 | 
						|
  5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil)
 | 
						|
  6 - (#keys=1, [t5.c2]), output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
 | 
						|
  7 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - 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 344(end)  ************** 
 | 
						|
 | 
						|
***************   Case 345   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t14 where t1.c1 = t14.c3 and t1.c2 = t14.c2; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |365      |1268|
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|365      |1193|
 | 
						|
|2 |  PX PARTITION ITERATOR|        |365      |1031|
 | 
						|
|3 |   HASH JOIN           |        |365      |1031|
 | 
						|
|4 |    TABLE SCAN         |t1      |500      |387 |
 | 
						|
|5 |    TABLE SCAN         |t14     |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t14.c1, t14.c2, t14.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t14.c1, t14.c2, t14.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t14.c3], [t1.c2], [t14.c2], [t14.c1]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  3 - output([t1.c1], [t14.c3], [t1.c2], [t14.c2], [t14.c1]), 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.c1], [t14.c2], [t14.c3]), filter(nil), 
 | 
						|
      access([t14.c1], [t14.c2], [t14.c3]), 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 345(end)  ************** 
 | 
						|
 | 
						|
***************   Case 346   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t14 where t1.c1 + 1 = t14.c3 + 1; 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |HASH JOIN               |        |500      |1359|
 | 
						|
|1 | PX COORDINATOR         |        |500      |528 |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|3 |   PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|4 |    TABLE SCAN          |t1      |500      |387 |
 | 
						|
|5 | PX COORDINATOR         |        |500      |589 |
 | 
						|
|6 |  EXCHANGE OUT DISTR    |:EX20000|500      |524 |
 | 
						|
|7 |   PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|8 |    TABLE SCAN          |t14     |500      |387 |
 | 
						|
=====================================================
 | 
						|
 | 
						|
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]), filter(nil)
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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.c1], [t14.c2], [t14.c3]), filter(nil)
 | 
						|
  6 - output([t14.c1], [t14.c2], [t14.c3]), filter(nil), dop=1
 | 
						|
  7 - output([t14.c1], [t14.c2], [t14.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - output([t14.c1], [t14.c2], [t14.c3]), filter(nil), 
 | 
						|
      access([t14.c1], [t14.c2], [t14.c3]), 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 346(end)  ************** 
 | 
						|
 | 
						|
***************   Case 347   ***************
 | 
						|
 | 
						|
SQL: select * from t1 left join t14 on t1.c1 = t14.c3; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |1341|
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |1238|
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |1016|
 | 
						|
|3 |   HASH OUTER JOIN     |        |500      |1016|
 | 
						|
|4 |    TABLE SCAN         |t1      |500      |387 |
 | 
						|
|5 |    TABLE SCAN         |t14     |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t14.c1, t14.c2, t14.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t14.c1, t14.c2, t14.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t14.c3], [t1.c2], [t14.c1], [t14.c2]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  3 - output([t1.c1], [t14.c3], [t1.c2], [t14.c1], [t14.c2]), 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.c1], [t14.c2], [t14.c3]), filter(nil), 
 | 
						|
      access([t14.c1], [t14.c2], [t14.c3]), 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 347(end)  ************** 
 | 
						|
 | 
						|
***************   Case 348   ***************
 | 
						|
 | 
						|
SQL: select * from t5 left join t16 on t5.c2 = t16.c2; 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |HASH OUTER JOIN         |        |730      |853 |
 | 
						|
|1 | PX COORDINATOR         |        |300      |354 |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000|300      |314 |
 | 
						|
|3 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|4 |    TABLE SCAN          |t5      |300      |233 |
 | 
						|
|5 | PX COORDINATOR         |        |300      |354 |
 | 
						|
|6 |  EXCHANGE OUT DISTR    |:EX20000|300      |314 |
 | 
						|
|7 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|8 |    TABLE SCAN          |t16     |300      |233 |
 | 
						|
=====================================================
 | 
						|
 | 
						|
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.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  2 - output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  3 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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)
 | 
						|
  6 - output([t16.c1], [t16.c2], [t16.c3]), filter(nil), dop=1
 | 
						|
  7 - output([t16.c3], [t16.c2], [t16.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - output([t16.c3], [t16.c2], [t16.c1]), filter(nil), 
 | 
						|
      access([t16.c3], [t16.c2], [t16.c1]), partitions(p[0-2]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t16.c3], [t16.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 348(end)  ************** 
 | 
						|
 | 
						|
***************   Case 349   ***************
 | 
						|
 | 
						|
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      |829 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000     |300      |756 |
 | 
						|
|2 |  PX PARTITION ITERATOR|             |300      |597 |
 | 
						|
|3 |   MERGE OUTER JOIN    |             |300      |597 |
 | 
						|
|4 |    TABLE SCAN         |t5(idx_t5_c3)|300      |290 |
 | 
						|
|5 |    TABLE SCAN         |t16          |300      |233 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3, t16.c1, t16.c2, t16.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3, t16.c1, t16.c2, t16.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c3], [t16.c3], [t5.c2], [t16.c2], [t5.c1], [t16.c1]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  3 - output([t5.c3], [t16.c3], [t5.c2], [t16.c2], [t5.c1], [t16.c1]), filter(nil), 
 | 
						|
      equal_conds([t5.c3 = t16.c3], [t5.c2 = t16.c2]), 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=true, 
 | 
						|
      range_key([t5.c3], [t5.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  5 - output([t16.c3], [t16.c2], [t16.c1]), filter(nil), 
 | 
						|
      access([t16.c3], [t16.c2], [t16.c1]), partitions(p[0-2]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t16.c3], [t16.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 349(end)  ************** 
 | 
						|
 | 
						|
***************   Case 350   ***************
 | 
						|
 | 
						|
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      |820 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000     |300      |747 |
 | 
						|
|2 |  PX PARTITION ITERATOR|             |300      |589 |
 | 
						|
|3 |   MERGE OUTER JOIN    |             |300      |589 |
 | 
						|
|4 |    TABLE SCAN         |t5(idx_t5_c3)|300      |290 |
 | 
						|
|5 |    TABLE SCAN         |t16          |300      |233 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3, t16.c1, t16.c2, t16.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3, t16.c1, t16.c2, t16.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c3], [t16.c3], [t5.c2], [t16.c2], [t5.c1], [t16.c1]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  3 - output([t5.c3], [t16.c3], [t5.c2], [t16.c2], [t5.c1], [t16.c1]), filter(nil), 
 | 
						|
      equal_conds([t5.c3 = t16.c3], [t5.c2 = t16.c2], [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=true, 
 | 
						|
      range_key([t5.c3], [t5.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
  5 - output([t16.c3], [t16.c2], [t16.c1]), filter(nil), 
 | 
						|
      access([t16.c3], [t16.c2], [t16.c1]), partitions(p[0-2]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t16.c3], [t16.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 350(end)  ************** 
 | 
						|
 | 
						|
***************   Case 351   ***************
 | 
						|
 | 
						|
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      |959 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|450      |849 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |450      |611 |
 | 
						|
|3 |   HASH OUTER JOIN     |        |450      |611 |
 | 
						|
|4 |    TABLE SCAN         |t17     |300      |233 |
 | 
						|
|5 |    TABLE SCAN         |t18     |300      |233 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t17.c1, t17.c2, t17.c3, t18.c1, t18.c2, t18.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t17.c1, t17.c2, t17.c3, t18.c1, t18.c2, t18.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t17.c2], [t17.c3], [t18.c2], [t18.c3], [t17.c1], [t18.c1]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  3 - output([t17.c2], [t17.c3], [t18.c2], [t18.c3], [t17.c1], [t18.c1]), filter(nil), 
 | 
						|
      equal_conds([t17.c2 + t17.c3 = t18.c2 + t18.c3]), other_conds(nil)
 | 
						|
  4 - output([t17.c1], [t17.c2], [t17.c3]), filter(nil), 
 | 
						|
      access([t17.c1], [t17.c2], [t17.c3]), 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.c1], [t18.c2], [t18.c3]), filter(nil), 
 | 
						|
      access([t18.c1], [t18.c2], [t18.c3]), 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 351(end)  ************** 
 | 
						|
 | 
						|
***************   Case 352   ***************
 | 
						|
 | 
						|
SQL: select * from z1 left join z2 on z1.a = z2.a; 
 | 
						|
 | 
						|
=========================================
 | 
						|
|ID|OPERATOR        |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------------
 | 
						|
|0 |MERGE OUTER JOIN|    |100      |188 |
 | 
						|
|1 | TABLE SCAN     |z1  |100      |78  |
 | 
						|
|2 | TABLE SCAN     |z2  |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 352(end)  ************** 
 | 
						|
 | 
						|
***************   Case 353   ***************
 | 
						|
 | 
						|
SQL: select * from t2 left join t6 on t2.c1 = t6.c1; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |300      |1000|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |904 |
 | 
						|
|2 |  HASH RIGHT OUTER JOIN      |        |300      |694 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |300      |317 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |289 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|6 |      TABLE SCAN             |t6      |300      |233 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3, t6.c1, t6.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3, t6.c1, t6.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t2.c1], [t6.c1], [t6.c2], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t2.c1 = t6.c1]), other_conds(nil)
 | 
						|
  3 - output([t6.c1], [t6.c2]), filter(nil)
 | 
						|
  4 - (#keys=1, [t6.c1]), output([t6.c1], [t6.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t6.c1], [t6.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 353(end)  ************** 
 | 
						|
 | 
						|
***************   Case 354   ***************
 | 
						|
 | 
						|
SQL: select * from t1 left join t2 on t1.c1 = t2.c1; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |500      |1464|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|500      |1304|
 | 
						|
|2 |  HASH OUTER JOIN            |        |500      |954 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|6 |      TABLE SCAN             |t1      |500      |387 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.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)
 | 
						|
  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.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 354(end)  ************** 
 | 
						|
 | 
						|
***************   Case 355   ***************
 | 
						|
 | 
						|
SQL: select * from t5 left join t6 on t5.c2 = t6.c1; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |300      |926 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |864 |
 | 
						|
|2 |  HASH RIGHT OUTER JOIN      |        |300      |731 |
 | 
						|
|3 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN               |t6      |300      |233 |
 | 
						|
|5 |   EXCHANGE IN DISTR         |        |300      |354 |
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |314 |
 | 
						|
|7 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|8 |      TABLE SCAN             |t5      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3, t6.c1, t6.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t5.c1, t5.c2, t5.c3, t6.c1, t6.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t5.c2], [t6.c1], [t6.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      equal_conds([t5.c2 = t6.c1]), other_conds(nil)
 | 
						|
  3 - output([t6.c1], [t6.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  4 - 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
 | 
						|
  5 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil)
 | 
						|
  6 - (#keys=1, [t5.c2]), output([t5.c2], [t5.c3], [t5.c1]), filter(nil), dop=1
 | 
						|
  7 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - 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 355(end)  ************** 
 | 
						|
 | 
						|
***************   Case 356   ***************
 | 
						|
 | 
						|
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      |1356|
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |1253|
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |1031|
 | 
						|
|3 |   HASH OUTER JOIN     |        |500      |1031|
 | 
						|
|4 |    TABLE SCAN         |t1      |500      |387 |
 | 
						|
|5 |    TABLE SCAN         |t14     |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t14.c1, t14.c2, t14.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t14.c1, t14.c2, t14.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t14.c3], [t1.c2], [t14.c2], [t14.c1]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  3 - output([t1.c1], [t14.c3], [t1.c2], [t14.c2], [t14.c1]), 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.c1], [t14.c2], [t14.c3]), filter(nil), 
 | 
						|
      access([t14.c1], [t14.c2], [t14.c3]), 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 356(end)  ************** 
 | 
						|
 | 
						|
***************   Case 357   ***************
 | 
						|
 | 
						|
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      |1359|
 | 
						|
|1 | PX COORDINATOR         |        |500      |528 |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|3 |   PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|4 |    TABLE SCAN          |t1      |500      |387 |
 | 
						|
|5 | PX COORDINATOR         |        |500      |589 |
 | 
						|
|6 |  EXCHANGE OUT DISTR    |:EX20000|500      |524 |
 | 
						|
|7 |   PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|8 |    TABLE SCAN          |t14     |500      |387 |
 | 
						|
=====================================================
 | 
						|
 | 
						|
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]), filter(nil)
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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.c1], [t14.c2], [t14.c3]), filter(nil)
 | 
						|
  6 - output([t14.c1], [t14.c2], [t14.c3]), filter(nil), dop=1
 | 
						|
  7 - output([t14.c1], [t14.c2], [t14.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - output([t14.c1], [t14.c2], [t14.c3]), filter(nil), 
 | 
						|
      access([t14.c1], [t14.c2], [t14.c3]), 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 357(end)  ************** 
 | 
						|
 | 
						|
***************   Case 358   ***************
 | 
						|
 | 
						|
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      |549 |
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10001     |100      |536 |
 | 
						|
|2 |  SORT                          |             |100      |509 |
 | 
						|
|3 |   MERGE GROUP BY               |             |100      |453 |
 | 
						|
|4 |    EXCHANGE IN MERGE SORT DISTR|             |100      |446 |
 | 
						|
|5 |     EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |437 |
 | 
						|
|6 |      PX PARTITION ITERATOR     |             |100      |418 |
 | 
						|
|7 |       MERGE GROUP BY           |             |100      |418 |
 | 
						|
|8 |        TABLE SCAN              |t1(idx_t1_c2)|500      |387 |
 | 
						|
==================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2, T_FUN_COUNT_SUM(T_FUN_COUNT(*)))]), filter(nil), sort_keys([T_FUN_COUNT_SUM(T_FUN_COUNT(*)), DESC])
 | 
						|
  1 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [INTERNAL_FUNCTION(t1.c2, T_FUN_COUNT_SUM(T_FUN_COUNT(*)))]), filter(nil), dop=1
 | 
						|
  2 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [t1.c2]), filter(nil), sort_keys([T_FUN_COUNT_SUM(T_FUN_COUNT(*)), DESC])
 | 
						|
  3 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))], [t1.c2]), filter(nil), 
 | 
						|
      group([t1.c2]), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
 | 
						|
  4 - output([T_FUN_COUNT(*)], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
 | 
						|
  5 - (#keys=1, [t1.c2]), output([T_FUN_COUNT(*)], [t1.c2]), filter(nil), dop=1
 | 
						|
  6 - output([T_FUN_COUNT(*)], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  7 - output([T_FUN_COUNT(*)], [t1.c2]), 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 358(end)  ************** 
 | 
						|
 | 
						|
***************   Case 359   ***************
 | 
						|
 | 
						|
SQL: select count(1)+1 from t1 order by count(1)+1; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |1        |414 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |414 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |414 |
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |414 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1      |500      |387 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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 - output([T_FUN_COUNT(*)], [T_FUN_COUNT(*)]), filter(nil)
 | 
						|
  2 - output([T_FUN_COUNT(*)], [T_FUN_COUNT(*)]), filter(nil), dop=1
 | 
						|
  3 - output([T_FUN_COUNT(*)], [T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(*)], [T_FUN_COUNT(*)])
 | 
						|
  4 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - output(nil), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 359(end)  ************** 
 | 
						|
 | 
						|
***************   Case 360   ***************
 | 
						|
 | 
						|
SQL: delete from t7 where exists(select 1 from t8); 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |DELETE         |    |100      |636 |
 | 
						|
|1 | SUBPLAN FILTER|    |100      |125 |
 | 
						|
|2 |  TABLE SCAN   |t7  |100      |78  |
 | 
						|
|3 |  TABLE SCAN   |t8  |1        |46  |
 | 
						|
========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output(nil), filter(nil), table_columns([{t7: ({t7: (t7.c1, t7.c2)})}])
 | 
						|
  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), startup_filter([?]), 
 | 
						|
      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), 
 | 
						|
      limit(1), offset(nil), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t8.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 360(end)  ************** 
 | 
						|
 | 
						|
***************   Case 361   ***************
 | 
						|
 | 
						|
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        |232 |
 | 
						|
|1 | PX COORDINATOR               |        |1        |53  |
 | 
						|
|2 |  EXCHANGE OUT DISTR          |:EX10001|1        |53  |
 | 
						|
|3 |   NESTED-LOOP JOIN           |        |1        |53  |
 | 
						|
|4 |    EXCHANGE IN DISTR         |        |1        |46  |
 | 
						|
|5 |     EXCHANGE OUT DISTR (PKEY)|:EX10000|1        |46  |
 | 
						|
|6 |      TABLE GET               |t3      |1        |46  |
 | 
						|
|7 |    PX PARTITION ITERATOR     |        |1        |29  |
 | 
						|
|8 |     TABLE GET                |t1      |1        |29  |
 | 
						|
|9 | PX COORDINATOR               |        |300      |280 |
 | 
						|
|10|  EXCHANGE OUT DISTR          |:EX20000|300      |263 |
 | 
						|
|11|   PX PARTITION ITERATOR      |        |300      |233 |
 | 
						|
|12|    TABLE SCAN                |t2      |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
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], [PARTITION_ID], [t3.c2]), filter(nil)
 | 
						|
  5 - (#keys=1, [t3.c2]), output([t3.c1], [PARTITION_ID], [t3.c2]), 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.
 | 
						|
  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.
 | 
						|
  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 361(end)  ************** 
 | 
						|
 | 
						|
***************   Case 362   ***************
 | 
						|
 | 
						|
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        |137 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10002    |2        |136 |
 | 
						|
|2 |  NESTED-LOOP JOIN           |            |2        |136 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |            |5        |105 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10001    |5        |105 |
 | 
						|
|5 |     NESTED-LOOP JOIN        |            |5        |103 |
 | 
						|
|6 |      EXCHANGE IN DISTR      |            |1        |46  |
 | 
						|
|7 |       EXCHANGE OUT DISTR    |:EX10000    |1        |46  |
 | 
						|
|8 |        TABLE GET            |b           |1        |46  |
 | 
						|
|9 |      PX COORDINATOR         |            |5        |31  |
 | 
						|
|10|       EXCHANGE OUT DISTR    |:EX20000    |5        |30  |
 | 
						|
|11|        PX PARTITION ITERATOR|            |5        |29  |
 | 
						|
|12|         TABLE SCAN          |a(idx_t1_c2)|5        |29  |
 | 
						|
|13|   PX PARTITION ITERATOR     |            |1        |12  |
 | 
						|
|14|    TABLE GET                |t3          |1        |12  |
 | 
						|
==============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t3.c1, t3.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t3.c1, t3.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t3.c1], [t3.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([a.c1]), batch_join=false
 | 
						|
  3 - output([PARTITION_ID], [a.c1]), filter(nil)
 | 
						|
  4 - (#keys=1, [a.c1]), output([PARTITION_ID], [a.c1]), filter(nil), is_single, dop=1
 | 
						|
  5 - output([a.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([b.c2]), batch_join=false
 | 
						|
  6 - output([b.c2]), filter(nil)
 | 
						|
  7 - output([b.c2]), filter(nil), is_single, dop=1
 | 
						|
  8 - 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 = ?])
 | 
						|
  9 - output([a.c1]), filter(nil)
 | 
						|
  10 - output([a.c1]), filter(nil), dop=1
 | 
						|
  11 - output([a.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  14 - 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), 
 | 
						|
      range_cond([t3.c1 = ?])
 | 
						|
 | 
						|
*************** Case 362(end)  ************** 
 | 
						|
 | 
						|
***************   Case 363   ***************
 | 
						|
 | 
						|
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   |    |1682     |1169|
 | 
						|
|1 | NESTED-LOOP JOIN|    |1682     |1140|
 | 
						|
|2 |  TABLE SCAN     |t8  |100      |78  |
 | 
						|
|3 |  TABLE SCAN     |t7  |34       |5   |
 | 
						|
|4 | LIMIT           |    |1        |1   |
 | 
						|
|5 |  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 OR ?]), nl_params_([t8.c2]), batch_join=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
 | 
						|
  3 - 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 > ?])
 | 
						|
  4 - output([?]), filter(nil), limit(1), offset(nil)
 | 
						|
  5 - output([1]), filter(nil)
 | 
						|
      values({1})
 | 
						|
 | 
						|
*************** Case 363(end)  ************** 
 | 
						|
 | 
						|
***************   Case 364   ***************
 | 
						|
 | 
						|
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 364(end)  ************** 
 | 
						|
 | 
						|
***************   Case 365   ***************
 | 
						|
 | 
						|
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      |146 |
 | 
						|
|1 | TABLE GET                |t7  |1        |46  |
 | 
						|
|2 | TABLE SCAN               |t4  |100      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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([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 365(end)  ************** 
 | 
						|
 | 
						|
***************   Case 366   ***************
 | 
						|
 | 
						|
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|                |900      |390 |
 | 
						|
|1 | TABLE SCAN               |t4(idx_t4_c2_c3)|100      |78  |
 | 
						|
|2 | MATERIAL                 |                |9        |79  |
 | 
						|
|3 |  TABLE SCAN              |t7              |9        |79  |
 | 
						|
===============================================================
 | 
						|
 | 
						|
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.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.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
 | 
						|
 | 
						|
*************** Case 366(end)  ************** 
 | 
						|
 | 
						|
***************   Case 367   ***************
 | 
						|
 | 
						|
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      |193 |
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|    |1        |92  |
 | 
						|
|2 |  TABLE GET                |t7  |1        |46  |
 | 
						|
|3 |  TABLE GET                |t8  |1        |46  |
 | 
						|
|4 | TABLE SCAN                |t4  |100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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], [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[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 367(end)  ************** 
 | 
						|
 | 
						|
***************   Case 368   ***************
 | 
						|
 | 
						|
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 |HASH JOIN                  |    |900      |272 |
 | 
						|
|1 | TABLE SCAN                |t8  |100      |78  |
 | 
						|
|2 | NESTED-LOOP JOIN CARTESIAN|    |100      |146 |
 | 
						|
|3 |  TABLE GET                |t7  |1        |46  |
 | 
						|
|4 |  TABLE SCAN               |t4  |100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil), 
 | 
						|
      equal_conds([t7.c2 = t8.c2]), other_conds(nil)
 | 
						|
  1 - 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
 | 
						|
  2 - output([t4.c1], [t4.c2], [t4.c3], [t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  3 - 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])
 | 
						|
  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 368(end)  ************** 
 | 
						|
 | 
						|
***************   Case 369   ***************
 | 
						|
 | 
						|
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  |    |81       |153 |
 | 
						|
|1 | TABLE SCAN                 |t4  |100      |78  |
 | 
						|
|2 | MATERIAL                   |    |1        |53  |
 | 
						|
|3 |  NESTED-LOOP JOIN CARTESIAN|    |1        |53  |
 | 
						|
|4 |   TABLE GET                |t7  |1        |46  |
 | 
						|
|5 |   TABLE SCAN               |t8  |9        |79  |
 | 
						|
=====================================================
 | 
						|
 | 
						|
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(nil), nl_params_(nil), batch_join=false
 | 
						|
  4 - 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])
 | 
						|
  5 - output([t8.c1], [t8.c2]), filter([? = 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 369(end)  ************** 
 | 
						|
 | 
						|
***************   Case 370   ***************
 | 
						|
 | 
						|
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      |146 |
 | 
						|
|1 | TABLE GET                |t7  |1        |46  |
 | 
						|
|2 | TABLE SCAN               |t4  |100      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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([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 370(end)  ************** 
 | 
						|
 | 
						|
***************   Case 371   ***************
 | 
						|
 | 
						|
SQL: select * from t4 join t7 on t4.c1 = t7.c1 where t4.c2 = 1; 
 | 
						|
 | 
						|
================================================
 | 
						|
|ID|OPERATOR   |NAME            |EST. ROWS|COST|
 | 
						|
------------------------------------------------
 | 
						|
|0 |HASH JOIN  |                |91       |204 |
 | 
						|
|1 | TABLE SCAN|t7              |100      |78  |
 | 
						|
|2 | TABLE SCAN|t4(idx_t4_c2_c3)|100      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 371(end)  ************** 
 | 
						|
 | 
						|
***************   Case 372   ***************
 | 
						|
 | 
						|
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      |146 |
 | 
						|
|1 | TABLE GET                |t7  |1        |46  |
 | 
						|
|2 | TABLE SCAN               |t4  |100      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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([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 372(end)  ************** 
 | 
						|
 | 
						|
***************   Case 373   ***************
 | 
						|
 | 
						|
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|    |81       |145 |
 | 
						|
|1 | TABLE SCAN     |t7  |9        |79  |
 | 
						|
|2 | TABLE SCAN     |t4  |9        |5   |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 373(end)  ************** 
 | 
						|
 | 
						|
***************   Case 374   ***************
 | 
						|
 | 
						|
SQL: select * from t4 left join t7 on t4.c1 = t7.c1 where t4.c1 = 5; 
 | 
						|
 | 
						|
=========================================================
 | 
						|
|ID|OPERATOR                        |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP OUTER JOIN CARTESIAN|    |100      |151 |
 | 
						|
|1 | TABLE SCAN                     |t4  |100      |78  |
 | 
						|
|2 | MATERIAL                       |    |1        |46  |
 | 
						|
|3 |  TABLE GET                     |t7  |1        |46  |
 | 
						|
=========================================================
 | 
						|
 | 
						|
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.c1], [t4.c2]), range(5,MIN ; 5,MAX), 
 | 
						|
      range_cond([t4.c1 = ?])
 | 
						|
  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[5 ; 5], 
 | 
						|
      range_cond([t7.c1 = ?])
 | 
						|
 | 
						|
*************** Case 374(end)  ************** 
 | 
						|
 | 
						|
***************   Case 375   ***************
 | 
						|
 | 
						|
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      |204 |
 | 
						|
|1 | TABLE SCAN          |t7              |100      |78  |
 | 
						|
|2 | TABLE SCAN          |t4(idx_t4_c2_c3)|100      |78  |
 | 
						|
==========================================================
 | 
						|
 | 
						|
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 375(end)  ************** 
 | 
						|
 | 
						|
***************   Case 376   ***************
 | 
						|
 | 
						|
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      |146 |
 | 
						|
|1 | TABLE GET                |t7  |1        |46  |
 | 
						|
|2 | TABLE SCAN               |t4  |100      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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([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 376(end)  ************** 
 | 
						|
 | 
						|
***************   Case 377   ***************
 | 
						|
 | 
						|
SQL: select /*+ FROZEN_VERSION(1) */max(c1) as c from t7; 
 | 
						|
 | 
						|
===============================================
 | 
						|
|ID|OPERATOR       |NAME       |EST. ROWS|COST|
 | 
						|
-----------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY|           |1        |46  |
 | 
						|
|1 | SUBPLAN SCAN  |VIEW1      |1        |46  |
 | 
						|
|2 |  TABLE SCAN   |t7(Reverse)|1        |46  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_MAX(VIEW1.t7.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(VIEW1.t7.c1)])
 | 
						|
  1 - output([VIEW1.t7.c1]), filter(nil), 
 | 
						|
      access([VIEW1.t7.c1])
 | 
						|
  2 - 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 377(end)  ************** 
 | 
						|
 | 
						|
***************   Case 378   ***************
 | 
						|
 | 
						|
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       |13746|
 | 
						|
|1 | TABLE SCAN       |t4  |100      |78   |
 | 
						|
|2 | LIMIT            |    |1        |137  |
 | 
						|
|3 |  NESTED-LOOP JOIN|    |1        |137  |
 | 
						|
|4 |   TABLE SCAN     |t7  |2        |46   |
 | 
						|
|5 |   MATERIAL       |    |100      |78   |
 | 
						|
|6 |    TABLE SCAN    |t8  |100      |78   |
 | 
						|
============================================
 | 
						|
 | 
						|
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 378(end)  ************** 
 | 
						|
 | 
						|
***************   Case 379   ***************
 | 
						|
 | 
						|
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       |5597|
 | 
						|
|1 | TABLE SCAN       |t4  |100      |78  |
 | 
						|
|2 | LIMIT            |    |1        |56  |
 | 
						|
|3 |  NESTED-LOOP JOIN|    |1        |56  |
 | 
						|
|4 |   TABLE SCAN     |t7  |1        |46  |
 | 
						|
|5 |   TABLE GET      |t8  |1        |5   |
 | 
						|
===========================================
 | 
						|
 | 
						|
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(nil), filter(nil), 
 | 
						|
      access([t8.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t8.c1]), range(MIN ; MAX), 
 | 
						|
      range_cond([? = t8.c1])
 | 
						|
 | 
						|
*************** Case 379(end)  ************** 
 | 
						|
 | 
						|
***************   Case 380   ***************
 | 
						|
 | 
						|
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       |14797|
 | 
						|
|1 | TABLE SCAN   |t4  |100      |78   |
 | 
						|
|2 | LIMIT        |    |1        |148  |
 | 
						|
|3 |  HASH JOIN   |    |1        |148  |
 | 
						|
|4 |   TABLE SCAN |t7  |100      |78   |
 | 
						|
|5 |   TABLE SCAN |t8  |1        |46   |
 | 
						|
========================================
 | 
						|
 | 
						|
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]), 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 380(end)  ************** 
 | 
						|
 | 
						|
***************   Case 381   ***************
 | 
						|
 | 
						|
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      |514 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001     |100      |497 |
 | 
						|
|2 |  MERGE GROUP BY               |             |100      |461 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|             |100      |456 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |443 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |             |100      |415 |
 | 
						|
|6 |      MERGE GROUP BY           |             |100      |415 |
 | 
						|
|7 |       TABLE SCAN              |t1(idx_t1_c2)|500      |393 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), sort_keys([t1.c2, ASC])
 | 
						|
  1 - output([t1.c2], [INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c2], [t1.c1]), filter(nil), 
 | 
						|
      group([t1.c2]), agg_func(nil)
 | 
						|
  3 - output([t1.c2], [t1.c1]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
 | 
						|
  4 - (#keys=1, [t1.c2]), output([t1.c2], [t1.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c2], [t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - output([t1.c2], [t1.c1]), 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 381(end)  ************** 
 | 
						|
 | 
						|
***************   Case 382   ***************
 | 
						|
 | 
						|
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        |228 |
 | 
						|
|1 | SUBPLAN SCAN              |v       |1        |228 |
 | 
						|
|2 |  LIMIT                    |        |1        |228 |
 | 
						|
|3 |   PX COORDINATOR          |        |1        |228 |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000|1        |227 |
 | 
						|
|5 |     LIMIT                 |        |1        |227 |
 | 
						|
|6 |      PX PARTITION ITERATOR|        |1        |227 |
 | 
						|
|7 |       TABLE SCAN          |t1      |1        |227 |
 | 
						|
========================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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 382(end)  ************** 
 | 
						|
 | 
						|
***************   Case 383   ***************
 | 
						|
 | 
						|
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        |173 |
 | 
						|
|1 | SUBPLAN SCAN                    |v       |1        |172 |
 | 
						|
|2 |  LIMIT                          |        |1        |172 |
 | 
						|
|3 |   PX COORDINATOR                |        |1        |172 |
 | 
						|
|4 |    EXCHANGE OUT DISTR           |:EX10001|1        |172 |
 | 
						|
|5 |     LIMIT                       |        |1        |172 |
 | 
						|
|6 |      NESTED-LOOP JOIN           |        |1        |172 |
 | 
						|
|7 |       EXCHANGE IN DISTR         |        |1        |137 |
 | 
						|
|8 |        EXCHANGE OUT DISTR (PKEY)|:EX10000|1        |137 |
 | 
						|
|9 |         PX PARTITION ITERATOR   |        |1        |137 |
 | 
						|
|10|          TABLE SCAN             |t2      |1        |137 |
 | 
						|
|11|       PX PARTITION ITERATOR     |        |1        |29  |
 | 
						|
|12|        TABLE GET                |t1      |1        |29  |
 | 
						|
==============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([v.c1]), filter(nil), sort_keys([v.c1, ASC]), local merge sort
 | 
						|
  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.
 | 
						|
  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(nil), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  12 - output(nil), 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 383(end)  ************** 
 | 
						|
 | 
						|
***************   Case 384   ***************
 | 
						|
 | 
						|
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        |173 |
 | 
						|
|1 | SUBPLAN SCAN                    |v       |1        |172 |
 | 
						|
|2 |  LIMIT                          |        |1        |172 |
 | 
						|
|3 |   PX COORDINATOR                |        |1        |172 |
 | 
						|
|4 |    EXCHANGE OUT DISTR           |:EX10001|1        |172 |
 | 
						|
|5 |     LIMIT                       |        |1        |172 |
 | 
						|
|6 |      NESTED-LOOP JOIN           |        |1        |172 |
 | 
						|
|7 |       EXCHANGE IN DISTR         |        |1        |137 |
 | 
						|
|8 |        EXCHANGE OUT DISTR (PKEY)|:EX10000|1        |137 |
 | 
						|
|9 |         PX PARTITION ITERATOR   |        |1        |137 |
 | 
						|
|10|          TABLE SCAN             |t2      |1        |137 |
 | 
						|
|11|       PX PARTITION ITERATOR     |        |1        |29  |
 | 
						|
|12|        TABLE GET                |t1      |1        |29  |
 | 
						|
==============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([v.c1]), filter(nil), sort_keys([v.c1, ASC]), local merge sort
 | 
						|
  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([PARTITION_ID], [t2.c1]), filter(nil)
 | 
						|
  8 - (#keys=1, [t2.c1]), output([PARTITION_ID], [t2.c1]), filter(nil), dop=1
 | 
						|
  9 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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.
 | 
						|
  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 384(end)  ************** 
 | 
						|
 | 
						|
***************   Case 385   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 having false; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), startup_filter([0])
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 385(end)  ************** 
 | 
						|
 | 
						|
***************   Case 386   ***************
 | 
						|
 | 
						|
SQL: select min(c1) from t1 having false; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY              |        |0        |228 |
 | 
						|
|1 | SUBPLAN SCAN                |VIEW1   |1        |228 |
 | 
						|
|2 |  LIMIT                      |        |1        |228 |
 | 
						|
|3 |   PX COORDINATOR MERGE SORT |        |1        |228 |
 | 
						|
|4 |    EXCHANGE OUT DISTR       |:EX10000|1        |228 |
 | 
						|
|5 |     TOP-N SORT              |        |1        |227 |
 | 
						|
|6 |      PX PARTITION ITERATOR  |        |1        |227 |
 | 
						|
|7 |       TABLE SCAN            |t1      |1        |227 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_MIN(VIEW1.t1.c1)]), filter([0]), 
 | 
						|
      group(nil), agg_func([T_FUN_MIN(VIEW1.t1.c1)])
 | 
						|
  1 - output([VIEW1.t1.c1]), filter(nil), 
 | 
						|
      access([VIEW1.t1.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), sort_keys([t1.c1, ASC]), topn(1), local merge sort
 | 
						|
  6 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  7 - 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 386(end)  ************** 
 | 
						|
 | 
						|
***************   Case 387   ***************
 | 
						|
 | 
						|
SQL: select count(1) from t1 having false; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |0        |405 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |405 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |405 |
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |405 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1      |500      |387 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - output(nil), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 387(end)  ************** 
 | 
						|
 | 
						|
***************   Case 388   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 group by c1 having false; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), startup_filter([0])
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 c1 from t1 group by c1 having c1>0; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 389(end)  ************** 
 | 
						|
 | 
						|
***************   Case 390   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 group by c1 having count(c2)>0; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |167      |447 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|167      |431 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |167      |400 |
 | 
						|
|3 |   TABLE SCAN          |t1      |167      |400 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 390(end)  ************** 
 | 
						|
 | 
						|
***************   Case 391   ***************
 | 
						|
 | 
						|
SQL: select count(c1) from t1 group by c1 having count(c2)>0; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |167      |447 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|167      |431 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |167      |400 |
 | 
						|
|3 |   TABLE SCAN          |t1      |167      |400 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 391(end)  ************** 
 | 
						|
 | 
						|
***************   Case 392   ***************
 | 
						|
 | 
						|
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      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 392(end)  ************** 
 | 
						|
 | 
						|
***************   Case 393   ***************
 | 
						|
 | 
						|
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      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 393(end)  ************** 
 | 
						|
 | 
						|
***************   Case 394   ***************
 | 
						|
 | 
						|
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      |274 |
 | 
						|
|1 | PX COORDINATOR           |        |1        |46  |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|1        |46  |
 | 
						|
|3 |   TABLE GET              |t1      |1        |46  |
 | 
						|
|4 | PX COORDINATOR           |        |500      |466 |
 | 
						|
|5 |  EXCHANGE OUT DISTR      |:EX20000|500      |439 |
 | 
						|
|6 |   PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|7 |    TABLE SCAN            |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - output(nil), filter(nil), is_single, dop=1
 | 
						|
  3 - output(nil), 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.
 | 
						|
  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 394(end)  ************** 
 | 
						|
 | 
						|
***************   Case 395   ***************
 | 
						|
 | 
						|
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      |274 |
 | 
						|
|1 | PX COORDINATOR           |        |1        |46  |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|1        |46  |
 | 
						|
|3 |   TABLE GET              |t1      |1        |46  |
 | 
						|
|4 | PX COORDINATOR           |        |500      |466 |
 | 
						|
|5 |  EXCHANGE OUT DISTR      |:EX20000|500      |439 |
 | 
						|
|6 |   PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|7 |    TABLE SCAN            |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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(nil), filter(nil)
 | 
						|
  2 - output(nil), filter(nil), is_single, dop=1
 | 
						|
  3 - output(nil), 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.
 | 
						|
  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 395(end)  ************** 
 | 
						|
 | 
						|
***************   Case 396   ***************
 | 
						|
 | 
						|
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               |        |1        |247 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|1        |247 |
 | 
						|
|2 |  NESTED-LOOP JOIN           |        |1        |246 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |1        |240 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|1        |240 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |1        |240 |
 | 
						|
|6 |      TABLE SCAN             |t2      |1        |240 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |1        |29  |
 | 
						|
|8 |    TABLE GET                |t1      |1        |29  |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t2.c2]), batch_join=false
 | 
						|
  3 - output([PARTITION_ID], [t2.c2]), filter(nil)
 | 
						|
  4 - (#keys=1, [t2.c2]), output([PARTITION_ID], [t2.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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.
 | 
						|
  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 396(end)  ************** 
 | 
						|
 | 
						|
***************   Case 397   ***************
 | 
						|
 | 
						|
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               |        |1        |247 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|1        |247 |
 | 
						|
|2 |  NESTED-LOOP JOIN           |        |1        |246 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |1        |240 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|1        |240 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |1        |240 |
 | 
						|
|6 |      TABLE SCAN             |t2      |1        |240 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |1        |29  |
 | 
						|
|8 |    TABLE GET                |t1      |1        |29  |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(CASE WHEN (T_OP_IS_NOT, t1.c1, NULL, 0) THEN 1 ELSE 0 END)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t2.c2]), batch_join=false
 | 
						|
  3 - output([PARTITION_ID], [t2.c2]), filter(nil)
 | 
						|
  4 - (#keys=1, [t2.c2]), output([PARTITION_ID], [t2.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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.
 | 
						|
  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 397(end)  ************** 
 | 
						|
 | 
						|
***************   Case 398   ***************
 | 
						|
 | 
						|
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 |PX COORDINATOR                  |        |90       |1388|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|90       |1369|
 | 
						|
|2 |  HASH JOIN                     |        |90       |1330|
 | 
						|
|3 |   PX PARTITION ITERATOR        |        |200      |155 |
 | 
						|
|4 |    TABLE SCAN                  |t3      |200      |155 |
 | 
						|
|5 |   EXCHANGE IN DISTR            |        |300      |1055|
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|300      |1004|
 | 
						|
|7 |     HASH JOIN                  |        |300      |897 |
 | 
						|
|8 |      EXCHANGE IN DISTR         |        |300      |317 |
 | 
						|
|9 |       EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |289 |
 | 
						|
|10|        PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|11|         TABLE SCAN             |t2      |300      |233 |
 | 
						|
|12|      PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|13|       TABLE SCAN               |t1      |500      |387 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      equal_conds([t1.c2 = t3.c1]), other_conds([t2.c2 >= t3.c1])
 | 
						|
  3 - output([t3.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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.c2], [t1.c1], [t2.c2]), filter(nil)
 | 
						|
  6 - (#keys=1, [t1.c2]), output([t1.c2], [t1.c1], [t2.c2]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c2], [t1.c1], [t2.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  8 - output([t2.c1], [t2.c2]), filter(nil)
 | 
						|
  9 - (#keys=1, [t2.c1]), output([t2.c1], [t2.c2]), filter(nil), dop=1
 | 
						|
  10 - output([t2.c1], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  12 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 398(end)  ************** 
 | 
						|
 | 
						|
***************   Case 399   ***************
 | 
						|
 | 
						|
SQL: select * from (select c1 from t4 group by "adg") as a; 
 | 
						|
 | 
						|
================================================
 | 
						|
|ID|OPERATOR      |NAME         |EST. ROWS|COST|
 | 
						|
------------------------------------------------
 | 
						|
|0 |MERGE GROUP BY|             |1        |80  |
 | 
						|
|1 | TABLE SCAN   |t4(idx_t4_c2)|100      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 399(end)  ************** 
 | 
						|
 | 
						|
***************   Case 400   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 having count(c2)>0; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |1        |405 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |405 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |405 |
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |405 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1      |500      |387 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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 400(end)  ************** 
 | 
						|
 | 
						|
***************   Case 401   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 having 3<(select 2); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), startup_filter([0])
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 401(end)  ************** 
 | 
						|
 | 
						|
***************   Case 402   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 having c1>(select 1); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |475      |462 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|475      |436 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |475      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |475      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 402(end)  ************** 
 | 
						|
 | 
						|
***************   Case 403   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 group by -1 having 3<(select 2); 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |MERGE GROUP BY           |        |1        |396 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |396 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |396 |
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |396 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1      |500      |387 |
 | 
						|
======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1]), filter(nil), startup_filter([0]), 
 | 
						|
      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.
 | 
						|
  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 403(end)  ************** 
 | 
						|
 | 
						|
***************   Case 404   ***************
 | 
						|
 | 
						|
SQL: select * from t4 where c1 =1 order by c2; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 404(end)  ************** 
 | 
						|
 | 
						|
***************   Case 405   ***************
 | 
						|
 | 
						|
SQL: select * from t4 where c1 =1 group by c2; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 405(end)  ************** 
 | 
						|
 | 
						|
***************   Case 406   ***************
 | 
						|
 | 
						|
SQL: select * from t19 where c1 = 1 order by c2, c3, c4; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t19 |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 406(end)  ************** 
 | 
						|
 | 
						|
***************   Case 407   ***************
 | 
						|
 | 
						|
SQL: select * from t19 where c1 = 1 group by c2, c3, c4; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t19 |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 407(end)  ************** 
 | 
						|
 | 
						|
***************   Case 408   ***************
 | 
						|
 | 
						|
SQL: select * from t19 where c1 = 1 and c3 = 1 order by c2, c4; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t19 |9        |79  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t19.c1], [t19.c2], [t19.c3], [t19.c4], [t19.c5]), filter([t19.c3 = ?]), 
 | 
						|
      access([t19.c1], [t19.c2], [t19.c3], [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 408(end)  ************** 
 | 
						|
 | 
						|
***************   Case 409   ***************
 | 
						|
 | 
						|
SQL: select * from t19 where c1 = 1 and c3 = 1 group by c2, c4; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t19 |9        |79  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t19.c1], [t19.c2], [t19.c3], [t19.c4], [t19.c5]), filter([t19.c3 = ?]), 
 | 
						|
      access([t19.c1], [t19.c2], [t19.c3], [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 409(end)  ************** 
 | 
						|
 | 
						|
***************   Case 410   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 where c2 =1 order by c2, c1 desc; 
 | 
						|
 | 
						|
==========================================
 | 
						|
|ID|OPERATOR  |NAME       |EST. ROWS|COST|
 | 
						|
------------------------------------------
 | 
						|
|0 |TABLE SCAN|t7(Reverse)|9        |79  |
 | 
						|
==========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), 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
 | 
						|
 | 
						|
*************** Case 410(end)  ************** 
 | 
						|
 | 
						|
***************   Case 411   ***************
 | 
						|
 | 
						|
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)|9        |79  |
 | 
						|
==========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), 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
 | 
						|
 | 
						|
*************** Case 411(end)  ************** 
 | 
						|
 | 
						|
***************   Case 412   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 group by (select c1 from t8), c2; 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |HASH GROUP BY  |    |10       |183 |
 | 
						|
|1 | SUBPLAN FILTER|    |100      |157 |
 | 
						|
|2 |  TABLE SCAN   |t7  |100      |78  |
 | 
						|
|3 |  TABLE SCAN   |t8  |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), 
 | 
						|
      group([t7.c2]), agg_func(nil)
 | 
						|
  1 - output([t7.c2], [t7.c1]), 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 412(end)  ************** 
 | 
						|
 | 
						|
***************   Case 413   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 group by (select c1 from t8) desc, c2 desc; 
 | 
						|
 | 
						|
=========================================
 | 
						|
|ID|OPERATOR        |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------------
 | 
						|
|0 |SORT            |    |10       |186 |
 | 
						|
|1 | HASH GROUP BY  |    |10       |183 |
 | 
						|
|2 |  SUBPLAN FILTER|    |100      |157 |
 | 
						|
|3 |   TABLE SCAN   |t7  |100      |78  |
 | 
						|
|4 |   TABLE SCAN   |t8  |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, DESC])
 | 
						|
  1 - output([t7.c2], [t7.c1]), filter(nil), 
 | 
						|
      group([t7.c2]), agg_func(nil)
 | 
						|
  2 - output([t7.c2], [t7.c1]), 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 413(end)  ************** 
 | 
						|
 | 
						|
***************   Case 414   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 group by (select c1 from t8) asc, c2 asc; 
 | 
						|
 | 
						|
=========================================
 | 
						|
|ID|OPERATOR        |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------------
 | 
						|
|0 |SORT            |    |10       |186 |
 | 
						|
|1 | HASH GROUP BY  |    |10       |183 |
 | 
						|
|2 |  SUBPLAN FILTER|    |100      |157 |
 | 
						|
|3 |   TABLE SCAN   |t7  |100      |78  |
 | 
						|
|4 |   TABLE SCAN   |t8  |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, ASC])
 | 
						|
  1 - output([t7.c2], [t7.c1]), filter(nil), 
 | 
						|
      group([t7.c2]), agg_func(nil)
 | 
						|
  2 - output([t7.c2], [t7.c1]), 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 414(end)  ************** 
 | 
						|
 | 
						|
***************   Case 415   ***************
 | 
						|
 | 
						|
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            |           |10       |186 |
 | 
						|
|1 | HASH GROUP BY  |           |10       |183 |
 | 
						|
|2 |  SUBPLAN FILTER|           |100      |157 |
 | 
						|
|3 |   TABLE SCAN   |t7(Reverse)|100      |78  |
 | 
						|
|4 |   TABLE SCAN   |t8         |100      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 415(end)  ************** 
 | 
						|
 | 
						|
***************   Case 416   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 group by c2 desc order by c2 asc; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SORT          |    |10       |107 |
 | 
						|
|1 | HASH GROUP BY|    |10       |104 |
 | 
						|
|2 |  TABLE SCAN  |t7  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, ASC])
 | 
						|
  1 - output([t7.c2], [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
 | 
						|
 | 
						|
*************** Case 416(end)  ************** 
 | 
						|
 | 
						|
***************   Case 417   ***************
 | 
						|
 | 
						|
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             |    |10       |263 |
 | 
						|
|1 | SUBPLAN FILTER  |    |10       |261 |
 | 
						|
|2 |  HASH GROUP BY  |    |10       |183 |
 | 
						|
|3 |   SUBPLAN FILTER|    |100      |157 |
 | 
						|
|4 |    TABLE SCAN   |t7  |100      |78  |
 | 
						|
|5 |    TABLE SCAN   |t8  |100      |78  |
 | 
						|
|6 |  TABLE SCAN     |t8  |100      |78  |
 | 
						|
==========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, ASC])
 | 
						|
  1 - output([t7.c2], [t7.c1]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  2 - output([t7.c2], [t7.c1]), filter(nil), 
 | 
						|
      group([t7.c2]), agg_func(nil)
 | 
						|
  3 - output([t7.c2], [t7.c1]), 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 417(end)  ************** 
 | 
						|
 | 
						|
***************   Case 418   ***************
 | 
						|
 | 
						|
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             |    |10       |263 |
 | 
						|
|1 | SUBPLAN FILTER  |    |10       |261 |
 | 
						|
|2 |  HASH GROUP BY  |    |10       |183 |
 | 
						|
|3 |   SUBPLAN FILTER|    |100      |157 |
 | 
						|
|4 |    TABLE SCAN   |t7  |100      |78  |
 | 
						|
|5 |    TABLE SCAN   |t8  |100      |78  |
 | 
						|
|6 |  TABLE SCAN     |t8  |100      |78  |
 | 
						|
==========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, ASC])
 | 
						|
  1 - output([t7.c2], [t7.c1]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  2 - output([t7.c2], [t7.c1]), filter(nil), 
 | 
						|
      group([t7.c2]), agg_func(nil)
 | 
						|
  3 - output([t7.c2], [t7.c1]), 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 418(end)  ************** 
 | 
						|
 | 
						|
***************   Case 419   ***************
 | 
						|
 | 
						|
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             |    |10       |263 |
 | 
						|
|1 | SUBPLAN FILTER  |    |10       |261 |
 | 
						|
|2 |  HASH GROUP BY  |    |10       |183 |
 | 
						|
|3 |   SUBPLAN FILTER|    |100      |157 |
 | 
						|
|4 |    TABLE SCAN   |t7  |100      |78  |
 | 
						|
|5 |    TABLE SCAN   |t8  |100      |78  |
 | 
						|
|6 |  TABLE SCAN     |t8  |100      |78  |
 | 
						|
==========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, DESC])
 | 
						|
  1 - output([t7.c2], [t7.c1]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  2 - output([t7.c2], [t7.c1]), filter(nil), 
 | 
						|
      group([t7.c2]), agg_func(nil)
 | 
						|
  3 - output([t7.c2], [t7.c1]), 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 419(end)  ************** 
 | 
						|
 | 
						|
***************   Case 420   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 group by (select c1 from t8) desc, c2 desc; 
 | 
						|
 | 
						|
=========================================
 | 
						|
|ID|OPERATOR        |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------------
 | 
						|
|0 |SORT            |    |10       |186 |
 | 
						|
|1 | HASH GROUP BY  |    |10       |183 |
 | 
						|
|2 |  SUBPLAN FILTER|    |100      |157 |
 | 
						|
|3 |   TABLE SCAN   |t7  |100      |78  |
 | 
						|
|4 |   TABLE SCAN   |t8  |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, DESC])
 | 
						|
  1 - output([t7.c2], [t7.c1]), filter(nil), 
 | 
						|
      group([t7.c2]), agg_func(nil)
 | 
						|
  2 - output([t7.c2], [t7.c1]), 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 420(end)  ************** 
 | 
						|
 | 
						|
***************   Case 421   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 group by c2 desc order by c2 asc, c1 desc; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SORT          |    |10       |107 |
 | 
						|
|1 | HASH GROUP BY|    |10       |104 |
 | 
						|
|2 |  TABLE SCAN  |t7  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, ASC], [t7.c1, DESC])
 | 
						|
  1 - output([t7.c2], [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
 | 
						|
 | 
						|
*************** Case 421(end)  ************** 
 | 
						|
 | 
						|
***************   Case 422   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 group by c2 order by c2 asc, c1 desc; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SORT          |    |10       |107 |
 | 
						|
|1 | HASH GROUP BY|    |10       |104 |
 | 
						|
|2 |  TABLE SCAN  |t7  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, ASC], [t7.c1, DESC])
 | 
						|
  1 - output([t7.c2], [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
 | 
						|
 | 
						|
*************** Case 422(end)  ************** 
 | 
						|
 | 
						|
***************   Case 423   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 order by c2 asc, c1 desc; 
 | 
						|
 | 
						|
====================================
 | 
						|
|ID|OPERATOR   |NAME|EST. ROWS|COST|
 | 
						|
------------------------------------
 | 
						|
|0 |SORT       |    |100      |135 |
 | 
						|
|1 | TABLE SCAN|t7  |100      |78  |
 | 
						|
====================================
 | 
						|
 | 
						|
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 423(end)  ************** 
 | 
						|
 | 
						|
***************   Case 424   ***************
 | 
						|
 | 
						|
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        |236 |
 | 
						|
|1 | MERGE GROUP BY |    |1        |159 |
 | 
						|
|2 |  SUBPLAN FILTER|    |100      |157 |
 | 
						|
|3 |   TABLE SCAN   |t7  |100      |78  |
 | 
						|
|4 |   TABLE SCAN   |t8  |100      |78  |
 | 
						|
|5 | TABLE SCAN     |t8  |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 424(end)  ************** 
 | 
						|
 | 
						|
***************   Case 425   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 group by (select c1 from t8) asc; 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |MERGE GROUP BY |    |1        |159 |
 | 
						|
|1 | SUBPLAN FILTER|    |100      |157 |
 | 
						|
|2 |  TABLE SCAN   |t7  |100      |78  |
 | 
						|
|3 |  TABLE SCAN   |t8  |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
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 425(end)  ************** 
 | 
						|
 | 
						|
***************   Case 426   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 group by c2 order by c2, c1; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SORT          |    |10       |107 |
 | 
						|
|1 | HASH GROUP BY|    |10       |104 |
 | 
						|
|2 |  TABLE SCAN  |t7  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter(nil), sort_keys([t7.c2, ASC], [t7.c1, ASC])
 | 
						|
  1 - output([t7.c2], [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
 | 
						|
 | 
						|
*************** Case 426(end)  ************** 
 | 
						|
 | 
						|
***************   Case 427   ***************
 | 
						|
 | 
						|
SQL: select avg(c2), count(c2) from t2; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |1        |249 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |249 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |249 |
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |249 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|5 |     TABLE SCAN          |t2      |300      |233 |
 | 
						|
======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_SUM(T_FUN_SUM(t2.c2)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c2)), DECIMAL(20, 0))], [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_COUNT(t2.c2)], [T_FUN_SUM(t2.c2)]), filter(nil)
 | 
						|
  2 - output([T_FUN_COUNT(t2.c2)], [T_FUN_SUM(t2.c2)]), filter(nil), dop=1
 | 
						|
  3 - output([T_FUN_COUNT(t2.c2)], [T_FUN_SUM(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.
 | 
						|
  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 427(end)  ************** 
 | 
						|
 | 
						|
***************   Case 428   ***************
 | 
						|
 | 
						|
SQL: select count(c2) from t7 group by c2; 
 | 
						|
 | 
						|
======================================
 | 
						|
|ID|OPERATOR     |NAME|EST. ROWS|COST|
 | 
						|
--------------------------------------
 | 
						|
|0 |HASH GROUP BY|    |10       |106 |
 | 
						|
|1 | TABLE SCAN  |t7  |100      |78  |
 | 
						|
======================================
 | 
						|
 | 
						|
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 428(end)  ************** 
 | 
						|
 | 
						|
***************   Case 429   ***************
 | 
						|
 | 
						|
SQL: select sum(c2) from t7 group by c2; 
 | 
						|
 | 
						|
======================================
 | 
						|
|ID|OPERATOR     |NAME|EST. ROWS|COST|
 | 
						|
--------------------------------------
 | 
						|
|0 |HASH GROUP BY|    |10       |106 |
 | 
						|
|1 | TABLE SCAN  |t7  |100      |78  |
 | 
						|
======================================
 | 
						|
 | 
						|
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 429(end)  ************** 
 | 
						|
 | 
						|
***************   Case 430   ***************
 | 
						|
 | 
						|
SQL: select avg(distinct c1), count(c2) from t2; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |1        |255 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |255 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |254 |
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |254 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|5 |     TABLE SCAN          |t2      |300      |233 |
 | 
						|
======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_SUM(T_FUN_SUM(t2.c1)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1)), DECIMAL(20, 0))], [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_COUNT(t2.c2)], [T_FUN_SUM(t2.c1)], [T_FUN_COUNT(t2.c1)]), filter(nil)
 | 
						|
  2 - output([T_FUN_COUNT(t2.c2)], [T_FUN_SUM(t2.c1)], [T_FUN_COUNT(t2.c1)]), filter(nil), dop=1
 | 
						|
  3 - output([T_FUN_COUNT(t2.c2)], [T_FUN_SUM(t2.c1)], [T_FUN_COUNT(t2.c1)]), 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.
 | 
						|
  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 430(end)  ************** 
 | 
						|
 | 
						|
***************   Case 431   ***************
 | 
						|
 | 
						|
SQL: select avg(distinct c1), count(c2) from t2 group by c1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |300      |317 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|300      |289 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|3 |   TABLE SCAN          |t2      |300      |233 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(cast(t2.c1, DECIMAL(11, 0)) / cast(CASE WHEN (T_OP_IS_NOT, t2.c1, NULL, 0) THEN 1 ELSE 0 END, DECIMAL(20, 0)), CASE WHEN (T_OP_IS_NOT, t2.c2, NULL, 0) THEN 1 ELSE 0 END)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(cast(t2.c1, DECIMAL(11, 0)) / cast(CASE WHEN (T_OP_IS_NOT, t2.c1, NULL, 0) THEN 1 ELSE 0 END, DECIMAL(20, 0)), CASE WHEN (T_OP_IS_NOT, t2.c2, NULL, 0) THEN 1 ELSE 0 END)]), filter(nil), dop=1
 | 
						|
  2 - output([t2.c1], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - 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 431(end)  ************** 
 | 
						|
 | 
						|
***************   Case 432   ***************
 | 
						|
 | 
						|
SQL: select count(distinct c1) from t2 group by c2; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |100      |471 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|100      |454 |
 | 
						|
|2 |  HASH GROUP BY              |        |100      |419 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |100      |371 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)|:EX10000|100      |358 |
 | 
						|
|5 |     HASH GROUP BY           |        |100      |331 |
 | 
						|
|6 |      PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|7 |       TABLE SCAN            |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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 432(end)  ************** 
 | 
						|
 | 
						|
***************   Case 433   ***************
 | 
						|
 | 
						|
SQL: select count(distinct c1, c2) from t2 group by c2; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |100      |471 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|100      |454 |
 | 
						|
|2 |  HASH GROUP BY              |        |100      |419 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |100      |371 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)|:EX10000|100      |358 |
 | 
						|
|5 |     HASH GROUP BY           |        |100      |331 |
 | 
						|
|6 |      PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|7 |       TABLE SCAN            |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1, t2.c2)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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([t2.c2], [T_FUN_COUNT(t2.c1, t2.c2)]), filter(nil)
 | 
						|
  4 - (#keys=1, [t2.c2]), output([t2.c2], [T_FUN_COUNT(t2.c1, t2.c2)]), filter(nil), dop=1
 | 
						|
  5 - output([t2.c2], [T_FUN_COUNT(t2.c1, 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.
 | 
						|
  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 433(end)  ************** 
 | 
						|
 | 
						|
***************   Case 434   ***************
 | 
						|
 | 
						|
SQL: select sum(distinct c1) from t7 group by c2; 
 | 
						|
 | 
						|
======================================
 | 
						|
|ID|OPERATOR     |NAME|EST. ROWS|COST|
 | 
						|
--------------------------------------
 | 
						|
|0 |HASH GROUP BY|    |10       |106 |
 | 
						|
|1 | TABLE SCAN  |t7  |100      |78  |
 | 
						|
======================================
 | 
						|
 | 
						|
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 434(end)  ************** 
 | 
						|
 | 
						|
***************   Case 435   ***************
 | 
						|
 | 
						|
SQL: select count(distinct c2) from t2; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |1        |357 |
 | 
						|
|1 | PX COORDINATOR          |        |100      |353 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|100      |344 |
 | 
						|
|3 |   HASH GROUP BY         |        |100      |325 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|5 |     TABLE SCAN          |t2      |300      |233 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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 435(end)  ************** 
 | 
						|
 | 
						|
***************   Case 436   ***************
 | 
						|
 | 
						|
SQL: select sum(distinct c2) from t17; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |1        |357 |
 | 
						|
|1 | PX COORDINATOR          |        |100      |353 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|100      |344 |
 | 
						|
|3 |   HASH GROUP BY         |        |100      |325 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|5 |     TABLE SCAN          |t17     |300      |233 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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 436(end)  ************** 
 | 
						|
 | 
						|
***************   Case 437   ***************
 | 
						|
 | 
						|
SQL: select avg(distinct c1) from t1 group by c2; 
 | 
						|
 | 
						|
=================================================================
 | 
						|
|ID|OPERATOR                       |NAME         |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |             |100      |576 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001     |100      |550 |
 | 
						|
|2 |  MERGE GROUP BY               |             |100      |492 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|             |100      |483 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |465 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |             |100      |427 |
 | 
						|
|6 |      MERGE GROUP BY           |             |100      |427 |
 | 
						|
|7 |       TABLE SCAN              |t1(idx_t1_c2)|500      |387 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_SUM(T_FUN_SUM(t1.c1)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)), DECIMAL(20, 0)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(T_FUN_SUM(T_FUN_SUM(t1.c1)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(t1.c1)), DECIMAL(20, 0)))]), 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.
 | 
						|
  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 437(end)  ************** 
 | 
						|
 | 
						|
***************   Case 438   ***************
 | 
						|
 | 
						|
SQL: select count(distinct c2) from t2 group by c2; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |100      |532 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|100      |519 |
 | 
						|
|2 |  MERGE GROUP BY               |        |100      |491 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |100      |484 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000|100      |475 |
 | 
						|
|5 |     MERGE GROUP BY            |        |100      |456 |
 | 
						|
|6 |      SORT                     |        |300      |442 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|8 |        TABLE SCAN             |t2      |300      |233 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_COUNT(distinct t2.c2))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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 - (#keys=1, [t2.c2]), output([t2.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t2.c2]), filter(nil), 
 | 
						|
      group([t2.c2], [t2.c2]), agg_func(nil)
 | 
						|
  6 - output([t2.c2]), filter(nil), sort_keys([t2.c2, ASC], [t2.c2, ASC])
 | 
						|
  7 - output([t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 438(end)  ************** 
 | 
						|
 | 
						|
***************   Case 439   ***************
 | 
						|
 | 
						|
SQL: select count(distinct c1) from t2 group by c2; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |100      |471 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|100      |454 |
 | 
						|
|2 |  HASH GROUP BY              |        |100      |419 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |100      |371 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)|:EX10000|100      |358 |
 | 
						|
|5 |     HASH GROUP BY           |        |100      |331 |
 | 
						|
|6 |      PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|7 |       TABLE SCAN            |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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 439(end)  ************** 
 | 
						|
 | 
						|
***************   Case 440   ***************
 | 
						|
 | 
						|
SQL: select sum(distinct c2) from t15 group by c3; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |100      |1178|
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|100      |1149|
 | 
						|
|2 |  MERGE GROUP BY               |        |100      |1085|
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |400      |1059|
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000|400      |961 |
 | 
						|
|5 |     MERGE GROUP BY            |        |400      |750 |
 | 
						|
|6 |      SORT                     |        |400      |724 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |        |400      |310 |
 | 
						|
|8 |        TABLE SCAN             |t15     |400      |310 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_SUM(distinct t15.c2))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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 - (#keys=1, [t15.c3, VARCHAR, 32]), output([t15.c2], [t15.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t15.c2], [t15.c3]), filter(nil), 
 | 
						|
      group([t15.c3], [t15.c2]), agg_func(nil)
 | 
						|
  6 - output([t15.c2], [t15.c3]), filter(nil), sort_keys([t15.c3, ASC], [t15.c2, ASC])
 | 
						|
  7 - output([t15.c2], [t15.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 440(end)  ************** 
 | 
						|
 | 
						|
***************   Case 441   ***************
 | 
						|
 | 
						|
SQL: select sum(distinct c1) from t15 group by c3; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |100      |926 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|100      |896 |
 | 
						|
|2 |  MERGE GROUP BY               |        |100      |830 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |100      |822 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000|100      |797 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |        |100      |742 |
 | 
						|
|6 |      MERGE GROUP BY           |        |100      |742 |
 | 
						|
|7 |       SORT                    |        |400      |716 |
 | 
						|
|8 |        TABLE SCAN             |t15     |400      |310 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_SUM(T_FUN_SUM(distinct t15.c1)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(T_FUN_SUM(T_FUN_SUM(distinct t15.c1)))]), filter(nil), dop=1
 | 
						|
  2 - output([T_FUN_SUM(T_FUN_SUM(distinct t15.c1))]), filter(nil), 
 | 
						|
      group([t15.c3]), agg_func([T_FUN_SUM(T_FUN_SUM(distinct t15.c1))])
 | 
						|
  3 - output([T_FUN_SUM(distinct t15.c1)], [t15.c3]), filter(nil), sort_keys([t15.c3, ASC]), Local Order
 | 
						|
  4 - (#keys=1, [t15.c3, VARCHAR, 32]), output([T_FUN_SUM(distinct t15.c1)], [t15.c3]), filter(nil), dop=1
 | 
						|
  5 - output([T_FUN_SUM(distinct t15.c1)], [t15.c3]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  6 - output([T_FUN_SUM(distinct t15.c1)], [t15.c3]), filter(nil), 
 | 
						|
      group([t15.c3]), agg_func([T_FUN_SUM(distinct t15.c1)])
 | 
						|
  7 - output([t15.c1], [t15.c3]), filter(nil), sort_keys([t15.c3, 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 441(end)  ************** 
 | 
						|
 | 
						|
***************   Case 442   ***************
 | 
						|
 | 
						|
SQL: select avg(distinct c2) from t15 group by c3; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |100      |1197|
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|100      |1164|
 | 
						|
|2 |  MERGE GROUP BY               |        |100      |1092|
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |400      |1059|
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000|400      |961 |
 | 
						|
|5 |     MERGE GROUP BY            |        |400      |750 |
 | 
						|
|6 |      SORT                     |        |400      |724 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |        |400      |310 |
 | 
						|
|8 |        TABLE SCAN             |t15     |400      |310 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_SUM(distinct t15.c2) / cast(T_FUN_COUNT(distinct t15.c2), DECIMAL(20, 0)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(T_FUN_SUM(distinct t15.c2) / cast(T_FUN_COUNT(distinct t15.c2), DECIMAL(20, 0)))]), 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 - (#keys=1, [t15.c3, VARCHAR, 32]), output([t15.c2], [t15.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t15.c2], [t15.c3]), filter(nil), 
 | 
						|
      group([t15.c3], [t15.c2]), agg_func(nil)
 | 
						|
  6 - output([t15.c2], [t15.c3]), filter(nil), sort_keys([t15.c3, ASC], [t15.c2, ASC])
 | 
						|
  7 - output([t15.c2], [t15.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 442(end)  ************** 
 | 
						|
 | 
						|
***************   Case 443   ***************
 | 
						|
 | 
						|
SQL: select avg(distinct c1) from t15 group by c3; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |100      |972 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|100      |935 |
 | 
						|
|2 |  MERGE GROUP BY               |        |100      |852 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |100      |841 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000|100      |812 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |        |100      |749 |
 | 
						|
|6 |      MERGE GROUP BY           |        |100      |749 |
 | 
						|
|7 |       SORT                    |        |400      |716 |
 | 
						|
|8 |        TABLE SCAN             |t15     |400      |310 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_SUM(T_FUN_SUM(distinct t15.c1)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(distinct t15.c1)), DECIMAL(20, 0)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(T_FUN_SUM(T_FUN_SUM(distinct t15.c1)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(distinct t15.c1)), DECIMAL(20, 0)))]), filter(nil), dop=1
 | 
						|
  2 - output([T_FUN_SUM(T_FUN_SUM(distinct t15.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(distinct t15.c1))]), filter(nil), 
 | 
						|
      group([t15.c3]), agg_func([T_FUN_SUM(T_FUN_SUM(distinct t15.c1))], [T_FUN_COUNT_SUM(T_FUN_COUNT(distinct t15.c1))])
 | 
						|
  3 - output([T_FUN_SUM(distinct t15.c1)], [T_FUN_COUNT(distinct t15.c1)], [t15.c3]), filter(nil), sort_keys([t15.c3, ASC]), Local Order
 | 
						|
  4 - (#keys=1, [t15.c3, VARCHAR, 32]), output([T_FUN_SUM(distinct t15.c1)], [T_FUN_COUNT(distinct t15.c1)], [t15.c3]), filter(nil), dop=1
 | 
						|
  5 - output([T_FUN_SUM(distinct t15.c1)], [T_FUN_COUNT(distinct t15.c1)], [t15.c3]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  6 - output([T_FUN_SUM(distinct t15.c1)], [T_FUN_COUNT(distinct t15.c1)], [t15.c3]), filter(nil), 
 | 
						|
      group([t15.c3]), agg_func([T_FUN_SUM(distinct t15.c1)], [T_FUN_COUNT(distinct t15.c1)])
 | 
						|
  7 - output([t15.c1], [t15.c3]), filter(nil), sort_keys([t15.c3, 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 443(end)  ************** 
 | 
						|
 | 
						|
***************   Case 444   ***************
 | 
						|
 | 
						|
SQL: select count(distinct c1, c2) from t15 group by c3; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |100      |944 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|100      |911 |
 | 
						|
|2 |  MERGE GROUP BY               |        |100      |842 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |100      |833 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000|100      |805 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |        |100      |743 |
 | 
						|
|6 |      MERGE GROUP BY           |        |100      |743 |
 | 
						|
|7 |       SORT                    |        |400      |717 |
 | 
						|
|8 |        TABLE SCAN             |t15     |400      |310 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_COUNT_SUM(T_FUN_COUNT(distinct t15.c1, t15.c2)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(T_FUN_COUNT_SUM(T_FUN_COUNT(distinct t15.c1, t15.c2)))]), filter(nil), dop=1
 | 
						|
  2 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(distinct t15.c1, t15.c2))]), filter(nil), 
 | 
						|
      group([t15.c3]), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(distinct t15.c1, t15.c2))])
 | 
						|
  3 - output([T_FUN_COUNT(distinct t15.c1, t15.c2)], [t15.c3]), filter(nil), sort_keys([t15.c3, ASC]), Local Order
 | 
						|
  4 - (#keys=1, [t15.c3, VARCHAR, 32]), output([T_FUN_COUNT(distinct t15.c1, t15.c2)], [t15.c3]), filter(nil), dop=1
 | 
						|
  5 - output([T_FUN_COUNT(distinct t15.c1, t15.c2)], [t15.c3]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  6 - output([T_FUN_COUNT(distinct t15.c1, t15.c2)], [t15.c3]), filter(nil), 
 | 
						|
      group([t15.c3]), agg_func([T_FUN_COUNT(distinct t15.c1, t15.c2)])
 | 
						|
  7 - output([t15.c1], [t15.c2], [t15.c3]), filter(nil), sort_keys([t15.c3, 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 444(end)  ************** 
 | 
						|
 | 
						|
***************   Case 445   ***************
 | 
						|
 | 
						|
SQL: select count(distinct c1, c2) from t17 group by c2; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |100      |653 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|100      |636 |
 | 
						|
|2 |  MERGE GROUP BY               |        |100      |600 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |300      |581 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000|300      |542 |
 | 
						|
|5 |     MERGE GROUP BY            |        |300      |460 |
 | 
						|
|6 |      SORT                     |        |300      |444 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|8 |        TABLE SCAN             |t17     |300      |233 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_COUNT(distinct t17.c1, t17.c2))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.c2], [t17.c1]), filter(nil), sort_keys([t17.c2, ASC])
 | 
						|
  4 - (#keys=1, [t17.c2]), output([t17.c2], [t17.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t17.c2], [t17.c1]), filter(nil), 
 | 
						|
      group([t17.c2], [t17.c1], [t17.c2]), agg_func(nil)
 | 
						|
  6 - output([t17.c2], [t17.c1]), filter(nil), sort_keys([t17.c2, ASC], [t17.c1, ASC], [t17.c2, ASC])
 | 
						|
  7 - output([t17.c1], [t17.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - output([t17.c1], [t17.c2]), filter(nil), 
 | 
						|
      access([t17.c1], [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 445(end)  ************** 
 | 
						|
 | 
						|
***************   Case 446   ***************
 | 
						|
 | 
						|
SQL: select sum(distinct c1) from t17 group by c2; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |100      |655 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|100      |638 |
 | 
						|
|2 |  MERGE GROUP BY               |        |100      |600 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |300      |580 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000|300      |541 |
 | 
						|
|5 |     MERGE GROUP BY            |        |300      |459 |
 | 
						|
|6 |      SORT                     |        |300      |443 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|8 |        TABLE SCAN             |t17     |300      |233 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_SUM(distinct t17.c1))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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 - (#keys=1, [t17.c2]), output([t17.c1], [t17.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t17.c1], [t17.c2]), filter(nil), 
 | 
						|
      group([t17.c2], [t17.c1]), agg_func(nil)
 | 
						|
  6 - output([t17.c1], [t17.c2]), filter(nil), sort_keys([t17.c2, ASC], [t17.c1, ASC])
 | 
						|
  7 - output([t17.c1], [t17.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - output([t17.c1], [t17.c2]), filter(nil), 
 | 
						|
      access([t17.c1], [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 446(end)  ************** 
 | 
						|
 | 
						|
***************   Case 447   ***************
 | 
						|
 | 
						|
SQL: select/*+index(t5 idx_t5_c3)*/ t3.c2 from t5, t3; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                  |NAME         |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|             |60000    |5625|
 | 
						|
|1 | PX COORDINATOR           |             |200      |187 |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000     |200      |176 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |             |200      |155 |
 | 
						|
|4 |    TABLE SCAN            |t3           |200      |155 |
 | 
						|
|5 | MATERIAL                 |             |300      |281 |
 | 
						|
|6 |  PX COORDINATOR          |             |300      |280 |
 | 
						|
|7 |   EXCHANGE OUT DISTR     |:EX20000     |300      |263 |
 | 
						|
|8 |    PX PARTITION ITERATOR |             |300      |233 |
 | 
						|
|9 |     TABLE SCAN           |t5(idx_t5_c3)|300      |233 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t3.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t3.c2]), filter(nil)
 | 
						|
  2 - output([t3.c2]), filter(nil), dop=1
 | 
						|
  3 - output([t3.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  4 - 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
 | 
						|
  5 - output(nil), filter(nil)
 | 
						|
  6 - output(nil), filter(nil)
 | 
						|
  7 - output(nil), filter(nil), dop=1
 | 
						|
  8 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  9 - output(nil), filter(nil), 
 | 
						|
      access([t5.c2]), partitions(p[0-2]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t5.c3], [t5.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 447(end)  ************** 
 | 
						|
 | 
						|
***************   Case 448   ***************
 | 
						|
 | 
						|
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        |280 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|6        |279 |
 | 
						|
|2 |  NESTED-LOOP JOIN           |        |6        |278 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |6        |242 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|6        |241 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |6        |240 |
 | 
						|
|6 |      TABLE SCAN             |t2      |6        |240 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |1        |29  |
 | 
						|
|8 |    TABLE GET                |t1      |1        |29  |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t2.c1], [t2.c2], [t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t2.c1]), batch_join=false
 | 
						|
  3 - output([t2.c1], [PARTITION_ID], [t2.c2]), filter(nil)
 | 
						|
  4 - (#keys=1, [t2.c1]), output([t2.c1], [PARTITION_ID], [t2.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t2.c1], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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.
 | 
						|
  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 448(end)  ************** 
 | 
						|
 | 
						|
***************   Case 449   ***************
 | 
						|
 | 
						|
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 RIGHT OUTER JOIN|            |62       |403 |
 | 
						|
|1 | TABLE SCAN          |GRANDPARENT2|100      |78  |
 | 
						|
|2 | HASH SEMI JOIN      |            |61       |257 |
 | 
						|
|3 |  TABLE SCAN         |GRANDPARENT1|87       |80  |
 | 
						|
|4 |  TABLE SCAN         |PARENT1     |100      |78  |
 | 
						|
======================================================
 | 
						|
 | 
						|
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([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
 | 
						|
  2 - 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 > ?])
 | 
						|
  3 - 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
 | 
						|
  4 - 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
 | 
						|
 | 
						|
*************** Case 449(end)  ************** 
 | 
						|
 | 
						|
***************   Case 450   ***************
 | 
						|
 | 
						|
SQL: SELECT * FROM sbtest WHERE c1=1; 
 | 
						|
 | 
						|
====================================
 | 
						|
|ID|OPERATOR |NAME  |EST. ROWS|COST|
 | 
						|
------------------------------------
 | 
						|
|0 |TABLE GET|sbtest|1        |46  |
 | 
						|
====================================
 | 
						|
 | 
						|
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 450(end)  ************** 
 | 
						|
 | 
						|
***************   Case 451   ***************
 | 
						|
 | 
						|
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        |93  |
 | 
						|
|1 | EXCHANGE OUT REMOTE              |    |1        |93  |
 | 
						|
|2 |  NESTED-LOOP OUTER JOIN CARTESIAN|    |1        |92  |
 | 
						|
|3 |   TABLE GET                      |t1  |1        |46  |
 | 
						|
|4 |   TABLE GET                      |b   |1        |46  |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([cast(?, INT(11, 0))]), filter(nil)
 | 
						|
  1 - output([cast(?, INT(11, 0))]), filter(nil)
 | 
						|
  2 - output([cast(?, INT(11, 0))]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  3 - output(nil), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p1), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range[1 ; 1], 
 | 
						|
      range_cond([t1.c1 = ?])
 | 
						|
  4 - output(nil), filter(nil), 
 | 
						|
      access([b.c1]), partitions(p1), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([b.c1]), range[1 ; 1], 
 | 
						|
      range_cond([b.c1 = ?])
 | 
						|
 | 
						|
*************** Case 451(end)  ************** 
 | 
						|
 | 
						|
***************   Case 452   ***************
 | 
						|
 | 
						|
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        |141 |
 | 
						|
|1 | TABLE GET                      |t1      |1        |46  |
 | 
						|
|2 | PX COORDINATOR                 |        |1        |46  |
 | 
						|
|3 |  EXCHANGE OUT DISTR            |:EX10000|1        |46  |
 | 
						|
|4 |   TABLE GET                    |b       |1        |46  |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([cast(?, INT(11, 0))]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output(nil), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range[5 ; 5], 
 | 
						|
      range_cond([t1.c1 = ?])
 | 
						|
  2 - output(nil), filter(nil)
 | 
						|
  3 - output(nil), filter(nil), is_single, dop=1
 | 
						|
  4 - output(nil), filter(nil), 
 | 
						|
      access([b.c1]), partitions(p2), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([b.c1]), range[5 ; 5], 
 | 
						|
      range_cond([b.c1 = ?])
 | 
						|
 | 
						|
*************** Case 452(end)  ************** 
 | 
						|
 | 
						|
***************   Case 453   ***************
 | 
						|
 | 
						|
SQL: select * from t1, t2 order by t1.c1 limit 10; 
 | 
						|
 | 
						|
===========================================================
 | 
						|
|ID|OPERATOR                      |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------
 | 
						|
|0 |LIMIT                         |        |10       |377 |
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN   |        |10       |377 |
 | 
						|
|2 |  SUBPLAN SCAN                |VIEW1   |1        |230 |
 | 
						|
|3 |   LIMIT                      |        |1        |230 |
 | 
						|
|4 |    PX COORDINATOR MERGE SORT |        |1        |230 |
 | 
						|
|5 |     EXCHANGE OUT DISTR       |:EX10000|1        |230 |
 | 
						|
|6 |      TOP-N SORT              |        |1        |230 |
 | 
						|
|7 |       PX PARTITION ITERATOR  |        |10       |227 |
 | 
						|
|8 |        TABLE SCAN            |t1      |10       |227 |
 | 
						|
|9 |  MATERIAL                    |        |10       |145 |
 | 
						|
|10|   SUBPLAN SCAN               |VIEW2   |10       |145 |
 | 
						|
|11|    LIMIT                     |        |10       |145 |
 | 
						|
|12|     PX COORDINATOR           |        |10       |145 |
 | 
						|
|13|      EXCHANGE OUT DISTR      |:EX20000|10       |142 |
 | 
						|
|14|       LIMIT                  |        |10       |137 |
 | 
						|
|15|        PX PARTITION ITERATOR |        |10       |137 |
 | 
						|
|16|         TABLE SCAN           |t2      |10       |137 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([VIEW1.t1.c1], [VIEW1.t1.c2], [VIEW2.t2.c1], [VIEW2.t2.c2], [VIEW2.t2.c3]), filter(nil), limit(10), offset(nil)
 | 
						|
  1 - output([VIEW1.t1.c1], [VIEW1.t1.c2], [VIEW2.t2.c1], [VIEW2.t2.c2], [VIEW2.t2.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  2 - output([VIEW1.t1.c1], [VIEW1.t1.c2]), filter(nil), 
 | 
						|
      access([VIEW1.t1.c1], [VIEW1.t1.c2])
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), limit(10), offset(nil)
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC])
 | 
						|
  5 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  6 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), topn(10), local merge sort
 | 
						|
  7 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - 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(MIN ; MAX)always true
 | 
						|
  9 - output([VIEW2.t2.c1], [VIEW2.t2.c2], [VIEW2.t2.c3]), filter(nil)
 | 
						|
  10 - output([VIEW2.t2.c1], [VIEW2.t2.c2], [VIEW2.t2.c3]), filter(nil), 
 | 
						|
      access([VIEW2.t2.c1], [VIEW2.t2.c2], [VIEW2.t2.c3])
 | 
						|
  11 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), limit(10), offset(nil)
 | 
						|
  12 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  13 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
 | 
						|
  14 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), limit(10), offset(nil)
 | 
						|
  15 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  16 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2]), 
 | 
						|
      limit(10), offset(nil), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t2.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 453(end)  ************** 
 | 
						|
 | 
						|
***************   Case 454   ***************
 | 
						|
 | 
						|
SQL: select * from t1, t7 order by t1.c1 limit 10; 
 | 
						|
 | 
						|
===========================================================
 | 
						|
|ID|OPERATOR                      |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------
 | 
						|
|0 |LIMIT                         |        |10       |278 |
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN   |        |10       |278 |
 | 
						|
|2 |  SUBPLAN SCAN                |VIEW1   |1        |230 |
 | 
						|
|3 |   LIMIT                      |        |1        |230 |
 | 
						|
|4 |    PX COORDINATOR MERGE SORT |        |1        |230 |
 | 
						|
|5 |     EXCHANGE OUT DISTR       |:EX10000|1        |230 |
 | 
						|
|6 |      TOP-N SORT              |        |1        |230 |
 | 
						|
|7 |       PX PARTITION ITERATOR  |        |10       |227 |
 | 
						|
|8 |        TABLE SCAN            |t1      |10       |227 |
 | 
						|
|9 |  MATERIAL                    |        |10       |46  |
 | 
						|
|10|   SUBPLAN SCAN               |VIEW2   |10       |46  |
 | 
						|
|11|    TABLE SCAN                |t7      |10       |46  |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([VIEW1.t1.c1], [VIEW1.t1.c2], [VIEW2.t7.c1], [VIEW2.t7.c2]), filter(nil), limit(10), offset(nil)
 | 
						|
  1 - output([VIEW1.t1.c1], [VIEW1.t1.c2], [VIEW2.t7.c1], [VIEW2.t7.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  2 - output([VIEW1.t1.c1], [VIEW1.t1.c2]), filter(nil), 
 | 
						|
      access([VIEW1.t1.c1], [VIEW1.t1.c2])
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), limit(10), offset(nil)
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC])
 | 
						|
  5 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  6 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), topn(10), local merge sort
 | 
						|
  7 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - 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(MIN ; MAX)always true
 | 
						|
  9 - output([VIEW2.t7.c1], [VIEW2.t7.c2]), filter(nil)
 | 
						|
  10 - output([VIEW2.t7.c1], [VIEW2.t7.c2]), filter(nil), 
 | 
						|
      access([VIEW2.t7.c1], [VIEW2.t7.c2])
 | 
						|
  11 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      access([t7.c1], [t7.c2]), partitions(p0), 
 | 
						|
      limit(10), offset(nil), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t7.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 454(end)  ************** 
 | 
						|
 | 
						|
***************   Case 455   ***************
 | 
						|
 | 
						|
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      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 455(end)  ************** 
 | 
						|
 | 
						|
***************   Case 456   ***************
 | 
						|
 | 
						|
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      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 456(end)  ************** 
 | 
						|
 | 
						|
***************   Case 457   ***************
 | 
						|
 | 
						|
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      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c1)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 457(end)  ************** 
 | 
						|
 | 
						|
***************   Case 458   ***************
 | 
						|
 | 
						|
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               |             |450      |1220|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001     |450      |1178|
 | 
						|
|2 |  HASH JOIN                  |             |450      |1093|
 | 
						|
|3 |   EXCHANGE IN DISTR         |             |500      |466 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000     |500      |439 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |             |500      |387 |
 | 
						|
|6 |      TABLE SCAN             |t1(idx_t1_c2)|500      |387 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |             |500      |387 |
 | 
						|
|8 |    TABLE SCAN               |t1           |500      |387 |
 | 
						|
===============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2, t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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)
 | 
						|
  4 - (#keys=1, [t1.c2]), output([t1.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 458(end)  ************** 
 | 
						|
 | 
						|
***************   Case 459   ***************
 | 
						|
 | 
						|
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                     |             |100      |1018|
 | 
						|
|1 | EXCHANGE OUT DISTR                |:EX10002     |100      |1009|
 | 
						|
|2 |  HASH JOIN                        |             |100      |990 |
 | 
						|
|3 |   EXCHANGE IN DISTR               |             |100      |460 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)      |:EX10001     |100      |454 |
 | 
						|
|5 |     SUBPLAN SCAN                  |a            |100      |444 |
 | 
						|
|6 |      MERGE GROUP BY               |             |100      |442 |
 | 
						|
|7 |       EXCHANGE IN MERGE SORT DISTR|             |100      |437 |
 | 
						|
|8 |        EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |428 |
 | 
						|
|9 |         PX PARTITION ITERATOR     |             |100      |409 |
 | 
						|
|10|          MERGE GROUP BY           |             |100      |409 |
 | 
						|
|11|           TABLE SCAN              |t1(idx_t1_c2)|500      |387 |
 | 
						|
|12|   PX PARTITION ITERATOR           |             |500      |387 |
 | 
						|
|13|    TABLE SCAN                     |t1           |500      |387 |
 | 
						|
=====================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(a.c2, t1.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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)
 | 
						|
  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.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  13 - 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 * FROM sbtest1 WHERE (c1, c2)=(1, NULL); 
 | 
						|
 | 
						|
======================================
 | 
						|
|ID|OPERATOR  |NAME   |EST. ROWS|COST|
 | 
						|
--------------------------------------
 | 
						|
|0 |TABLE SCAN|sbtest1|100      |78  |
 | 
						|
======================================
 | 
						|
 | 
						|
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 460(end)  ************** 
 | 
						|
 | 
						|
***************   Case 461   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where c1 = 65535; 
 | 
						|
 | 
						|
==================================
 | 
						|
|ID|OPERATOR |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------
 | 
						|
|0 |TABLE GET|t1  |1        |46  |
 | 
						|
==================================
 | 
						|
 | 
						|
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 461(end)  ************** 
 | 
						|
 | 
						|
***************   Case 462   ***************
 | 
						|
 | 
						|
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      |929 |
 | 
						|
|1 | EXCHANGE OUT DISTR           |:EX10001|300      |878 |
 | 
						|
|2 |  SORT                        |        |300      |771 |
 | 
						|
|3 |   HASH RIGHT OUTER JOIN      |        |300      |564 |
 | 
						|
|4 |    EXCHANGE IN DISTR         |        |200      |211 |
 | 
						|
|5 |     EXCHANGE OUT DISTR (PKEY)|:EX10000|200      |193 |
 | 
						|
|6 |      PX PARTITION ITERATOR   |        |200      |155 |
 | 
						|
|7 |       TABLE SCAN             |t6_1    |200      |155 |
 | 
						|
|8 |    PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|9 |     TABLE SCAN               |t6      |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t6.c1, t6.c2, t6_1.c1, t6_1.c2)]), filter(nil), sort_keys([t6.c2, DESC])
 | 
						|
  1 - output([t6.c2], [INTERNAL_FUNCTION(t6.c1, t6.c2, t6_1.c1, t6_1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t6.c2], [t6.c1], [t6_1.c1], [t6_1.c2]), filter(nil), sort_keys([t6.c2, DESC])
 | 
						|
  3 - output([t6.c2], [t6.c1], [t6_1.c1], [t6_1.c2]), filter(nil), 
 | 
						|
      equal_conds([t6.c1 = t6_1.c1]), other_conds(nil)
 | 
						|
  4 - output([t6_1.c1], [t6_1.c2]), filter(nil)
 | 
						|
  5 - (#keys=1, [t6_1.c1]), output([t6_1.c1], [t6_1.c2]), filter(nil), dop=1
 | 
						|
  6 - output([t6_1.c1], [t6_1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  7 - 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
 | 
						|
  8 - output([t6.c1], [t6.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 462(end)  ************** 
 | 
						|
 | 
						|
***************   Case 463   ***************
 | 
						|
 | 
						|
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      |722 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |672 |
 | 
						|
|2 |  HASH RIGHT OUTER JOIN      |        |300      |564 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |200      |211 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|200      |193 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |200      |155 |
 | 
						|
|6 |      TABLE SCAN             |t6_1    |200      |155 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t6      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t6.c1, t6.c2, t6_1.c1, t6_1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t6.c1, t6.c2, t6_1.c1, t6_1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t6.c1], [t6_1.c1], [t6_1.c2], [t6.c2]), filter(nil), 
 | 
						|
      equal_conds([t6.c1 = t6_1.c1]), other_conds(nil)
 | 
						|
  3 - output([t6_1.c1], [t6_1.c2]), filter(nil)
 | 
						|
  4 - (#keys=1, [t6_1.c1]), output([t6_1.c1], [t6_1.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t6_1.c1], [t6_1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
  7 - output([t6.c1], [t6.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  8 - 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 463(end)  ************** 
 | 
						|
 | 
						|
***************   Case 464   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where (0 = 1) or c1 = 1; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t1  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 464(end)  ************** 
 | 
						|
 | 
						|
***************   Case 465   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where (1 = 1) or c1 = 1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 465(end)  ************** 
 | 
						|
 | 
						|
***************   Case 466   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where 0 or c1 = 1; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |t1  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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 466(end)  ************** 
 | 
						|
 | 
						|
***************   Case 467   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where 1 or c1 = 1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 467(end)  ************** 
 | 
						|
 | 
						|
***************   Case 468   ***************
 | 
						|
 | 
						|
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   |8729|
 | 
						|
|1 | PX COORDINATOR           |        |300      |464 |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|300      |391 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN            |t2      |300      |233 |
 | 
						|
|5 | MATERIAL                 |        |500      |531 |
 | 
						|
|6 |  PX COORDINATOR          |        |500      |528 |
 | 
						|
|7 |   EXCHANGE OUT DISTR     |:EX20000|500      |481 |
 | 
						|
|8 |    PX PARTITION ITERATOR |        |500      |387 |
 | 
						|
|9 |     TABLE SCAN           |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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.
 | 
						|
  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 468(end)  ************** 
 | 
						|
 | 
						|
***************   Case 469   ***************
 | 
						|
 | 
						|
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 |PX COORDINATOR               |        |500      |1464|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|500      |1304|
 | 
						|
|2 |  HASH OUTER JOIN            |        |500      |954 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |500      |528 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |481 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|6 |      TABLE SCAN             |t1      |500      |387 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|8 |    TABLE SCAN               |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, ?, ?, ?)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, ?, ?, ?)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.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)
 | 
						|
  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.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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 469(end)  ************** 
 | 
						|
 | 
						|
***************   Case 470   ***************
 | 
						|
 | 
						|
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      |2578|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|500      |2305|
 | 
						|
|2 |  HASH OUTER JOIN               |        |500      |1700|
 | 
						|
|3 |   PX PARTITION ITERATOR        |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN                  |t1      |500      |387 |
 | 
						|
|5 |   EXCHANGE IN DISTR            |        |300      |1119|
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|300      |977 |
 | 
						|
|7 |     HASH RIGHT OUTER JOIN      |        |300      |665 |
 | 
						|
|8 |      EXCHANGE IN DISTR         |        |200      |310 |
 | 
						|
|9 |       EXCHANGE OUT DISTR (PKEY)|:EX10000|200      |261 |
 | 
						|
|10|        PX PARTITION ITERATOR   |        |200      |155 |
 | 
						|
|11|         TABLE SCAN             |t3      |200      |155 |
 | 
						|
|12|      PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|13|       TABLE SCAN               |t2      |300      |233 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3, t3.c1, t3.c2, t3.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t2.c1], [t1.c2], [t3.c1], [t3.c2], [t3.c3], [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.
 | 
						|
  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], [t3.c1], [t3.c2], [t3.c3], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  6 - (#keys=1, [t2.c1]), output([t2.c1], [t3.c1], [t3.c2], [t3.c3], [t2.c2], [t2.c3]), filter(nil), dop=1
 | 
						|
  7 - output([t2.c1], [t3.c1], [t3.c2], [t3.c3], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t2.c1 = t3.c1]), other_conds(nil)
 | 
						|
  8 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
 | 
						|
  9 - (#keys=1, [t3.c1]), output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
 | 
						|
  10 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  11 - 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
 | 
						|
  12 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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)always true
 | 
						|
 | 
						|
*************** Case 470(end)  ************** 
 | 
						|
 | 
						|
***************   Case 471   ***************
 | 
						|
 | 
						|
SQL: select c1, c2 from t1 group by c1 having (1 = 0 or c1 > 5); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |375      |339 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|375      |304 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |375      |234 |
 | 
						|
|3 |   TABLE SCAN          |t1      |375      |234 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 471(end)  ************** 
 | 
						|
 | 
						|
***************   Case 472   ***************
 | 
						|
 | 
						|
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               |        |225      |644 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|225      |615 |
 | 
						|
|2 |  HASH JOIN                  |        |225      |553 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |225      |176 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|225      |164 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |225      |141 |
 | 
						|
|6 |      TABLE SCAN             |t2      |225      |141 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |375      |234 |
 | 
						|
|8 |    TABLE SCAN               |t1      |375      |234 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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([t2.c1]), filter(nil)
 | 
						|
  4 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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 > ?])
 | 
						|
  7 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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(5 ; MAX), 
 | 
						|
      range_cond([t1.c1 > ?])
 | 
						|
 | 
						|
*************** Case 472(end)  ************** 
 | 
						|
 | 
						|
***************   Case 473   ***************
 | 
						|
 | 
						|
SQL: select * from t7,t8 where  concat(t7.c2, t8.c2) > 1; 
 | 
						|
 | 
						|
=========================================
 | 
						|
|ID|OPERATOR        |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN|    |3334     |1503|
 | 
						|
|1 | TABLE SCAN     |t7  |100      |78  |
 | 
						|
|2 | MATERIAL       |    |100      |79  |
 | 
						|
|3 |  TABLE SCAN    |t8  |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil), 
 | 
						|
      conds([cast(concat(cast(t7.c2, VARCHAR(1048576)), cast(t8.c2, VARCHAR(1048576))), DECIMAL(-1, -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([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 473(end)  ************** 
 | 
						|
 | 
						|
***************   Case 474   ***************
 | 
						|
 | 
						|
SQL: select exists(select 1) + 1; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |1        |1   |
 | 
						|
|1 | EXPRESSION   |    |1        |1   |
 | 
						|
|2 | LIMIT        |    |1        |1   |
 | 
						|
|3 |  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), limit(1), offset(nil)
 | 
						|
  3 - output([1]), filter(nil)
 | 
						|
      values({1})
 | 
						|
 | 
						|
*************** Case 474(end)  ************** 
 | 
						|
 | 
						|
***************   Case 475   ***************
 | 
						|
 | 
						|
SQL: select exists(select 1) + c1 from t7; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |80  |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | LIMIT        |    |1        |1   |
 | 
						|
|3 |  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), limit(1), offset(nil)
 | 
						|
  3 - output([1]), filter(nil)
 | 
						|
      values({1})
 | 
						|
 | 
						|
*************** Case 475(end)  ************** 
 | 
						|
 | 
						|
***************   Case 476   ***************
 | 
						|
 | 
						|
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      |193 |
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|           |1        |92  |
 | 
						|
|2 |  SUBPLAN SCAN             |VIEW1      |1        |46  |
 | 
						|
|3 |   SCALAR GROUP BY         |           |1        |46  |
 | 
						|
|4 |    SUBPLAN SCAN           |VIEW3      |1        |46  |
 | 
						|
|5 |     TABLE SCAN            |t7(Reverse)|1        |46  |
 | 
						|
|6 |  SUBPLAN SCAN             |VIEW2      |1        |46  |
 | 
						|
|7 |   SCALAR GROUP BY         |           |1        |46  |
 | 
						|
|8 |    SUBPLAN SCAN           |VIEW4      |1        |46  |
 | 
						|
|9 |     TABLE SCAN            |t8         |1        |46  |
 | 
						|
|10| TABLE SCAN                |t9         |100      |78  |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([VIEW1.max(c1) = VIEW2.min(c1)]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  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.t7.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(VIEW3.t7.c1)])
 | 
						|
  4 - output([VIEW3.t7.c1]), filter(nil), 
 | 
						|
      access([VIEW3.t7.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.t8.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MIN(VIEW4.t8.c1)])
 | 
						|
  8 - output([VIEW4.t8.c1]), filter(nil), 
 | 
						|
      access([VIEW4.t8.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(nil), filter(nil), 
 | 
						|
      access([t9.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t9.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 476(end)  ************** 
 | 
						|
 | 
						|
***************   Case 477   ***************
 | 
						|
 | 
						|
SQL: select 1 in (select c1 from t7) from t8; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |157 |
 | 
						|
|1 | TABLE SCAN   |t8  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([? = ANY(subquery(1))]), init_plan_idxs_(nil)
 | 
						|
  1 - output(nil), 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 477(end)  ************** 
 | 
						|
 | 
						|
***************   Case 478   ***************
 | 
						|
 | 
						|
SQL: select c1 in (select c1 from t7) from t8; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |704 |
 | 
						|
|1 | TABLE SCAN   |t8  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 478(end)  ************** 
 | 
						|
 | 
						|
***************   Case 479   ***************
 | 
						|
 | 
						|
SQL: select abs((select sum(c1) from t7)) > round((select sum(c1) from t7)) from t8; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                 |NAME        |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |TEMP TABLE TRANSFORMATION|            |100      |162 |
 | 
						|
|1 | TEMP TABLE INSERT       |TEMP1       |1        |81  |
 | 
						|
|2 |  SCALAR GROUP BY        |            |1        |81  |
 | 
						|
|3 |   TABLE SCAN            |t7          |100      |78  |
 | 
						|
|4 | SUBPLAN FILTER          |            |100      |80  |
 | 
						|
|5 |  TABLE SCAN             |t8          |100      |78  |
 | 
						|
|6 |  TEMP TABLE ACCESS      |VIEW1(TEMP1)|1        |1   |
 | 
						|
|7 |  TEMP TABLE ACCESS      |VIEW2(TEMP1)|1        |1   |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil)
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - output([T_FUN_SUM(t7.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_SUM(t7.c1)])
 | 
						|
  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([?]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([abs(subquery(1)) > round(subquery(2))]), init_plan_idxs_(nil)
 | 
						|
  5 - output(nil), filter(nil), 
 | 
						|
      access([t8.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t8.c1]), range(MIN ; MAX)always true
 | 
						|
  6 - output([VIEW1.T_FUN_SUM(t7.c1)]), filter(nil), 
 | 
						|
      access([VIEW1.T_FUN_SUM(t7.c1)])
 | 
						|
  7 - output([VIEW2.T_FUN_SUM(t7.c1)]), filter(nil), 
 | 
						|
      access([VIEW2.T_FUN_SUM(t7.c1)])
 | 
						|
 | 
						|
*************** Case 479(end)  ************** 
 | 
						|
 | 
						|
***************   Case 480   ***************
 | 
						|
 | 
						|
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 |TEMP TABLE TRANSFORMATION|            |100      |162 |
 | 
						|
|1 | TEMP TABLE INSERT       |TEMP1       |1        |81  |
 | 
						|
|2 |  SCALAR GROUP BY        |            |1        |81  |
 | 
						|
|3 |   TABLE SCAN            |t7          |100      |78  |
 | 
						|
|4 | SUBPLAN FILTER          |            |100      |80  |
 | 
						|
|5 |  TABLE SCAN             |t8          |100      |78  |
 | 
						|
|6 |  TEMP TABLE ACCESS      |VIEW1(TEMP1)|1        |1   |
 | 
						|
|7 |  TEMP TABLE ACCESS      |VIEW2(TEMP1)|1        |1   |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil)
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - output([T_FUN_SUM(t7.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_SUM(t7.c1)])
 | 
						|
  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([?]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([abs(subquery(1)) > round(subquery(2))]), init_plan_idxs_(nil)
 | 
						|
  5 - output(nil), filter(nil), 
 | 
						|
      access([t8.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t8.c1]), range(MIN ; MAX)always true
 | 
						|
  6 - output([VIEW1.T_FUN_SUM(t7.c1)]), filter(nil), 
 | 
						|
      access([VIEW1.T_FUN_SUM(t7.c1)])
 | 
						|
  7 - output([VIEW2.T_FUN_SUM(t7.c1)]), filter(nil), 
 | 
						|
      access([VIEW2.T_FUN_SUM(t7.c1)])
 | 
						|
 | 
						|
*************** Case 480(end)  ************** 
 | 
						|
 | 
						|
***************   Case 481   ***************
 | 
						|
 | 
						|
SQL: select ((select 1) < c1) + ((select 5) > c1) from t7; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t7  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 481(end)  ************** 
 | 
						|
 | 
						|
***************   Case 482   ***************
 | 
						|
 | 
						|
SQL: select * from t7 where ((select 1) < c1) + ((select 5) > c1); 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t7  |50       |80  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 482(end)  ************** 
 | 
						|
 | 
						|
***************   Case 483   ***************
 | 
						|
 | 
						|
SQL: select * from t7 having ((select 1) < c1) + ((select 5) > c1); 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t7  |50       |80  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 483(end)  ************** 
 | 
						|
 | 
						|
***************   Case 484   ***************
 | 
						|
 | 
						|
SQL: select * from t7 having ((select 1) < sum(c1)) + ((select 5) > sum(c1)); 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |SCALAR GROUP BY|    |1        |81  |
 | 
						|
|1 | TABLE SCAN    |t7  |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
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 484(end)  ************** 
 | 
						|
 | 
						|
***************   Case 485   ***************
 | 
						|
 | 
						|
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 |SUBPLAN FILTER              |           |5        |99  |
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN |           |5        |53  |
 | 
						|
|2 |  NESTED-LOOP JOIN CARTESIAN|           |1        |48  |
 | 
						|
|3 |   SUBPLAN SCAN             |VIEW2      |1        |46  |
 | 
						|
|4 |    SCALAR GROUP BY         |           |1        |46  |
 | 
						|
|5 |     SUBPLAN SCAN           |VIEW3      |1        |46  |
 | 
						|
|6 |      TABLE SCAN            |t8(Reverse)|1        |46  |
 | 
						|
|7 |   TABLE GET                |t9         |1        |46  |
 | 
						|
|8 |  TABLE SCAN                |t7         |100      |78  |
 | 
						|
|9 | TABLE SCAN                 |t7         |1        |46  |
 | 
						|
============================================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  2 - output(nil), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  3 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  4 - output([T_FUN_MAX(VIEW3.t8.c1)]), filter([T_FUN_MAX(VIEW3.t8.c1) > ?]), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(VIEW3.t8.c1)])
 | 
						|
  5 - output([VIEW3.t8.c1]), filter(nil), 
 | 
						|
      access([VIEW3.t8.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(nil), filter(nil), 
 | 
						|
      access([t9.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t9.c1]), range[1 ; 1], 
 | 
						|
      range_cond([t9.c1 = ?])
 | 
						|
  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
 | 
						|
  9 - output([1]), 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 485(end)  ************** 
 | 
						|
 | 
						|
***************   Case 486   ***************
 | 
						|
 | 
						|
SQL: select * from t7 having count(*) > (select 1); 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |SCALAR GROUP BY|    |1        |81  |
 | 
						|
|1 | TABLE SCAN    |t7  |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
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 486(end)  ************** 
 | 
						|
 | 
						|
***************   Case 487   ***************
 | 
						|
 | 
						|
SQL: select * from t7 having count(*) > (select c1 from t8 limit 1); 
 | 
						|
 | 
						|
=========================================
 | 
						|
|ID|OPERATOR        |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------------
 | 
						|
|0 |SUBPLAN FILTER  |    |1        |127 |
 | 
						|
|1 | SCALAR GROUP BY|    |1        |81  |
 | 
						|
|2 |  TABLE SCAN    |t7  |100      |78  |
 | 
						|
|3 | TABLE SCAN     |t8  |1        |46  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 487(end)  ************** 
 | 
						|
 | 
						|
***************   Case 488   ***************
 | 
						|
 | 
						|
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        |127 |
 | 
						|
|1 | SCALAR GROUP BY|    |1        |81  |
 | 
						|
|2 |  TABLE SCAN    |t7  |100      |78  |
 | 
						|
|3 | TABLE GET      |t8  |1        |46  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 488(end)  ************** 
 | 
						|
 | 
						|
***************   Case 489   ***************
 | 
						|
 | 
						|
SQL: select *, (select 9) > count(*) FROM t7; 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |SCALAR GROUP BY|    |1        |81  |
 | 
						|
|1 | TABLE SCAN    |t7  |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
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 489(end)  ************** 
 | 
						|
 | 
						|
***************   Case 490   ***************
 | 
						|
 | 
						|
SQL: select *, (select 9) > count(*) FROM t7  HAVING count(*) > (SELECT 5); 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |SCALAR GROUP BY|    |1        |81  |
 | 
						|
|1 | TABLE SCAN    |t7  |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
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 490(end)  ************** 
 | 
						|
 | 
						|
***************   Case 491   ***************
 | 
						|
 | 
						|
SQL: select count(*) FROM t7  HAVING count(*) > (SELECT 5) ; 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |SCALAR GROUP BY|    |1        |81  |
 | 
						|
|1 | TABLE SCAN    |t7  |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_COUNT(*)]), filter([T_FUN_COUNT(*) > ?]), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(*)])
 | 
						|
  1 - output(nil), filter(nil), 
 | 
						|
      access([t7.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t7.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 491(end)  ************** 
 | 
						|
 | 
						|
***************   Case 492   ***************
 | 
						|
 | 
						|
SQL: select count(*) FROM t7 GROUP BY c1  HAVING count(*) > (SELECT 5) ; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t7  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([1]), filter(nil), startup_filter([0]), 
 | 
						|
      access([t7.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t7.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 492(end)  ************** 
 | 
						|
 | 
						|
***************   Case 493   ***************
 | 
						|
 | 
						|
SQL: select * from t7 order by exists(select 1); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |80  |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | LIMIT        |    |1        |1   |
 | 
						|
|3 |  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), limit(1), offset(nil)
 | 
						|
  3 - output([1]), filter(nil)
 | 
						|
      values({1})
 | 
						|
 | 
						|
*************** Case 493(end)  ************** 
 | 
						|
 | 
						|
***************   Case 494   ***************
 | 
						|
 | 
						|
SQL: select * from t7 order by (select count(*) from t8) > 1; 
 | 
						|
 | 
						|
=========================================
 | 
						|
|ID|OPERATOR        |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------------
 | 
						|
|0 |SUBPLAN FILTER  |    |100      |161 |
 | 
						|
|1 | TABLE SCAN     |t7  |100      |78  |
 | 
						|
|2 | SCALAR GROUP BY|    |1        |81  |
 | 
						|
|3 |  TABLE SCAN    |t8  |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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(nil), filter(nil), 
 | 
						|
      access([t8.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t8.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 494(end)  ************** 
 | 
						|
 | 
						|
***************   Case 495   ***************
 | 
						|
 | 
						|
SQL: select * from t7 group by exists(select 1); 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |MERGE GROUP BY |    |1        |81  |
 | 
						|
|1 | SUBPLAN FILTER|    |100      |80  |
 | 
						|
|2 |  TABLE SCAN   |t7  |100      |78  |
 | 
						|
|3 |  LIMIT        |    |1        |1   |
 | 
						|
|4 |   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), limit(1), offset(nil)
 | 
						|
  4 - output([1]), filter(nil)
 | 
						|
      values({1})
 | 
						|
 | 
						|
*************** Case 495(end)  ************** 
 | 
						|
 | 
						|
***************   Case 496   ***************
 | 
						|
 | 
						|
SQL: select * from t7 group by (select count(*) from t8) > 1; 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                   |NAME |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |HASH GROUP BY              |     |1        |206 |
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|     |100      |182 |
 | 
						|
|2 |  SUBPLAN SCAN             |VIEW1|1        |81  |
 | 
						|
|3 |   SCALAR GROUP BY         |     |1        |81  |
 | 
						|
|4 |    TABLE SCAN             |t8   |100      |78  |
 | 
						|
|5 |  TABLE SCAN               |t7   |100      |78  |
 | 
						|
=====================================================
 | 
						|
 | 
						|
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(*)]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  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(nil), 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 496(end)  ************** 
 | 
						|
 | 
						|
***************   Case 497   ***************
 | 
						|
 | 
						|
SQL: select * from t7 where exists( select c1, c2 from t8 ); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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 497(end)  ************** 
 | 
						|
 | 
						|
***************   Case 498   ***************
 | 
						|
 | 
						|
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|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |10       |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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 498(end)  ************** 
 | 
						|
 | 
						|
***************   Case 499   ***************
 | 
						|
 | 
						|
SQL: select 100 + exists( select c1, c2 from t8 ) from t7; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([? + (T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
 | 
						|
  1 - output(nil), 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), 
 | 
						|
      limit(1), offset(nil), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t8.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 499(end)  ************** 
 | 
						|
 | 
						|
***************   Case 500   ***************
 | 
						|
 | 
						|
SQL: select * from t7 where exists( select c1, count(*) from t8 ); 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t7  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 500(end)  ************** 
 | 
						|
 | 
						|
***************   Case 501   ***************
 | 
						|
 | 
						|
SQL: select * from t7 where exists( select distinct c1 from t8 ); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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 501(end)  ************** 
 | 
						|
 | 
						|
***************   Case 502   ***************
 | 
						|
 | 
						|
SQL: select * from t7 where exists( select * from t8 limit 10); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |10       |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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 502(end)  ************** 
 | 
						|
 | 
						|
***************   Case 503   ***************
 | 
						|
 | 
						|
SQL: select * from t7 where exists( select distinct c1 from t8 limit 10); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |10       |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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 503(end)  ************** 
 | 
						|
 | 
						|
***************   Case 504   ***************
 | 
						|
 | 
						|
SQL: select * from t7 where exists( select c1 from t8 group by c2); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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 c1 from t8 group by c2 limit 10); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |10       |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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 t7.c1 in ( select c1 from t8 group by c2 order by c2); 
 | 
						|
 | 
						|
==========================================
 | 
						|
|ID|OPERATOR        |NAME |EST. ROWS|COST|
 | 
						|
------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN|     |10       |158 |
 | 
						|
|1 | SUBPLAN SCAN   |VIEW1|10       |104 |
 | 
						|
|2 |  HASH GROUP BY |     |10       |104 |
 | 
						|
|3 |   TABLE SCAN   |t8   |100      |78  |
 | 
						|
|4 | TABLE GET      |t7   |1        |5   |
 | 
						|
==========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([VIEW1.c1]), batch_join=true
 | 
						|
  1 - output([VIEW1.c1]), filter(nil), 
 | 
						|
      access([VIEW1.c1])
 | 
						|
  2 - output([t8.c1]), filter(nil), 
 | 
						|
      group([t8.c2]), agg_func(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
 | 
						|
  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 506(end)  ************** 
 | 
						|
 | 
						|
***************   Case 507   ***************
 | 
						|
 | 
						|
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       |152 |
 | 
						|
|1 | TABLE SCAN   |t7  |34       |46  |
 | 
						|
|2 | HASH GROUP BY|    |10       |106 |
 | 
						|
|3 |  TABLE SCAN  |t8  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 507(end)  ************** 
 | 
						|
 | 
						|
***************   Case 508   ***************
 | 
						|
 | 
						|
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        |150 |
 | 
						|
|1 | TABLE GET     |t7  |1        |46  |
 | 
						|
|2 | TOP-N SORT    |    |1        |104 |
 | 
						|
|3 |  HASH GROUP BY|    |10       |104 |
 | 
						|
|4 |   TABLE SCAN  |t8  |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
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), sort_keys([t8.c2, ASC]), topn(1)
 | 
						|
  3 - output([t8.c2], [t8.c1]), filter(nil), 
 | 
						|
      group([t8.c2]), agg_func(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
 | 
						|
 | 
						|
*************** Case 508(end)  ************** 
 | 
						|
 | 
						|
***************   Case 509   ***************
 | 
						|
 | 
						|
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        |151 |
 | 
						|
|1 | TABLE GET    |t7  |1        |46  |
 | 
						|
|2 | HASH GROUP BY|    |10       |106 |
 | 
						|
|3 |  TABLE SCAN  |t8  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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([cast(t7.c1, DECIMAL(11, 0)) = ?])
 | 
						|
  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 509(end)  ************** 
 | 
						|
 | 
						|
***************   Case 510   ***************
 | 
						|
 | 
						|
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       |270 |
 | 
						|
|1 | TABLE SCAN          |t7   |100      |78  |
 | 
						|
|2 | MATERIAL            |     |10       |104 |
 | 
						|
|3 |  SUBPLAN SCAN       |VIEW1|10       |104 |
 | 
						|
|4 |   HASH GROUP BY     |     |10       |104 |
 | 
						|
|5 |    TABLE SCAN       |t8   |100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
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 510(end)  ************** 
 | 
						|
 | 
						|
***************   Case 511   ***************
 | 
						|
 | 
						|
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       |270 |
 | 
						|
|1 | TABLE SCAN          |t7   |100      |78  |
 | 
						|
|2 | MATERIAL            |     |10       |104 |
 | 
						|
|3 |  SUBPLAN SCAN       |VIEW1|10       |104 |
 | 
						|
|4 |   HASH GROUP BY     |     |10       |104 |
 | 
						|
|5 |    TABLE SCAN       |t8   |100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
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 511(end)  ************** 
 | 
						|
 | 
						|
***************   Case 512   ***************
 | 
						|
 | 
						|
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 |NESTED-LOOP JOIN|     |10       |158 |
 | 
						|
|1 | SUBPLAN SCAN   |VIEW1|10       |104 |
 | 
						|
|2 |  HASH GROUP BY |     |10       |104 |
 | 
						|
|3 |   TABLE SCAN   |t8   |100      |78  |
 | 
						|
|4 | TABLE GET      |t7   |1        |5   |
 | 
						|
==========================================
 | 
						|
 | 
						|
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([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
 | 
						|
  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 512(end)  ************** 
 | 
						|
 | 
						|
***************   Case 513   ***************
 | 
						|
 | 
						|
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       |150 |
 | 
						|
|1 | TABLE SCAN   |t7  |34       |46  |
 | 
						|
|2 | HASH GROUP BY|    |10       |104 |
 | 
						|
|3 |  TABLE SCAN  |t8  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 513(end)  ************** 
 | 
						|
 | 
						|
***************   Case 514   ***************
 | 
						|
 | 
						|
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        |149 |
 | 
						|
|1 | TABLE GET     |t7  |1        |46  |
 | 
						|
|2 | TOP-N SORT    |    |1        |104 |
 | 
						|
|3 |  HASH GROUP BY|    |10       |104 |
 | 
						|
|4 |   TABLE SCAN  |t8  |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
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), sort_keys([t8.c2, ASC]), topn(1)
 | 
						|
  3 - output([t8.c2]), filter(nil), 
 | 
						|
      group([t8.c2]), agg_func(nil)
 | 
						|
  4 - output([t8.c2]), filter(nil), 
 | 
						|
      access([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 = ( select c2 from t8 group by c2 order by c2); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |1        |149 |
 | 
						|
|1 | TABLE GET    |t7  |1        |46  |
 | 
						|
|2 | HASH GROUP BY|    |10       |104 |
 | 
						|
|3 |  TABLE SCAN  |t8  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 515(end)  ************** 
 | 
						|
 | 
						|
***************   Case 516   ***************
 | 
						|
 | 
						|
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       |270 |
 | 
						|
|1 | TABLE SCAN          |t7   |100      |78  |
 | 
						|
|2 | MATERIAL            |     |10       |104 |
 | 
						|
|3 |  SUBPLAN SCAN       |VIEW1|10       |104 |
 | 
						|
|4 |   HASH GROUP BY     |     |10       |104 |
 | 
						|
|5 |    TABLE SCAN       |t8   |100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      conds([t7.c1 <= VIEW1.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([VIEW1.c2]), filter(nil)
 | 
						|
  3 - output([VIEW1.c2]), filter(nil), 
 | 
						|
      access([VIEW1.c2])
 | 
						|
  4 - output([t8.c2]), 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
 | 
						|
 | 
						|
*************** Case 516(end)  ************** 
 | 
						|
 | 
						|
***************   Case 517   ***************
 | 
						|
 | 
						|
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       |270 |
 | 
						|
|1 | TABLE SCAN          |t7   |100      |78  |
 | 
						|
|2 | MATERIAL            |     |10       |104 |
 | 
						|
|3 |  SUBPLAN SCAN       |VIEW1|10       |104 |
 | 
						|
|4 |   HASH GROUP BY     |     |10       |104 |
 | 
						|
|5 |    TABLE SCAN       |t8   |100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      conds([t7.c1 > VIEW1.c2 OR (T_OP_IS, VIEW1.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([VIEW1.c2]), filter(nil)
 | 
						|
  3 - output([VIEW1.c2]), filter(nil), 
 | 
						|
      access([VIEW1.c2])
 | 
						|
  4 - output([t8.c2]), 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
 | 
						|
 | 
						|
*************** Case 517(end)  ************** 
 | 
						|
 | 
						|
***************   Case 518   ***************
 | 
						|
 | 
						|
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       |124 |
 | 
						|
|1 | TABLE SCAN   |t7  |34       |46  |
 | 
						|
|2 | TABLE SCAN   |t8  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 518(end)  ************** 
 | 
						|
 | 
						|
***************   Case 519   ***************
 | 
						|
 | 
						|
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        |149 |
 | 
						|
|1 | TABLE GET    |t7  |1        |46  |
 | 
						|
|2 | HASH GROUP BY|    |10       |104 |
 | 
						|
|3 |  TABLE SCAN  |t8  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 519(end)  ************** 
 | 
						|
 | 
						|
***************   Case 520   ***************
 | 
						|
 | 
						|
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       |258 |
 | 
						|
|1 | TABLE SCAN          |t7   |100      |78  |
 | 
						|
|2 | MATERIAL            |     |10       |106 |
 | 
						|
|3 |  SUBPLAN SCAN       |VIEW1|10       |106 |
 | 
						|
|4 |   HASH GROUP BY     |     |10       |105 |
 | 
						|
|5 |    TABLE SCAN       |t8   |100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
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 + 1]), filter(nil), 
 | 
						|
      group([t8.c2 + 1], [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
 | 
						|
 | 
						|
*************** Case 520(end)  ************** 
 | 
						|
 | 
						|
***************   Case 521   ***************
 | 
						|
 | 
						|
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 |NESTED-LOOP JOIN|     |10       |158 |
 | 
						|
|1 | SUBPLAN SCAN   |VIEW1|10       |104 |
 | 
						|
|2 |  HASH GROUP BY |     |10       |104 |
 | 
						|
|3 |   TABLE SCAN   |t8   |100      |78  |
 | 
						|
|4 | TABLE GET      |t7   |1        |5   |
 | 
						|
==========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([VIEW1.c1]), batch_join=true
 | 
						|
  1 - output([VIEW1.c1]), filter(nil), 
 | 
						|
      access([VIEW1.c1])
 | 
						|
  2 - output([t8.c1]), filter(nil), 
 | 
						|
      group([t8.c2]), agg_func(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
 | 
						|
  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 521(end)  ************** 
 | 
						|
 | 
						|
***************   Case 522   ***************
 | 
						|
 | 
						|
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        |149 |
 | 
						|
|1 | TABLE GET    |t7  |1        |46  |
 | 
						|
|2 | HASH GROUP BY|    |10       |104 |
 | 
						|
|3 |  TABLE SCAN  |t8  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 522(end)  ************** 
 | 
						|
 | 
						|
***************   Case 523   ***************
 | 
						|
 | 
						|
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 CARTESIAN|     |100      |207 |
 | 
						|
|1 | TABLE SCAN               |t7   |100      |78  |
 | 
						|
|2 | MATERIAL                 |     |1        |102 |
 | 
						|
|3 |  SUBPLAN SCAN            |VIEW1|1        |102 |
 | 
						|
|4 |   LIMIT                  |     |1        |102 |
 | 
						|
|5 |    HASH GROUP BY         |     |1        |102 |
 | 
						|
|6 |     TABLE SCAN           |t8   |100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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(NULL ; 0], 
 | 
						|
      range_cond([? >= cast(t7.c1, DECIMAL(11, 0))])
 | 
						|
  2 - output(nil), filter(nil)
 | 
						|
  3 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  4 - output([?]), filter(nil), limit(1), offset(nil)
 | 
						|
  5 - output(nil), 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 523(end)  ************** 
 | 
						|
 | 
						|
***************   Case 524   ***************
 | 
						|
 | 
						|
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|     |10       |150 |
 | 
						|
|1 | TABLE SCAN          |t7   |100      |78  |
 | 
						|
|2 | MATERIAL            |     |1        |46  |
 | 
						|
|3 |  SUBPLAN SCAN       |VIEW1|1        |46  |
 | 
						|
|4 |   TABLE SCAN        |t8   |1        |46  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      conds([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(nil), filter(nil)
 | 
						|
  3 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  4 - 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
 | 
						|
 | 
						|
*************** Case 524(end)  ************** 
 | 
						|
 | 
						|
***************   Case 525   ***************
 | 
						|
 | 
						|
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        |85  |
 | 
						|
|1 | SUBPLAN SCAN   |VIEW1|1        |80  |
 | 
						|
|2 |  MERGE GROUP BY|     |1        |80  |
 | 
						|
|3 |   TABLE SCAN   |t8   |100      |78  |
 | 
						|
|4 | TABLE GET      |t7   |1        |5   |
 | 
						|
==========================================
 | 
						|
 | 
						|
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 525(end)  ************** 
 | 
						|
 | 
						|
***************   Case 526   ***************
 | 
						|
 | 
						|
SQL: select * from t7 where t7.c1 in ( select now() from t8 group by c2); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR                  |NAME |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|     |1        |182 |
 | 
						|
|1 | TABLE SCAN               |t7   |1        |80  |
 | 
						|
|2 | MATERIAL                 |     |1        |102 |
 | 
						|
|3 |  SUBPLAN SCAN            |VIEW1|1        |102 |
 | 
						|
|4 |   LIMIT                  |     |1        |102 |
 | 
						|
|5 |    HASH GROUP BY         |     |1        |102 |
 | 
						|
|6 |     TABLE SCAN           |t8   |100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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([cast(t7.c1, DATETIME(-1, -1)) = ?]), 
 | 
						|
      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(nil), filter(nil)
 | 
						|
  3 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  4 - output([?]), filter(nil), limit(1), offset(nil)
 | 
						|
  5 - output(nil), 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 526(end)  ************** 
 | 
						|
 | 
						|
***************   Case 527   ***************
 | 
						|
 | 
						|
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        |182 |
 | 
						|
|1 | TABLE SCAN               |t7   |1        |80  |
 | 
						|
|2 | MATERIAL                 |     |1        |102 |
 | 
						|
|3 |  SUBPLAN SCAN            |VIEW2|1        |102 |
 | 
						|
|4 |   LIMIT                  |     |1        |102 |
 | 
						|
|5 |    HASH GROUP BY         |     |1        |102 |
 | 
						|
|6 |     TABLE SCAN           |t8   |100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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([t7.c1 = 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(nil), filter(nil)
 | 
						|
  3 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  4 - output([1]), filter(nil), limit(1), offset(nil)
 | 
						|
  5 - output(nil), 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 527(end)  ************** 
 | 
						|
 | 
						|
***************   Case 528   ***************
 | 
						|
 | 
						|
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|    |100      |170 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
|3 | TABLE SCAN   |t9  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      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), startup_filter([?], [?]), 
 | 
						|
      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 528(end)  ************** 
 | 
						|
 | 
						|
***************   Case 529   ***************
 | 
						|
 | 
						|
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|    |100      |170 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
|3 | TABLE SCAN   |t9  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      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), startup_filter([?], [?]), 
 | 
						|
      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 529(end)  ************** 
 | 
						|
 | 
						|
***************   Case 530   ***************
 | 
						|
 | 
						|
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|    |100      |170 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
|3 | TABLE SCAN   |t9  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      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), startup_filter([?], [?]), 
 | 
						|
      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 530(end)  ************** 
 | 
						|
 | 
						|
***************   Case 531   ***************
 | 
						|
 | 
						|
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        |174 |
 | 
						|
|1 | SUBPLAN FILTER |    |100      |172 |
 | 
						|
|2 |  SUBPLAN FILTER|    |100      |125 |
 | 
						|
|3 |   TABLE SCAN   |t7  |100      |78  |
 | 
						|
|4 |   TABLE SCAN   |t8  |1        |46  |
 | 
						|
|5 |  TABLE SCAN    |t9  |1        |46  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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), 
 | 
						|
      exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
 | 
						|
  3 - output([t7.c1], [t7.c2]), filter(nil), startup_filter([?]), 
 | 
						|
      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), 
 | 
						|
      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) order by exists(select c3 * 3 from t9); 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |SUBPLAN FILTER |    |100      |172 |
 | 
						|
|1 | SUBPLAN FILTER|    |100      |125 |
 | 
						|
|2 |  TABLE SCAN   |t7  |100      |78  |
 | 
						|
|3 |  TABLE SCAN   |t8  |1        |46  |
 | 
						|
|4 | TABLE SCAN    |t9  |1        |46  |
 | 
						|
========================================
 | 
						|
 | 
						|
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), 
 | 
						|
      exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
 | 
						|
  2 - output([t7.c1], [t7.c2]), filter(nil), startup_filter([?]), 
 | 
						|
      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), 
 | 
						|
      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 not exists(select c1 + c2 from t8) and not exists(select c3 * 3 from t9); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |170 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
|3 | TABLE SCAN   |t9  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      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), startup_filter([?], [?]), 
 | 
						|
      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 not exists(select c1 + c2 from t8) having not exists(select c3 * 3 from t9); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |170 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
|3 | TABLE SCAN   |t9  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter(nil), 
 | 
						|
      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), startup_filter([?], [?]), 
 | 
						|
      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 534(end)  ************** 
 | 
						|
 | 
						|
***************   Case 535   ***************
 | 
						|
 | 
						|
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        |174 |
 | 
						|
|1 | SUBPLAN FILTER |    |100      |172 |
 | 
						|
|2 |  SUBPLAN FILTER|    |100      |125 |
 | 
						|
|3 |   TABLE SCAN   |t7  |100      |78  |
 | 
						|
|4 |   TABLE SCAN   |t8  |1        |46  |
 | 
						|
|5 |  TABLE SCAN    |t9  |1        |46  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([(T_OP_NOT_EXISTS, subquery(1))]), init_plan_idxs_(nil)
 | 
						|
  3 - output([t7.c1], [t7.c2]), filter(nil), startup_filter([?]), 
 | 
						|
      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), 
 | 
						|
      limit(1), offset(nil), 
 | 
						|
      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) order by not exists(select c3 * 3 from t9); 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |SUBPLAN FILTER |    |100      |172 |
 | 
						|
|1 | SUBPLAN FILTER|    |100      |125 |
 | 
						|
|2 |  TABLE SCAN   |t7  |100      |78  |
 | 
						|
|3 |  TABLE SCAN   |t8  |1        |46  |
 | 
						|
|4 | TABLE SCAN    |t9  |1        |46  |
 | 
						|
========================================
 | 
						|
 | 
						|
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(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([(T_OP_NOT_EXISTS, subquery(1))]), init_plan_idxs_(nil)
 | 
						|
  2 - output([t7.c1], [t7.c2]), filter(nil), startup_filter([?]), 
 | 
						|
      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), 
 | 
						|
      limit(1), offset(nil), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t9.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 536(end)  ************** 
 | 
						|
 | 
						|
***************   Case 537   ***************
 | 
						|
 | 
						|
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|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t9  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t9.c3 + ?]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
 | 
						|
  1 - output([t9.c3]), filter(nil), startup_filter([?]), 
 | 
						|
      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 537(end)  ************** 
 | 
						|
 | 
						|
***************   Case 538   ***************
 | 
						|
 | 
						|
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|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t9  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t9.c3 + ?]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([(T_OP_EXISTS, subquery(1))]), init_plan_idxs_(nil)
 | 
						|
  1 - output([t9.c3]), filter(nil), startup_filter([?]), 
 | 
						|
      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 538(end)  ************** 
 | 
						|
 | 
						|
***************   Case 539   ***************
 | 
						|
 | 
						|
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        |109 |
 | 
						|
|1 | SUBPLAN SCAN             |VIEW1|1        |104 |
 | 
						|
|2 |  SCALAR GROUP BY         |     |1        |104 |
 | 
						|
|3 |   SUBPLAN SCAN           |t999 |10       |104 |
 | 
						|
|4 |    HASH GROUP BY         |     |10       |104 |
 | 
						|
|5 |     TABLE SCAN           |t8   |100      |78  |
 | 
						|
|6 | TABLE SCAN               |t9   |100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t9.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  2 - output([T_FUN_COUNT(*)]), filter([T_FUN_COUNT(*) > ?]), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(*)])
 | 
						|
  3 - output(nil), 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 539(end)  ************** 
 | 
						|
 | 
						|
***************   Case 540   ***************
 | 
						|
 | 
						|
SQL: select * from t7 where exists(select c1, round(c2) from t8 group by c2); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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 540(end)  ************** 
 | 
						|
 | 
						|
***************   Case 541   ***************
 | 
						|
 | 
						|
SQL: select * from t7 where exists(select c1, round(c2) from t8 order by c2); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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 541(end)  ************** 
 | 
						|
 | 
						|
***************   Case 542   ***************
 | 
						|
 | 
						|
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|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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 542(end)  ************** 
 | 
						|
 | 
						|
***************   Case 543   ***************
 | 
						|
 | 
						|
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|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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(nil), startup_filter([?]), 
 | 
						|
      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 not exists(select c1, round(c2) from t8 order by c2); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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(nil), startup_filter([?]), 
 | 
						|
      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 not exists(select c1, round(c2) from t8 group by c2 order by c2); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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(nil), startup_filter([?]), 
 | 
						|
      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 exists(select c1, round(c2) from t8 group by c2 having round(c2) > 0); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |125 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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(cast(t8.c2, BIGINT(-1, 0))) > ?]), 
 | 
						|
      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 546(end)  ************** 
 | 
						|
 | 
						|
***************   Case 547   ***************
 | 
						|
 | 
						|
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|    |100      |80  |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t8  |0        |0   |
 | 
						|
=======================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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 547(end)  ************** 
 | 
						|
 | 
						|
***************   Case 548   ***************
 | 
						|
 | 
						|
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 |    |100      |170 |
 | 
						|
|1 | TABLE SCAN    |t7  |100      |78  |
 | 
						|
|2 | LIMIT         |    |10       |91  |
 | 
						|
|3 |  HASH GROUP BY|    |10       |90  |
 | 
						|
|4 |   TABLE SCAN  |t8  |34       |80  |
 | 
						|
========================================
 | 
						|
 | 
						|
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), startup_filter([?]), 
 | 
						|
      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(cast(t8.c2, BIGINT(-1, 0)))]), 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(cast(t8.c2, BIGINT(-1, 0))) > ?]), 
 | 
						|
      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 548(end)  ************** 
 | 
						|
 | 
						|
***************   Case 549   ***************
 | 
						|
 | 
						|
SQL: select * from t7,t8 where exists( select *, round(c2) from t9 ); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR                   |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |SUBPLAN FILTER             |    |10000    |2957|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|    |10000    |2736|
 | 
						|
|2 |  TABLE SCAN               |t7  |100      |78  |
 | 
						|
|3 |  MATERIAL                 |    |100      |79  |
 | 
						|
|4 |   TABLE SCAN              |t8  |100      |78  |
 | 
						|
|5 | TABLE SCAN                |t9  |1        |46  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil), 
 | 
						|
      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), startup_filter([?]), 
 | 
						|
      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 549(end)  ************** 
 | 
						|
 | 
						|
***************   Case 550   ***************
 | 
						|
 | 
						|
SQL: select * from t7,t8 where exists( select *, round(c2) from t9 group by c2); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR                   |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |SUBPLAN FILTER             |    |10000    |2957|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|    |10000    |2736|
 | 
						|
|2 |  TABLE SCAN               |t7  |100      |78  |
 | 
						|
|3 |  MATERIAL                 |    |100      |79  |
 | 
						|
|4 |   TABLE SCAN              |t8  |100      |78  |
 | 
						|
|5 | TABLE SCAN                |t9  |1        |46  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil), 
 | 
						|
      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), startup_filter([?]), 
 | 
						|
      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 550(end)  ************** 
 | 
						|
 | 
						|
***************   Case 551   ***************
 | 
						|
 | 
						|
SQL: select * from t7,t8 where exists( select *, round(c2) from t9 order by c2); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR                   |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |SUBPLAN FILTER             |    |10000    |2957|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|    |10000    |2736|
 | 
						|
|2 |  TABLE SCAN               |t7  |100      |78  |
 | 
						|
|3 |  MATERIAL                 |    |100      |79  |
 | 
						|
|4 |   TABLE SCAN              |t8  |100      |78  |
 | 
						|
|5 | TABLE SCAN                |t9  |1        |46  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil), 
 | 
						|
      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), startup_filter([?]), 
 | 
						|
      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 551(end)  ************** 
 | 
						|
 | 
						|
***************   Case 552   ***************
 | 
						|
 | 
						|
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             |    |10000    |2957|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|    |10000    |2736|
 | 
						|
|2 |  TABLE SCAN               |t7  |100      |78  |
 | 
						|
|3 |  MATERIAL                 |    |100      |79  |
 | 
						|
|4 |   TABLE SCAN              |t8  |100      |78  |
 | 
						|
|5 | TABLE SCAN                |t9  |1        |46  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil), 
 | 
						|
      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), startup_filter([?]), 
 | 
						|
      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 order by c2 limit 10); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR                   |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |SUBPLAN FILTER             |    |10000    |2957|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|    |10000    |2736|
 | 
						|
|2 |  TABLE SCAN               |t7  |100      |78  |
 | 
						|
|3 |  MATERIAL                 |    |100      |79  |
 | 
						|
|4 |   TABLE SCAN              |t8  |100      |78  |
 | 
						|
|5 | TABLE SCAN                |t9  |10       |46  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil), 
 | 
						|
      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), startup_filter([?]), 
 | 
						|
      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 553(end)  ************** 
 | 
						|
 | 
						|
***************   Case 554   ***************
 | 
						|
 | 
						|
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             |    |10000    |2957|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|    |10000    |2736|
 | 
						|
|2 |  TABLE SCAN               |t7  |100      |78  |
 | 
						|
|3 |  MATERIAL                 |    |100      |79  |
 | 
						|
|4 |   TABLE SCAN              |t8  |100      |78  |
 | 
						|
|5 | TABLE SCAN                |t9  |10       |46  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil), 
 | 
						|
      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), startup_filter([?]), 
 | 
						|
      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 554(end)  ************** 
 | 
						|
 | 
						|
***************   Case 555   ***************
 | 
						|
 | 
						|
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             |    |10000    |2957|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|    |10000    |2736|
 | 
						|
|2 |  TABLE SCAN               |t7  |100      |78  |
 | 
						|
|3 |  MATERIAL                 |    |100      |79  |
 | 
						|
|4 |   TABLE SCAN              |t8  |100      |78  |
 | 
						|
|5 | TABLE SCAN                |t9  |1        |46  |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2], [t8.c1], [t8.c2]), filter(nil), 
 | 
						|
      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), startup_filter([?]), 
 | 
						|
      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(cast(t9.c2, BIGINT(-1, 0))) > ?]), 
 | 
						|
      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 555(end)  ************** 
 | 
						|
 | 
						|
***************   Case 556   ***************
 | 
						|
 | 
						|
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|    |200      |207 |
 | 
						|
|1 | SUBPLAN FILTER     |    |100      |125 |
 | 
						|
|2 |  TABLE SCAN        |t7  |100      |78  |
 | 
						|
|3 |  TABLE SCAN        |t8  |1        |46  |
 | 
						|
|4 | TABLE SCAN         |t8  |100      |78  |
 | 
						|
=============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])], [UNION([2])]), filter(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), startup_filter([?]), 
 | 
						|
      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 556(end)  ************** 
 | 
						|
 | 
						|
***************   Case 557   ***************
 | 
						|
 | 
						|
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      |187 |
 | 
						|
|1 | TABLE SCAN|t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN|t8  |100      |78  |
 | 
						|
====================================
 | 
						|
 | 
						|
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 557(end)  ************** 
 | 
						|
 | 
						|
***************   Case 558   ***************
 | 
						|
 | 
						|
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|    |1        |165 |
 | 
						|
|1 | TABLE SCAN    |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN    |t8  |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
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 558(end)  ************** 
 | 
						|
 | 
						|
***************   Case 559   ***************
 | 
						|
 | 
						|
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  |    |100      |203 |
 | 
						|
|1 | TABLE SCAN     |t7  |100      |78  |
 | 
						|
|2 | LIMIT          |    |1        |124 |
 | 
						|
|3 |  SUBPLAN FILTER|    |1        |124 |
 | 
						|
|4 |   TABLE SCAN   |t8  |1        |46  |
 | 
						|
|5 |   TABLE SCAN   |t8  |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([(T_OP_NOT_EXISTS, subquery(1))]), init_plan_idxs_(nil)
 | 
						|
  1 - output(nil), filter(nil), startup_filter([?]), 
 | 
						|
      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(nil), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  4 - output(nil), 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 559(end)  ************** 
 | 
						|
 | 
						|
***************   Case 560   ***************
 | 
						|
 | 
						|
SQL: select distinct 1, 1+2, ABS(-1) from t7; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t7  |1        |46  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 560(end)  ************** 
 | 
						|
 | 
						|
***************   Case 561   ***************
 | 
						|
 | 
						|
SQL: select distinct 1, c2 from t7; 
 | 
						|
 | 
						|
======================================
 | 
						|
|ID|OPERATOR     |NAME|EST. ROWS|COST|
 | 
						|
--------------------------------------
 | 
						|
|0 |HASH DISTINCT|    |10       |104 |
 | 
						|
|1 | TABLE SCAN  |t7  |100      |78  |
 | 
						|
======================================
 | 
						|
 | 
						|
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 561(end)  ************** 
 | 
						|
 | 
						|
***************   Case 562   ***************
 | 
						|
 | 
						|
SQL: select count(distinct 1) from t7; 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |SCALAR GROUP BY|    |1        |81  |
 | 
						|
|1 | TABLE SCAN    |t7  |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_COUNT(distinct ?)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(distinct ?)])
 | 
						|
  1 - output(nil), filter(nil), 
 | 
						|
      access([t7.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t7.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 562(end)  ************** 
 | 
						|
 | 
						|
***************   Case 563   ***************
 | 
						|
 | 
						|
SQL: select distinct (select c1 from t7 limit 1) from t8; 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |LIMIT          |    |1        |91  |
 | 
						|
|1 | SUBPLAN FILTER|    |1        |91  |
 | 
						|
|2 |  TABLE SCAN   |t8  |1        |46  |
 | 
						|
|3 |  TABLE SCAN   |t7  |1        |46  |
 | 
						|
========================================
 | 
						|
 | 
						|
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(nil), 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 563(end)  ************** 
 | 
						|
 | 
						|
***************   Case 564   ***************
 | 
						|
 | 
						|
SQL: select distinct 1, 1 + @var from t7; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t7  |1        |46  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 564(end)  ************** 
 | 
						|
 | 
						|
***************   Case 565   ***************
 | 
						|
 | 
						|
SQL: Select distinct 1, 1 + (@var:=1) from t7; 
 | 
						|
 | 
						|
======================================
 | 
						|
|ID|OPERATOR     |NAME|EST. ROWS|COST|
 | 
						|
--------------------------------------
 | 
						|
|0 |HASH DISTINCT|    |1        |102 |
 | 
						|
|1 | TABLE SCAN  |t7  |100      |78  |
 | 
						|
======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?], [? + (T_OP_ASSIGN, 'var', ?)]), filter(nil), 
 | 
						|
      distinct([? + (T_OP_ASSIGN, 'var', ?)])
 | 
						|
  1 - output(nil), 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 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        |50  |
 | 
						|
|1 | EXCHANGE OUT REMOTE        |    |1        |50  |
 | 
						|
|2 |  NESTED-LOOP JOIN CARTESIAN|    |1        |50  |
 | 
						|
|3 |   TABLE GET                |t2  |1        |46  |
 | 
						|
|4 |   TABLE GET                |t1  |1        |46  |
 | 
						|
=====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c2 + ?]), filter(nil)
 | 
						|
  1 - output([t1.c2 + ?]), filter(nil)
 | 
						|
  2 - output([t1.c2 + ?]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  3 - output(nil), 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.c2]), filter(nil), 
 | 
						|
      access([t1.c2]), partitions(p1), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range[1 ; 1], 
 | 
						|
      range_cond([t1.c1 = ?])
 | 
						|
 | 
						|
*************** Case 566(end)  ************** 
 | 
						|
 | 
						|
***************   Case 567   ***************
 | 
						|
 | 
						|
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 567(end)  ************** 
 | 
						|
 | 
						|
***************   Case 568   ***************
 | 
						|
 | 
						|
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 DISTINCT   |    |1        |1   |
 | 
						|
|1 | SORT            |    |3        |1   |
 | 
						|
|2 |  UNION ALL      |    |3        |1   |
 | 
						|
|3 |   SUBPLAN FILTER|    |1        |1   |
 | 
						|
|4 |    EXPRESSION   |    |1        |1   |
 | 
						|
|5 |    LIMIT        |    |1        |1   |
 | 
						|
|6 |     EXPRESSION  |    |1        |1   |
 | 
						|
|7 |   EXPRESSION    |    |1        |1   |
 | 
						|
|8 |   SUBPLAN FILTER|    |1        |1   |
 | 
						|
|9 |    EXPRESSION   |    |1        |1   |
 | 
						|
|10|    LIMIT        |    |1        |1   |
 | 
						|
|11|     EXPRESSION  |    |1        |1   |
 | 
						|
==========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])]), filter(nil), 
 | 
						|
      distinct([UNION([1])])
 | 
						|
  1 - output([UNION([1])]), filter(nil), sort_keys([UNION([1]), ASC])
 | 
						|
  2 - output([UNION([1])]), filter(nil)
 | 
						|
  3 - output([?]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([cast(subquery(1), CHAR(20))]), init_plan_idxs_(nil)
 | 
						|
  4 - output([1]), filter(nil)
 | 
						|
      values({1})
 | 
						|
  5 - output([?]), filter(nil), limit(100), offset(nil)
 | 
						|
  6 - output([1]), filter(nil)
 | 
						|
      values({1})
 | 
						|
  7 - output([?]), filter(nil)
 | 
						|
      values({?})
 | 
						|
  8 - output([?]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([cast(subquery(1), CHAR(20))]), init_plan_idxs_(nil)
 | 
						|
  9 - output([1]), filter(nil)
 | 
						|
      values({1})
 | 
						|
  10 - output([?]), filter(nil), limit(100), offset(nil)
 | 
						|
  11 - output([1]), filter(nil)
 | 
						|
      values({1})
 | 
						|
 | 
						|
*************** Case 568(end)  ************** 
 | 
						|
 | 
						|
***************   Case 569   ***************
 | 
						|
 | 
						|
SQL: (select (select b from t12) from t3) union (select c3 from t3); 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |HASH UNION DISTINCT      |        |400      |709 |
 | 
						|
|1 | SUBPLAN FILTER          |        |200      |268 |
 | 
						|
|2 |  PX COORDINATOR         |        |200      |187 |
 | 
						|
|3 |   EXCHANGE OUT DISTR    |:EX10000|200      |176 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |200      |155 |
 | 
						|
|5 |     TABLE SCAN          |t3      |200      |155 |
 | 
						|
|6 |  TABLE SCAN             |t12     |100      |78  |
 | 
						|
|7 | PX COORDINATOR          |        |200      |261 |
 | 
						|
|8 |  EXCHANGE OUT DISTR     |:EX20000|200      |227 |
 | 
						|
|9 |   PX PARTITION ITERATOR |        |200      |155 |
 | 
						|
|10|    TABLE SCAN           |t3      |200      |155 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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(nil), filter(nil)
 | 
						|
  3 - output(nil), filter(nil), dop=1
 | 
						|
  4 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - output(nil), 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.
 | 
						|
  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 569(end)  ************** 
 | 
						|
 | 
						|
***************   Case 570   ***************
 | 
						|
 | 
						|
SQL: select distinct c2 from t1 partition(p1); 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR            |NAME         |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |             |10       |84  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|             |10       |83  |
 | 
						|
|2 |  MERGE DISTINCT    |             |10       |82  |
 | 
						|
|3 |   TABLE SCAN       |t1(idx_t1_c2)|100      |78  |
 | 
						|
======================================================
 | 
						|
 | 
						|
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 570(end)  ************** 
 | 
						|
 | 
						|
***************   Case 571   ***************
 | 
						|
 | 
						|
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 571(end)  ************** 
 | 
						|
 | 
						|
***************   Case 572   ***************
 | 
						|
 | 
						|
SQL: select (select 'a') as c1; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |EXPRESSION|    |1        |1   |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil)
 | 
						|
      values({?})
 | 
						|
 | 
						|
*************** Case 572(end)  ************** 
 | 
						|
 | 
						|
***************   Case 573   ***************
 | 
						|
 | 
						|
SQL: select avg(c1) as a from t1 union select sum(c1) as b from t1; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                   |NAME        |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |TEMP TABLE TRANSFORMATION  |            |2        |415 |
 | 
						|
|1 | TEMP TABLE INSERT         |TEMP1       |1        |414 |
 | 
						|
|2 |  SCALAR GROUP BY          |            |1        |414 |
 | 
						|
|3 |   PX COORDINATOR          |            |1        |414 |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000    |1        |414 |
 | 
						|
|5 |     MERGE GROUP BY        |            |1        |414 |
 | 
						|
|6 |      PX PARTITION ITERATOR|            |500      |387 |
 | 
						|
|7 |       TABLE SCAN          |t1          |500      |387 |
 | 
						|
|8 | MERGE UNION DISTINCT      |            |2        |1   |
 | 
						|
|9 |  TEMP TABLE ACCESS        |VIEW1(TEMP1)|1        |1   |
 | 
						|
|10|  TEMP TABLE ACCESS        |VIEW2(TEMP1)|1        |1   |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])]), filter(nil)
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - 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))])
 | 
						|
  3 - output([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)]), filter(nil)
 | 
						|
  4 - output([T_FUN_SUM(t1.c1)], [T_FUN_COUNT(t1.c1)]), filter(nil), dop=1
 | 
						|
  5 - 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)])
 | 
						|
  6 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([UNION([1])]), filter(nil)
 | 
						|
  9 - output([VIEW1.T_FUN_SUM(t1.c1) / cast(VIEW1.T_FUN_COUNT(t1.c1), DECIMAL(20, 0))]), filter(nil), 
 | 
						|
      access([VIEW1.T_FUN_SUM(t1.c1)], [VIEW1.T_FUN_COUNT(t1.c1)])
 | 
						|
  10 - output([VIEW2.T_FUN_SUM(t1.c1)]), filter(nil), 
 | 
						|
      access([VIEW2.T_FUN_SUM(t1.c1)])
 | 
						|
 | 
						|
*************** Case 573(end)  ************** 
 | 
						|
 | 
						|
***************   Case 574   ***************
 | 
						|
 | 
						|
SQL: select * from t1 group by 1>(select count(*) from t2); 
 | 
						|
 | 
						|
=========================================================
 | 
						|
|ID|OPERATOR                    |NAME    |EST. ROWS|COST|
 | 
						|
---------------------------------------------------------
 | 
						|
|0 |HASH GROUP BY               |        |1        |653 |
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN |        |500      |533 |
 | 
						|
|2 |  SUBPLAN SCAN              |VIEW1   |1        |244 |
 | 
						|
|3 |   SCALAR GROUP BY          |        |1        |244 |
 | 
						|
|4 |    PX COORDINATOR          |        |1        |243 |
 | 
						|
|5 |     EXCHANGE OUT DISTR     |:EX10000|1        |243 |
 | 
						|
|6 |      MERGE GROUP BY        |        |1        |243 |
 | 
						|
|7 |       PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|8 |        TABLE SCAN          |t2      |300      |233 |
 | 
						|
|9 |  PX COORDINATOR            |        |500      |528 |
 | 
						|
|10|   EXCHANGE OUT DISTR       |:EX20000|500      |481 |
 | 
						|
|11|    PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|12|     TABLE SCAN             |t1      |500      |387 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      group([1 > VIEW1.count(*)]), agg_func(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2], [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(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - output(nil), 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.
 | 
						|
  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 574(end)  ************** 
 | 
						|
 | 
						|
***************   Case 575   ***************
 | 
						|
 | 
						|
SQL: (select count(*) from t1) UNION (select count(*) from t1); 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                   |NAME        |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |TEMP TABLE TRANSFORMATION  |            |2        |405 |
 | 
						|
|1 | TEMP TABLE INSERT         |TEMP1       |1        |405 |
 | 
						|
|2 |  SCALAR GROUP BY          |            |1        |405 |
 | 
						|
|3 |   PX COORDINATOR          |            |1        |405 |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000    |1        |405 |
 | 
						|
|5 |     MERGE GROUP BY        |            |1        |405 |
 | 
						|
|6 |      PX PARTITION ITERATOR|            |500      |387 |
 | 
						|
|7 |       TABLE SCAN          |t1          |500      |387 |
 | 
						|
|8 | MERGE UNION DISTINCT      |            |2        |1   |
 | 
						|
|9 |  TEMP TABLE ACCESS        |VIEW1(TEMP1)|1        |1   |
 | 
						|
|10|  TEMP TABLE ACCESS        |VIEW2(TEMP1)|1        |1   |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])]), filter(nil)
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
 | 
						|
  3 - output([T_FUN_COUNT(*)]), filter(nil)
 | 
						|
  4 - output([T_FUN_COUNT(*)]), filter(nil), dop=1
 | 
						|
  5 - output([T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(*)])
 | 
						|
  6 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  7 - output(nil), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
  8 - output([UNION([1])]), filter(nil)
 | 
						|
  9 - output([VIEW1.T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      access([VIEW1.T_FUN_COUNT(*)])
 | 
						|
  10 - output([VIEW2.T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      access([VIEW2.T_FUN_COUNT(*)])
 | 
						|
 | 
						|
*************** Case 575(end)  ************** 
 | 
						|
 | 
						|
***************   Case 576   ***************
 | 
						|
 | 
						|
SQL: select min(1) from t1; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY            |        |1        |228 |
 | 
						|
|1 | SUBPLAN SCAN              |VIEW1   |1        |228 |
 | 
						|
|2 |  LIMIT                    |        |1        |227 |
 | 
						|
|3 |   PX COORDINATOR          |        |1        |227 |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000|1        |227 |
 | 
						|
|5 |     LIMIT                 |        |1        |227 |
 | 
						|
|6 |      PX PARTITION ITERATOR|        |1        |227 |
 | 
						|
|7 |       TABLE SCAN          |t1      |1        |227 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_MIN(?)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MIN(?)])
 | 
						|
  1 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  2 - output([1]), filter(nil), limit(1), offset(nil)
 | 
						|
  3 - output(nil), filter(nil)
 | 
						|
  4 - output(nil), filter(nil), dop=1
 | 
						|
  5 - output(nil), filter(nil), limit(1), offset(nil)
 | 
						|
  6 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  7 - output(nil), 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 576(end)  ************** 
 | 
						|
 | 
						|
***************   Case 577   ***************
 | 
						|
 | 
						|
SQL: select max(1) from t1; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY            |        |1        |228 |
 | 
						|
|1 | SUBPLAN SCAN              |VIEW1   |1        |228 |
 | 
						|
|2 |  LIMIT                    |        |1        |227 |
 | 
						|
|3 |   PX COORDINATOR          |        |1        |227 |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000|1        |227 |
 | 
						|
|5 |     LIMIT                 |        |1        |227 |
 | 
						|
|6 |      PX PARTITION ITERATOR|        |1        |227 |
 | 
						|
|7 |       TABLE SCAN          |t1      |1        |227 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_MAX(?)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(?)])
 | 
						|
  1 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  2 - output([1]), filter(nil), limit(1), offset(nil)
 | 
						|
  3 - output(nil), filter(nil)
 | 
						|
  4 - output(nil), filter(nil), dop=1
 | 
						|
  5 - output(nil), filter(nil), limit(1), offset(nil)
 | 
						|
  6 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  7 - output(nil), 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 577(end)  ************** 
 | 
						|
 | 
						|
***************   Case 578   ***************
 | 
						|
 | 
						|
SQL: select sum(1) from t1; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |1        |405 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |405 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |405 |
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |405 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1      |500      |387 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - output(nil), 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 avg(1) from t1; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |1        |414 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |414 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |414 |
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |414 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1      |500      |387 |
 | 
						|
======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
<<<<<<< HEAD
 | 
						|
  0 - output([T_FUN_SUM(T_FUN_SUM(?)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(*)), DECIMAL(20, 0))]), filter(nil), 
 | 
						|
=======
 | 
						|
  0 - output([cast(T_FUN_SUM(T_FUN_SUM(?)) / T_FUN_COUNT_SUM(T_FUN_COUNT(*)), DECIMAL(5, 4))]), filter(nil), 
 | 
						|
>>>>>>> 4ace446e738... fix aggr convert lost origin type
 | 
						|
      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(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  5 - output(nil), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 579(end)  ************** 
 | 
						|
 | 
						|
***************   Case 580   ***************
 | 
						|
 | 
						|
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               |        |487      |835 |
 | 
						|
|1 | PX COORDINATOR         |        |200      |285 |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000|200      |244 |
 | 
						|
|3 |   PX PARTITION ITERATOR|        |200      |155 |
 | 
						|
|4 |    TABLE SCAN          |t3      |200      |155 |
 | 
						|
|5 | PX COORDINATOR         |        |300      |428 |
 | 
						|
|6 |  EXCHANGE OUT DISTR    |:EX20000|300      |366 |
 | 
						|
|7 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|8 |    TABLE SCAN          |t2      |300      |233 |
 | 
						|
=====================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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.c3], [t2.c2]), filter(nil)
 | 
						|
  6 - output([t2.c3], [t2.c2]), filter(nil), dop=1
 | 
						|
  7 - output([t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 580(end)  ************** 
 | 
						|
 | 
						|
***************   Case 581   ***************
 | 
						|
 | 
						|
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      |160 |
 | 
						|
|1 | TABLE SCAN         |t19 |100      |78  |
 | 
						|
|2 | TABLE SCAN         |t19 |100      |78  |
 | 
						|
=============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])], [UNION([2])]), filter(nil)
 | 
						|
  1 - output([t19.c2], [t19.c1]), filter(nil), 
 | 
						|
      access([t19.c1], [t19.c2]), 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.c1], [t19.c2]), 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 581(end)  ************** 
 | 
						|
 | 
						|
***************   Case 582   ***************
 | 
						|
 | 
						|
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|      |142      |284 |
 | 
						|
|1 | MERGE GROUP BY     |      |71       |140 |
 | 
						|
|2 |  SORT              |      |100      |135 |
 | 
						|
|3 |   TABLE SCAN       |set_t1|100      |78  |
 | 
						|
|4 | MERGE GROUP BY     |      |71       |140 |
 | 
						|
|5 |  SORT              |      |100      |135 |
 | 
						|
|6 |   TABLE SCAN       |set_t2|100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
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 582(end)  ************** 
 | 
						|
 | 
						|
***************   Case 583   ***************
 | 
						|
 | 
						|
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|      |71       |284 |
 | 
						|
|1 | MERGE GROUP BY         |      |71       |140 |
 | 
						|
|2 |  SORT                  |      |100      |135 |
 | 
						|
|3 |   TABLE SCAN           |set_t1|100      |78  |
 | 
						|
|4 | MERGE GROUP BY         |      |71       |140 |
 | 
						|
|5 |  SORT                  |      |100      |135 |
 | 
						|
|6 |   TABLE SCAN           |set_t2|100      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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 583(end)  ************** 
 | 
						|
 | 
						|
***************   Case 584   ***************
 | 
						|
 | 
						|
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|      |71       |284 |
 | 
						|
|1 | MERGE GROUP BY      |      |71       |140 |
 | 
						|
|2 |  SORT               |      |100      |135 |
 | 
						|
|3 |   TABLE SCAN        |set_t1|100      |78  |
 | 
						|
|4 | MERGE GROUP BY      |      |71       |140 |
 | 
						|
|5 |  SORT               |      |100      |135 |
 | 
						|
|6 |   TABLE SCAN        |set_t2|100      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 584(end)  ************** 
 | 
						|
 | 
						|
***************   Case 585   ***************
 | 
						|
 | 
						|
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        |92  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |2        |92  |
 | 
						|
|2 |  UNION ALL         |    |2        |91  |
 | 
						|
|3 |   TABLE GET        |t1  |1        |46  |
 | 
						|
|4 |   TABLE GET        |t1  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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.c2]), filter(nil), 
 | 
						|
      access([t1.c2]), partitions(p2), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range[2 ; 2], 
 | 
						|
      range_cond([t1.c1 = ?])
 | 
						|
  4 - output([?], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c2]), partitions(p2), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range[2 ; 2], 
 | 
						|
      range_cond([t1.c1 = ?])
 | 
						|
 | 
						|
*************** Case 585(end)  ************** 
 | 
						|
 | 
						|
***************   Case 586   ***************
 | 
						|
 | 
						|
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 586(end)  ************** 
 | 
						|
 | 
						|
***************   Case 587   ***************
 | 
						|
 | 
						|
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 587(end)  ************** 
 | 
						|
 | 
						|
***************   Case 588   ***************
 | 
						|
 | 
						|
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      |1227|
 | 
						|
|1 | SUBPLAN FILTER           |        |300      |1222|
 | 
						|
|2 |  SUBPLAN FILTER          |        |300      |751 |
 | 
						|
|3 |   PX COORDINATOR         |        |300      |280 |
 | 
						|
|4 |    EXCHANGE OUT DISTR    |:EX10000|300      |263 |
 | 
						|
|5 |     PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|6 |      TABLE SCAN          |t2      |300      |233 |
 | 
						|
|7 |   PX COORDINATOR         |        |500      |466 |
 | 
						|
|8 |    EXCHANGE OUT DISTR    |:EX20000|500      |439 |
 | 
						|
|9 |     PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|10|      TABLE SCAN          |t1      |500      |387 |
 | 
						|
|11|  PX COORDINATOR          |        |500      |466 |
 | 
						|
|12|   EXCHANGE OUT DISTR     |:EX30000|500      |439 |
 | 
						|
|13|    PX PARTITION ITERATOR |        |500      |387 |
 | 
						|
|14|     TABLE SCAN           |t1      |500      |387 |
 | 
						|
|15| 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(nil), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  3 - output(nil), filter(nil)
 | 
						|
  4 - output(nil), filter(nil), dop=1
 | 
						|
  5 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - output(nil), 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.
 | 
						|
  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([t1.c1]), filter(nil)
 | 
						|
  12 - output([t1.c1]), filter(nil), dop=1
 | 
						|
  13 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  15 - output([?]), filter(nil)
 | 
						|
      values({?})
 | 
						|
 | 
						|
*************** Case 588(end)  ************** 
 | 
						|
 | 
						|
***************   Case 589   ***************
 | 
						|
 | 
						|
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      |1227|
 | 
						|
|1 | MERGE UNION DISTINCT     |        |301      |756 |
 | 
						|
|2 |  SUBPLAN FILTER          |        |300      |751 |
 | 
						|
|3 |   PX COORDINATOR         |        |300      |280 |
 | 
						|
|4 |    EXCHANGE OUT DISTR    |:EX10000|300      |263 |
 | 
						|
|5 |     PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|6 |      TABLE SCAN          |t2      |300      |233 |
 | 
						|
|7 |   PX COORDINATOR         |        |500      |466 |
 | 
						|
|8 |    EXCHANGE OUT DISTR    |:EX20000|500      |439 |
 | 
						|
|9 |     PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|10|      TABLE SCAN          |t1      |500      |387 |
 | 
						|
|11|  EXPRESSION              |        |1        |1   |
 | 
						|
|12| PX COORDINATOR           |        |500      |466 |
 | 
						|
|13|  EXCHANGE OUT DISTR      |:EX30000|500      |439 |
 | 
						|
|14|   PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|15|    TABLE SCAN            |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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(nil), filter(nil)
 | 
						|
  4 - output(nil), filter(nil), dop=1
 | 
						|
  5 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - output(nil), 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.
 | 
						|
  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.
 | 
						|
  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 589(end)  ************** 
 | 
						|
 | 
						|
***************   Case 590   ***************
 | 
						|
 | 
						|
SQL: (select c1 from t1) union (select c2 from t1) union (select c2 from t2); 
 | 
						|
 | 
						|
===========================================================
 | 
						|
|ID|OPERATOR                 |NAME         |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------
 | 
						|
|0 |HASH DISTINCT            |             |1        |1545|
 | 
						|
|1 | UNION ALL               |             |1300     |1234|
 | 
						|
|2 |  PX COORDINATOR         |             |500      |466 |
 | 
						|
|3 |   EXCHANGE OUT DISTR    |:EX10000     |500      |439 |
 | 
						|
|4 |    PX PARTITION ITERATOR|             |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1           |500      |387 |
 | 
						|
|6 |  PX COORDINATOR         |             |500      |466 |
 | 
						|
|7 |   EXCHANGE OUT DISTR    |:EX20000     |500      |439 |
 | 
						|
|8 |    PX PARTITION ITERATOR|             |500      |387 |
 | 
						|
|9 |     TABLE SCAN          |t1(idx_t1_c2)|500      |387 |
 | 
						|
|10|  PX COORDINATOR         |             |300      |280 |
 | 
						|
|11|   EXCHANGE OUT DISTR    |:EX30000     |300      |263 |
 | 
						|
|12|    PX PARTITION ITERATOR|             |300      |233 |
 | 
						|
|13|     TABLE SCAN          |t2           |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])]), filter(nil), 
 | 
						|
      distinct([UNION([1])])
 | 
						|
  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.
 | 
						|
  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([t1.c2]), filter(nil)
 | 
						|
  7 - output([t1.c2]), filter(nil), dop=1
 | 
						|
  8 - output([t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  10 - output([t2.c2]), filter(nil)
 | 
						|
  11 - output([t2.c2]), filter(nil), dop=1
 | 
						|
  12 - output([t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  13 - 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 590(end)  ************** 
 | 
						|
 | 
						|
***************   Case 591   ***************
 | 
						|
 | 
						|
SQL: (select c1 from t1) union (select 1); 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |HASH UNION DISTINCT     |        |501      |691 |
 | 
						|
|1 | PX COORDINATOR         |        |500      |466 |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|3 |   PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|4 |    TABLE SCAN          |t1      |500      |387 |
 | 
						|
|5 | EXPRESSION             |        |1        |1   |
 | 
						|
=====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])]), filter(nil)
 | 
						|
  1 - output([cast(t1.c1, BIGINT(20, 0))]), filter(nil)
 | 
						|
  2 - output([t1.c1]), filter(nil), dop=1
 | 
						|
  3 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([?]), filter(nil)
 | 
						|
      values({?})
 | 
						|
 | 
						|
*************** Case 591(end)  ************** 
 | 
						|
 | 
						|
***************   Case 592   ***************
 | 
						|
 | 
						|
SQL: (select a from t12) union (select 1); 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |MERGE UNION DISTINCT|    |101      |80  |
 | 
						|
|1 | TABLE SCAN         |t12 |100      |78  |
 | 
						|
|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 592(end)  ************** 
 | 
						|
 | 
						|
***************   Case 593   ***************
 | 
						|
 | 
						|
SQL: (select pk1 from set_t1) union distinct (select pk2 from set_t2); 
 | 
						|
 | 
						|
===============================================
 | 
						|
|ID|OPERATOR            |NAME  |EST. ROWS|COST|
 | 
						|
-----------------------------------------------
 | 
						|
|0 |MERGE UNION DISTINCT|      |200      |159 |
 | 
						|
|1 | TABLE SCAN         |set_t1|100      |78  |
 | 
						|
|2 | TABLE SCAN         |set_t2|100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
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 593(end)  ************** 
 | 
						|
 | 
						|
***************   Case 594   ***************
 | 
						|
 | 
						|
SQL: (select pk1 from set_t1) union all (select pk2 from set_t2); 
 | 
						|
 | 
						|
======================================
 | 
						|
|ID|OPERATOR   |NAME  |EST. ROWS|COST|
 | 
						|
--------------------------------------
 | 
						|
|0 |UNION ALL  |      |200      |159 |
 | 
						|
|1 | TABLE SCAN|set_t1|100      |78  |
 | 
						|
|2 | TABLE SCAN|set_t2|100      |78  |
 | 
						|
======================================
 | 
						|
 | 
						|
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 594(end)  ************** 
 | 
						|
 | 
						|
***************   Case 595   ***************
 | 
						|
 | 
						|
SQL: (select pk1 from set_t1) except (select pk2 from set_t2); 
 | 
						|
 | 
						|
================================================
 | 
						|
|ID|OPERATOR             |NAME  |EST. ROWS|COST|
 | 
						|
------------------------------------------------
 | 
						|
|0 |MERGE EXCEPT DISTINCT|      |100      |159 |
 | 
						|
|1 | TABLE SCAN          |set_t1|100      |78  |
 | 
						|
|2 | TABLE SCAN          |set_t2|100      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 595(end)  ************** 
 | 
						|
 | 
						|
***************   Case 596   ***************
 | 
						|
 | 
						|
SQL: (select pk1 from set_t1) intersect (select pk2 from set_t2); 
 | 
						|
 | 
						|
===================================================
 | 
						|
|ID|OPERATOR                |NAME  |EST. ROWS|COST|
 | 
						|
---------------------------------------------------
 | 
						|
|0 |MERGE INTERSECT DISTINCT|      |100      |159 |
 | 
						|
|1 | TABLE SCAN             |set_t1|100      |78  |
 | 
						|
|2 | TABLE SCAN             |set_t2|100      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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 596(end)  ************** 
 | 
						|
 | 
						|
***************   Case 597   ***************
 | 
						|
 | 
						|
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      |249 |
 | 
						|
|1 | TABLE SCAN        |set_t1|100      |78  |
 | 
						|
|2 | TABLE SCAN        |set_t2|100      |78  |
 | 
						|
==============================================
 | 
						|
 | 
						|
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 597(end)  ************** 
 | 
						|
 | 
						|
***************   Case 598   ***************
 | 
						|
 | 
						|
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      |159 |
 | 
						|
|1 | TABLE SCAN|set_t1|100      |78  |
 | 
						|
|2 | TABLE SCAN|set_t2|100      |78  |
 | 
						|
======================================
 | 
						|
 | 
						|
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 598(end)  ************** 
 | 
						|
 | 
						|
***************   Case 599   ***************
 | 
						|
 | 
						|
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      |249 |
 | 
						|
|1 | TABLE SCAN         |set_t1|100      |78  |
 | 
						|
|2 | TABLE SCAN         |set_t2|100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
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 599(end)  ************** 
 | 
						|
 | 
						|
***************   Case 600   ***************
 | 
						|
 | 
						|
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      |228 |
 | 
						|
|1 | TABLE SCAN            |set_t1|100      |78  |
 | 
						|
|2 | TABLE SCAN            |set_t2|100      |78  |
 | 
						|
==================================================
 | 
						|
 | 
						|
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 600(end)  ************** 
 | 
						|
 | 
						|
***************   Case 601   ***************
 | 
						|
 | 
						|
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      |376 |
 | 
						|
|1 | HASH UNION DISTINCT|      |200      |249 |
 | 
						|
|2 |  TABLE SCAN        |set_t1|100      |78  |
 | 
						|
|3 |  TABLE SCAN        |set_t2|100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
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 601(end)  ************** 
 | 
						|
 | 
						|
***************   Case 602   ***************
 | 
						|
 | 
						|
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      |286 |
 | 
						|
|1 | UNION ALL  |      |200      |159 |
 | 
						|
|2 |  TABLE SCAN|set_t1|100      |78  |
 | 
						|
|3 |  TABLE SCAN|set_t2|100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 602(end)  ************** 
 | 
						|
 | 
						|
***************   Case 603   ***************
 | 
						|
 | 
						|
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      |304 |
 | 
						|
|1 | HASH EXCEPT DISTINCT|      |100      |249 |
 | 
						|
|2 |  TABLE SCAN         |set_t1|100      |78  |
 | 
						|
|3 |  TABLE SCAN         |set_t2|100      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 603(end)  ************** 
 | 
						|
 | 
						|
***************   Case 604   ***************
 | 
						|
 | 
						|
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      |283 |
 | 
						|
|1 | HASH INTERSECT DISTINCT|      |100      |228 |
 | 
						|
|2 |  TABLE SCAN            |set_t1|100      |78  |
 | 
						|
|3 |  TABLE SCAN            |set_t2|100      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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 604(end)  ************** 
 | 
						|
 | 
						|
***************   Case 605   ***************
 | 
						|
 | 
						|
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      |1259|
 | 
						|
|1 | EXPRESSION              |        |1        |1   |
 | 
						|
|2 | UNION ALL               |        |900      |855 |
 | 
						|
|3 |  PX COORDINATOR         |        |400      |373 |
 | 
						|
|4 |   EXCHANGE OUT DISTR    |:EX10000|400      |351 |
 | 
						|
|5 |    PX PARTITION ITERATOR|        |400      |310 |
 | 
						|
|6 |     TABLE SCAN          |t15     |400      |310 |
 | 
						|
|7 |  PX COORDINATOR         |        |500      |466 |
 | 
						|
|8 |   EXCHANGE OUT DISTR    |:EX20000|500      |439 |
 | 
						|
|9 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|10|     TABLE SCAN          |t14     |500      |387 |
 | 
						|
======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])]), filter(nil)
 | 
						|
  1 - output([?]), filter(nil)
 | 
						|
      values({?})
 | 
						|
  2 - output([cast(UNION([1]), BIGINT(20, 0))]), filter(nil)
 | 
						|
  3 - output([t15.c1]), filter(nil)
 | 
						|
  4 - output([t15.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t15.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  6 - 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
 | 
						|
  7 - output([t14.c1]), filter(nil)
 | 
						|
  8 - output([t14.c1]), filter(nil), dop=1
 | 
						|
  9 - output([t14.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  10 - 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
 | 
						|
 | 
						|
*************** Case 605(end)  ************** 
 | 
						|
 | 
						|
***************   Case 606   ***************
 | 
						|
 | 
						|
SQL: select 1 from t1,t2 order by t1.c2+t2.c2; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST  |
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |SORT                       |        |150000   |218193|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|        |150000   |8483  |
 | 
						|
|2 |  PX COORDINATOR           |        |300      |280   |
 | 
						|
|3 |   EXCHANGE OUT DISTR      |:EX10000|300      |263   |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |300      |233   |
 | 
						|
|5 |     TABLE SCAN            |t2      |300      |233   |
 | 
						|
|6 |  MATERIAL                 |        |500      |468   |
 | 
						|
|7 |   PX COORDINATOR          |        |500      |466   |
 | 
						|
|8 |    EXCHANGE OUT DISTR     |:EX20000|500      |439   |
 | 
						|
|9 |     PX PARTITION ITERATOR |        |500      |387   |
 | 
						|
|10|      TABLE SCAN           |t1      |500      |387   |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil), sort_keys([t1.c2 + t2.c2, ASC])
 | 
						|
  1 - output([t2.c2], [t1.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  2 - output([t2.c2]), filter(nil)
 | 
						|
  3 - output([t2.c2]), filter(nil), dop=1
 | 
						|
  4 - output([t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  6 - output([t1.c2]), filter(nil)
 | 
						|
  7 - output([t1.c2]), filter(nil)
 | 
						|
  8 - output([t1.c2]), filter(nil), dop=1
 | 
						|
  9 - output([t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  10 - 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 606(end)  ************** 
 | 
						|
 | 
						|
***************   Case 607   ***************
 | 
						|
 | 
						|
SQL: select 'a', c1 from t1 union select 'b', c1 from t7; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |600      |853 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|600      |820 |
 | 
						|
|2 |  HASH UNION DISTINCT        |        |600      |758 |
 | 
						|
|3 |   PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN               |t1      |500      |387 |
 | 
						|
|5 |   EXCHANGE IN DISTR         |        |100      |94  |
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|100      |88  |
 | 
						|
|7 |     TABLE SCAN              |t7      |100      |78  |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(UNION([1]), UNION([2]))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(UNION([1]), UNION([2]))]), filter(nil), dop=1
 | 
						|
  2 - output([UNION([1])], [UNION([2])]), filter(nil)
 | 
						|
  3 - output([?], [t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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([?], [t7.c1]), filter(nil)
 | 
						|
  6 - (#keys=1, [t7.c1]), output([t7.c1]), filter(nil), is_single, dop=1
 | 
						|
  7 - output([t7.c1]), filter(nil), 
 | 
						|
      access([t7.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t7.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 607(end)  ************** 
 | 
						|
 | 
						|
***************   Case 608   ***************
 | 
						|
 | 
						|
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|    |1        |158 |
 | 
						|
|1 | TABLE SCAN        |t13 |1        |79  |
 | 
						|
|2 | TABLE SCAN        |t13 |1        |79  |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])]), filter(nil)
 | 
						|
  1 - output([t13.b]), filter([cast(t13.b, DECIMAL(-1, -1)) = ?]), 
 | 
						|
      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([cast(t13.b, DECIMAL(-1, -1)) = ?]), 
 | 
						|
      access([t13.b]), partitions(p0), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([t13.a]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 608(end)  ************** 
 | 
						|
 | 
						|
***************   Case 609   ***************
 | 
						|
 | 
						|
SQL: select * from t7, t8 where (t7.c1, t7.c2) = (t8.c1, t8.c2); 
 | 
						|
 | 
						|
====================================
 | 
						|
|ID|OPERATOR   |NAME|EST. ROWS|COST|
 | 
						|
------------------------------------
 | 
						|
|0 |MERGE JOIN |    |82       |184 |
 | 
						|
|1 | TABLE SCAN|t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN|t8  |100      |78  |
 | 
						|
====================================
 | 
						|
 | 
						|
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 609(end)  ************** 
 | 
						|
 | 
						|
***************   Case 610   ***************
 | 
						|
 | 
						|
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 |    |82       |184 |
 | 
						|
|1 | TABLE SCAN|t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN|t8  |100      |78  |
 | 
						|
====================================
 | 
						|
 | 
						|
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 610(end)  ************** 
 | 
						|
 | 
						|
***************   Case 611   ***************
 | 
						|
 | 
						|
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     |1635|
 | 
						|
|1 | TABLE SCAN     |t7  |100      |78  |
 | 
						|
|2 | MATERIAL       |    |100      |79  |
 | 
						|
|3 |  TABLE SCAN    |t8  |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 611(end)  ************** 
 | 
						|
 | 
						|
***************   Case 612   ***************
 | 
						|
 | 
						|
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     |1635|
 | 
						|
|1 | TABLE SCAN     |t7  |100      |78  |
 | 
						|
|2 | MATERIAL       |    |100      |79  |
 | 
						|
|3 |  TABLE SCAN    |t8  |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 612(end)  ************** 
 | 
						|
 | 
						|
***************   Case 613   ***************
 | 
						|
 | 
						|
SQL: select distinct c1+@var from t1; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |500      |960 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|500      |933 |
 | 
						|
|2 |  MERGE DISTINCT               |        |500      |881 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |500      |858 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000|500      |830 |
 | 
						|
|5 |     MERGE DISTINCT            |        |500      |779 |
 | 
						|
|6 |      SORT                     |        |500      |756 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|8 |        TABLE SCAN             |t1      |500      |387 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(cast(t1.c1, DOUBLE(-1, -1)) + ?)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(cast(t1.c1, DOUBLE(-1, -1)) + ?)]), filter(nil), dop=1
 | 
						|
  2 - output([cast(t1.c1, DOUBLE(-1, -1)) + ?]), filter(nil), 
 | 
						|
      distinct([cast(t1.c1, DOUBLE(-1, -1)) + ?])
 | 
						|
  3 - output([cast(t1.c1, DOUBLE(-1, -1)) + ?]), filter(nil), sort_keys([cast(t1.c1, DOUBLE(-1, -1)) + ?, ASC])
 | 
						|
  4 - (#keys=1, [cast(t1.c1, DOUBLE(-1, -1)) + ?]), output([cast(t1.c1, DOUBLE(-1, -1)) + ?]), filter(nil), dop=1
 | 
						|
  5 - output([cast(t1.c1, DOUBLE(-1, -1)) + ?]), filter(nil), 
 | 
						|
      distinct([cast(t1.c1, DOUBLE(-1, -1)) + ?])
 | 
						|
  6 - output([cast(t1.c1, DOUBLE(-1, -1)) + ?]), filter(nil), sort_keys([cast(t1.c1, DOUBLE(-1, -1)) + ?, ASC])
 | 
						|
  7 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 613(end)  ************** 
 | 
						|
 | 
						|
***************   Case 614   ***************
 | 
						|
 | 
						|
SQL: select distinct c1+(@a:=c2) from t1; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |500      |1089|
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|500      |1042|
 | 
						|
|2 |  MERGE DISTINCT               |        |500      |948 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |500      |923 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000|500      |877 |
 | 
						|
|5 |     MERGE DISTINCT            |        |500      |783 |
 | 
						|
|6 |      SORT                     |        |500      |758 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|8 |        TABLE SCAN             |t1      |500      |387 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1 + (T_OP_ASSIGN, 'a', t1.c2))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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), sort_keys([t1.c1 + (T_OP_ASSIGN, 'a', t1.c2), ASC])
 | 
						|
  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), 
 | 
						|
      distinct([t1.c1 + (T_OP_ASSIGN, 'a', t1.c2)])
 | 
						|
  6 - output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c2)]), filter(nil), sort_keys([t1.c1 + (T_OP_ASSIGN, 'a', t1.c2), ASC])
 | 
						|
  7 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 614(end)  ************** 
 | 
						|
 | 
						|
***************   Case 615   ***************
 | 
						|
 | 
						|
SQL: select distinct c1+(@a:=c1) from t1; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |500      |960 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|500      |933 |
 | 
						|
|2 |  MERGE DISTINCT               |        |500      |881 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |500      |858 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000|500      |830 |
 | 
						|
|5 |     MERGE DISTINCT            |        |500      |779 |
 | 
						|
|6 |      SORT                     |        |500      |756 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |        |500      |387 |
 | 
						|
|8 |        TABLE SCAN             |t1      |500      |387 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1 + (T_OP_ASSIGN, 'a', t1.c1))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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), sort_keys([t1.c1 + (T_OP_ASSIGN, 'a', t1.c1), ASC])
 | 
						|
  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), 
 | 
						|
      distinct([t1.c1 + (T_OP_ASSIGN, 'a', t1.c1)])
 | 
						|
  6 - output([t1.c1 + (T_OP_ASSIGN, 'a', t1.c1)]), filter(nil), sort_keys([t1.c1 + (T_OP_ASSIGN, 'a', t1.c1), ASC])
 | 
						|
  7 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 615(end)  ************** 
 | 
						|
 | 
						|
***************   Case 616   ***************
 | 
						|
 | 
						|
SQL: select distinct c2+(@a:=c2) from t1; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |100      |604 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|100      |599 |
 | 
						|
|2 |  HASH DISTINCT              |        |100      |588 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |100      |544 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)|:EX10000|100      |538 |
 | 
						|
|5 |     HASH DISTINCT           |        |100      |528 |
 | 
						|
|6 |      PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|7 |       TABLE SCAN            |t1      |500      |387 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2 + (T_OP_ASSIGN, 'a', t1.c2))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  7 - 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 616(end)  ************** 
 | 
						|
 | 
						|
***************   Case 617   ***************
 | 
						|
 | 
						|
SQL: select /*+use_merge(tt1 tt2)*/* from tt1,tt2 where tt1.c1=tt2.c1; 
 | 
						|
 | 
						|
=====================================
 | 
						|
|ID|OPERATOR    |NAME|EST. ROWS|COST|
 | 
						|
-------------------------------------
 | 
						|
|0 |MERGE JOIN  |    |100      |266 |
 | 
						|
|1 | TABLE SCAN |tt2 |100      |78  |
 | 
						|
|2 | SORT       |    |100      |156 |
 | 
						|
|3 |  TABLE SCAN|tt1 |100      |78  |
 | 
						|
=====================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt1.c1], [tt1.c2], [tt2.c1], [tt2.c2]), filter(nil), 
 | 
						|
      equal_conds([cast(tt1.c1, VARCHAR(1048576)) = tt2.c1]), other_conds(nil)
 | 
						|
  1 - 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
 | 
						|
  2 - output([tt1.c1], [tt1.c2], [cast(tt1.c1, VARCHAR(1048576))]), filter(nil), sort_keys([cast(tt1.c1, VARCHAR(1048576)), ASC])
 | 
						|
  3 - 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
 | 
						|
 | 
						|
*************** Case 617(end)  ************** 
 | 
						|
 | 
						|
***************   Case 618   ***************
 | 
						|
 | 
						|
SQL: select /*+use_merge(tt1 tt2)*/* from tt1,tt2 where tt1.c2=tt2.c2; 
 | 
						|
 | 
						|
=====================================
 | 
						|
|ID|OPERATOR    |NAME|EST. ROWS|COST|
 | 
						|
-------------------------------------
 | 
						|
|0 |MERGE JOIN  |    |113      |347 |
 | 
						|
|1 | SORT       |    |100      |156 |
 | 
						|
|2 |  TABLE SCAN|tt2 |100      |78  |
 | 
						|
|3 | SORT       |    |100      |156 |
 | 
						|
|4 |  TABLE SCAN|tt1 |100      |78  |
 | 
						|
=====================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt1.c1], [tt1.c2], [tt2.c1], [tt2.c2]), filter(nil), 
 | 
						|
      equal_conds([cast(tt1.c2, VARCHAR(1048576)) = tt2.c2]), other_conds(nil)
 | 
						|
  1 - output([tt2.c1], [tt2.c2]), filter(nil), sort_keys([tt2.c2, ASC])
 | 
						|
  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
 | 
						|
  3 - output([tt1.c1], [tt1.c2], [cast(tt1.c2, VARCHAR(1048576))]), filter(nil), sort_keys([cast(tt1.c2, VARCHAR(1048576)), ASC])
 | 
						|
  4 - 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
 | 
						|
 | 
						|
*************** Case 618(end)  ************** 
 | 
						|
 | 
						|
***************   Case 619   ***************
 | 
						|
 | 
						|
SQL: select /*+use_merge(t1, t2)*/* from t1,t2 where t1.c1=t2.c3; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |MERGE JOIN                 |        |300      |1572|
 | 
						|
|1 | PX COORDINATOR MERGE SORT |        |300      |641 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000|300      |567 |
 | 
						|
|3 |   SORT                    |        |300      |409 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|5 |     TABLE SCAN            |t2      |300      |233 |
 | 
						|
|6 | PX COORDINATOR MERGE SORT |        |500      |839 |
 | 
						|
|7 |  EXCHANGE OUT DISTR       |:EX20000|500      |792 |
 | 
						|
|8 |   SORT                    |        |500      |698 |
 | 
						|
|9 |    PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|10|     TABLE SCAN            |t1      |500      |387 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([cast(t1.c1, DECIMAL(11, 0)) = cast(t2.c3, DECIMAL(-1, -1))]), other_conds(nil)
 | 
						|
  1 - output([t2.c1], [t2.c2], [t2.c3], [cast(t2.c3, DECIMAL(-1, -1))]), filter(nil), sort_keys([cast(t2.c3, DECIMAL(-1, -1)), ASC])
 | 
						|
  2 - output([t2.c1], [t2.c2], [t2.c3], [cast(t2.c3, DECIMAL(-1, -1))]), filter(nil), dop=1
 | 
						|
  3 - output([t2.c1], [t2.c2], [t2.c3], [cast(t2.c3, DECIMAL(-1, -1))]), filter(nil), sort_keys([cast(t2.c3, DECIMAL(-1, -1)), ASC])
 | 
						|
  4 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([t1.c1], [t1.c2], [cast(t1.c1, DECIMAL(11, 0))]), filter(nil), sort_keys([cast(t1.c1, DECIMAL(11, 0)), ASC])
 | 
						|
  7 - output([t1.c1], [t1.c2], [cast(t1.c1, DECIMAL(11, 0))]), filter(nil), dop=1
 | 
						|
  8 - output([t1.c1], [t1.c2], [cast(t1.c1, DECIMAL(11, 0))]), filter(nil), sort_keys([cast(t1.c1, DECIMAL(11, 0)), ASC])
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 619(end)  ************** 
 | 
						|
 | 
						|
***************   Case 620   ***************
 | 
						|
 | 
						|
SQL: select /*+use_merge(t1, t12)*/* from t1,t12 where t1.c1=t12.a; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |100      |749 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|100      |723 |
 | 
						|
|2 |  MERGE JOIN                 |        |100      |666 |
 | 
						|
|3 |   SORT                      |        |500      |490 |
 | 
						|
|4 |    PX PARTITION ITERATOR    |        |500      |387 |
 | 
						|
|5 |     TABLE SCAN              |t1      |500      |387 |
 | 
						|
|6 |   EXCHANGE IN DISTR         |        |100      |137 |
 | 
						|
|7 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|100      |118 |
 | 
						|
|8 |     TABLE SCAN              |t12     |100      |78  |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t12.a, t12.b, t12.c)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t12.a, t12.b, t12.c)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t12.a], [t1.c2], [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.
 | 
						|
  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 620(end)  ************** 
 | 
						|
 | 
						|
***************   Case 621   ***************
 | 
						|
 | 
						|
SQL: select /*+use_merge(t1, t13)*/* from t1,t13 where t1.c1=t13.b; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |MERGE JOIN                 |        |100      |1003|
 | 
						|
|1 | PX COORDINATOR MERGE SORT |        |500      |839 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000|500      |792 |
 | 
						|
|3 |   SORT                    |        |500      |698 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|5 |     TABLE SCAN            |t1      |500      |387 |
 | 
						|
|6 | SORT                      |        |100      |125 |
 | 
						|
|7 |  TABLE SCAN               |t13     |100      |78  |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t13.b], [t13.c], [t13.a]), filter(nil), 
 | 
						|
      equal_conds([cast(t1.c1, DECIMAL(11, 0)) = cast(t13.b, DECIMAL(-1, -1))]), other_conds(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2], [cast(t1.c1, DECIMAL(11, 0))]), filter(nil), sort_keys([cast(t1.c1, DECIMAL(11, 0)), ASC])
 | 
						|
  2 - output([t1.c1], [t1.c2], [cast(t1.c1, DECIMAL(11, 0))]), filter(nil), dop=1
 | 
						|
  3 - output([t1.c1], [t1.c2], [cast(t1.c1, DECIMAL(11, 0))]), filter(nil), sort_keys([cast(t1.c1, DECIMAL(11, 0)), ASC])
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([t13.b], [t13.c], [t13.a], [cast(t13.b, DECIMAL(-1, -1))]), filter(nil), sort_keys([cast(t13.b, DECIMAL(-1, -1)), ASC])
 | 
						|
  7 - output([t13.a], [t13.b], [t13.c]), filter(nil), 
 | 
						|
      access([t13.a], [t13.b], [t13.c]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t13.a]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 621(end)  ************** 
 | 
						|
 | 
						|
***************   Case 622   ***************
 | 
						|
 | 
						|
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                 |        |270      |1262|
 | 
						|
|1 | PX COORDINATOR MERGE SORT |        |300      |483 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000|300      |467 |
 | 
						|
|3 |   SORT                    |        |300      |436 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|5 |     TABLE SCAN            |t_u     |300      |233 |
 | 
						|
|6 | PX COORDINATOR MERGE SORT |        |500      |631 |
 | 
						|
|7 |  EXCHANGE OUT DISTR       |:EX20000|500      |584 |
 | 
						|
|8 |   SORT                    |        |500      |490 |
 | 
						|
|9 |    PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|10|     TABLE SCAN            |t1      |500      |387 |
 | 
						|
========================================================
 | 
						|
 | 
						|
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([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.
 | 
						|
  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([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC])
 | 
						|
  7 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  8 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 622(end)  ************** 
 | 
						|
 | 
						|
***************   Case 623   ***************
 | 
						|
 | 
						|
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                 |        |271      |633 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT |        |300      |483 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000|300      |467 |
 | 
						|
|3 |   SORT                    |        |300      |436 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|5 |     TABLE SCAN            |t_u     |300      |233 |
 | 
						|
|6 | TABLE SCAN                |t12     |100      |78  |
 | 
						|
========================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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 623(end)  ************** 
 | 
						|
 | 
						|
***************   Case 624   ***************
 | 
						|
 | 
						|
SQL: select /*+use_merge(t2, t3)*/* from t2,t3 where t2.c3=t3.c3; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |MERGE JOIN                 |        |487      |1397|
 | 
						|
|1 | PX COORDINATOR MERGE SORT |        |300      |756 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000|300      |682 |
 | 
						|
|3 |   SORT                    |        |300      |524 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|5 |     TABLE SCAN            |t2      |300      |233 |
 | 
						|
|6 | PX COORDINATOR MERGE SORT |        |200      |491 |
 | 
						|
|7 |  EXCHANGE OUT DISTR       |:EX20000|200      |442 |
 | 
						|
|8 |   SORT                    |        |200      |336 |
 | 
						|
|9 |    PX PARTITION ITERATOR  |        |200      |155 |
 | 
						|
|10|     TABLE SCAN            |t3      |200      |155 |
 | 
						|
========================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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.
 | 
						|
  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 624(end)  ************** 
 | 
						|
 | 
						|
***************   Case 625   ***************
 | 
						|
 | 
						|
SQL: select * from yuming where c2 in ('-99999.99999','0.0'); 
 | 
						|
 | 
						|
=====================================
 | 
						|
|ID|OPERATOR  |NAME  |EST. ROWS|COST|
 | 
						|
-------------------------------------
 | 
						|
|0 |TABLE SCAN|yuming|18       |80  |
 | 
						|
=====================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([yuming.c1], [yuming.c2]), filter([cast(yuming.c2, DOUBLE(-1, -1)) IN (?, ?)]), 
 | 
						|
      access([yuming.c1], [yuming.c2]), partitions(p0), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([yuming.c1], [yuming.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 625(end)  ************** 
 | 
						|
 | 
						|
***************   Case 626   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 626(end)  ************** 
 | 
						|
 | 
						|
***************   Case 627   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 627(end)  ************** 
 | 
						|
 | 
						|
***************   Case 628   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 628(end)  ************** 
 | 
						|
 | 
						|
***************   Case 629   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 629(end)  ************** 
 | 
						|
 | 
						|
***************   Case 630   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 630(end)  ************** 
 | 
						|
 | 
						|
***************   Case 631   ***************
 | 
						|
 | 
						|
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|2        |80  |
 | 
						|
==========================================
 | 
						|
 | 
						|
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 631(end)  ************** 
 | 
						|
 | 
						|
***************   Case 632   ***************
 | 
						|
 | 
						|
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        |80  |
 | 
						|
|1 | TABLE SCAN   |t4(idx_t4_c2_c3)|100      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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 632(end)  ************** 
 | 
						|
 | 
						|
***************   Case 633   ***************
 | 
						|
 | 
						|
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        |161 |
 | 
						|
|1 | SCALAR GROUP BY|    |1        |81  |
 | 
						|
|2 |  TABLE SCAN    |t7  |100      |78  |
 | 
						|
|3 | TABLE SCAN     |t   |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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(nil), 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 633(end)  ************** 
 | 
						|
 | 
						|
***************   Case 634   ***************
 | 
						|
 | 
						|
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 |NESTED-LOOP ANTI JOIN|     |89       |9350|
 | 
						|
|1 | TABLE SCAN          |t1   |100      |78  |
 | 
						|
|2 | SUBPLAN SCAN        |VIEW2|1        |92  |
 | 
						|
|3 |  NESTED-LOOP JOIN   |     |1        |92  |
 | 
						|
|4 |   TABLE SCAN        |t3   |1        |46  |
 | 
						|
|5 |   MATERIAL          |     |34       |47  |
 | 
						|
|6 |    TABLE SCAN       |t2   |34       |46  |
 | 
						|
===============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t1.c1]), batch_join=false
 | 
						|
  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(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  3 - output([t2.c1], [t3.c1]), filter(nil), 
 | 
						|
      conds([cast(? + t2.c1, DECIMAL(12, 0)) < cast(t3.c1, DECIMAL(11, 0)) / ?]), nl_params_(nil), batch_join=false
 | 
						|
  4 - output([t3.c1]), filter(nil), 
 | 
						|
      access([t3.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t3.c1]), range(MIN ; MAX)always true
 | 
						|
  5 - output([t2.c1]), filter(nil)
 | 
						|
  6 - output([t2.c1]), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t2.c1]), range(MIN ; MAX)always true, 
 | 
						|
      range_cond([? >= t2.c1])
 | 
						|
 | 
						|
*************** Case 634(end)  ************** 
 | 
						|
 | 
						|
***************   Case 635   ***************
 | 
						|
 | 
						|
SQL: select count(1) from t_func group by c1,c2; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t_func  |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(1)]), filter(nil), dop=1
 | 
						|
  2 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output(nil), 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 635(end)  ************** 
 | 
						|
 | 
						|
***************   Case 636   ***************
 | 
						|
 | 
						|
SQL: select count(1) from t_func group by c1; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |100      |493 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|100      |480 |
 | 
						|
|2 |  MERGE GROUP BY               |        |100      |453 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |100      |446 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000|100      |437 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |        |100      |418 |
 | 
						|
|6 |      MERGE GROUP BY           |        |100      |418 |
 | 
						|
|7 |       TABLE SCAN              |t_func  |500      |387 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_COUNT_SUM(T_FUN_COUNT(*)))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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 636(end)  ************** 
 | 
						|
 | 
						|
***************   Case 637   ***************
 | 
						|
 | 
						|
SQL: select count(1) from t_func group by floor(c2+c1); 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |824 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |759 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |622 |
 | 
						|
|3 |   HASH GROUP BY       |        |500      |622 |
 | 
						|
|4 |    TABLE SCAN         |t_func  |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(T_FUN_COUNT(*))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(T_FUN_COUNT(*))]), filter(nil), dop=1
 | 
						|
  2 - output([T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      partition wise, force partition granule.
 | 
						|
  3 - output([T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      group([floor(t_func.c2 + t_func.c1)]), agg_func([T_FUN_COUNT(*)])
 | 
						|
  4 - output([t_func.c1], [t_func.c2]), filter(nil), 
 | 
						|
      access([t_func.c1], [t_func.c2]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t_func.c1], [t_func.c2]), range(MIN,MIN ; MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 637(end)  ************** 
 | 
						|
 | 
						|
***************   Case 638   ***************
 | 
						|
 | 
						|
SQL: select distinct c1 from t_f; 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |100      |604 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|100      |599 |
 | 
						|
|2 |  HASH DISTINCT              |        |100      |588 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |100      |544 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)|:EX10000|100      |538 |
 | 
						|
|5 |     HASH DISTINCT           |        |100      |528 |
 | 
						|
|6 |      PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|7 |       TABLE SCAN            |t_f     |500      |387 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t_f.c1)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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 638(end)  ************** 
 | 
						|
 | 
						|
***************   Case 639   ***************
 | 
						|
 | 
						|
SQL: select distinct c1,c2 from t_f; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |761 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |715 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |621 |
 | 
						|
|3 |   HASH DISTINCT       |        |500      |621 |
 | 
						|
|4 |    TABLE SCAN         |t_f     |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t_f.c1, t_f.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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 639(end)  ************** 
 | 
						|
 | 
						|
***************   Case 640   ***************
 | 
						|
 | 
						|
SQL: select distinct c1,c2,c3 from t_f; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |832 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |766 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |630 |
 | 
						|
|3 |   HASH DISTINCT       |        |500      |630 |
 | 
						|
|4 |    TABLE SCAN         |t_f     |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t_f.c1, t_f.c2, t_f.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(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.
 | 
						|
  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 640(end)  ************** 
 | 
						|
 | 
						|
***************   Case 641   ***************
 | 
						|
 | 
						|
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       |7991|
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t   |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 641(end)  ************** 
 | 
						|
 | 
						|
***************   Case 642   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 having (select t7.c1 from t7 t)>0; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |34       |7991|
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t   |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 642(end)  ************** 
 | 
						|
 | 
						|
***************   Case 643   ***************
 | 
						|
 | 
						|
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|    |4        |895 |
 | 
						|
|1 | HASH GROUP BY|    |10       |104 |
 | 
						|
|2 |  TABLE SCAN  |t7  |100      |78  |
 | 
						|
|3 | TABLE SCAN   |t   |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 643(end)  ************** 
 | 
						|
 | 
						|
***************   Case 644   ***************
 | 
						|
 | 
						|
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        |32061|
 | 
						|
|1 | PX COORDINATOR          |        |1        |32061|
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |32060|
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |32059|
 | 
						|
|4 |    PX PARTITION ITERATOR|        |1        |32059|
 | 
						|
|5 |     NESTED-LOOP JOIN    |        |1        |32059|
 | 
						|
|6 |      TABLE SCAN         |b       |1        |32059|
 | 
						|
|7 |      TABLE GET          |a       |1        |1737 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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], 
 | 
						|
      range_key([b.TRADE_NO]), range(MIN ; MAX)always true
 | 
						|
  7 - output(nil), 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], 
 | 
						|
      range_key([a.TRADE_NO]), range(MIN ; MAX), 
 | 
						|
      range_cond([a.TRADE_NO = ?])
 | 
						|
 | 
						|
*************** Case 644(end)  ************** 
 | 
						|
 | 
						|
***************   Case 645   ***************
 | 
						|
 | 
						|
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        |    |73       |223 |
 | 
						|
|1 | HASH JOIN  |    |73       |184 |
 | 
						|
|2 |  TABLE SCAN|t   |9        |80  |
 | 
						|
|3 |  TABLE SCAN|t0  |100      |78  |
 | 
						|
=====================================
 | 
						|
 | 
						|
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.c1], [t0.pk], [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.pk], [t.c2], [t.c1], [t.a3]), filter([t.c2 = t.c1]), 
 | 
						|
      access([t.pk], [t.c2], [t.c1], [t.a3]), partitions(p0), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([t.pk]), range(MIN ; MAX)always true
 | 
						|
  3 - output([t0.pk], [t0.c1], [t0.c2], [t0.a3]), filter(nil), 
 | 
						|
      access([t0.pk], [t0.c1], [t0.c2], [t0.a3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t0.pk]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 645(end)  ************** 
 | 
						|
 | 
						|
***************   Case 646   ***************
 | 
						|
 | 
						|
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        |    |73       |223 |
 | 
						|
|1 | HASH JOIN  |    |73       |184 |
 | 
						|
|2 |  TABLE SCAN|t   |9        |80  |
 | 
						|
|3 |  TABLE SCAN|t0  |100      |78  |
 | 
						|
=====================================
 | 
						|
 | 
						|
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.c1], [t0.pk], [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.pk], [t.c1], [t.c2], [t.a3]), filter([t.c1 = t.c2]), 
 | 
						|
      access([t.pk], [t.c1], [t.c2], [t.a3]), partitions(p0), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([t.pk]), range(MIN ; MAX)always true
 | 
						|
  3 - output([t0.pk], [t0.c1], [t0.c2], [t0.a3]), filter(nil), 
 | 
						|
      access([t0.pk], [t0.c1], [t0.c2], [t0.a3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t0.pk]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 646(end)  ************** 
 | 
						|
 | 
						|
***************   Case 647   ***************
 | 
						|
 | 
						|
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 |SORT        |    |810      |867 |
 | 
						|
|1 | HASH JOIN  |    |810      |204 |
 | 
						|
|2 |  TABLE SCAN|t0  |100      |78  |
 | 
						|
|3 |  TABLE SCAN|t   |100      |78  |
 | 
						|
=====================================
 | 
						|
 | 
						|
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.c1], [t0.pk], [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([t0.pk], [t0.c1], [t0.c2], [t0.a3]), filter(nil), 
 | 
						|
      access([t0.pk], [t0.c1], [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), 
 | 
						|
      access([t.pk], [t.c1], [t.c2], [t.a3]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t.pk]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 647(end)  ************** 
 | 
						|
 | 
						|
***************   Case 648   ***************
 | 
						|
 | 
						|
SQL: select * from t17 where c1=1 and c2 is null and c3=1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |300      |354 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|300      |314 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|3 |   TABLE SCAN          |t17     |300      |233 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t17.c1, t17.c2, t17.c3)]), filter(nil), startup_filter([0])
 | 
						|
  1 - output([INTERNAL_FUNCTION(t17.c1, t17.c2, t17.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t17.c1], [t17.c2], [t17.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  3 - output([t17.c1], [t17.c2], [t17.c3]), filter(nil), 
 | 
						|
      access([t17.c1], [t17.c2], [t17.c3]), 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 648(end)  ************** 
 | 
						|
 | 
						|
***************   Case 649   ***************
 | 
						|
 | 
						|
SQL: select c3 from t_normal_idx order by c3; 
 | 
						|
 | 
						|
=================================================
 | 
						|
|ID|OPERATOR   |NAME             |EST. ROWS|COST|
 | 
						|
-------------------------------------------------
 | 
						|
|0 |SORT       |                 |100      |133 |
 | 
						|
|1 | TABLE SCAN|t_normal_idx(idx)|100      |78  |
 | 
						|
=================================================
 | 
						|
 | 
						|
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 649(end)  ************** 
 | 
						|
 | 
						|
***************   Case 650   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 650(end)  ************** 
 | 
						|
 | 
						|
***************   Case 651   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 651(end)  ************** 
 | 
						|
 | 
						|
***************   Case 652   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 652(end)  ************** 
 | 
						|
 | 
						|
***************   Case 653   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 653(end)  ************** 
 | 
						|
 | 
						|
***************   Case 654   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 654(end)  ************** 
 | 
						|
 | 
						|
***************   Case 655   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 655(end)  ************** 
 | 
						|
 | 
						|
***************   Case 656   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 656(end)  ************** 
 | 
						|
 | 
						|
***************   Case 657   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 657(end)  ************** 
 | 
						|
 | 
						|
***************   Case 658   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 658(end)  ************** 
 | 
						|
 | 
						|
***************   Case 659   ***************
 | 
						|
 | 
						|
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)|10       |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 659(end)  ************** 
 | 
						|
 | 
						|
***************   Case 660   ***************
 | 
						|
 | 
						|
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)|1        |79  |
 | 
						|
================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t_normal_idx.c3]), filter([t_normal_idx.c5 = ?], [(T_OP_IS, t_normal_idx.c4, NULL, 0)]), 
 | 
						|
      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 660(end)  ************** 
 | 
						|
 | 
						|
***************   Case 661   ***************
 | 
						|
 | 
						|
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)|9        |79  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 661(end)  ************** 
 | 
						|
 | 
						|
***************   Case 662   ***************
 | 
						|
 | 
						|
SQL: select c3 from t_normal_idx where c2 is not null order by c3; 
 | 
						|
 | 
						|
=================================================
 | 
						|
|ID|OPERATOR   |NAME             |EST. ROWS|COST|
 | 
						|
-------------------------------------------------
 | 
						|
|0 |SORT       |                 |90       |129 |
 | 
						|
|1 | TABLE SCAN|t_normal_idx(idx)|90       |80  |
 | 
						|
=================================================
 | 
						|
 | 
						|
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 662(end)  ************** 
 | 
						|
 | 
						|
***************   Case 663   ***************
 | 
						|
 | 
						|
SQL: select c3 from t_normal_idx group by c3; 
 | 
						|
 | 
						|
===================================================
 | 
						|
|ID|OPERATOR     |NAME             |EST. ROWS|COST|
 | 
						|
---------------------------------------------------
 | 
						|
|0 |HASH GROUP BY|                 |10       |104 |
 | 
						|
|1 | TABLE SCAN  |t_normal_idx(idx)|100      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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 663(end)  ************** 
 | 
						|
 | 
						|
***************   Case 664   ***************
 | 
						|
 | 
						|
SQL: select c3 from t_normal_idx where c2=1 group by c3; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR      |NAME             |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |MERGE GROUP BY|                 |10       |82  |
 | 
						|
|1 | TABLE SCAN   |t_normal_idx(idx)|100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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 664(end)  ************** 
 | 
						|
 | 
						|
***************   Case 665   ***************
 | 
						|
 | 
						|
SQL: select c3 from t_normal_idx where c2 is null group by c3; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR      |NAME             |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |MERGE GROUP BY|                 |10       |82  |
 | 
						|
|1 | TABLE SCAN   |t_normal_idx(idx)|100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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 665(end)  ************** 
 | 
						|
 | 
						|
***************   Case 666   ***************
 | 
						|
 | 
						|
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|                 |71       |83  |
 | 
						|
|1 | TABLE SCAN   |t_normal_idx(idx)|100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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 666(end)  ************** 
 | 
						|
 | 
						|
***************   Case 667   ***************
 | 
						|
 | 
						|
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|                 |71       |84  |
 | 
						|
|1 | TABLE SCAN   |t_normal_idx(idx)|100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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 667(end)  ************** 
 | 
						|
 | 
						|
***************   Case 668   ***************
 | 
						|
 | 
						|
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|                 |10       |82  |
 | 
						|
|1 | TABLE SCAN   |t_normal_idx(idx)|100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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 668(end)  ************** 
 | 
						|
 | 
						|
***************   Case 669   ***************
 | 
						|
 | 
						|
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|                 |10       |82  |
 | 
						|
|1 | TABLE SCAN   |t_normal_idx(idx)|100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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 669(end)  ************** 
 | 
						|
 | 
						|
***************   Case 670   ***************
 | 
						|
 | 
						|
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|                 |71       |84  |
 | 
						|
|1 | TABLE SCAN   |t_normal_idx(idx)|100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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 670(end)  ************** 
 | 
						|
 | 
						|
***************   Case 671   ***************
 | 
						|
 | 
						|
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|                 |71       |84  |
 | 
						|
|1 | TABLE SCAN   |t_normal_idx(idx)|100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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 671(end)  ************** 
 | 
						|
 | 
						|
***************   Case 672   ***************
 | 
						|
 | 
						|
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|                 |71       |84  |
 | 
						|
|1 | TABLE SCAN   |t_normal_idx(idx)|100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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 672(end)  ************** 
 | 
						|
 | 
						|
***************   Case 673   ***************
 | 
						|
 | 
						|
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|                 |7        |81  |
 | 
						|
|1 | TABLE SCAN   |t_normal_idx(idx)|10       |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 673(end)  ************** 
 | 
						|
 | 
						|
***************   Case 674   ***************
 | 
						|
 | 
						|
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|                 |1        |79  |
 | 
						|
|1 | TABLE SCAN   |t_normal_idx(idx)|1        |79  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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_normal_idx.c5 = ?], [(T_OP_IS, t_normal_idx.c4, NULL, 0)]), 
 | 
						|
      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 674(end)  ************** 
 | 
						|
 | 
						|
***************   Case 675   ***************
 | 
						|
 | 
						|
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|                 |9        |80  |
 | 
						|
|1 | TABLE SCAN   |t_normal_idx(idx)|9        |79  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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 675(end)  ************** 
 | 
						|
 | 
						|
***************   Case 676   ***************
 | 
						|
 | 
						|
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|                 |10       |104 |
 | 
						|
|1 | TABLE SCAN  |t_normal_idx(idx)|90       |80  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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 676(end)  ************** 
 | 
						|
 | 
						|
***************   Case 677   ***************
 | 
						|
 | 
						|
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        |15902|
 | 
						|
|1 | TABLE SCAN    |t7  |100      |78   |
 | 
						|
|2 | SUBPLAN FILTER|    |100      |157  |
 | 
						|
|3 |  TABLE SCAN   |t   |100      |78   |
 | 
						|
|4 |  TABLE SCAN   |t7  |100      |78   |
 | 
						|
=========================================
 | 
						|
 | 
						|
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(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([? > subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  3 - output(nil), filter(nil), startup_filter([?]), 
 | 
						|
      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 677(end)  ************** 
 | 
						|
 | 
						|
***************   Case 678   ***************
 | 
						|
 | 
						|
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  |    |100      |8035|
 | 
						|
|1 | SUBPLAN FILTER|    |100      |7991|
 | 
						|
|2 |  TABLE SCAN   |t7  |100      |78  |
 | 
						|
|3 |  TABLE SCAN   |t   |100      |78  |
 | 
						|
========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1 + ?]), filter(nil), 
 | 
						|
      group([subquery(1)]), agg_func(nil)
 | 
						|
  1 - output([subquery(1)], [t7.c1 + ?]), 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 678(end)  ************** 
 | 
						|
 | 
						|
***************   Case 679   ***************
 | 
						|
 | 
						|
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        |161 |
 | 
						|
|1 | SCALAR GROUP BY|    |1        |81  |
 | 
						|
|2 |  TABLE SCAN    |t7  |100      |78  |
 | 
						|
|3 | TABLE SCAN     |t   |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 679(end)  ************** 
 | 
						|
 | 
						|
***************   Case 680   ***************
 | 
						|
 | 
						|
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        |161 |
 | 
						|
|1 | SCALAR GROUP BY|    |1        |81  |
 | 
						|
|2 |  TABLE SCAN    |t7  |100      |78  |
 | 
						|
|3 | TABLE SCAN     |t   |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 680(end)  ************** 
 | 
						|
 | 
						|
***************   Case 681   ***************
 | 
						|
 | 
						|
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        |8094|
 | 
						|
|1 | SUBPLAN FILTER |    |100      |8070|
 | 
						|
|2 |  SUBPLAN FILTER|    |100      |157 |
 | 
						|
|3 |   TABLE SCAN   |t7  |100      |78  |
 | 
						|
|4 |   TABLE SCAN   |t   |100      |78  |
 | 
						|
|5 |  TABLE SCAN    |tt  |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil), 
 | 
						|
      group([subquery(1)]), agg_func(nil)
 | 
						|
  1 - output([subquery(1)], [?]), filter(nil), 
 | 
						|
      exec_params_([?]), onetime_exprs_(nil), init_plan_idxs_(nil)
 | 
						|
  2 - output([?]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  3 - output(nil), 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 681(end)  ************** 
 | 
						|
 | 
						|
***************   Case 682   ***************
 | 
						|
 | 
						|
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       |124 |
 | 
						|
|1 | TABLE SCAN   |t7  |34       |46  |
 | 
						|
|2 | TABLE SCAN   |t   |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 682(end)  ************** 
 | 
						|
 | 
						|
***************   Case 683   ***************
 | 
						|
 | 
						|
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|92       |80  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 683(end)  ************** 
 | 
						|
 | 
						|
***************   Case 684   ***************
 | 
						|
 | 
						|
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        |93  |
 | 
						|
|1 | EXCHANGE OUT REMOTE        |     |1        |93  |
 | 
						|
|2 |  NESTED-LOOP JOIN CARTESIAN|     |1        |92  |
 | 
						|
|3 |   TABLE GET                |t1   |1        |46  |
 | 
						|
|4 |   SUBPLAN SCAN             |VIEW1|1        |46  |
 | 
						|
|5 |    SCALAR GROUP BY         |     |1        |46  |
 | 
						|
|6 |     TABLE GET              |t2   |1        |46  |
 | 
						|
======================================================
 | 
						|
 | 
						|
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(nil), 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(nil), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p1), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t2.c1]), range[1 ; 1], 
 | 
						|
      range_cond([t2.c1 = ?])
 | 
						|
 | 
						|
*************** Case 684(end)  ************** 
 | 
						|
 | 
						|
***************   Case 685   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 group by c1, 'a' asc; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR MERGE SORT |        |500      |567 |
 | 
						|
|1 | EXCHANGE OUT DISTR       |:EX10000|500      |540 |
 | 
						|
|2 |  SORT                    |        |500      |488 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN            |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), sort_keys([t1.c1, ASC])
 | 
						|
  1 - output([t1.c1], [INTERNAL_FUNCTION(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.
 | 
						|
  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 685(end)  ************** 
 | 
						|
 | 
						|
***************   Case 686   ***************
 | 
						|
 | 
						|
SQL: select c1 from t1 order by c1, 'a' asc; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR MERGE SORT |        |500      |567 |
 | 
						|
|1 | EXCHANGE OUT DISTR       |:EX10000|500      |540 |
 | 
						|
|2 |  SORT                    |        |500      |488 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN            |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1)]), filter(nil), sort_keys([t1.c1, ASC])
 | 
						|
  1 - output([t1.c1], [INTERNAL_FUNCTION(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.
 | 
						|
  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 686(end)  ************** 
 | 
						|
 | 
						|
***************   Case 687   ***************
 | 
						|
 | 
						|
SQL: select c1, exists(select c1 from t7) from t7 group by 2; 
 | 
						|
 | 
						|
========================================
 | 
						|
|ID|OPERATOR       |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------------
 | 
						|
|0 |MERGE GROUP BY |    |1        |127 |
 | 
						|
|1 | SUBPLAN FILTER|    |100      |125 |
 | 
						|
|2 |  TABLE SCAN   |t7  |100      |78  |
 | 
						|
|3 |  TABLE SCAN   |t7  |1        |46  |
 | 
						|
========================================
 | 
						|
 | 
						|
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), 
 | 
						|
      limit(1), offset(nil), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t7.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 687(end)  ************** 
 | 
						|
 | 
						|
***************   Case 688   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where c1 is false; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |1        |400 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|1        |400 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |1        |400 |
 | 
						|
|3 |   TABLE SCAN          |t1      |1        |400 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 688(end)  ************** 
 | 
						|
 | 
						|
***************   Case 689   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where (c1 + 1) is false; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |250      |470 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|250      |447 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |250      |400 |
 | 
						|
|3 |   TABLE SCAN          |t1      |250      |400 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 689(end)  ************** 
 | 
						|
 | 
						|
***************   Case 690   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where c1 is null; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), startup_filter([0])
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 690(end)  ************** 
 | 
						|
 | 
						|
***************   Case 691   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where c2 is null; 
 | 
						|
 | 
						|
=========================================================
 | 
						|
|ID|OPERATOR               |NAME         |EST. ROWS|COST|
 | 
						|
---------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |             |50       |242 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000     |50       |238 |
 | 
						|
|2 |  PX PARTITION ITERATOR|             |50       |228 |
 | 
						|
|3 |   TABLE SCAN          |t1(idx_t1_c2)|50       |228 |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 691(end)  ************** 
 | 
						|
 | 
						|
***************   Case 692   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where c2 is not null; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |450      |526 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|450      |484 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |450      |400 |
 | 
						|
|3 |   TABLE SCAN          |t1      |450      |400 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 692(end)  ************** 
 | 
						|
 | 
						|
***************   Case 693   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where c1 is not null; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |528 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 (c1 + 1) is null; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |250      |470 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|250      |447 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |250      |400 |
 | 
						|
|3 |   TABLE SCAN          |t1      |250      |400 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 694(end)  ************** 
 | 
						|
 | 
						|
***************   Case 695   ***************
 | 
						|
 | 
						|
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        |79  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter([cast(y_t1.c2, DECIMAL(-1, -1)) = ?]), 
 | 
						|
      access([y_t1.c1], [y_t1.c2], [y_t1.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([y_t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 695(end)  ************** 
 | 
						|
 | 
						|
***************   Case 696   ***************
 | 
						|
 | 
						|
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        |79  |
 | 
						|
|1 | TABLE SCAN|y_t1(y_t1_i1)|1        |79  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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.c1], [y_t1.c2], [y_t1.c3]), filter([cast(y_t1.c2, DECIMAL(-1, -1)) = ?]), 
 | 
						|
      access([y_t1.c1], [y_t1.c2], [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 696(end)  ************** 
 | 
						|
 | 
						|
***************   Case 697   ***************
 | 
						|
 | 
						|
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      |95  |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter(nil), 
 | 
						|
      access([y_t1.c1], [y_t1.c2], [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 697(end)  ************** 
 | 
						|
 | 
						|
***************   Case 698   ***************
 | 
						|
 | 
						|
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        |79  |
 | 
						|
|1 | TABLE SCAN|y_t1(y_t1_i1)|1        |79  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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.c1], [y_t1.c2], [y_t1.c3]), filter([cast(y_t1.c2, DECIMAL(-1, -1)) = cast(y_t1.c1, DECIMAL(11, 0))]), 
 | 
						|
      access([y_t1.c1], [y_t1.c2], [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 698(end)  ************** 
 | 
						|
 | 
						|
***************   Case 699   ***************
 | 
						|
 | 
						|
SQL: select * from y_t1 where c2=c1 order by c1, c2; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|y_t1|1        |79  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter([cast(y_t1.c2, DECIMAL(-1, -1)) = cast(y_t1.c1, DECIMAL(11, 0))]), 
 | 
						|
      access([y_t1.c1], [y_t1.c2], [y_t1.c3]), partitions(p0), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([y_t1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 699(end)  ************** 
 | 
						|
 | 
						|
***************   Case 700   ***************
 | 
						|
 | 
						|
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        |79  |
 | 
						|
|1 | TABLE SCAN|y_t1(y_t1_i1)|1        |79  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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.c1], [y_t1.c2], [y_t1.c3]), filter([cast(y_t1.c2, DECIMAL(-1, -1)) = cast(y_t1.c1, DECIMAL(11, 0))]), 
 | 
						|
      access([y_t1.c1], [y_t1.c2], [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 700(end)  ************** 
 | 
						|
 | 
						|
***************   Case 701   ***************
 | 
						|
 | 
						|
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        |79  |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter([y_t1.c3 = y_t1.c1]), 
 | 
						|
      access([y_t1.c1], [y_t1.c3], [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 701(end)  ************** 
 | 
						|
 | 
						|
***************   Case 702   ***************
 | 
						|
 | 
						|
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      |95  |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter(nil), 
 | 
						|
      access([y_t1.c1], [y_t1.c3], [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 702(end)  ************** 
 | 
						|
 | 
						|
***************   Case 703   ***************
 | 
						|
 | 
						|
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      |95  |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter(nil), 
 | 
						|
      access([y_t1.c1], [y_t1.c3], [y_t1.c2]), partitions(p0), 
 | 
						|
      is_index_back=true, 
 | 
						|
      range_key([y_t1.c3], [y_t1.c1]), range(10,MIN ; 10,MAX), 
 | 
						|
      range_cond([cast(y_t1.c3, DECIMAL(10, 0)) = ?])
 | 
						|
 | 
						|
*************** Case 703(end)  ************** 
 | 
						|
 | 
						|
***************   Case 704   ***************
 | 
						|
 | 
						|
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        |79  |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([y_t1.c1], [y_t1.c2], [y_t1.c3]), filter([y_t1.c3 = y_t1.c1]), 
 | 
						|
      access([y_t1.c1], [y_t1.c3], [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 a from y_t3 where a = 'A' collate utf8mb4_general_ci order by a; 
 | 
						|
 | 
						|
====================================
 | 
						|
|ID|OPERATOR   |NAME|EST. ROWS|COST|
 | 
						|
------------------------------------
 | 
						|
|0 |SORT       |    |1        |84  |
 | 
						|
|1 | TABLE SCAN|y_t3|1        |84  |
 | 
						|
====================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([y_t3.a]), filter(nil), sort_keys([y_t3.a, ASC])
 | 
						|
  1 - output([y_t3.a]), filter([cast(y_t3.a, VARCHAR(1048576)) = ?]), 
 | 
						|
      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 705(end)  ************** 
 | 
						|
 | 
						|
***************   Case 706   ***************
 | 
						|
 | 
						|
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  |    |10       |151 |
 | 
						|
|1 | SUBPLAN FILTER|    |100      |125 |
 | 
						|
|2 |  TABLE SCAN   |t1  |100      |78  |
 | 
						|
|3 |  TABLE SCAN   |t2  |1        |46  |
 | 
						|
========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.a], [t1.b]), filter(nil), 
 | 
						|
      group([t1.b]), agg_func(nil)
 | 
						|
  1 - output([t1.b], [t1.a]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([BOOL(subquery(1))]), init_plan_idxs_(nil)
 | 
						|
  2 - output([t1.a], [t1.b]), filter(nil), startup_filter([?]), 
 | 
						|
      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 706(end)  ************** 
 | 
						|
 | 
						|
***************   Case 707   ***************
 | 
						|
 | 
						|
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  |    |10       |151 |
 | 
						|
|1 | SUBPLAN FILTER|    |100      |125 |
 | 
						|
|2 |  TABLE SCAN   |t1  |100      |78  |
 | 
						|
|3 |  TABLE SCAN   |t2  |1        |46  |
 | 
						|
========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.a], [t1.b]), filter(nil), 
 | 
						|
      group([t1.b]), agg_func(nil)
 | 
						|
  1 - output([t1.b], [t1.a]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1) = ?]), init_plan_idxs_(nil)
 | 
						|
  2 - output([t1.a], [t1.b]), filter(nil), startup_filter([?]), 
 | 
						|
      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 707(end)  ************** 
 | 
						|
 | 
						|
***************   Case 708   ***************
 | 
						|
 | 
						|
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|    |1        |151 |
 | 
						|
|1 | HASH GROUP BY|    |10       |106 |
 | 
						|
|2 |  TABLE SCAN  |t1  |100      |78  |
 | 
						|
|3 | TABLE SCAN   |t2  |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 708(end)  ************** 
 | 
						|
 | 
						|
***************   Case 709   ***************
 | 
						|
 | 
						|
SQL: select c1 from t0 where pk is null; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t0  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 709(end)  ************** 
 | 
						|
 | 
						|
***************   Case 710   ***************
 | 
						|
 | 
						|
SQL: select c1 from t0 where pk <=> null; 
 | 
						|
 | 
						|
==================================
 | 
						|
|ID|OPERATOR |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------
 | 
						|
|0 |TABLE GET|t0  |1        |46  |
 | 
						|
==================================
 | 
						|
 | 
						|
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 710(end)  ************** 
 | 
						|
 | 
						|
***************   Case 711   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
===========================================
 | 
						|
 | 
						|
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 711(end)  ************** 
 | 
						|
 | 
						|
***************   Case 712   ***************
 | 
						|
 | 
						|
SQL: select c1 from t4 where c1 <=> 1 and c2 <=> 1; 
 | 
						|
 | 
						|
==================================
 | 
						|
|ID|OPERATOR |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------
 | 
						|
|0 |TABLE GET|t4  |1        |46  |
 | 
						|
==================================
 | 
						|
 | 
						|
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 712(end)  ************** 
 | 
						|
 | 
						|
***************   Case 713   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
============================================
 | 
						|
 | 
						|
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 713(end)  ************** 
 | 
						|
 | 
						|
***************   Case 714   ***************
 | 
						|
 | 
						|
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        |227 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |227 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |227 |
 | 
						|
|3 |   LIMIT                 |        |1        |227 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |1        |227 |
 | 
						|
|5 |     TABLE SCAN          |t1      |1        |227 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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 714(end)  ************** 
 | 
						|
 | 
						|
***************   Case 715   ***************
 | 
						|
 | 
						|
SQL: select * from (select count(c1) from t1) ta; 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SCALAR GROUP BY          |        |1        |405 |
 | 
						|
|1 | PX COORDINATOR          |        |1        |405 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|1        |405 |
 | 
						|
|3 |   MERGE GROUP BY        |        |1        |405 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1      |500      |387 |
 | 
						|
======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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 715(end)  ************** 
 | 
						|
 | 
						|
***************   Case 716   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
|1 | SUBPLAN SCAN |ta1 |5        |46  |
 | 
						|
|2 |  TABLE SCAN  |t4  |5        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 716(end)  ************** 
 | 
						|
 | 
						|
***************   Case 717   ***************
 | 
						|
 | 
						|
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   |    |6        |93  |
 | 
						|
|1 | SUBPLAN SCAN|tb  |10       |46  |
 | 
						|
|2 |  TABLE SCAN |t13 |10       |46  |
 | 
						|
|3 | SUBPLAN SCAN|ta1 |5        |46  |
 | 
						|
|4 |  TABLE SCAN |t12 |5        |46  |
 | 
						|
======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tb.a]), filter(nil), 
 | 
						|
      equal_conds([ta1.a = tb.a]), other_conds(nil)
 | 
						|
  1 - output([tb.a]), filter(nil), 
 | 
						|
      access([tb.a])
 | 
						|
  2 - 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
 | 
						|
  3 - output([ta1.a]), filter(nil), 
 | 
						|
      access([ta1.a])
 | 
						|
  4 - 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
 | 
						|
 | 
						|
*************** Case 717(end)  ************** 
 | 
						|
 | 
						|
***************   Case 718   ***************
 | 
						|
 | 
						|
SQL: select t13.a from (select * from t12) ta, t13; 
 | 
						|
 | 
						|
===================================================
 | 
						|
|ID|OPERATOR                  |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|    |10000    |2736|
 | 
						|
|1 | TABLE SCAN               |t13 |100      |78  |
 | 
						|
|2 | MATERIAL                 |    |100      |78  |
 | 
						|
|3 |  TABLE SCAN              |t12 |100      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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(nil), filter(nil)
 | 
						|
  3 - output(nil), filter(nil), 
 | 
						|
      access([t12.a]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t12.a]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 718(end)  ************** 
 | 
						|
 | 
						|
***************   Case 719   ***************
 | 
						|
 | 
						|
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       |4640|
 | 
						|
|1 | TABLE SCAN   |t12 |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t13 |1        |46  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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.a], [t13.b]), partitions(p0), 
 | 
						|
      limit(1), offset(nil), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([t13.a]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 719(end)  ************** 
 | 
						|
 | 
						|
***************   Case 720   ***************
 | 
						|
 | 
						|
SQL: select (select min(c1) from agg_t2) from agg_t1; 
 | 
						|
 | 
						|
===========================================
 | 
						|
|ID|OPERATOR        |NAME  |EST. ROWS|COST|
 | 
						|
-------------------------------------------
 | 
						|
|0 |SUBPLAN FILTER  |      |1        |125 |
 | 
						|
|1 | SCALAR GROUP BY|      |1        |46  |
 | 
						|
|2 |  SUBPLAN SCAN  |VIEW1 |1        |46  |
 | 
						|
|3 |   TABLE SCAN   |agg_t1|1        |46  |
 | 
						|
|4 | TABLE SCAN     |agg_t2|100      |78  |
 | 
						|
===========================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([subquery(1)]), filter(nil), 
 | 
						|
      exec_params_([T_FUN_MIN(VIEW1.agg_t1.c1)]), onetime_exprs_(nil), init_plan_idxs_(nil)
 | 
						|
  1 - output([T_FUN_MIN(VIEW1.agg_t1.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MIN(VIEW1.agg_t1.c1)])
 | 
						|
  2 - output([VIEW1.agg_t1.c1]), filter(nil), 
 | 
						|
      access([VIEW1.agg_t1.c1])
 | 
						|
  3 - output([agg_t1.c1]), filter(nil), 
 | 
						|
      access([agg_t1.c1]), partitions(p0), 
 | 
						|
      limit(1), offset(nil), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([agg_t1.c1]), range(MIN ; MAX)always true
 | 
						|
  4 - output([?]), filter(nil), 
 | 
						|
      access([agg_t2.c2]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([agg_t2.c2]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 720(end)  ************** 
 | 
						|
 | 
						|
***************   Case 721   ***************
 | 
						|
 | 
						|
SQL: select * from (select c1 from t1 order by c1) ta limit 1; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |LIMIT                      |        |1        |228 |
 | 
						|
|1 | PX COORDINATOR MERGE SORT |        |1        |228 |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000|1        |228 |
 | 
						|
|3 |   TOP-N SORT              |        |1        |227 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |1        |227 |
 | 
						|
|5 |     TABLE SCAN            |t1      |1        |227 |
 | 
						|
========================================================
 | 
						|
 | 
						|
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), sort_keys([t1.c1, ASC]), topn(1), local merge sort
 | 
						|
  4 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 721(end)  ************** 
 | 
						|
 | 
						|
***************   Case 722   ***************
 | 
						|
 | 
						|
SQL: select * from t4,t7 order by t4.c3; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                  |NAME         |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|             |10000    |2736|
 | 
						|
|1 | TABLE SCAN               |t4(idx_t4_c3)|100      |78  |
 | 
						|
|2 | MATERIAL                 |             |100      |79  |
 | 
						|
|3 |  TABLE SCAN              |t7           |100      |78  |
 | 
						|
============================================================
 | 
						|
 | 
						|
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 722(end)  ************** 
 | 
						|
 | 
						|
***************   Case 723   ***************
 | 
						|
 | 
						|
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        |84  |
 | 
						|
|1 | TABLE SCAN     |tg1 |1        |79  |
 | 
						|
|2 | TABLE GET      |tg2 |1        |5   |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 723(end)  ************** 
 | 
						|
 | 
						|
***************   Case 724   ***************
 | 
						|
 | 
						|
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        |80  |
 | 
						|
|1 | TABLE SCAN     |tg1 |1        |79  |
 | 
						|
|2 | TABLE GET      |tg2 |1        |5   |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 724(end)  ************** 
 | 
						|
 | 
						|
***************   Case 725   ***************
 | 
						|
 | 
						|
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        |161 |
 | 
						|
|1 | TABLE SCAN     |tg1 |1        |80  |
 | 
						|
|2 | MATERIAL       |    |1        |80  |
 | 
						|
|3 |  TABLE SCAN    |tg2 |1        |80  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 725(end)  ************** 
 | 
						|
 | 
						|
***************   Case 726   ***************
 | 
						|
 | 
						|
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|    |8        |168 |
 | 
						|
|1 | TABLE SCAN     |tg2 |100      |78  |
 | 
						|
|2 | MATERIAL       |    |1        |80  |
 | 
						|
|3 |  TABLE SCAN    |tg1 |1        |80  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 726(end)  ************** 
 | 
						|
 | 
						|
***************   Case 727   ***************
 | 
						|
 | 
						|
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|    |9        |169 |
 | 
						|
|1 | TABLE SCAN     |tg2 |100      |78  |
 | 
						|
|2 | MATERIAL       |    |1        |80  |
 | 
						|
|3 |  TABLE SCAN    |tg1 |1        |80  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 727(end)  ************** 
 | 
						|
 | 
						|
***************   Case 728   ***************
 | 
						|
 | 
						|
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|    |9        |169 |
 | 
						|
|1 | TABLE SCAN     |tg2 |100      |78  |
 | 
						|
|2 | MATERIAL       |    |1        |80  |
 | 
						|
|3 |  TABLE SCAN    |tg1 |1        |80  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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 728(end)  ************** 
 | 
						|
 | 
						|
***************   Case 729   ***************
 | 
						|
 | 
						|
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             |          |2        |134 |
 | 
						|
|1 | NESTED-LOOP JOIN|          |2        |133 |
 | 
						|
|2 |  TABLE SCAN     |t2        |100      |78  |
 | 
						|
|3 |  MATERIAL       |          |1        |46  |
 | 
						|
|4 |   SUBPLAN SCAN  |t1        |1        |46  |
 | 
						|
|5 |    TABLE SCAN   |t(Reverse)|1        |46  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 729(end)  ************** 
 | 
						|
 | 
						|
***************   Case 730   ***************
 | 
						|
 | 
						|
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        |232 |
 | 
						|
|1 | SUBPLAN SCAN                |t            |10       |231 |
 | 
						|
|2 |  LIMIT                      |             |10       |231 |
 | 
						|
|3 |   PX COORDINATOR MERGE SORT |             |10       |231 |
 | 
						|
|4 |    EXCHANGE OUT DISTR       |:EX10000     |10       |231 |
 | 
						|
|5 |     TOP-N SORT              |             |10       |229 |
 | 
						|
|6 |      PX PARTITION ITERATOR  |             |10       |227 |
 | 
						|
|7 |       TABLE SCAN            |t1(idx_t1_c2)|10       |227 |
 | 
						|
===============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(*)])
 | 
						|
  1 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  2 - output([1]), filter(nil), limit(10), offset(nil)
 | 
						|
  3 - output(nil), filter(nil), sort_keys([t1.c2, ASC])
 | 
						|
  4 - output([t1.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), topn(10), local merge sort
 | 
						|
  6 - output([t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  7 - 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 730(end)  ************** 
 | 
						|
 | 
						|
***************   Case 731   ***************
 | 
						|
 | 
						|
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        |620 |
 | 
						|
|1 | SUBPLAN SCAN              |t       |10       |620 |
 | 
						|
|2 |  LIMIT                    |        |10       |620 |
 | 
						|
|3 |   SUBPLAN FILTER          |        |10       |619 |
 | 
						|
|4 |    PX COORDINATOR         |        |10       |229 |
 | 
						|
|5 |     EXCHANGE OUT DISTR    |:EX10000|10       |228 |
 | 
						|
|6 |      PX PARTITION ITERATOR|        |10       |227 |
 | 
						|
|7 |       TABLE SCAN          |t1      |10       |227 |
 | 
						|
|8 |    PX COORDINATOR         |        |300      |391 |
 | 
						|
|9 |     EXCHANGE OUT DISTR    |:EX20000|300      |340 |
 | 
						|
|10|      PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|11|       TABLE SCAN          |t2      |300      |233 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(*)])
 | 
						|
  1 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  2 - output([1]), filter(nil), limit(10), offset(nil)
 | 
						|
  3 - output(nil), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  4 - output(nil), filter(nil)
 | 
						|
  5 - output(nil), filter(nil), dop=1
 | 
						|
  6 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  7 - output(nil), 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.
 | 
						|
  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 731(end)  ************** 
 | 
						|
 | 
						|
***************   Case 732   ***************
 | 
						|
 | 
						|
SQL: select distinct c3, c2 from t4; 
 | 
						|
 | 
						|
===================================================
 | 
						|
|ID|OPERATOR      |NAME            |EST. ROWS|COST|
 | 
						|
---------------------------------------------------
 | 
						|
|0 |MERGE DISTINCT|                |71       |83  |
 | 
						|
|1 | TABLE SCAN   |t4(idx_t4_c2_c3)|100      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c3], [t4.c2]), filter(nil), 
 | 
						|
      distinct([t4.c2], [t4.c3])
 | 
						|
  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 732(end)  ************** 
 | 
						|
 | 
						|
***************   Case 733   ***************
 | 
						|
 | 
						|
SQL: select count(c2) from t4 group by c3, c2; 
 | 
						|
 | 
						|
===================================================
 | 
						|
|ID|OPERATOR      |NAME            |EST. ROWS|COST|
 | 
						|
---------------------------------------------------
 | 
						|
|0 |MERGE GROUP BY|                |71       |85  |
 | 
						|
|1 | TABLE SCAN   |t4(idx_t4_c2_c3)|100      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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 733(end)  ************** 
 | 
						|
 | 
						|
***************   Case 734   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
============================================
 | 
						|
 | 
						|
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 734(end)  ************** 
 | 
						|
 | 
						|
***************   Case 735   ***************
 | 
						|
 | 
						|
SQL: select count(c2) from y_t4 group by c2, c1; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |MERGE GROUP BY|    |71       |85  |
 | 
						|
|1 | TABLE SCAN   |y_t4|100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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.c1], [y_t4.c2]), filter(nil), 
 | 
						|
      access([y_t4.c1], [y_t4.c2]), 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 735(end)  ************** 
 | 
						|
 | 
						|
***************   Case 736   ***************
 | 
						|
 | 
						|
SQL: select count(c4) from tg1 group by c4, c3, c5, c2, c1; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tg1 |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 736(end)  ************** 
 | 
						|
 | 
						|
***************   Case 737   ***************
 | 
						|
 | 
						|
SQL: select distinct c3, c2, c4, c5, c1 from tg1; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tg1 |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tg1.c3], [tg1.c2], [tg1.c4], [tg1.c5], [tg1.c1]), filter(nil), 
 | 
						|
      access([tg1.c1], [tg1.c2], [tg1.c3], [tg1.c4], [tg1.c5]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([tg1.c1], [tg1.c2], [tg1.c3]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 737(end)  ************** 
 | 
						|
 | 
						|
***************   Case 738   ***************
 | 
						|
 | 
						|
SQL: select distinct b from y_t5 where (a2 >= 'b') and (b = 'a'); 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|y_t5|0        |84  |
 | 
						|
===================================
 | 
						|
 | 
						|
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.__pk_increment], [y_t5.__pk_cluster_id], [y_t5.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
 | 
						|
 | 
						|
*************** Case 738(end)  ************** 
 | 
						|
 | 
						|
***************   Case 739   ***************
 | 
						|
 | 
						|
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        |80  |
 | 
						|
============================================
 | 
						|
 | 
						|
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 739(end)  ************** 
 | 
						|
 | 
						|
***************   Case 740   ***************
 | 
						|
 | 
						|
SQL: select * from tt1 where c2 like "a%"; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tt1 |90       |84  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt1.c1], [tt1.c2]), filter([(T_OP_LIKE, tt1.c2, ?, '\\')]), 
 | 
						|
      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 740(end)  ************** 
 | 
						|
 | 
						|
***************   Case 741   ***************
 | 
						|
 | 
						|
SQL: select * from tt1 where c2 like "%a"; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tt1 |34       |84  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt1.c1], [tt1.c2]), filter([(T_OP_LIKE, tt1.c2, ?, '\\')]), 
 | 
						|
      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 741(end)  ************** 
 | 
						|
 | 
						|
***************   Case 742   ***************
 | 
						|
 | 
						|
SQL: select * from tt1 where c2 like "ab%"; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tt1 |5        |84  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt1.c1], [tt1.c2]), filter([(T_OP_LIKE, tt1.c2, ?, '\\')]), 
 | 
						|
      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 742(end)  ************** 
 | 
						|
 | 
						|
***************   Case 743   ***************
 | 
						|
 | 
						|
SQL: select * from tt1 where c2 between "aa" and "ab"; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tt1 |5        |84  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt1.c1], [tt1.c2]), filter([tt1.c2 <= ?], [tt1.c2 >= ?]), 
 | 
						|
      access([tt1.c1], [tt1.c2]), partitions(p0), 
 | 
						|
      is_index_back=false, filter_before_indexback[false,false], 
 | 
						|
      range_key([tt1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 743(end)  ************** 
 | 
						|
 | 
						|
***************   Case 744   ***************
 | 
						|
 | 
						|
SQL: select * from tt1 where c2 between "aa" and "ai"; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tt1 |30       |84  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt1.c1], [tt1.c2]), filter([tt1.c2 <= ?], [tt1.c2 >= ?]), 
 | 
						|
      access([tt1.c1], [tt1.c2]), partitions(p0), 
 | 
						|
      is_index_back=false, filter_before_indexback[false,false], 
 | 
						|
      range_key([tt1.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 744(end)  ************** 
 | 
						|
 | 
						|
***************   Case 745   ***************
 | 
						|
 | 
						|
SQL: select * from tt1 where c2 not between "aa" and "ab"; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tt1 |88       |80  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt1.c1], [tt1.c2]), filter([tt1.c2 < ? OR tt1.c2 > ?]), 
 | 
						|
      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 745(end)  ************** 
 | 
						|
 | 
						|
***************   Case 746   ***************
 | 
						|
 | 
						|
SQL: select * from tt1 where c2 not between "aa" and "ai"; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tt1 |63       |80  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt1.c1], [tt1.c2]), filter([tt1.c2 < ? OR tt1.c2 > ?]), 
 | 
						|
      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 746(end)  ************** 
 | 
						|
 | 
						|
***************   Case 747   ***************
 | 
						|
 | 
						|
SQL: select * from tt1 where "ag" between c2 and "ai"; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tt1 |23       |84  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt1.c1], [tt1.c2]), filter([(T_OP_BTW, ?, tt1.c2, ?)]), 
 | 
						|
      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 747(end)  ************** 
 | 
						|
 | 
						|
***************   Case 748   ***************
 | 
						|
 | 
						|
SQL: select * from tt1 where "ag" between "aa" and "c2"; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tt1 |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - 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
 | 
						|
 | 
						|
*************** Case 748(end)  ************** 
 | 
						|
 | 
						|
***************   Case 749   ***************
 | 
						|
 | 
						|
SQL: select * from tt1 where 'ag' not between c1 and 'ai'; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tt1 |34       |84  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 749(end)  ************** 
 | 
						|
 | 
						|
***************   Case 750   ***************
 | 
						|
 | 
						|
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        |111 |
 | 
						|
|1 | TOP-N SORT     |                  |1        |80  |
 | 
						|
|2 |  TABLE SCAN    |t_normal_idx(idx) |100      |78  |
 | 
						|
|3 | TABLE GET      |t_normal_idx_alias|1        |31  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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=false
 | 
						|
  1 - output([t_normal_idx.c1], [t_normal_idx.c3]), filter(nil), sort_keys([t_normal_idx.c3, ASC]), topn(1)
 | 
						|
  2 - 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
 | 
						|
  3 - 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 750(end)  ************** 
 | 
						|
 | 
						|
***************   Case 751   ***************
 | 
						|
 | 
						|
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        |112 |
 | 
						|
|1 | TOP-N SORT     |                  |1        |81  |
 | 
						|
|2 |  TABLE SCAN    |t_normal_idx(idx) |86       |79  |
 | 
						|
|3 | TABLE GET      |t_normal_idx_alias|1        |31  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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=false
 | 
						|
  1 - output([t_normal_idx.c1], [t_normal_idx.c3], [t_normal_idx.c4]), filter(nil), sort_keys([t_normal_idx.c3, ASC]), topn(1)
 | 
						|
  2 - output([t_normal_idx.c1], [t_normal_idx.c4], [t_normal_idx.c3]), filter([t_normal_idx.c4 > ?]), 
 | 
						|
      access([t_normal_idx.c1], [t_normal_idx.c4], [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
 | 
						|
  3 - 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 751(end)  ************** 
 | 
						|
 | 
						|
***************   Case 752   ***************
 | 
						|
 | 
						|
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        |46  |
 | 
						|
================================================
 | 
						|
 | 
						|
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 752(end)  ************** 
 | 
						|
 | 
						|
***************   Case 753   ***************
 | 
						|
 | 
						|
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 |TOP-N SORT |                 |1        |138 |
 | 
						|
|1 | TABLE SCAN|t_normal_idx(idx)|86       |135 |
 | 
						|
=================================================
 | 
						|
 | 
						|
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), sort_keys([t_normal_idx.c3, ASC]), topn(1)
 | 
						|
  1 - output([t_normal_idx.c1], [t_normal_idx.c10], [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.c1], [t_normal_idx.c10], [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 753(end)  ************** 
 | 
						|
 | 
						|
***************   Case 754   ***************
 | 
						|
 | 
						|
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        |111 |
 | 
						|
|1 | TOP-N SORT     |                  |1        |80  |
 | 
						|
|2 |  TABLE SCAN    |t_normal_idx(idx) |100      |78  |
 | 
						|
|3 | TABLE GET      |t_normal_idx_alias|1        |31  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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=false
 | 
						|
  1 - output([t_normal_idx.c1]), filter(nil), sort_keys([t_normal_idx.c3, ASC]), topn(1)
 | 
						|
  2 - 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
 | 
						|
  3 - 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 754(end)  ************** 
 | 
						|
 | 
						|
***************   Case 755   ***************
 | 
						|
 | 
						|
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        |111 |
 | 
						|
|1 | TOP-N SORT     |                  |1        |80  |
 | 
						|
|2 |  TABLE SCAN    |t_normal_idx(idx) |100      |78  |
 | 
						|
|3 | TABLE GET      |t_normal_idx_alias|1        |31  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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=false
 | 
						|
  1 - output([t_normal_idx.c1]), filter(nil), sort_keys([t_normal_idx.c3, ASC]), topn(1)
 | 
						|
  2 - 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
 | 
						|
  3 - 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 755(end)  ************** 
 | 
						|
 | 
						|
***************   Case 756   ***************
 | 
						|
 | 
						|
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        |110 |
 | 
						|
|1 | TOP-N SORT     |                  |1        |80  |
 | 
						|
|2 |  TABLE SCAN    |t_normal_idx(idx) |100      |78  |
 | 
						|
|3 | TABLE GET      |t_normal_idx_alias|1        |31  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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=false
 | 
						|
  1 - output([t_normal_idx.c1]), filter(nil), sort_keys([t_normal_idx.c1, ASC]), topn(1)
 | 
						|
  2 - 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
 | 
						|
  3 - 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 756(end)  ************** 
 | 
						|
 | 
						|
***************   Case 757   ***************
 | 
						|
 | 
						|
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        |120 |
 | 
						|
|1 | LIMIT          |                  |1        |89  |
 | 
						|
|2 |  TOP-N SORT    |                  |11       |89  |
 | 
						|
|3 |   TABLE SCAN   |t_normal_idx(idx) |100      |78  |
 | 
						|
|4 | TABLE GET      |t_normal_idx_alias|1        |31  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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=false
 | 
						|
  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 757(end)  ************** 
 | 
						|
 | 
						|
***************   Case 758   ***************
 | 
						|
 | 
						|
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        |120 |
 | 
						|
|1 | LIMIT          |                  |1        |89  |
 | 
						|
|2 |  TOP-N SORT    |                  |11       |89  |
 | 
						|
|3 |   TABLE SCAN   |t_normal_idx(idx) |100      |78  |
 | 
						|
|4 | TABLE GET      |t_normal_idx_alias|1        |31  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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=false
 | 
						|
  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 758(end)  ************** 
 | 
						|
 | 
						|
***************   Case 759   ***************
 | 
						|
 | 
						|
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        |121 |
 | 
						|
|1 | LIMIT          |                  |1        |90  |
 | 
						|
|2 |  TOP-N SORT    |                  |11       |90  |
 | 
						|
|3 |   TABLE SCAN   |t_normal_idx(idx) |100      |78  |
 | 
						|
|4 | TABLE GET      |t_normal_idx_alias|1        |31  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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=false
 | 
						|
  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 759(end)  ************** 
 | 
						|
 | 
						|
***************   Case 760   ***************
 | 
						|
 | 
						|
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        |121 |
 | 
						|
|1 | LIMIT          |                  |1        |90  |
 | 
						|
|2 |  TOP-N SORT    |                  |11       |90  |
 | 
						|
|3 |   TABLE SCAN   |t_normal_idx(idx) |100      |78  |
 | 
						|
|4 | TABLE GET      |t_normal_idx_alias|1        |31  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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=false
 | 
						|
  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 760(end)  ************** 
 | 
						|
 | 
						|
***************   Case 761   ***************
 | 
						|
 | 
						|
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        |108 |
 | 
						|
|1 | TOP-N SORT |                 |11       |108 |
 | 
						|
|2 |  TABLE SCAN|t_normal_idx(idx)|100      |97  |
 | 
						|
==================================================
 | 
						|
 | 
						|
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 761(end)  ************** 
 | 
						|
 | 
						|
***************   Case 762   ***************
 | 
						|
 | 
						|
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 |TOP-N SORT |                 |1        |138 |
 | 
						|
|1 | TABLE SCAN|t_normal_idx(idx)|86       |135 |
 | 
						|
=================================================
 | 
						|
 | 
						|
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), sort_keys([t_normal_idx.c3, ASC]), topn(1)
 | 
						|
  1 - output([t_normal_idx.c1], [t_normal_idx.c10], [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.c1], [t_normal_idx.c10], [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 762(end)  ************** 
 | 
						|
 | 
						|
***************   Case 763   ***************
 | 
						|
 | 
						|
SQL: select * from t7, t8 where t7.c1 = t8.c1 limit 1; 
 | 
						|
 | 
						|
==========================================
 | 
						|
|ID|OPERATOR         |NAME|EST. ROWS|COST|
 | 
						|
------------------------------------------
 | 
						|
|0 |LIMIT            |    |1        |56  |
 | 
						|
|1 | NESTED-LOOP JOIN|    |1        |56  |
 | 
						|
|2 |  TABLE SCAN     |t7  |1        |46  |
 | 
						|
|3 |  TABLE GET      |t8  |1        |5   |
 | 
						|
==========================================
 | 
						|
 | 
						|
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 763(end)  ************** 
 | 
						|
 | 
						|
***************   Case 764   ***************
 | 
						|
 | 
						|
SQL: select * from t7, t8 where t7.c1 = t8.c2 limit 1; 
 | 
						|
 | 
						|
==========================================
 | 
						|
|ID|OPERATOR         |NAME|EST. ROWS|COST|
 | 
						|
------------------------------------------
 | 
						|
|0 |LIMIT            |    |1        |56  |
 | 
						|
|1 | NESTED-LOOP JOIN|    |1        |56  |
 | 
						|
|2 |  TABLE SCAN     |t8  |2        |46  |
 | 
						|
|3 |  TABLE GET      |t7  |1        |5   |
 | 
						|
==========================================
 | 
						|
 | 
						|
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.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
 | 
						|
  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 764(end)  ************** 
 | 
						|
 | 
						|
***************   Case 765   ***************
 | 
						|
 | 
						|
SQL: select * from t7, t8 where t7.c2 = t8.c2 limit 1; 
 | 
						|
 | 
						|
=====================================
 | 
						|
|ID|OPERATOR    |NAME|EST. ROWS|COST|
 | 
						|
-------------------------------------
 | 
						|
|0 |LIMIT       |    |1        |148 |
 | 
						|
|1 | HASH JOIN  |    |1        |148 |
 | 
						|
|2 |  TABLE SCAN|t7  |100      |78  |
 | 
						|
|3 |  TABLE SCAN|t8  |1        |46  |
 | 
						|
=====================================
 | 
						|
 | 
						|
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.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)always true
 | 
						|
 | 
						|
*************** Case 765(end)  ************** 
 | 
						|
 | 
						|
***************   Case 766   ***************
 | 
						|
 | 
						|
SQL: select * from t7 where c1=c2 and c2='1'; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t7  |1        |81  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2]), filter([t7.c1 = t7.c2], [cast(t7.c2, DECIMAL(11, 0)) = ?]), 
 | 
						|
      access([t7.c1], [t7.c2]), partitions(p0), 
 | 
						|
      is_index_back=false, filter_before_indexback[false,false], 
 | 
						|
      range_key([t7.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 766(end)  ************** 
 | 
						|
 | 
						|
***************   Case 767   ***************
 | 
						|
 | 
						|
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        |79  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([y_t7.c1], [y_t7.c2], [y_t7.c3]), filter([cast(y_t7.c1, DATETIME(-1, -1)) = ?], [cast(y_t7.c1, DECIMAL(20, 0)) = cast(y_t7.c2, DECIMAL(-1, -1))]), 
 | 
						|
      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 767(end)  ************** 
 | 
						|
 | 
						|
***************   Case 768   ***************
 | 
						|
 | 
						|
SQL: select * from t1 order by c1,(select c1 from t2); 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                 |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------
 | 
						|
|0 |SORT                     |        |500      |919 |
 | 
						|
|1 | SUBPLAN FILTER          |        |500      |816 |
 | 
						|
|2 |  PX COORDINATOR         |        |500      |528 |
 | 
						|
|3 |   EXCHANGE OUT DISTR    |:EX10000|500      |481 |
 | 
						|
|4 |    PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|5 |     TABLE SCAN          |t1      |500      |387 |
 | 
						|
|6 |  PX COORDINATOR         |        |300      |280 |
 | 
						|
|7 |   EXCHANGE OUT DISTR    |:EX20000|300      |263 |
 | 
						|
|8 |    PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|9 |     TABLE SCAN          |t2      |300      |233 |
 | 
						|
======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
 | 
						|
  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.
 | 
						|
  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.
 | 
						|
  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 768(end)  ************** 
 | 
						|
 | 
						|
***************   Case 769   ***************
 | 
						|
 | 
						|
SQL: select * from (select * from t1 order by c1)v; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR MERGE SORT |        |500      |631 |
 | 
						|
|1 | EXCHANGE OUT DISTR       |:EX10000|500      |584 |
 | 
						|
|2 |  SORT                    |        |500      |490 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN            |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), sort_keys([t1.c1, ASC])
 | 
						|
  1 - output([t1.c1], [INTERNAL_FUNCTION(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.
 | 
						|
  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 769(end)  ************** 
 | 
						|
 | 
						|
***************   Case 770   ***************
 | 
						|
 | 
						|
SQL: select * from (select * from t1 order by c1)v,t2; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |150000   |8729|
 | 
						|
|1 | PX COORDINATOR           |        |300      |464 |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|300      |391 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN            |t2      |300      |233 |
 | 
						|
|5 | MATERIAL                 |        |500      |531 |
 | 
						|
|6 |  PX COORDINATOR          |        |500      |528 |
 | 
						|
|7 |   EXCHANGE OUT DISTR     |:EX20000|500      |481 |
 | 
						|
|8 |    PX PARTITION ITERATOR |        |500      |387 |
 | 
						|
|9 |     TABLE SCAN           |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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.
 | 
						|
  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 770(end)  ************** 
 | 
						|
 | 
						|
***************   Case 771   ***************
 | 
						|
 | 
						|
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   |8729|
 | 
						|
|1 | PX COORDINATOR           |        |300      |464 |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|300      |391 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |300      |233 |
 | 
						|
|4 |    TABLE SCAN            |t2      |300      |233 |
 | 
						|
|5 | MATERIAL                 |        |500      |531 |
 | 
						|
|6 |  PX COORDINATOR          |        |500      |528 |
 | 
						|
|7 |   EXCHANGE OUT DISTR     |:EX20000|500      |481 |
 | 
						|
|8 |    PX PARTITION ITERATOR |        |500      |387 |
 | 
						|
|9 |     TABLE SCAN           |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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.
 | 
						|
  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 771(end)  ************** 
 | 
						|
 | 
						|
***************   Case 772   ***************
 | 
						|
 | 
						|
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      |1111|
 | 
						|
|1 | SUBPLAN FILTER           |        |500      |1008|
 | 
						|
|2 |  PX COORDINATOR          |        |500      |528 |
 | 
						|
|3 |   EXCHANGE OUT DISTR     |:EX10000|500      |481 |
 | 
						|
|4 |    PX PARTITION ITERATOR |        |500      |387 |
 | 
						|
|5 |     TABLE SCAN           |t1      |500      |387 |
 | 
						|
|6 |  SUBPLAN FILTER          |        |300      |472 |
 | 
						|
|7 |   PX COORDINATOR         |        |300      |280 |
 | 
						|
|8 |    EXCHANGE OUT DISTR    |:EX20000|300      |263 |
 | 
						|
|9 |     PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|10|      TABLE SCAN          |t2      |300      |233 |
 | 
						|
|11|   PX COORDINATOR         |        |200      |187 |
 | 
						|
|12|    EXCHANGE OUT DISTR    |:EX30000|200      |176 |
 | 
						|
|13|     PX PARTITION ITERATOR|        |200      |155 |
 | 
						|
|14|      TABLE SCAN          |t3      |200      |155 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
 | 
						|
  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.
 | 
						|
  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.
 | 
						|
  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.
 | 
						|
  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 772(end)  ************** 
 | 
						|
 | 
						|
***************   Case 773   ***************
 | 
						|
 | 
						|
SQL: (select c1 from t1) intersect (select c1 from t2); 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |300      |928 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |912 |
 | 
						|
|2 |  HASH INTERSECT DISTINCT    |        |300      |881 |
 | 
						|
|3 |   PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN               |t1      |500      |387 |
 | 
						|
|5 |   EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|7 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|8 |      TABLE SCAN             |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(INTERSECT([1]))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(INTERSECT([1]))]), filter(nil), dop=1
 | 
						|
  2 - output([INTERSECT([1])]), filter(nil)
 | 
						|
  3 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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)
 | 
						|
  6 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  7 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - 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 773(end)  ************** 
 | 
						|
 | 
						|
***************   Case 774   ***************
 | 
						|
 | 
						|
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      |928 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |912 |
 | 
						|
|2 |  HASH INTERSECT DISTINCT    |        |300      |881 |
 | 
						|
|3 |   PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN               |t1      |500      |387 |
 | 
						|
|5 |   EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|7 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|8 |      TABLE SCAN             |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(INTERSECT([1]))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(INTERSECT([1]))]), filter(nil), dop=1
 | 
						|
  2 - output([INTERSECT([1])]), filter(nil)
 | 
						|
  3 - output([t1.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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)
 | 
						|
  6 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  7 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - 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 774(end)  ************** 
 | 
						|
 | 
						|
***************   Case 775   ***************
 | 
						|
 | 
						|
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 |MERGE INTERSECT DISTINCT  |        |300      |1311|
 | 
						|
|1 | SORT                     |        |500      |763 |
 | 
						|
|2 |  SUBPLAN FILTER          |        |500      |661 |
 | 
						|
|3 |   PX COORDINATOR         |        |500      |466 |
 | 
						|
|4 |    EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|5 |     PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|6 |      TABLE SCAN          |t1      |500      |387 |
 | 
						|
|7 |   PX COORDINATOR         |        |200      |187 |
 | 
						|
|8 |    EXCHANGE OUT DISTR    |:EX20000|200      |176 |
 | 
						|
|9 |     PX PARTITION ITERATOR|        |200      |155 |
 | 
						|
|10|      TABLE SCAN          |t3      |200      |155 |
 | 
						|
|11| SORT                     |        |300      |532 |
 | 
						|
|12|  SUBPLAN FILTER          |        |300      |472 |
 | 
						|
|13|   PX COORDINATOR         |        |300      |280 |
 | 
						|
|14|    EXCHANGE OUT DISTR    |:EX30000|300      |263 |
 | 
						|
|15|     PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|16|      TABLE SCAN          |t2      |300      |233 |
 | 
						|
|17|   PX COORDINATOR         |        |200      |187 |
 | 
						|
|18|    EXCHANGE OUT DISTR    |:EX40000|200      |176 |
 | 
						|
|19|     PX PARTITION ITERATOR|        |200      |155 |
 | 
						|
|20|      TABLE SCAN          |t3      |200      |155 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERSECT([1])]), filter(nil)
 | 
						|
  1 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
 | 
						|
  2 - output([t1.c1]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  3 - output([t1.c1]), filter(nil)
 | 
						|
  4 - output([t1.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([t3.c1]), filter(nil)
 | 
						|
  8 - output([t3.c1]), filter(nil), dop=1
 | 
						|
  9 - output([t3.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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), sort_keys([t2.c1, ASC]), local merge sort
 | 
						|
  12 - output([t2.c1]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  13 - output([t2.c1]), filter(nil)
 | 
						|
  14 - output([t2.c1]), filter(nil), dop=1
 | 
						|
  15 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  16 - 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
 | 
						|
  17 - output([t3.c1]), filter(nil)
 | 
						|
  18 - output([t3.c1]), filter(nil), dop=1
 | 
						|
  19 - output([t3.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  20 - 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 * 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      |313361|
 | 
						|
|1 | SUBPLAN FILTER           |        |500      |313251|
 | 
						|
|2 |  PX COORDINATOR          |        |500      |528   |
 | 
						|
|3 |   EXCHANGE OUT DISTR     |:EX10000|500      |481   |
 | 
						|
|4 |    PX PARTITION ITERATOR |        |500      |387   |
 | 
						|
|5 |     TABLE SCAN           |t1      |500      |387   |
 | 
						|
|6 |  SUBPLAN FILTER          |        |1        |228   |
 | 
						|
|7 |   PX COORDINATOR         |        |1        |137   |
 | 
						|
|8 |    EXCHANGE OUT DISTR    |:EX20000|1        |137   |
 | 
						|
|9 |     PX PARTITION ITERATOR|        |1        |137   |
 | 
						|
|10|      TABLE GET           |t2      |1        |137   |
 | 
						|
|11|   PX COORDINATOR         |        |1        |91    |
 | 
						|
|12|    EXCHANGE OUT DISTR    |:EX30000|1        |91    |
 | 
						|
|13|     PX PARTITION ITERATOR|        |1        |91    |
 | 
						|
|14|      TABLE GET           |t3      |1        |91    |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC], [subquery(1), ASC]), local merge sort
 | 
						|
  1 - output([t1.c1], [subquery(1)], [t1.c2]), 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.
 | 
						|
  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.
 | 
						|
  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.
 | 
						|
  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 776(end)  ************** 
 | 
						|
 | 
						|
***************   Case 777   ***************
 | 
						|
 | 
						|
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                |        |100      |788 |
 | 
						|
|1 | PX COORDINATOR          |        |500      |466 |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000|500      |439 |
 | 
						|
|3 |   PX PARTITION ITERATOR |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN           |t12     |500      |387 |
 | 
						|
|5 | NESTED-LOOP JOIN        |        |100      |174 |
 | 
						|
|6 |  TABLE GET              |t1      |1        |46  |
 | 
						|
|7 |  PX COORDINATOR         |        |100      |84  |
 | 
						|
|8 |   EXCHANGE OUT DISTR    |:EX20000|100      |64  |
 | 
						|
|9 |    PX PARTITION ITERATOR|        |100      |19  |
 | 
						|
|10|     TABLE SCAN          |t22     |100      |19  |
 | 
						|
======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t12.c1]), filter(nil), 
 | 
						|
      equal_conds([cast(t12.c1, DECIMAL(11, 0)) = cast(t22.c3, DECIMAL(-1, -1))]), other_conds(nil)
 | 
						|
  1 - output([t12.c1]), filter(nil)
 | 
						|
  2 - output([t12.c1]), filter(nil), dop=1
 | 
						|
  3 - output([t12.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  4 - 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
 | 
						|
  5 - output([t22.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t1.c2]), batch_join=false
 | 
						|
  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)
 | 
						|
  8 - output([t22.c3]), filter(nil), dop=1
 | 
						|
  9 - output([t22.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  10 - 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])
 | 
						|
 | 
						|
*************** Case 777(end)  ************** 
 | 
						|
 | 
						|
***************   Case 778   ***************
 | 
						|
 | 
						|
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      |        |124950   |28755|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|        |150000   |8631 |
 | 
						|
|2 |  PX COORDINATOR           |        |300      |428  |
 | 
						|
|3 |   EXCHANGE OUT DISTR      |:EX10000|300      |366  |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |300      |233  |
 | 
						|
|5 |     TABLE SCAN            |t22     |300      |233  |
 | 
						|
|6 |  MATERIAL                 |        |500      |468  |
 | 
						|
|7 |   PX COORDINATOR          |        |500      |466  |
 | 
						|
|8 |    EXCHANGE OUT DISTR     |:EX20000|500      |439  |
 | 
						|
|9 |     PX PARTITION ITERATOR |        |500      |387  |
 | 
						|
|10|      TABLE SCAN           |t12     |500      |387  |
 | 
						|
|11| MATERIAL                  |        |1        |46   |
 | 
						|
|12|  SUBPLAN SCAN             |VIEW1   |1        |46   |
 | 
						|
|13|   TABLE GET               |t1      |1        |46   |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t12.c1]), filter(nil), 
 | 
						|
      conds([VIEW1.t1.c2 >= t22.c1], [cast(t12.c1, DECIMAL(11, 0)) = cast(t22.c3, DECIMAL(-1, -1)) OR (T_OP_IS, cast(t22.c3, DECIMAL(-1, -1)), 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.
 | 
						|
  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.
 | 
						|
  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 778(end)  ************** 
 | 
						|
 | 
						|
***************   Case 779   ***************
 | 
						|
 | 
						|
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            |     |334      |3172|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|     |10000    |2736|
 | 
						|
|2 |  TABLE SCAN               |t12  |100      |78  |
 | 
						|
|3 |  MATERIAL                 |     |100      |78  |
 | 
						|
|4 |   TABLE SCAN              |t22  |100      |78  |
 | 
						|
|5 | SORT                      |     |100      |135 |
 | 
						|
|6 |  SUBPLAN SCAN             |VIEW1|100      |80  |
 | 
						|
|7 |   TABLE SCAN              |t4   |100      |78  |
 | 
						|
=====================================================
 | 
						|
 | 
						|
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.c3], [VIEW1.t4.c2]), 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 779(end)  ************** 
 | 
						|
 | 
						|
***************   Case 780   ***************
 | 
						|
 | 
						|
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      |3182|
 | 
						|
|1 | NESTED-LOOP JOIN         |        |750      |2930|
 | 
						|
|2 |  PX COORDINATOR          |        |300      |428 |
 | 
						|
|3 |   EXCHANGE OUT DISTR     |:EX10000|300      |366 |
 | 
						|
|4 |    PX PARTITION ITERATOR |        |300      |233 |
 | 
						|
|5 |     TABLE SCAN           |t22     |300      |233 |
 | 
						|
|6 |  MATERIAL                |        |500      |468 |
 | 
						|
|7 |   PX COORDINATOR         |        |500      |466 |
 | 
						|
|8 |    EXCHANGE OUT DISTR    |:EX20000|500      |439 |
 | 
						|
|9 |     PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|10|      TABLE SCAN          |t12     |500      |387 |
 | 
						|
|11| MATERIAL                 |        |1        |46  |
 | 
						|
|12|  TABLE GET               |t1      |1        |46  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t12.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil), batch_join=false
 | 
						|
  1 - output([t12.c1]), filter(nil), 
 | 
						|
      conds([cast(t12.c1 + t22.c1, DECIMAL(12, 0)) = cast(t22.c3, DECIMAL(-1, -1))]), 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.
 | 
						|
  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.
 | 
						|
  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(nil), filter(nil)
 | 
						|
  12 - output(nil), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range[5 ; 5], 
 | 
						|
      range_cond([t1.c1 = ?])
 | 
						|
 | 
						|
*************** Case 780(end)  ************** 
 | 
						|
 | 
						|
***************   Case 781   ***************
 | 
						|
 | 
						|
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      |        |74626    |38598|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|        |150000   |8631 |
 | 
						|
|2 |  PX COORDINATOR           |        |300      |428  |
 | 
						|
|3 |   EXCHANGE OUT DISTR      |:EX10000|300      |366  |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |300      |233  |
 | 
						|
|5 |     TABLE SCAN            |t22     |300      |233  |
 | 
						|
|6 |  MATERIAL                 |        |500      |468  |
 | 
						|
|7 |   PX COORDINATOR          |        |500      |466  |
 | 
						|
|8 |    EXCHANGE OUT DISTR     |:EX20000|500      |439  |
 | 
						|
|9 |     PX PARTITION ITERATOR |        |500      |387  |
 | 
						|
|10|      TABLE SCAN           |t12     |500      |387  |
 | 
						|
|11| MATERIAL                  |        |1        |46   |
 | 
						|
|12|  SUBPLAN SCAN             |VIEW1   |1        |46   |
 | 
						|
|13|   TABLE GET               |t1      |1        |46   |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t12.c1]), filter(nil), 
 | 
						|
      conds([cast(t12.c1 + t22.c1, DECIMAL(12, 0)) = cast(t22.c3, DECIMAL(-1, -1)) OR (T_OP_IS, cast(t22.c3, DECIMAL(-1, -1)), 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.
 | 
						|
  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.
 | 
						|
  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(nil), filter(nil)
 | 
						|
  12 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  13 - output([1]), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p0), 
 | 
						|
      limit(1), offset(nil), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c1]), range[5 ; 5], 
 | 
						|
      range_cond([t1.c1 = ?])
 | 
						|
 | 
						|
*************** Case 781(end)  ************** 
 | 
						|
 | 
						|
***************   Case 782   ***************
 | 
						|
 | 
						|
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        |578  |
 | 
						|
|1 | NESTED-LOOP JOIN           |             |13       |577  |
 | 
						|
|2 |  TABLE GET                 |t1           |1        |78   |
 | 
						|
|3 |  NESTED-LOOP JOIN          |             |3801     |49476|
 | 
						|
|4 |   NESTED-LOOP SEMI JOIN    |             |167      |48045|
 | 
						|
|5 |    PX COORDINATOR          |             |500      |528  |
 | 
						|
|6 |     EXCHANGE OUT DISTR     |:EX10000     |500      |481  |
 | 
						|
|7 |      PX PARTITION ITERATOR |             |500      |387  |
 | 
						|
|8 |       TABLE SCAN           |t12          |500      |387  |
 | 
						|
|9 |    PX COORDINATOR          |             |1        |227  |
 | 
						|
|10|     EXCHANGE OUT DISTR     |:EX20000     |1        |227  |
 | 
						|
|11|      SUBPLAN SCAN          |VIEW2        |1        |227  |
 | 
						|
|12|       PX PARTITION ITERATOR|             |1        |227  |
 | 
						|
|13|        TABLE SCAN          |t1(idx_t1_c2)|1        |227  |
 | 
						|
|14|   MATERIAL                 |             |206      |399  |
 | 
						|
|15|    PX COORDINATOR          |             |206      |395  |
 | 
						|
|16|     EXCHANGE OUT DISTR     |:EX30000     |206      |345  |
 | 
						|
|17|      PX PARTITION ITERATOR |             |206      |236  |
 | 
						|
|18|       TABLE SCAN           |t22          |206      |236  |
 | 
						|
===============================================================
 | 
						|
 | 
						|
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([t1.c2 >= t22.c1]), nl_params_(nil), batch_join=false
 | 
						|
  2 - 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 = ?])
 | 
						|
  3 - output([t12.c1], [t22.c1]), filter(nil), 
 | 
						|
      conds([cast(t12.c1, DECIMAL(11, 0)) > cast(t22.c3, DECIMAL(-1, -1))], [cast(t22.c3, DECIMAL(-1, -1)) <= cast(t12.c1, DECIMAL(11, 0))]), nl_params_(nil), batch_join=false
 | 
						|
  4 - output([t12.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t12.c2]), batch_join=false
 | 
						|
  5 - output([t12.c1], [t12.c2]), filter(nil)
 | 
						|
  6 - output([t12.c1], [t12.c2]), filter(nil), dop=1
 | 
						|
  7 - output([t12.c1], [t12.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  8 - 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)always true
 | 
						|
  9 - output(nil), filter(nil)
 | 
						|
  10 - output(nil), filter(nil), dop=1
 | 
						|
  11 - output(nil), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  12 - output([t1.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  13 - output([t1.c1]), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t1.c2], [t1.c1]), range(3,MIN ; 3,MAX), 
 | 
						|
      range_cond([t1.c2 = ?], [? < t1.c1])
 | 
						|
  14 - output([t22.c1], [t22.c3]), filter(nil)
 | 
						|
  15 - output([t22.c1], [t22.c3]), filter(nil)
 | 
						|
  16 - output([t22.c1], [t22.c3]), filter(nil), dop=1
 | 
						|
  17 - output([t22.c1], [t22.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  18 - output([t22.c1], [t22.c3]), filter([t22.c2 >= ?]), 
 | 
						|
      access([t22.c1], [t22.c3], [t22.c2]), partitions(p[0-2]), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([t22.c1]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 782(end)  ************** 
 | 
						|
 | 
						|
***************   Case 783   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 group by c1, (select c2 from t7); 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t7  |100      |78  |
 | 
						|
===================================
 | 
						|
 | 
						|
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 783(end)  ************** 
 | 
						|
 | 
						|
***************   Case 784   ***************
 | 
						|
 | 
						|
SQL: select c1 from t7 order by c1, (select c2 from t7); 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |SUBPLAN FILTER|    |100      |157 |
 | 
						|
|1 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
|2 | TABLE SCAN   |t7  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 784(end)  ************** 
 | 
						|
 | 
						|
***************   Case 785   ***************
 | 
						|
 | 
						|
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      |     |90       |208 |
 | 
						|
|1 | SUBPLAN SCAN  |VIEW1|10       |104 |
 | 
						|
|2 |  HASH GROUP BY|     |10       |104 |
 | 
						|
|3 |   TABLE SCAN  |t7   |100      |78  |
 | 
						|
|4 | TABLE SCAN    |t7   |100      |78  |
 | 
						|
=========================================
 | 
						|
 | 
						|
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.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 785(end)  ************** 
 | 
						|
 | 
						|
***************   Case 786   ***************
 | 
						|
 | 
						|
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 |        |2        |92  |
 | 
						|
|1 | EXCHANGE OUT DISTR       |:EX10000|2        |92  |
 | 
						|
|2 |  PX PARTITION ITERATOR   |        |2        |91  |
 | 
						|
|3 |   TABLE SCAN             |ts      |2        |91  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(ts.c1, ts.c2)]), filter(nil), sort_keys([ts.c2, ASC])
 | 
						|
  1 - output([ts.c2], [INTERNAL_FUNCTION(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 786(end)  ************** 
 | 
						|
 | 
						|
***************   Case 787   ***************
 | 
						|
 | 
						|
SQL: select * from tr where c1 > 1 order by c1; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR MERGE SORT |        |257      |304 |
 | 
						|
|1 | EXCHANGE OUT DISTR       |:EX10000|257      |280 |
 | 
						|
|2 |  PX PARTITION ITERATOR   |        |257      |232 |
 | 
						|
|3 |   TABLE SCAN             |tr      |257      |232 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(tr.c1, tr.c2)]), filter(nil), sort_keys([tr.c1, ASC])
 | 
						|
  1 - output([tr.c1], [INTERNAL_FUNCTION(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 787(end)  ************** 
 | 
						|
 | 
						|
***************   Case 788   ***************
 | 
						|
 | 
						|
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      |78  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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 788(end)  ************** 
 | 
						|
 | 
						|
***************   Case 789   ***************
 | 
						|
 | 
						|
SQL: select /*+no_use_hash_distinct*/ distinct c2 from t0; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR      |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |MERGE DISTINCT|    |10       |137 |
 | 
						|
|1 | SORT         |    |100      |133 |
 | 
						|
|2 |  TABLE SCAN  |t0  |100      |78  |
 | 
						|
=======================================
 | 
						|
 | 
						|
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 789(end)  ************** 
 | 
						|
 | 
						|
***************   Case 790   ***************
 | 
						|
 | 
						|
SQL: select * from tidx where c3 = 1; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|tidx|9        |79  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tidx.c1], [tidx.c2], [tidx.c3], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), filter([tidx.c3 = ?]), 
 | 
						|
      access([tidx.c1], [tidx.c3], [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 790(end)  ************** 
 | 
						|
 | 
						|
***************   Case 791   ***************
 | 
						|
 | 
						|
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      |118 |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tidx.c1], [tidx.c2], [tidx.c3], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), filter(nil), 
 | 
						|
      access([tidx.c1], [tidx.c2], [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 791(end)  ************** 
 | 
						|
 | 
						|
***************   Case 792   ***************
 | 
						|
 | 
						|
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      |118 |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tidx.c1], [tidx.c2], [tidx.c3], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), filter(nil), 
 | 
						|
      access([tidx.c1], [tidx.c2], [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 792(end)  ************** 
 | 
						|
 | 
						|
***************   Case 793   ***************
 | 
						|
 | 
						|
SQL: select c1, max(c3) over (partition by c2 order by c3) from t2; 
 | 
						|
 | 
						|
===========================================================
 | 
						|
|ID|OPERATOR                      |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                |        |300      |1145|
 | 
						|
|1 | EXCHANGE OUT DISTR           |:EX10001|300      |1027|
 | 
						|
|2 |  WINDOW FUNCTION             |        |300      |766 |
 | 
						|
|3 |   PARTITION SORT             |        |300      |587 |
 | 
						|
|4 |    EXCHANGE IN DISTR         |        |300      |464 |
 | 
						|
|5 |     EXCHANGE OUT DISTR (HASH)|:EX10000|300      |391 |
 | 
						|
|6 |      PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|7 |       TABLE SCAN             |t2      |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, T_FUN_MAX(t2.c3))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t2.c1, T_FUN_MAX(t2.c3))]), filter(nil), dop=1
 | 
						|
  2 - output([T_FUN_MAX(t2.c3)], [t2.c1]), 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.c3], [t2.c2], [t2.c1]), filter(nil), sort_keys([HASH(t2.c2), ASC], [t2.c2, ASC], [t2.c3, ASC])
 | 
						|
  4 - output([t2.c3], [t2.c2], [t2.c1]), filter(nil)
 | 
						|
  5 - (#keys=1, [t2.c2]), output([t2.c3], [t2.c2], [t2.c1]), filter(nil), dop=1
 | 
						|
  6 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 793(end)  ************** 
 | 
						|
 | 
						|
***************   Case 794   ***************
 | 
						|
 | 
						|
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      |1444|
 | 
						|
|1 | EXCHANGE OUT DISTR           |:EX10001|300      |1280|
 | 
						|
|2 |  WINDOW FUNCTION             |        |300      |917 |
 | 
						|
|3 |   PARTITION SORT             |        |300      |587 |
 | 
						|
|4 |    EXCHANGE IN DISTR         |        |300      |464 |
 | 
						|
|5 |     EXCHANGE OUT DISTR (HASH)|:EX10000|300      |391 |
 | 
						|
|6 |      PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|7 |       TABLE SCAN             |t2      |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, T_FUN_MAX(t2.c3), T_FUN_MAX(t2.c3))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t2.c1, T_FUN_MAX(t2.c3), T_FUN_MAX(t2.c3))]), filter(nil), dop=1
 | 
						|
  2 - output([T_FUN_MAX(t2.c3)], [T_FUN_MAX(t2.c3)], [t2.c1]), 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.c3], [t2.c2], [t2.c1]), filter(nil), sort_keys([HASH(t2.c2), ASC], [t2.c2, ASC], [t2.c3, ASC])
 | 
						|
  4 - output([t2.c3], [t2.c2], [t2.c1]), filter(nil)
 | 
						|
  5 - (#keys=1, [t2.c2]), output([t2.c3], [t2.c2], [t2.c1]), filter(nil), dop=1
 | 
						|
  6 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 794(end)  ************** 
 | 
						|
 | 
						|
***************   Case 795   ***************
 | 
						|
 | 
						|
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      |1246|
 | 
						|
|1 | EXCHANGE OUT DISTR           |:EX10001|300      |1128|
 | 
						|
|2 |  WINDOW FUNCTION             |        |300      |867 |
 | 
						|
|3 |   SORT                       |        |300      |688 |
 | 
						|
|4 |    EXCHANGE IN DISTR         |        |300      |464 |
 | 
						|
|5 |     EXCHANGE OUT DISTR (HASH)|:EX10000|300      |391 |
 | 
						|
|6 |      PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|7 |       TABLE SCAN             |t2      |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, T_FUN_MAX(t2.c3))]), filter(nil), sort_keys([t2.c2, ASC], [t2.c3, ASC])
 | 
						|
  1 - output([t2.c2], [t2.c3], [INTERNAL_FUNCTION(t2.c1, T_FUN_MAX(t2.c3))]), filter(nil), dop=1
 | 
						|
  2 - output([t2.c2], [t2.c3], [T_FUN_MAX(t2.c3)], [t2.c1]), 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.c2], [t2.c3], [t2.c1]), filter(nil), sort_keys([t2.c2, ASC], [t2.c3, ASC])
 | 
						|
  4 - output([t2.c2], [t2.c3], [t2.c1]), filter(nil)
 | 
						|
  5 - (#keys=1, [t2.c2]), output([t2.c2], [t2.c3], [t2.c1]), filter(nil), dop=1
 | 
						|
  6 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 795(end)  ************** 
 | 
						|
 | 
						|
***************   Case 796   ***************
 | 
						|
 | 
						|
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      |1447|
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|300      |1328|
 | 
						|
|2 |  SORT                         |        |300      |1068|
 | 
						|
|3 |   WINDOW FUNCTION             |        |300      |766 |
 | 
						|
|4 |    PARTITION SORT             |        |300      |587 |
 | 
						|
|5 |     EXCHANGE IN DISTR         |        |300      |464 |
 | 
						|
|6 |      EXCHANGE OUT DISTR (HASH)|:EX10000|300      |391 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|8 |        TABLE SCAN             |t2      |300      |233 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, T_FUN_MAX(t2.c3))]), filter(nil), sort_keys([t2.c3, ASC], [t2.c2, ASC])
 | 
						|
  1 - output([t2.c3], [t2.c2], [INTERNAL_FUNCTION(t2.c1, T_FUN_MAX(t2.c3))]), filter(nil), dop=1
 | 
						|
  2 - output([t2.c3], [t2.c2], [T_FUN_MAX(t2.c3)], [t2.c1]), filter(nil), sort_keys([t2.c3, ASC], [t2.c2, ASC])
 | 
						|
  3 - output([t2.c3], [t2.c2], [T_FUN_MAX(t2.c3)], [t2.c1]), 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.c3], [t2.c2], [t2.c1]), filter(nil), sort_keys([HASH(t2.c2), ASC], [t2.c2, ASC], [t2.c3, ASC])
 | 
						|
  5 - output([t2.c3], [t2.c2], [t2.c1]), filter(nil)
 | 
						|
  6 - (#keys=1, [t2.c2]), output([t2.c3], [t2.c2], [t2.c1]), filter(nil), dop=1
 | 
						|
  7 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 796(end)  ************** 
 | 
						|
 | 
						|
***************   Case 797   ***************
 | 
						|
 | 
						|
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      |1145|
 | 
						|
|1 | EXCHANGE OUT DISTR           |:EX10001|300      |1027|
 | 
						|
|2 |  WINDOW FUNCTION             |        |300      |766 |
 | 
						|
|3 |   PARTITION SORT             |        |300      |587 |
 | 
						|
|4 |    EXCHANGE IN DISTR         |        |300      |464 |
 | 
						|
|5 |     EXCHANGE OUT DISTR (HASH)|:EX10000|300      |391 |
 | 
						|
|6 |      PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|7 |       TABLE SCAN             |t2      |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, T_FUN_MAX(t2.c3))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t2.c1, T_FUN_MAX(t2.c3))]), filter(nil), dop=1
 | 
						|
  2 - output([T_FUN_MAX(t2.c3)], [t2.c1]), 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.c3], [t2.c2], [t2.c1]), filter(nil), sort_keys([HASH(t2.c2), ASC], [t2.c2, ASC], [t2.c3, ASC])
 | 
						|
  4 - output([t2.c3], [t2.c2], [t2.c1]), filter(nil)
 | 
						|
  5 - (#keys=1, [t2.c2]), output([t2.c3], [t2.c2], [t2.c1]), filter(nil), dop=1
 | 
						|
  6 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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; 
 | 
						|
 | 
						|
===========================================================
 | 
						|
|ID|OPERATOR                      |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                |        |300      |1145|
 | 
						|
|1 | EXCHANGE OUT DISTR           |:EX10001|300      |1027|
 | 
						|
|2 |  WINDOW FUNCTION             |        |300      |766 |
 | 
						|
|3 |   PARTITION SORT             |        |300      |587 |
 | 
						|
|4 |    EXCHANGE IN DISTR         |        |300      |464 |
 | 
						|
|5 |     EXCHANGE OUT DISTR (HASH)|:EX10000|300      |391 |
 | 
						|
|6 |      PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|7 |       TABLE SCAN             |t2      |300      |233 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, T_FUN_MAX(t2.c3))]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t2.c1, T_FUN_MAX(t2.c3))]), filter(nil), dop=1
 | 
						|
  2 - output([T_FUN_MAX(t2.c3)], [t2.c1]), 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.c3], [t2.c2], [t2.c1]), filter(nil), sort_keys([HASH(t2.c2), ASC], [t2.c2, ASC], [t2.c3, ASC])
 | 
						|
  4 - output([t2.c3], [t2.c2], [t2.c1]), filter(nil)
 | 
						|
  5 - (#keys=1, [t2.c2]), output([t2.c3], [t2.c2], [t2.c1]), filter(nil), dop=1
 | 
						|
  6 - output([t2.c1], [t2.c3], [t2.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 * from tg where c1 = 'bcde'; 
 | 
						|
 | 
						|
==================================
 | 
						|
|ID|OPERATOR |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------
 | 
						|
|0 |TABLE GET|tg  |1        |46  |
 | 
						|
==================================
 | 
						|
 | 
						|
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 799(end)  ************** 
 | 
						|
 | 
						|
***************   Case 800   ***************
 | 
						|
 | 
						|
SQL: select * from tg where c1 = 'baaaa'; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |46  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |46  |
 | 
						|
|2 |  TABLE GET         |tg  |1        |46  |
 | 
						|
=============================================
 | 
						|
 | 
						|
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(p2), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([tg.c1]), range[baaaa ; baaaa], 
 | 
						|
      range_cond([tg.c1 = ?])
 | 
						|
 | 
						|
*************** Case 800(end)  ************** 
 | 
						|
 | 
						|
***************   Case 801   ***************
 | 
						|
 | 
						|
SQL: select * from tg where c1 = 'bcde' and (c2 = 'cde' or c2 = 'baaaa'); 
 | 
						|
 | 
						|
==================================
 | 
						|
|ID|OPERATOR |NAME|EST. ROWS|COST|
 | 
						|
----------------------------------
 | 
						|
|0 |TABLE GET|tg  |1        |46  |
 | 
						|
==================================
 | 
						|
 | 
						|
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 801(end)  ************** 
 | 
						|
 | 
						|
***************   Case 802   ***************
 | 
						|
 | 
						|
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      |245 |
 | 
						|
|1 | MERGE FULL OUTER JOIN|    |100      |187 |
 | 
						|
|2 |  TABLE SCAN          |z1  |100      |78  |
 | 
						|
|3 |  TABLE SCAN          |z2  |100      |78  |
 | 
						|
===============================================
 | 
						|
 | 
						|
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 802(end)  ************** 
 | 
						|
 | 
						|
***************   Case 803   ***************
 | 
						|
 | 
						|
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     |794009|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|    |10000    |2736  |
 | 
						|
|2 |  TABLE SCAN               |t7  |100      |78    |
 | 
						|
|3 |  MATERIAL                 |    |100      |78    |
 | 
						|
|4 |   TABLE SCAN              |t8  |100      |78    |
 | 
						|
|5 | TABLE SCAN                |t0  |100      |78    |
 | 
						|
======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter([t7.c1 > subquery(1)]), 
 | 
						|
      exec_params_([BOOL(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(nil), filter(nil)
 | 
						|
  4 - output(nil), 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 803(end)  ************** 
 | 
						|
 | 
						|
***************   Case 804   ***************
 | 
						|
 | 
						|
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     |794009|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|    |10000    |2736  |
 | 
						|
|2 |  TABLE SCAN               |t7  |100      |78    |
 | 
						|
|3 |  MATERIAL                 |    |100      |78    |
 | 
						|
|4 |   TABLE SCAN              |t8  |100      |78    |
 | 
						|
|5 | TABLE SCAN                |t0  |100      |78    |
 | 
						|
======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1]), filter([t7.c1 > subquery(1)]), 
 | 
						|
      exec_params_([BOOL(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(nil), filter(nil)
 | 
						|
  4 - output(nil), 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 804(end)  ************** 
 | 
						|
 | 
						|
***************   Case 805   ***************
 | 
						|
 | 
						|
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     |1121|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|    |3334     |985 |
 | 
						|
|2 |  TABLE SCAN               |t8  |100      |78  |
 | 
						|
|3 |  MATERIAL                 |    |34       |47  |
 | 
						|
|4 |   TABLE SCAN              |t7  |34       |46  |
 | 
						|
|5 | TABLE SCAN                |t0  |100      |78  |
 | 
						|
====================================================
 | 
						|
 | 
						|
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(nil), 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), 
 | 
						|
      access([t0.c1]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t0.pk]), range(MIN ; MAX)always true
 | 
						|
 | 
						|
*************** Case 805(end)  ************** 
 | 
						|
 | 
						|
***************   Case 806   ***************
 | 
						|
 | 
						|
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 |NESTED-LOOP JOIN              |        |1        |109 |
 | 
						|
|1 | PX COORDINATOR               |        |1        |54  |
 | 
						|
|2 |  EXCHANGE OUT DISTR          |:EX10001|1        |53  |
 | 
						|
|3 |   NESTED-LOOP JOIN           |        |1        |53  |
 | 
						|
|4 |    EXCHANGE IN DISTR         |        |1        |46  |
 | 
						|
|5 |     EXCHANGE OUT DISTR (PKEY)|:EX10000|1        |46  |
 | 
						|
|6 |      TABLE GET               |t1      |1        |46  |
 | 
						|
|7 |    PX PARTITION ITERATOR     |        |1        |18  |
 | 
						|
|8 |     TABLE GET                |t22     |1        |18  |
 | 
						|
|9 | PX COORDINATOR               |        |1        |29  |
 | 
						|
|10|  EXCHANGE OUT DISTR          |:EX20000|1        |29  |
 | 
						|
|11|   PX PARTITION ITERATOR      |        |1        |29  |
 | 
						|
|12|    TABLE GET                 |t12     |1        |29  |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t12.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([cast(t22.c3, DECIMAL(-1, -1))]), batch_join=false
 | 
						|
  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([PARTITION_ID], [t1.c2]), filter(nil)
 | 
						|
  5 - (#keys=1, [t1.c2]), output([PARTITION_ID], [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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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.
 | 
						|
  12 - 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([cast(t12.c1, DECIMAL(11, 0)) = ?])
 | 
						|
 | 
						|
*************** Case 806(end)  ************** 
 | 
						|
 | 
						|
***************   Case 807   ***************
 | 
						|
 | 
						|
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      |1086|
 | 
						|
|1 | PX COORDINATOR MERGE SORT     |             |100      |1084|
 | 
						|
|2 |  EXCHANGE OUT DISTR           |:EX10001     |100      |1064|
 | 
						|
|3 |   TOP-N SORT                  |             |100      |1019|
 | 
						|
|4 |    HASH JOIN                  |             |270      |966 |
 | 
						|
|5 |     EXCHANGE IN DISTR         |             |270      |392 |
 | 
						|
|6 |      EXCHANGE OUT DISTR (PKEY)|:EX10000     |270      |357 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |             |270      |283 |
 | 
						|
|8 |        TABLE SCAN             |t5(idx_t5_c3)|270      |283 |
 | 
						|
|9 |     PX PARTITION ITERATOR     |             |500      |387 |
 | 
						|
|10|      TABLE SCAN               |t1           |500      |387 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
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), sort_keys([t5.c3, ASC]), topn(100)
 | 
						|
  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.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  6 - (#keys=1, [t5.c3]), output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  7 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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(0 ; 100), 
 | 
						|
      range_cond([t1.c1 < ?], [t1.c1 > ?])
 | 
						|
 | 
						|
*************** Case 807(end)  ************** 
 | 
						|
 | 
						|
***************   Case 808   ***************
 | 
						|
 | 
						|
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                          |             |270      |1211|
 | 
						|
|1 | PX COORDINATOR MERGE SORT     |             |270      |1206|
 | 
						|
|2 |  EXCHANGE OUT DISTR           |:EX10001     |270      |1150|
 | 
						|
|3 |   TOP-N SORT                  |             |270      |1031|
 | 
						|
|4 |    HASH JOIN                  |             |270      |966 |
 | 
						|
|5 |     EXCHANGE IN DISTR         |             |270      |392 |
 | 
						|
|6 |      EXCHANGE OUT DISTR (PKEY)|:EX10000     |270      |357 |
 | 
						|
|7 |       PX PARTITION ITERATOR   |             |270      |283 |
 | 
						|
|8 |        TABLE SCAN             |t5(idx_t5_c3)|270      |283 |
 | 
						|
|9 |     PX PARTITION ITERATOR     |             |500      |387 |
 | 
						|
|10|      TABLE SCAN               |t1           |500      |387 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
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), sort_keys([t5.c3, ASC]), topn(10000)
 | 
						|
  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.c1], [t5.c2], [t5.c3]), filter(nil)
 | 
						|
  6 - (#keys=1, [t5.c3]), output([t5.c1], [t5.c2], [t5.c3]), filter(nil), dop=1
 | 
						|
  7 - output([t5.c2], [t5.c3], [t5.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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(0 ; 100), 
 | 
						|
      range_cond([t1.c1 < ?], [t1.c1 > ?])
 | 
						|
 | 
						|
*************** Case 808(end)  ************** 
 | 
						|
 | 
						|
***************   Case 809   ***************
 | 
						|
 | 
						|
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      |118 |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tidx.c1], [tidx.c2], [tidx.c3], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), filter(nil), 
 | 
						|
      access([tidx.c1], [tidx.c2], [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 809(end)  ************** 
 | 
						|
 | 
						|
***************   Case 810   ***************
 | 
						|
 | 
						|
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      |118 |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tidx.c1], [tidx.c2], [tidx.c3], [tidx.c4], [tidx.c5], [tidx.c6], [tidx.c7]), filter(nil), 
 | 
						|
      access([tidx.c1], [tidx.c2], [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 810(end)  ************** 
 | 
						|
 | 
						|
***************   Case 811   ***************
 | 
						|
 | 
						|
SQL: select c2 from (select c1, c2 from t1 group by 1) a; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |466 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |439 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |387 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 811(end)  ************** 
 | 
						|
 | 
						|
***************   Case 812   ***************
 | 
						|
 | 
						|
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      |631 |
 | 
						|
|1 | EXCHANGE OUT DISTR       |:EX10000|500      |584 |
 | 
						|
|2 |  SORT                    |        |500      |490 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN            |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2)]), filter(nil), sort_keys([t1.c1, ASC])
 | 
						|
  1 - output([t1.c1], [INTERNAL_FUNCTION(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.
 | 
						|
  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 812(end)  ************** 
 | 
						|
 | 
						|
***************   Case 813   ***************
 | 
						|
 | 
						|
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      |898 |
 | 
						|
|1 | EXCHANGE OUT DISTR       |:EX10000|500      |852 |
 | 
						|
|2 |  SORT                    |        |500      |758 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |500      |387 |
 | 
						|
|4 |    TABLE SCAN            |t1      |500      |387 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c2)]), filter(nil), sort_keys([t1.c1 + t1.c2, ASC])
 | 
						|
  1 - output([t1.c1 + t1.c2], [INTERNAL_FUNCTION(t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1 + t1.c2], [t1.c2]), filter(nil), sort_keys([t1.c1 + t1.c2, ASC])
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 813(end)  ************** 
 | 
						|
 | 
						|
***************   Case 814   ***************
 | 
						|
 | 
						|
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                     |             |255      |1145|
 | 
						|
|1 | PX COORDINATOR               |             |5        |229 |
 | 
						|
|2 |  EXCHANGE OUT DISTR          |:EX10000     |5        |228 |
 | 
						|
|3 |   PX PARTITION ITERATOR      |             |5        |227 |
 | 
						|
|4 |    TABLE SCAN                |t1(idx_t1_c2)|5        |227 |
 | 
						|
|5 | PX COORDINATOR               |             |251      |913 |
 | 
						|
|6 |  EXCHANGE OUT DISTR          |:EX20001     |251      |880 |
 | 
						|
|7 |   HASH JOIN                  |             |251      |812 |
 | 
						|
|8 |    EXCHANGE IN DISTR         |             |300      |280 |
 | 
						|
|9 |     EXCHANGE OUT DISTR (PKEY)|:EX20000     |300      |263 |
 | 
						|
|10|      PX PARTITION ITERATOR   |             |300      |233 |
 | 
						|
|11|       TABLE SCAN             |t2           |300      |233 |
 | 
						|
|12|    PX PARTITION ITERATOR     |             |250      |400 |
 | 
						|
|13|     TABLE SCAN               |t1           |250      |400 |
 | 
						|
================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])], [UNION([2])]), 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.
 | 
						|
  4 - output([t1.c1]), filter(nil), 
 | 
						|
      access([t1.c1]), 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([t2.c1]), filter(nil)
 | 
						|
  9 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  10 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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
 | 
						|
  12 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  13 - output([t1.c1], [t1.c2]), filter([lnnvl(cast(t1.c2 = ?, TINYINT(-1, 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 814(end)  ************** 
 | 
						|
 | 
						|
***************   Case 815   ***************
 | 
						|
 | 
						|
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                |             |88       |14555|
 | 
						|
|1 | PX COORDINATOR          |             |5        |229  |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000     |5        |228  |
 | 
						|
|3 |   PX PARTITION ITERATOR |             |5        |227  |
 | 
						|
|4 |    TABLE SCAN           |t1(idx_t1_c2)|5        |227  |
 | 
						|
|5 | NESTED-LOOP SEMI JOIN   |             |84       |14326|
 | 
						|
|6 |  PX COORDINATOR         |             |250      |470  |
 | 
						|
|7 |   EXCHANGE OUT DISTR    |:EX20000     |250      |447  |
 | 
						|
|8 |    PX PARTITION ITERATOR|             |250      |400  |
 | 
						|
|9 |     TABLE SCAN          |t1           |250      |400  |
 | 
						|
|10|  PX COORDINATOR         |             |1        |18   |
 | 
						|
|11|   EXCHANGE OUT DISTR    |:EX30000     |1        |18   |
 | 
						|
|12|    PX PARTITION ITERATOR|             |1        |18   |
 | 
						|
|13|     TABLE SCAN          |t2           |1        |18   |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])], [UNION([2])]), 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.
 | 
						|
  4 - output([t1.c1]), filter(nil), 
 | 
						|
      access([t1.c1]), 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.
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter([lnnvl(cast(t1.c2 = ?, TINYINT(-1, 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
 | 
						|
  10 - output(nil), filter(nil)
 | 
						|
  11 - output(nil), filter(nil), dop=1
 | 
						|
  12 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  13 - output(nil), 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 815(end)  ************** 
 | 
						|
 | 
						|
***************   Case 816   ***************
 | 
						|
 | 
						|
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                |             |88       |14555|
 | 
						|
|1 | PX COORDINATOR          |             |5        |229  |
 | 
						|
|2 |  EXCHANGE OUT DISTR     |:EX10000     |5        |228  |
 | 
						|
|3 |   PX PARTITION ITERATOR |             |5        |227  |
 | 
						|
|4 |    TABLE SCAN           |t1(idx_t1_c2)|5        |227  |
 | 
						|
|5 | NESTED-LOOP SEMI JOIN   |             |84       |14326|
 | 
						|
|6 |  PX COORDINATOR         |             |250      |470  |
 | 
						|
|7 |   EXCHANGE OUT DISTR    |:EX20000     |250      |447  |
 | 
						|
|8 |    PX PARTITION ITERATOR|             |250      |400  |
 | 
						|
|9 |     TABLE SCAN          |t1           |250      |400  |
 | 
						|
|10|  PX COORDINATOR         |             |1        |18   |
 | 
						|
|11|   EXCHANGE OUT DISTR    |:EX30000     |1        |18   |
 | 
						|
|12|    PX PARTITION ITERATOR|             |1        |18   |
 | 
						|
|13|     TABLE SCAN          |t2           |1        |18   |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([UNION([1])], [UNION([2])]), 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.
 | 
						|
  4 - output([t1.c1]), filter(nil), 
 | 
						|
      access([t1.c1]), 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.
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter([lnnvl(cast(t1.c2 = ?, TINYINT(-1, 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
 | 
						|
  10 - output(nil), filter(nil)
 | 
						|
  11 - output(nil), filter(nil), dop=1
 | 
						|
  12 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  13 - output(nil), 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 816(end)  ************** 
 | 
						|
 | 
						|
***************   Case 817   ***************
 | 
						|
 | 
						|
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    |80195533|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|        |150000   |8729    |
 | 
						|
|2 |  PX COORDINATOR           |        |300      |464     |
 | 
						|
|3 |   EXCHANGE OUT DISTR      |:EX10000|300      |391     |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |300      |233     |
 | 
						|
|5 |     TABLE SCAN            |t2      |300      |233     |
 | 
						|
|6 |  MATERIAL                 |        |500      |531     |
 | 
						|
|7 |   PX COORDINATOR          |        |500      |528     |
 | 
						|
|8 |    EXCHANGE OUT DISTR     |:EX20000|500      |481     |
 | 
						|
|9 |     PX PARTITION ITERATOR |        |500      |387     |
 | 
						|
|10|      TABLE SCAN           |t1      |500      |387     |
 | 
						|
|11| LIMIT                     |        |1        |137     |
 | 
						|
|12|  PX COORDINATOR           |        |1        |137     |
 | 
						|
|13|   EXCHANGE OUT DISTR      |:EX30000|1        |137     |
 | 
						|
|14|    LIMIT                  |        |1        |137     |
 | 
						|
|15|     PX PARTITION ITERATOR |        |1        |137     |
 | 
						|
|16|      TABLE GET            |t2      |1        |137     |
 | 
						|
============================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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.
 | 
						|
  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(nil), filter(nil)
 | 
						|
  13 - output(nil), filter(nil), dop=1
 | 
						|
  14 - output(nil), filter(nil), limit(1), offset(nil)
 | 
						|
  15 - output(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  16 - output(nil), 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 817(end)  ************** 
 | 
						|
 | 
						|
***************   Case 818   ***************
 | 
						|
 | 
						|
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                |        |200      |962 |
 | 
						|
|1 | PX COORDINATOR               |        |200      |822 |
 | 
						|
|2 |  EXCHANGE OUT DISTR          |:EX10001|200      |796 |
 | 
						|
|3 |   HASH JOIN                  |        |200      |741 |
 | 
						|
|4 |    EXCHANGE IN DISTR         |        |200      |187 |
 | 
						|
|5 |     EXCHANGE OUT DISTR (PKEY)|:EX10000|200      |176 |
 | 
						|
|6 |      PX PARTITION ITERATOR   |        |200      |155 |
 | 
						|
|7 |       TABLE SCAN             |t3      |200      |155 |
 | 
						|
|8 |    PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|9 |     TABLE SCAN               |t1      |500      |387 |
 | 
						|
|10| LIMIT                        |        |1        |137 |
 | 
						|
|11|  PX COORDINATOR              |        |1        |137 |
 | 
						|
|12|   EXCHANGE OUT DISTR         |:EX20000|1        |137 |
 | 
						|
|13|    LIMIT                     |        |1        |137 |
 | 
						|
|14|     PX PARTITION ITERATOR    |        |1        |137 |
 | 
						|
|15|      TABLE SCAN              |t2      |1        |137 |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      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), startup_filter([?]), 
 | 
						|
      equal_conds([t1.c1 = t3.c1]), other_conds(nil)
 | 
						|
  4 - output([t3.c1]), filter(nil)
 | 
						|
  5 - (#keys=1, [t3.c1]), output([t3.c1]), filter(nil), dop=1
 | 
						|
  6 - output([t3.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  7 - 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
 | 
						|
  8 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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]), filter(nil), limit(1), offset(nil)
 | 
						|
  11 - output([t2.c1]), filter(nil)
 | 
						|
  12 - output([t2.c1]), filter(nil), dop=1
 | 
						|
  13 - output([t2.c1]), filter(nil), limit(1), offset(nil)
 | 
						|
  14 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  15 - 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 818(end)  ************** 
 | 
						|
 | 
						|
***************   Case 819   ***************
 | 
						|
 | 
						|
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        |940 |
 | 
						|
|1 | SCALAR GROUP BY          |        |1        |405 |
 | 
						|
|2 |  PX COORDINATOR          |        |1        |405 |
 | 
						|
|3 |   EXCHANGE OUT DISTR     |:EX10000|1        |405 |
 | 
						|
|4 |    MERGE GROUP BY        |        |1        |405 |
 | 
						|
|5 |     PX PARTITION ITERATOR|        |500      |387 |
 | 
						|
|6 |      TABLE SCAN          |t1      |500      |387 |
 | 
						|
|7 | PX COORDINATOR           |        |1        |137 |
 | 
						|
|8 |  EXCHANGE OUT DISTR      |:EX20000|1        |137 |
 | 
						|
|9 |   PX PARTITION ITERATOR  |        |1        |137 |
 | 
						|
|10|    TABLE GET             |t2      |1        |137 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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.
 | 
						|
  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 819(end)  ************** 
 | 
						|
 | 
						|
***************   Case 820   ***************
 | 
						|
 | 
						|
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                  |        |120      |1313|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|120      |1270|
 | 
						|
|2 |  HASH JOIN                     |        |120      |1176|
 | 
						|
|3 |   EXCHANGE IN DISTR            |        |200      |822 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|200      |796 |
 | 
						|
|5 |     HASH JOIN                  |        |200      |741 |
 | 
						|
|6 |      EXCHANGE IN DISTR         |        |200      |187 |
 | 
						|
|7 |       EXCHANGE OUT DISTR (PKEY)|:EX10000|200      |176 |
 | 
						|
|8 |        PX PARTITION ITERATOR   |        |200      |155 |
 | 
						|
|9 |         TABLE SCAN             |t3      |200      |155 |
 | 
						|
|10|      PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|11|       TABLE SCAN               |t1      |500      |387 |
 | 
						|
|12|   PX PARTITION ITERATOR        |        |300      |233 |
 | 
						|
|13|    TABLE SCAN                  |t2      |300      |233 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2, t2.c1, t2.c2, t2.c3)]), filter(nil), dop=1
 | 
						|
  2 - output([t2.c1], [t1.c1], [t1.c2], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t2.c1 = t1.c1]), other_conds(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  4 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t3.c1 = t1.c1]), other_conds(nil)
 | 
						|
  6 - output([t3.c1]), filter(nil)
 | 
						|
  7 - (#keys=1, [t3.c1]), output([t3.c1]), filter(nil), dop=1
 | 
						|
  8 - output([t3.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  9 - 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
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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.
 | 
						|
  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)always true
 | 
						|
 | 
						|
*************** Case 820(end)  ************** 
 | 
						|
 | 
						|
***************   Case 821   ***************
 | 
						|
 | 
						|
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                  |             |13       |2016|
 | 
						|
|1 | HASH JOIN                 |             |13       |767 |
 | 
						|
|2 |  PX COORDINATOR           |             |5        |229 |
 | 
						|
|3 |   EXCHANGE OUT DISTR      |:EX10000     |5        |228 |
 | 
						|
|4 |    PX PARTITION ITERATOR  |             |5        |227 |
 | 
						|
|5 |     TABLE SCAN            |t1(idx_t1_c2)|5        |227 |
 | 
						|
|6 |  PX COORDINATOR           |             |300      |464 |
 | 
						|
|7 |   EXCHANGE OUT DISTR      |:EX20000     |300      |391 |
 | 
						|
|8 |    PX PARTITION ITERATOR  |             |300      |233 |
 | 
						|
|9 |     TABLE SCAN            |t2           |300      |233 |
 | 
						|
|10| HASH RIGHT SEMI JOIN      |             |1        |1249|
 | 
						|
|11|  PX COORDINATOR           |             |200      |285 |
 | 
						|
|12|   EXCHANGE OUT DISTR      |:EX30000     |200      |244 |
 | 
						|
|13|    PX PARTITION ITERATOR  |             |200      |155 |
 | 
						|
|14|     TABLE SCAN            |t3           |200      |155 |
 | 
						|
|15|  NESTED-LOOP JOIN         |             |676      |747 |
 | 
						|
|16|   PX COORDINATOR          |             |300      |464 |
 | 
						|
|17|    EXCHANGE OUT DISTR     |:EX40000     |300      |391 |
 | 
						|
|18|     PX PARTITION ITERATOR |             |300      |233 |
 | 
						|
|19|      TABLE SCAN           |t2           |300      |233 |
 | 
						|
|20|   MATERIAL                |             |5        |229 |
 | 
						|
|21|    PX COORDINATOR         |             |5        |229 |
 | 
						|
|22|     EXCHANGE OUT DISTR    |:EX50000     |5        |228 |
 | 
						|
|23|      PX PARTITION ITERATOR|             |5        |227 |
 | 
						|
|24|       TABLE SCAN          |t1(idx_t1_c2)|5        |227 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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.
 | 
						|
  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([cast(t2.c1, DECIMAL(11, 0)) = cast(t3.c3, DECIMAL(-1, -1))]), 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.
 | 
						|
  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]), filter(nil), 
 | 
						|
      conds([lnnvl(cast(t1.c1 + ? = t2.c2, TINYINT(-1, 0)))]), 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.
 | 
						|
  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.
 | 
						|
  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 821(end)  ************** 
 | 
						|
 | 
						|
***************   Case 822   ***************
 | 
						|
 | 
						|
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      |899 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|100      |886 |
 | 
						|
|2 |  HASH JOIN                  |        |100      |859 |
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |300      |280 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |263 |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|6 |      TABLE SCAN             |t2      |300      |233 |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |500      |387 |
 | 
						|
|8 |    TABLE SCAN               |t1      |500      |387 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t2.c1 = t1.c1]), other_conds([cast(t1.c1, DECIMAL(11, 0)) > cast(t2.c1, DECIMAL(11, 0))])
 | 
						|
  3 - output([t2.c1]), filter(nil)
 | 
						|
  4 - (#keys=1, [t2.c1]), output([t2.c1]), filter(nil), dop=1
 | 
						|
  5 - output([t2.c1]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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
 | 
						|
 | 
						|
*************** Case 822(end)  ************** 
 | 
						|
 | 
						|
***************   Case 823   ***************
 | 
						|
 | 
						|
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                  |        |14       |1052|
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|14       |1049|
 | 
						|
|2 |  NESTED-LOOP JOIN              |        |14       |1042|
 | 
						|
|3 |   EXCHANGE IN DISTR            |        |67       |599 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)   |:EX10001|67       |588 |
 | 
						|
|5 |     HASH JOIN                  |        |67       |564 |
 | 
						|
|6 |      EXCHANGE IN DISTR         |        |200      |211 |
 | 
						|
|7 |       EXCHANGE OUT DISTR (PKEY)|:EX10000|200      |193 |
 | 
						|
|8 |        PX PARTITION ITERATOR   |        |200      |155 |
 | 
						|
|9 |         TABLE SCAN             |t3      |200      |155 |
 | 
						|
|10|      PX PARTITION ITERATOR     |        |300      |233 |
 | 
						|
|11|       TABLE SCAN               |t2      |300      |233 |
 | 
						|
|12|   PX PARTITION ITERATOR        |        |1        |29  |
 | 
						|
|13|    TABLE GET                   |t1      |1        |29  |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t1.c1, t1.c2)]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t2.c1], [cast(t2.c1, DECIMAL(11, 0))]), batch_join=false
 | 
						|
  3 - output([PARTITION_ID], [t2.c1]), filter(nil)
 | 
						|
  4 - (#keys=1, [t2.c1]), output([PARTITION_ID], [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([t3.c1], [t3.c2]), filter(nil)
 | 
						|
  7 - (#keys=1, [t3.c1]), output([t3.c1], [t3.c2]), filter(nil), dop=1
 | 
						|
  8 - output([t3.c1], [t3.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  9 - 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
 | 
						|
  10 - output([t2.c1], [t2.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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
 | 
						|
  12 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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), 
 | 
						|
      range_cond([? = t1.c1], [cast(t1.c1, DECIMAL(11, 0)) > ?])
 | 
						|
 | 
						|
*************** Case 823(end)  ************** 
 | 
						|
 | 
						|
***************   Case 824   ***************
 | 
						|
 | 
						|
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      |313565|
 | 
						|
|1 | PX COORDINATOR            |        |500      |528   |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000|500      |481   |
 | 
						|
|3 |   PX PARTITION ITERATOR   |        |500      |387   |
 | 
						|
|4 |    TABLE SCAN             |t1      |500      |387   |
 | 
						|
|5 | MERGE UNION DISTINCT      |        |2        |228   |
 | 
						|
|6 |  SCALAR GROUP BY          |        |1        |137   |
 | 
						|
|7 |   PX COORDINATOR          |        |1        |137   |
 | 
						|
|8 |    EXCHANGE OUT DISTR     |:EX20000|1        |137   |
 | 
						|
|9 |     MERGE GROUP BY        |        |1        |137   |
 | 
						|
|10|      PX PARTITION ITERATOR|        |1        |137   |
 | 
						|
|11|       TABLE GET           |t2      |1        |137   |
 | 
						|
|12|  SCALAR GROUP BY          |        |1        |92    |
 | 
						|
|13|   PX COORDINATOR          |        |1        |92    |
 | 
						|
|14|    EXCHANGE OUT DISTR     |:EX30000|1        |91    |
 | 
						|
|15|     MERGE GROUP BY        |        |1        |91    |
 | 
						|
|16|      PX PARTITION ITERATOR|        |1        |91    |
 | 
						|
|17|       TABLE GET           |t3      |1        |91    |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter([cast(t1.c2, DECIMAL(11, 0)) = 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.
 | 
						|
  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)) / cast(T_FUN_COUNT_SUM(T_FUN_COUNT(t2.c1)), DECIMAL(20, 0))]), 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.
 | 
						|
  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(nil), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  17 - output(nil), 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 824(end)  ************** 
 | 
						|
 | 
						|
***************   Case 825   ***************
 | 
						|
 | 
						|
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      |257535|
 | 
						|
|1 | PX COORDINATOR                   |        |500      |528   |
 | 
						|
|2 |  EXCHANGE OUT DISTR              |:EX10000|500      |481   |
 | 
						|
|3 |   PX PARTITION ITERATOR          |        |500      |387   |
 | 
						|
|4 |    TABLE SCAN                    |t1      |500      |387   |
 | 
						|
|5 | LIMIT                            |        |1        |116   |
 | 
						|
|6 |  PX COORDINATOR MERGE SORT       |        |1        |116   |
 | 
						|
|7 |   EXCHANGE OUT DISTR             |:EX20002|1        |116   |
 | 
						|
|8 |    LIMIT                         |        |1        |116   |
 | 
						|
|9 |     NESTED-LOOP JOIN             |        |1        |116   |
 | 
						|
|10|      EXCHANGE IN DISTR           |        |1        |92    |
 | 
						|
|11|       EXCHANGE OUT DISTR (PKEY)  |:EX20001|1        |92    |
 | 
						|
|12|        SUBPLAN SCAN              |VIEW1   |1        |92    |
 | 
						|
|13|         SCALAR GROUP BY          |        |1        |92    |
 | 
						|
|14|          EXCHANGE IN DISTR       |        |1        |92    |
 | 
						|
|15|           EXCHANGE OUT DISTR     |:EX20000|1        |92    |
 | 
						|
|16|            MERGE GROUP BY        |        |1        |91    |
 | 
						|
|17|             PX PARTITION ITERATOR|        |1        |91    |
 | 
						|
|18|              TABLE GET           |t3      |1        |91    |
 | 
						|
|19|      PX PARTITION ITERATOR       |        |1        |18    |
 | 
						|
|20|       TABLE GET                  |t2      |1        |18    |
 | 
						|
=================================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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), sort_keys([t2.c2, ASC])
 | 
						|
  7 - output([t2.c2]), filter(nil), dop=1
 | 
						|
  8 - output([t2.c2]), filter(nil), limit(1), offset(nil)
 | 
						|
  9 - output([t2.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([VIEW1.max(c2)]), batch_join=false
 | 
						|
  10 - output([PARTITION_ID], [VIEW1.max(c2)]), filter(nil)
 | 
						|
  11 - (#keys=1, [VIEW1.max(c2)]), output([PARTITION_ID], [VIEW1.max(c2)]), filter(nil), is_single, dop=1
 | 
						|
  12 - output([VIEW1.max(c2)]), filter(nil), 
 | 
						|
      access([VIEW1.max(c2)])
 | 
						|
  13 - output([T_FUN_MAX(T_FUN_MAX(t3.c2))]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(T_FUN_MAX(t3.c2))])
 | 
						|
  14 - output([T_FUN_MAX(t3.c2)]), filter(nil)
 | 
						|
  15 - output([T_FUN_MAX(t3.c2)]), filter(nil), dop=1
 | 
						|
  16 - output([T_FUN_MAX(t3.c2)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(t3.c2)])
 | 
						|
  17 - output([t3.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  18 - 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 = ?])
 | 
						|
  19 - output([t2.c2]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  20 - output([t2.c2]), filter(nil), 
 | 
						|
      access([t2.c2]), partitions(p[0-2]), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([t2.c1]), range(MIN ; MAX), 
 | 
						|
      range_cond([t2.c1 = ?])
 | 
						|
 | 
						|
*************** Case 825(end)  ************** 
 | 
						|
 | 
						|
***************   Case 826   ***************
 | 
						|
 | 
						|
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|    |81       |179 |
 | 
						|
|1 | TABLE SCAN               |t7  |9        |79  |
 | 
						|
|2 | MATERIAL                 |    |9        |79  |
 | 
						|
|3 |  TABLE SCAN              |t8  |9        |79  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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.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([t8.c1], [t8.c2]), filter(nil)
 | 
						|
  3 - output([t8.c1], [t8.c2]), filter([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 826(end)  ************** 
 | 
						|
 | 
						|
***************   Case 827   ***************
 | 
						|
 | 
						|
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 RIGHT ANTI JOIN|    |10       |206 |
 | 
						|
|1 | TABLE SCAN         |t8  |100      |78  |
 | 
						|
|2 | TABLE SCAN         |t7  |100      |78  |
 | 
						|
=============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2], [?], [?]), filter(nil), 
 | 
						|
      equal_conds([t7.c2 = t8.c2]), other_conds(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], [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 827(end)  ************** 
 | 
						|
 | 
						|
***************   Case 828   ***************
 | 
						|
 | 
						|
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|    |9        |127 |
 | 
						|
|1 | TABLE SCAN               |t7  |9        |79  |
 | 
						|
|2 | MATERIAL                 |    |1        |46  |
 | 
						|
|3 |  TABLE GET               |t8  |1        |46  |
 | 
						|
===================================================
 | 
						|
 | 
						|
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.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([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[5 ; 5], 
 | 
						|
      range_cond([t8.c1 = ?])
 | 
						|
 | 
						|
*************** Case 828(end)  ************** 
 | 
						|
 | 
						|
***************   Case 829   ***************
 | 
						|
 | 
						|
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 |HASH RIGHT ANTI JOIN|    |10       |206 |
 | 
						|
|1 | TABLE SCAN         |t8  |100      |78  |
 | 
						|
|2 | TABLE SCAN         |t7  |100      |78  |
 | 
						|
=============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t7.c1], [t7.c2], [?], [?]), filter(nil), 
 | 
						|
      equal_conds([t7.c2 = 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([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 829(end)  ************** 
 | 
						|
 | 
						|
***************   Case 830   ***************
 | 
						|
 | 
						|
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|        |5        |397 |
 | 
						|
|1 | PX COORDINATOR           |        |2        |159 |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|2        |159 |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |2        |158 |
 | 
						|
|4 |    TABLE SCAN            |t3      |2        |158 |
 | 
						|
|5 | MATERIAL                 |        |3        |238 |
 | 
						|
|6 |  PX COORDINATOR          |        |3        |238 |
 | 
						|
|7 |   EXCHANGE OUT DISTR     |:EX20000|3        |238 |
 | 
						|
|8 |    PX PARTITION ITERATOR |        |3        |236 |
 | 
						|
|9 |     TABLE SCAN           |t2      |3        |236 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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), dop=1
 | 
						|
  3 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  4 - 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
 | 
						|
  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.
 | 
						|
  9 - 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 830(end)  ************** 
 | 
						|
 | 
						|
***************   Case 831   ***************
 | 
						|
 | 
						|
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 ANTI JOIN    |        |30       |778 |
 | 
						|
|1 | PX COORDINATOR         |        |200      |187 |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000|200      |176 |
 | 
						|
|3 |   PX PARTITION ITERATOR|        |200      |155 |
 | 
						|
|4 |    TABLE SCAN          |t3      |200      |155 |
 | 
						|
|5 | PX COORDINATOR         |        |300      |464 |
 | 
						|
|6 |  EXCHANGE OUT DISTR    |:EX20000|300      |391 |
 | 
						|
|7 |   PX PARTITION ITERATOR|        |300      |233 |
 | 
						|
|8 |    TABLE SCAN          |t2      |300      |233 |
 | 
						|
=====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t2.c1], [t2.c2], [t2.c3], [?], [?], [?]), filter(nil), 
 | 
						|
      equal_conds([t2.c2 = t3.c2]), other_conds(nil)
 | 
						|
  1 - output([t3.c2]), filter(nil)
 | 
						|
  2 - output([t3.c2]), filter(nil), dop=1
 | 
						|
  3 - output([t3.c2]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  4 - 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
 | 
						|
  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.
 | 
						|
  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 831(end)  ************** 
 | 
						|
 | 
						|
***************   Case 832   ***************
 | 
						|
 | 
						|
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        |177 |
 | 
						|
|1 | PX COORDINATOR           |        |1        |47  |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|1        |46  |
 | 
						|
|3 |   TABLE GET              |t3      |1        |46  |
 | 
						|
|4 | PX COORDINATOR           |        |3        |238 |
 | 
						|
|5 |  EXCHANGE OUT DISTR      |:EX20000|3        |238 |
 | 
						|
|6 |   PX PARTITION ITERATOR  |        |3        |236 |
 | 
						|
|7 |    TABLE SCAN            |t2      |3        |236 |
 | 
						|
=======================================================
 | 
						|
 | 
						|
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.
 | 
						|
  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 832(end)  ************** 
 | 
						|
 | 
						|
***************   Case 833   ***************
 | 
						|
 | 
						|
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               |        |30       |769 |
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|30       |762 |
 | 
						|
|2 |  HASH RIGHT ANTI JOIN       |        |30       |746 |
 | 
						|
|3 |   PX PARTITION ITERATOR     |        |200      |155 |
 | 
						|
|4 |    TABLE SCAN               |t3      |200      |155 |
 | 
						|
|5 |   EXCHANGE IN DISTR         |        |300      |464 |
 | 
						|
|6 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|300      |391 |
 | 
						|
|7 |     PX PARTITION ITERATOR   |        |300      |233 |
 | 
						|
|8 |      TABLE SCAN             |t2      |300      |233 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3, ?, ?, ?)]), filter(nil)
 | 
						|
  1 - output([INTERNAL_FUNCTION(t2.c1, t2.c2, t2.c3, ?, ?, ?)]), filter(nil), dop=1
 | 
						|
  2 - output([t2.c2], [t2.c1], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t2.c2 = t3.c1]), other_conds(nil)
 | 
						|
  3 - output([t3.c1]), filter(nil), 
 | 
						|
      affinitize, force partition granule.
 | 
						|
  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([t2.c2], [t2.c1], [t2.c3]), filter(nil)
 | 
						|
  6 - (#keys=1, [t2.c2]), output([t2.c2], [t2.c1], [t2.c3]), filter(nil), dop=1
 | 
						|
  7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      force partition granule.
 | 
						|
  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 833(end)  ************** 
 | 
						|
 | 
						|
***************   Case 834   ***************
 | 
						|
 | 
						|
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        |81  |
 | 
						|
|1 | TABLE SCAN    |rpt_adgroup_tag_realtime|0        |81  |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(*)])
 | 
						|
  1 - output(nil), filter([(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) > (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)], [rpt_adgroup_tag_realtime.thedate = ?], [cast(rpt_adgroup_tag_realtime.custid, DECIMAL(20, 0)) = ?]), 
 | 
						|
      access([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]), 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 834(end)  ************** 
 | 
						|
 | 
						|
***************   Case 835   ***************
 | 
						|
 | 
						|
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|12       |81  |
 | 
						|
==========================================
 | 
						|
 | 
						|
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) > (?, ?, ?)], [(?, 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], 
 | 
						|
      range_key([query_range.c1], [query_range.c2], [query_range.c3]), range(3,MIN,MIN ; 3,MAX,MAX), 
 | 
						|
      range_cond([query_range.c1 = ?])
 | 
						|
 | 
						|
*************** Case 835(end)  ************** 
 | 
						|
 | 
						|
***************   Case 836   ***************
 | 
						|
 | 
						|
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        |250 |
 | 
						|
===================================
 | 
						|
 | 
						|
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 ((?, ?), (?, ?), (?, ?), (?, ?), (?, ?))], [cast(a.preeffdate, DOUBLE(-1, -1))], [? < cast(a.effdate, DATETIME(-1, -1))]), 
 | 
						|
      access([a.balcatcd], [a.baltypcd], [a.effdate], [a.acctnbr], [a.preeffdate], [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 836(end)  ************** 
 | 
						|
 | 
						|
***************   Case 837   ***************
 | 
						|
 | 
						|
SQL: use query_range; 
 | 
						|
***************   Case 838   ***************
 | 
						|
 | 
						|
SQL: select * from range_t1 where (a, b)>(1, 1) and (a, b)=(1, 2); 
 | 
						|
 | 
						|
======================================
 | 
						|
|ID|OPERATOR |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------
 | 
						|
|0 |TABLE GET|range_t1|1        |46  |
 | 
						|
======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([range_t1.a], [range_t1.b]), filter(nil), 
 | 
						|
      access([range_t1.a], [range_t1.b]), partitions(p0), 
 | 
						|
      is_index_back=false, 
 | 
						|
      range_key([range_t1.a], [range_t1.b]), range[1,2 ; 1,2], 
 | 
						|
      range_cond([range_t1.a = ?], [range_t1.b = ?])
 | 
						|
 | 
						|
*************** Case 838(end)  ************** 
 | 
						|
 | 
						|
***************   Case 839   ***************
 | 
						|
 | 
						|
SQL: select * from range_t1 where (a, b)>(1, 1) and a=1; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR  |NAME    |EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |TABLE SCAN|range_t1|34       |80  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([range_t1.a], [range_t1.b]), filter([(?, range_t1.b) > (?, ?)]), 
 | 
						|
      access([range_t1.a], [range_t1.b]), partitions(p0), 
 | 
						|
      is_index_back=false, filter_before_indexback[false], 
 | 
						|
      range_key([range_t1.a], [range_t1.b]), range(1,MIN ; 1,MAX), 
 | 
						|
      range_cond([range_t1.a = ?])
 | 
						|
 | 
						|
*************** Case 839(end)  ************** 
 | 
						|
 | 
						|
***************   Case 840   ***************
 | 
						|
 | 
						|
SQL: select * from range_t1 where (a, b)>(1, 1) and b=2; 
 | 
						|
 | 
						|
=======================================
 | 
						|
|ID|OPERATOR  |NAME    |EST. ROWS|COST|
 | 
						|
---------------------------------------
 | 
						|
|0 |TABLE SCAN|range_t1|9        |79  |
 | 
						|
=======================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([range_t1.a], [range_t1.b]), filter([range_t1.b = ?], [(range_t1.a, ?) > (?, ?)]), 
 | 
						|
      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 ; MAX,MAX)
 | 
						|
 | 
						|
*************** Case 840(end)  ************** 
 | 
						|
 | 
						|
***************   Case 841   ***************
 | 
						|
 | 
						|
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|13       |81  |
 | 
						|
====================================
 | 
						|
 | 
						|
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 841(end)  ************** 
 | 
						|
 | 
						|
***************   Case 842   ***************
 | 
						|
 | 
						|
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|3        |81  |
 | 
						|
====================================
 | 
						|
 | 
						|
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 842(end)  ************** 
 | 
						|
 | 
						|
***************   Case 843   ***************
 | 
						|
 | 
						|
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|2        |81  |
 | 
						|
====================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([test1.id], [test1.dt]), filter([test1.dt = ?], [(test1.id, ?) <= (?, ?)], [(test1.id, ?) > (?, ?)]), 
 | 
						|
      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,MIN ; 1,MAX)
 | 
						|
 | 
						|
*************** Case 843(end)  ************** 
 | 
						|
 | 
						|
***************   Case 844   ***************
 | 
						|
 | 
						|
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        |81  |
 | 
						|
====================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([test1.id], [test1.dt]), filter([test1.dt = ?], [(test1.id, ?) <= (?, ?)], [(test1.id, ?) > (?, ?)]), 
 | 
						|
      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,MIN ; 1,MAX)
 | 
						|
 | 
						|
*************** Case 844(end)  ************** 
 | 
						|
 |