3347 lines
		
	
	
		
			136 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			3347 lines
		
	
	
		
			136 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
***************   Case 1   ***************
 | 
						|
 | 
						|
SQL: select * from t4 where c1 in (select c1 from t1); 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |100      |1233|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|100      |1214|
 | 
						|
|2 |  MERGE JOIN                 |        |100      |1214|
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |100      |107 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|100      |92  |
 | 
						|
|5 |     TABLE SCAN              |t4      |100      |92  |
 | 
						|
|6 |   SORT                      |        |500      |966 |
 | 
						|
|7 |    PX PARTITION ITERATOR    |        |500      |331 |
 | 
						|
|8 |     TABLE SCAN              |t1      |500      |331 |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil)
 | 
						|
  1 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), dop=1
 | 
						|
  2 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      equal_conds([t4.c1 = t1.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)
 | 
						|
  6 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
 | 
						|
  7 - output([t1.c1]), filter(nil)
 | 
						|
  8 - output([t1.c1]), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t4"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_MERGE(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t1"@"SEL$1" ) PARTITION NONE)
 | 
						|
      FULL(@"SEL$1" "opt.t4"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 1(end)  ************** 
 | 
						|
 | 
						|
***************   Case 2   ***************
 | 
						|
 | 
						|
SQL: select /*+INDEX(@"SEL$2" "opt.t4"@"SEL$2" "idx_t4_c3")*/* from t1 where c1 in (select c1 from t4); 
 | 
						|
 | 
						|
================================================================
 | 
						|
|ID|OPERATOR                      |NAME         |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                |             |100      |1428|
 | 
						|
|1 | EXCHANGE OUT DISTR           |:EX10001     |100      |1418|
 | 
						|
|2 |  MERGE SEMI JOIN             |             |100      |1418|
 | 
						|
|3 |   SORT                       |             |500      |1074|
 | 
						|
|4 |    PX PARTITION ITERATOR     |             |500      |342 |
 | 
						|
|5 |     TABLE SCAN               |t1           |500      |342 |
 | 
						|
|6 |   SORT                       |             |100      |203 |
 | 
						|
|7 |    EXCHANGE IN DISTR         |             |100      |95  |
 | 
						|
|8 |     EXCHANGE OUT DISTR (PKEY)|:EX10000     |100      |90  |
 | 
						|
|9 |      TABLE SCAN              |t4(idx_t4_c3)|100      |90  |
 | 
						|
================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t4.c1]), other_conds(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  5 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
  6 - output([t4.c1]), filter(nil), sort_keys([t4.c1, ASC])
 | 
						|
  7 - output([t4.c1]), filter(nil)
 | 
						|
  8 - (#keys=1, [t4.c1]), output([t4.c1]), filter(nil), is_single, dop=1
 | 
						|
  9 - output([t4.c1]), filter(nil), 
 | 
						|
      access([t4.c1]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t1"@"SEL$1" "opt.t4"@"SEL$1" ))
 | 
						|
      USE_MERGE(@"SEL$1" ("opt.t4"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t4"@"SEL$1" ) NONE PARTITION)
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      INDEX(@"SEL$1" "opt.t4"@"SEL$1" "idx_t4_c3")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 2(end)  ************** 
 | 
						|
 | 
						|
***************   Case 3   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where c1 in (select c1 from t4); 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |100      |1320|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|100      |1311|
 | 
						|
|2 |  MERGE SEMI JOIN            |        |100      |1311|
 | 
						|
|3 |   SORT                      |        |500      |1074|
 | 
						|
|4 |    PX PARTITION ITERATOR    |        |500      |342 |
 | 
						|
|5 |     TABLE SCAN              |t1      |500      |342 |
 | 
						|
|6 |   EXCHANGE IN DISTR         |        |100      |95  |
 | 
						|
|7 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|100      |90  |
 | 
						|
|8 |     TABLE SCAN              |t4      |100      |90  |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t4.c1]), other_conds(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  5 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
  6 - output([t4.c1]), filter(nil)
 | 
						|
  7 - (#keys=1, [t4.c1]), output([t4.c1]), filter(nil), is_single, dop=1
 | 
						|
  8 - output([t4.c1]), filter(nil), 
 | 
						|
      access([t4.c1]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t1"@"SEL$1" "opt.t4"@"SEL$1" ))
 | 
						|
      USE_MERGE(@"SEL$1" ("opt.t4"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t4"@"SEL$1" ) NONE PARTITION)
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t4"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 3(end)  ************** 
 | 
						|
 | 
						|
***************   Case 4   ***************
 | 
						|
 | 
						|
SQL: select /*+ BEGIN_OUTLINE_DATA INDEX(@"SEL$1" "opt.t4"@"SEL$1" "idx_t4_c2_c3") INDEX(@"SEL$2" "opt.t1"@"SEL$2" "idx_t1_c2") END_OUTLINE_DATA */* from t4 where c1 in (select max(c1) from t1); 
 | 
						|
 | 
						|
====================================================================
 | 
						|
|ID|OPERATOR                       |NAME            |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN               |                |1        |561 |
 | 
						|
|1 | SUBPLAN SCAN                  |VIEW1           |1        |447 |
 | 
						|
|2 |  SCALAR GROUP BY              |                |1        |446 |
 | 
						|
|3 |   SUBPLAN SCAN                |VIEW2           |1        |446 |
 | 
						|
|4 |    LIMIT                      |                |1        |446 |
 | 
						|
|5 |     PX COORDINATOR MERGE SORT |                |1        |446 |
 | 
						|
|6 |      EXCHANGE OUT DISTR       |:EX10000        |1        |446 |
 | 
						|
|7 |       LIMIT                   |                |1        |446 |
 | 
						|
|8 |        TOP-N SORT             |                |1        |446 |
 | 
						|
|9 |         PX PARTITION ITERATOR |                |500      |331 |
 | 
						|
|10|          TABLE SCAN           |t1(idx_t1_c2)   |500      |331 |
 | 
						|
|11| TABLE SCAN                    |t4(idx_t4_c2_c3)|100      |92  |
 | 
						|
====================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      conds([t4.c1 = VIEW1.max(c1)]), nl_params_(nil)
 | 
						|
  1 - output([VIEW1.max(c1)]), filter(nil), 
 | 
						|
      access([VIEW1.max(c1)])
 | 
						|
  2 - output([T_FUN_MAX(VIEW2.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(VIEW2.c1)])
 | 
						|
  3 - output([VIEW2.c1]), filter(nil), 
 | 
						|
      access([VIEW2.c1])
 | 
						|
  4 - output([t1.c1]), filter(nil), limit(1), offset(nil)
 | 
						|
  5 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC])
 | 
						|
  6 - output([t1.c1]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c1]), filter(nil), limit(1), offset(nil)
 | 
						|
  8 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), topn(1)
 | 
						|
  9 - output([t1.c1]), filter(nil)
 | 
						|
  10 - output([t1.c1]), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4])
 | 
						|
  11 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("VIEW1"@"SEL$1" "opt.t4"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t4"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t4"@"SEL$1" ))
 | 
						|
      INDEX(@"SEL$3" "opt.t1"@"SEL$3" "idx_t1_c2")
 | 
						|
      INDEX(@"SEL$1" "opt.t4"@"SEL$1" "idx_t4_c2_c3")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 4(end)  ************** 
 | 
						|
 | 
						|
***************   Case 5   ***************
 | 
						|
 | 
						|
SQL: select * from t4 where c1 in (select max(c1) from t1); 
 | 
						|
 | 
						|
===============================================================
 | 
						|
|ID|OPERATOR                       |NAME       |EST. ROWS|COST|
 | 
						|
---------------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN               |           |1        |74  |
 | 
						|
|1 | SUBPLAN SCAN                  |VIEW1      |1        |38  |
 | 
						|
|2 |  SCALAR GROUP BY              |           |1        |37  |
 | 
						|
|3 |   SUBPLAN SCAN                |VIEW2      |1        |37  |
 | 
						|
|4 |    LIMIT                      |           |1        |37  |
 | 
						|
|5 |     PX COORDINATOR MERGE SORT |           |1        |37  |
 | 
						|
|6 |      EXCHANGE OUT DISTR       |:EX10000   |1        |37  |
 | 
						|
|7 |       SORT                    |           |1        |37  |
 | 
						|
|8 |        PX PARTITION ITERATOR  |           |1        |36  |
 | 
						|
|9 |         TABLE SCAN            |t1(Reverse)|1        |36  |
 | 
						|
|10| TABLE SCAN                    |t4         |1        |36  |
 | 
						|
===============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([VIEW1.max(c1)])
 | 
						|
  1 - output([VIEW1.max(c1)]), filter(nil), 
 | 
						|
      access([VIEW1.max(c1)])
 | 
						|
  2 - output([T_FUN_MAX(VIEW2.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(VIEW2.c1)])
 | 
						|
  3 - output([VIEW2.c1]), filter(nil), 
 | 
						|
      access([VIEW2.c1])
 | 
						|
  4 - output([t1.c1]), filter(nil), limit(1), offset(nil)
 | 
						|
  5 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC])
 | 
						|
  6 - output([t1.c1]), filter(nil), dop=1
 | 
						|
  7 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC]), local merge sort
 | 
						|
  8 - output([t1.c1]), filter(nil)
 | 
						|
  9 - output([t1.c1]), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4]), 
 | 
						|
      limit(1), offset(nil)
 | 
						|
  10 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("VIEW1"@"SEL$1" "opt.t4"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t4"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t4"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$3" "opt.t1"@"SEL$3")
 | 
						|
      FULL(@"SEL$1" "opt.t4"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 5(end)  ************** 
 | 
						|
 | 
						|
***************   Case 6   ***************
 | 
						|
 | 
						|
SQL: select   /*+ BEGIN_OUTLINE_DATA USE_NL(@"SEL$3" "opt.t2"@"SEL$3") LEADING(@"SEL$3" "opt.t1"@"SEL$3" "opt.t2"@"SEL$3") END_OUTLINE_DATA */* from t1 where c1 in (select * from (select max(t1.c1) from t1, t2) as tt); 
 | 
						|
 | 
						|
================================================================
 | 
						|
|ID|OPERATOR                         |NAME    |EST. ROWS|COST  |
 | 
						|
----------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                   |        |1        |135541|
 | 
						|
|1 | EXCHANGE OUT DISTR              |:EX10003|1        |135541|
 | 
						|
|2 |  NESTED-LOOP JOIN               |        |1        |135541|
 | 
						|
|3 |   EXCHANGE IN DISTR             |        |1        |135505|
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)    |:EX10002|1        |135505|
 | 
						|
|5 |     SUBPLAN SCAN                |VIEW1   |1        |135505|
 | 
						|
|6 |      SCALAR GROUP BY            |        |1        |135504|
 | 
						|
|7 |       NESTED-LOOP JOIN CARTESIAN|        |150000   |106853|
 | 
						|
|8 |        MATERIAL                 |        |500      |446   |
 | 
						|
|9 |         EXCHANGE IN DISTR       |        |500      |354   |
 | 
						|
|10|          EXCHANGE OUT DISTR     |:EX10000|500      |331   |
 | 
						|
|11|           PX PARTITION ITERATOR |        |500      |331   |
 | 
						|
|12|            TABLE SCAN           |t1      |500      |331   |
 | 
						|
|13|        MATERIAL                 |        |300      |261   |
 | 
						|
|14|         EXCHANGE IN DISTR       |        |300      |206   |
 | 
						|
|15|          EXCHANGE OUT DISTR     |:EX10001|300      |192   |
 | 
						|
|16|           PX PARTITION ITERATOR |        |300      |192   |
 | 
						|
|17|            TABLE SCAN           |t2      |300      |192   |
 | 
						|
|18|   PX PARTITION ITERATOR         |        |1        |36    |
 | 
						|
|19|    TABLE GET                    |t1      |1        |36    |
 | 
						|
================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([VIEW1.max(t1.c1)])
 | 
						|
  3 - output([VIEW1.max(t1.c1)], [PARTITION_ID]), filter(nil)
 | 
						|
  4 - (#keys=1, [VIEW1.max(t1.c1)]), output([VIEW1.max(t1.c1)], [PARTITION_ID]), filter(nil), is_single, dop=1
 | 
						|
  5 - output([VIEW1.max(t1.c1)]), filter(nil), 
 | 
						|
      access([VIEW1.max(t1.c1)])
 | 
						|
  6 - output([T_FUN_MAX(t1.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(t1.c1)])
 | 
						|
  7 - output([t1.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  8 - output([t1.c1]), filter(nil)
 | 
						|
  9 - output([t1.c1]), filter(nil)
 | 
						|
  10 - output([t1.c1]), filter(nil), dop=1
 | 
						|
  11 - output([t1.c1]), filter(nil)
 | 
						|
  12 - output([t1.c1]), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4])
 | 
						|
  13 - output([1]), filter(nil)
 | 
						|
  14 - output([1]), filter(nil)
 | 
						|
  15 - output([1]), filter(nil), dop=1
 | 
						|
  16 - output([1]), filter(nil)
 | 
						|
  17 - output([1]), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p[0-2])
 | 
						|
  18 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  19 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("VIEW1"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t1"@"SEL$1" ) PARTITION NONE)
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      LEADING(@"SEL$3" ("opt.t1"@"SEL$3" "opt.t2"@"SEL$3" ))
 | 
						|
      USE_NL(@"SEL$3" ("opt.t2"@"SEL$3" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$3" ("opt.t2"@"SEL$3" ))
 | 
						|
      FULL(@"SEL$3" "opt.t1"@"SEL$3")
 | 
						|
      FULL(@"SEL$3" "opt.t2"@"SEL$3")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 6(end)  ************** 
 | 
						|
 | 
						|
***************   Case 7   ***************
 | 
						|
 | 
						|
SQL: select /*+index(t4 idx_t4_c3)*/ * from t4 where c1 = 1; 
 | 
						|
 | 
						|
============================================
 | 
						|
|ID|OPERATOR  |NAME         |EST. ROWS|COST|
 | 
						|
--------------------------------------------
 | 
						|
|0 |TABLE SCAN|t4(idx_t4_c3)|1        |109 |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter([t4.c1 = ?]), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      INDEX(@"SEL$1" "opt.t4"@"SEL$1" "idx_t4_c3")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 7(end)  ************** 
 | 
						|
 | 
						|
***************   Case 8   ***************
 | 
						|
 | 
						|
SQL: select /*+ BEGIN_OUTLINE_DATA INDEX(@"SEL$1" "opt.t4"@"SEL$1" "idx_t4_c3") END_OUTLINE_DATA  */ * from t4 where c1 = 1; 
 | 
						|
 | 
						|
============================================
 | 
						|
|ID|OPERATOR  |NAME         |EST. ROWS|COST|
 | 
						|
--------------------------------------------
 | 
						|
|0 |TABLE SCAN|t4(idx_t4_c3)|1        |109 |
 | 
						|
============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter([t4.c1 = ?]), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      INDEX(@"SEL$1" "opt.t4"@"SEL$1" "idx_t4_c3")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 8(end)  ************** 
 | 
						|
 | 
						|
***************   Case 9   ***************
 | 
						|
 | 
						|
SQL: select /*+full(t4)*/ * from t4 where c2 = 1; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |1        |109 |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter([t4.c2 = ?]), 
 | 
						|
      access([t4.c2], [t4.c1], [t4.c3]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t4"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 9(end)  ************** 
 | 
						|
 | 
						|
***************   Case 10   ***************
 | 
						|
 | 
						|
SQL: select /*+ BEGIN_OUTLINE_DATA FULL(@"SEL$1" "opt.t4"@"SEL$1") END_OUTLINE_DATA  */ * from t4 where c2 = 1; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |1        |109 |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter([t4.c2 = ?]), 
 | 
						|
      access([t4.c2], [t4.c1], [t4.c3]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t4"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 10(end)  ************** 
 | 
						|
 | 
						|
***************   Case 11   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t2; 
 | 
						|
 | 
						|
=========================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST  |
 | 
						|
---------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |150000   |108575|
 | 
						|
|1 | PX COORDINATOR           |        |300      |290   |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|300      |205   |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |300      |205   |
 | 
						|
|4 |    TABLE SCAN            |t2      |300      |205   |
 | 
						|
|5 | MATERIAL                 |        |500      |573   |
 | 
						|
|6 |  PX COORDINATOR          |        |500      |389   |
 | 
						|
|7 |   EXCHANGE OUT DISTR     |:EX20000|500      |342   |
 | 
						|
|8 |    PX PARTITION ITERATOR |        |500      |342   |
 | 
						|
|9 |     TABLE SCAN           |t1      |500      |342   |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  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)
 | 
						|
  4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
  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)
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t2"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 11(end)  ************** 
 | 
						|
 | 
						|
***************   Case 12   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t2 where t1.c1=t2.c1; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |300      |1649|
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|300      |1536|
 | 
						|
|2 |  MERGE JOIN                   |        |300      |1536|
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |500      |389 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)  |:EX10000|500      |342 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |        |500      |342 |
 | 
						|
|6 |      TABLE SCAN               |t1      |500      |342 |
 | 
						|
|7 |   SORT                        |        |300      |859 |
 | 
						|
|8 |    PX PARTITION ITERATOR      |        |300      |205 |
 | 
						|
|9 |     TABLE SCAN                |t2      |300      |205 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
 | 
						|
  4 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  6 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
  7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
 | 
						|
  8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t1"@"SEL$1" "opt.t2"@"SEL$1" ))
 | 
						|
      USE_MERGE(@"SEL$1" ("opt.t2"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t2"@"SEL$1" ) PARTITION NONE)
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 12(end)  ************** 
 | 
						|
 | 
						|
***************   Case 13   ***************
 | 
						|
 | 
						|
SQL: select * from t1,(select count(*) from t2) as tt; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN |        |500      |1019|
 | 
						|
|1 | SUBPLAN SCAN              |tt      |1        |306 |
 | 
						|
|2 |  SCALAR GROUP BY          |        |1        |306 |
 | 
						|
|3 |   PX COORDINATOR          |        |1        |249 |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000|1        |249 |
 | 
						|
|5 |     MERGE GROUP BY        |        |1        |249 |
 | 
						|
|6 |      PX PARTITION ITERATOR|        |300      |192 |
 | 
						|
|7 |       TABLE SCAN          |t2      |300      |192 |
 | 
						|
|8 | PX COORDINATOR            |        |500      |389 |
 | 
						|
|9 |  EXCHANGE OUT DISTR       |:EX20000|500      |342 |
 | 
						|
|10|   PX PARTITION ITERATOR   |        |500      |342 |
 | 
						|
|11|    TABLE SCAN             |t1      |500      |342 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [tt.count(*)]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([tt.count(*)]), filter(nil), 
 | 
						|
      access([tt.count(*)])
 | 
						|
  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([1]), filter(nil)
 | 
						|
  7 - output([1]), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p[0-2])
 | 
						|
  8 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  11 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("tt"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      NO_USE_HASH_AGGREGATION(@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t2"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 13(end)  ************** 
 | 
						|
 | 
						|
***************   Case 14   ***************
 | 
						|
 | 
						|
SQL: select * from (select count(*) from t2) as tt,t1,t9 where t9.c1=t1.c1; 
 | 
						|
 | 
						|
===========================================================
 | 
						|
|ID|OPERATOR                      |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN    |        |100      |1717|
 | 
						|
|1 | SUBPLAN SCAN                 |tt      |1        |306 |
 | 
						|
|2 |  SCALAR GROUP BY             |        |1        |306 |
 | 
						|
|3 |   PX COORDINATOR             |        |1        |249 |
 | 
						|
|4 |    EXCHANGE OUT DISTR        |:EX10000|1        |249 |
 | 
						|
|5 |     MERGE GROUP BY           |        |1        |249 |
 | 
						|
|6 |      PX PARTITION ITERATOR   |        |300      |192 |
 | 
						|
|7 |       TABLE SCAN             |t2      |300      |192 |
 | 
						|
|8 | PX COORDINATOR               |        |100      |1346|
 | 
						|
|9 |  EXCHANGE OUT DISTR          |:EX20001|100      |1322|
 | 
						|
|10|   MERGE JOIN                 |        |100      |1322|
 | 
						|
|11|    SORT                      |        |500      |1074|
 | 
						|
|12|     PX PARTITION ITERATOR    |        |500      |342 |
 | 
						|
|13|      TABLE SCAN              |t1      |500      |342 |
 | 
						|
|14|    EXCHANGE IN DISTR         |        |100      |107 |
 | 
						|
|15|     EXCHANGE OUT DISTR (PKEY)|:EX20000|100      |92  |
 | 
						|
|16|      TABLE SCAN              |t9      |100      |92  |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt.count(*)], [t1.c1], [t1.c2], [t9.c1], [t9.c2], [t9.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([tt.count(*)]), filter(nil), 
 | 
						|
      access([tt.count(*)])
 | 
						|
  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([1]), filter(nil)
 | 
						|
  7 - output([1]), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p[0-2])
 | 
						|
  8 - output([t1.c1], [t1.c2], [t9.c1], [t9.c2], [t9.c3]), filter(nil)
 | 
						|
  9 - output([t1.c1], [t1.c2], [t9.c1], [t9.c2], [t9.c3]), filter(nil), dop=1
 | 
						|
  10 - output([t1.c1], [t1.c2], [t9.c1], [t9.c2], [t9.c3]), filter(nil), 
 | 
						|
      equal_conds([t9.c1 = t1.c1]), other_conds(nil)
 | 
						|
  11 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
 | 
						|
  12 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  13 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
  14 - output([t9.c1], [t9.c2], [t9.c3]), filter(nil)
 | 
						|
  15 - (#keys=1, [t9.c1]), output([t9.c1], [t9.c2], [t9.c3]), filter(nil), is_single, dop=1
 | 
						|
  16 - output([t9.c1], [t9.c2], [t9.c3]), filter(nil), 
 | 
						|
      access([t9.c1], [t9.c2], [t9.c3]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("tt"@"SEL$1" ("opt.t1"@"SEL$1" "opt.t9"@"SEL$1" )))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" "opt.t9"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" "opt.t9"@"SEL$1" ))
 | 
						|
      NO_USE_HASH_AGGREGATION(@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t2"@"SEL$2")
 | 
						|
      USE_MERGE(@"SEL$1" ("opt.t9"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t9"@"SEL$1" ) NONE PARTITION)
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t9"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 14(end)  ************** 
 | 
						|
 | 
						|
***************   Case 15   ***************
 | 
						|
 | 
						|
SQL: select * from (select count(*) from t2, t10) as tt,t1,t9 where t9.c1=t1.c1; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                      |NAME    |EST. ROWS|COST |
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN    |        |100      |55725|
 | 
						|
|1 | SUBPLAN SCAN                 |tt      |1        |54315|
 | 
						|
|2 |  SCALAR GROUP BY             |        |1        |54315|
 | 
						|
|3 |   NESTED-LOOP JOIN CARTESIAN |        |60000    |42854|
 | 
						|
|4 |    PX COORDINATOR            |        |300      |206  |
 | 
						|
|5 |     EXCHANGE OUT DISTR       |:EX10000|300      |192  |
 | 
						|
|6 |      PX PARTITION ITERATOR   |        |300      |192  |
 | 
						|
|7 |       TABLE SCAN             |t2      |300      |192  |
 | 
						|
|8 |    MATERIAL                  |        |200      |190  |
 | 
						|
|9 |     PX COORDINATOR           |        |200      |154  |
 | 
						|
|10|      EXCHANGE OUT DISTR      |:EX20000|200      |144  |
 | 
						|
|11|       PX PARTITION ITERATOR  |        |200      |144  |
 | 
						|
|12|        TABLE SCAN            |t10     |200      |144  |
 | 
						|
|13| PX COORDINATOR               |        |100      |1346 |
 | 
						|
|14|  EXCHANGE OUT DISTR          |:EX30001|100      |1322 |
 | 
						|
|15|   MERGE JOIN                 |        |100      |1322 |
 | 
						|
|16|    SORT                      |        |500      |1074 |
 | 
						|
|17|     PX PARTITION ITERATOR    |        |500      |342  |
 | 
						|
|18|      TABLE SCAN              |t1      |500      |342  |
 | 
						|
|19|    EXCHANGE IN DISTR         |        |100      |107  |
 | 
						|
|20|     EXCHANGE OUT DISTR (PKEY)|:EX30000|100      |92   |
 | 
						|
|21|      TABLE SCAN              |t9      |100      |92   |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt.count(*)], [t1.c1], [t1.c2], [t9.c1], [t9.c2], [t9.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([tt.count(*)]), filter(nil), 
 | 
						|
      access([tt.count(*)])
 | 
						|
  2 - output([T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(*)])
 | 
						|
  3 - output([1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  4 - output([1]), filter(nil)
 | 
						|
  5 - output([1]), filter(nil), dop=1
 | 
						|
  6 - output([1]), filter(nil)
 | 
						|
  7 - output([1]), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p[0-2])
 | 
						|
  8 - output([1]), filter(nil)
 | 
						|
  9 - output([1]), filter(nil)
 | 
						|
  10 - output([1]), filter(nil), dop=1
 | 
						|
  11 - output([1]), filter(nil)
 | 
						|
  12 - output([1]), filter(nil), 
 | 
						|
      access([t10.c1]), partitions(p[0-1])
 | 
						|
  13 - output([t1.c1], [t1.c2], [t9.c1], [t9.c2], [t9.c3]), filter(nil)
 | 
						|
  14 - output([t1.c1], [t1.c2], [t9.c1], [t9.c2], [t9.c3]), filter(nil), dop=1
 | 
						|
  15 - output([t1.c1], [t1.c2], [t9.c1], [t9.c2], [t9.c3]), filter(nil), 
 | 
						|
      equal_conds([t9.c1 = t1.c1]), other_conds(nil)
 | 
						|
  16 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), local merge sort
 | 
						|
  17 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  18 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
  19 - output([t9.c1], [t9.c2], [t9.c3]), filter(nil)
 | 
						|
  20 - (#keys=1, [t9.c1]), output([t9.c1], [t9.c2], [t9.c3]), filter(nil), is_single, dop=1
 | 
						|
  21 - output([t9.c1], [t9.c2], [t9.c3]), filter(nil), 
 | 
						|
      access([t9.c1], [t9.c2], [t9.c3]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("tt"@"SEL$1" ("opt.t1"@"SEL$1" "opt.t9"@"SEL$1" )))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" "opt.t9"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" "opt.t9"@"SEL$1" ))
 | 
						|
      LEADING(@"SEL$2" ("opt.t2"@"SEL$2" "opt.t10"@"SEL$2" ))
 | 
						|
      USE_NL(@"SEL$2" ("opt.t10"@"SEL$2" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$2" ("opt.t10"@"SEL$2" ))
 | 
						|
      FULL(@"SEL$2" "opt.t2"@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t10"@"SEL$2")
 | 
						|
      USE_MERGE(@"SEL$1" ("opt.t9"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t9"@"SEL$1" ) NONE PARTITION)
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t9"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 15(end)  ************** 
 | 
						|
 | 
						|
***************   Case 16   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t2,t9; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST    |
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN |        |15000000 |10794125|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|        |30000    |22293   |
 | 
						|
|2 |  PX COORDINATOR           |        |300      |290     |
 | 
						|
|3 |   EXCHANGE OUT DISTR      |:EX10000|300      |205     |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |300      |205     |
 | 
						|
|5 |     TABLE SCAN            |t2      |300      |205     |
 | 
						|
|6 |  MATERIAL                 |        |100      |148     |
 | 
						|
|7 |   TABLE SCAN              |t9      |100      |92      |
 | 
						|
|8 | MATERIAL                  |        |500      |573     |
 | 
						|
|9 |  PX COORDINATOR           |        |500      |389     |
 | 
						|
|10|   EXCHANGE OUT DISTR      |:EX20000|500      |342     |
 | 
						|
|11|    PX PARTITION ITERATOR  |        |500      |342     |
 | 
						|
|12|     TABLE SCAN            |t1      |500      |342     |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t9.c1], [t9.c2], [t9.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([t2.c1], [t2.c2], [t2.c3], [t9.c1], [t9.c2], [t9.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  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)
 | 
						|
  5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
  6 - output([t9.c1], [t9.c2], [t9.c3]), filter(nil)
 | 
						|
  7 - output([t9.c1], [t9.c2], [t9.c3]), filter(nil), 
 | 
						|
      access([t9.c1], [t9.c2], [t9.c3]), partitions(p0)
 | 
						|
  8 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  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)
 | 
						|
  12 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" (("opt.t2"@"SEL$1" "opt.t9"@"SEL$1" )"opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t9"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t9"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t9"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 16(end)  ************** 
 | 
						|
 | 
						|
***************   Case 17   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t2 where (t1.c1 + t2.c1) in (select t9.c1 from t9, t10); 
 | 
						|
 | 
						|
===========================================================
 | 
						|
|ID|OPERATOR                    |NAME    |EST. ROWS|COST  |
 | 
						|
-----------------------------------------------------------
 | 
						|
|0 |HASH RIGHT SEMI JOIN        |        |750      |201826|
 | 
						|
|1 | SUBPLAN SCAN               |VIEW1   |20000    |17173 |
 | 
						|
|2 |  NESTED-LOOP JOIN CARTESIAN|        |20000    |14412 |
 | 
						|
|3 |   PX COORDINATOR           |        |200      |154   |
 | 
						|
|4 |    EXCHANGE OUT DISTR      |:EX10000|200      |144   |
 | 
						|
|5 |     PX PARTITION ITERATOR  |        |200      |144   |
 | 
						|
|6 |      TABLE SCAN            |t10     |200      |144   |
 | 
						|
|7 |   MATERIAL                 |        |100      |106   |
 | 
						|
|8 |    TABLE SCAN              |t9      |100      |88    |
 | 
						|
|9 | NESTED-LOOP JOIN CARTESIAN |        |150000   |108575|
 | 
						|
|10|  PX COORDINATOR            |        |300      |290   |
 | 
						|
|11|   EXCHANGE OUT DISTR       |:EX20000|300      |205   |
 | 
						|
|12|    PX PARTITION ITERATOR   |        |300      |205   |
 | 
						|
|13|     TABLE SCAN             |t2      |300      |205   |
 | 
						|
|14|  MATERIAL                  |        |500      |573   |
 | 
						|
|15|   PX COORDINATOR           |        |500      |389   |
 | 
						|
|16|    EXCHANGE OUT DISTR      |:EX30000|500      |342   |
 | 
						|
|17|     PX PARTITION ITERATOR  |        |500      |342   |
 | 
						|
|18|      TABLE SCAN            |t1      |500      |342   |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 + t2.c1 = VIEW1.c1]), other_conds(nil)
 | 
						|
  1 - output([VIEW1.c1]), filter(nil), 
 | 
						|
      access([VIEW1.c1])
 | 
						|
  2 - output([t9.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  3 - output([1]), filter(nil)
 | 
						|
  4 - output([1]), filter(nil), dop=1
 | 
						|
  5 - output([1]), filter(nil)
 | 
						|
  6 - output([1]), filter(nil), 
 | 
						|
      access([t10.c1]), partitions(p[0-1])
 | 
						|
  7 - output([t9.c1]), filter(nil)
 | 
						|
  8 - output([t9.c1]), filter(nil), 
 | 
						|
      access([t9.c1]), partitions(p0)
 | 
						|
  9 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t1.c1 + t2.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  10 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  11 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
 | 
						|
  12 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  13 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
  14 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  15 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  16 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  17 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  18 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("VIEW1"@"SEL$1" ("opt.t2"@"SEL$1" "opt.t1"@"SEL$1" )))
 | 
						|
      USE_HASH(@"SEL$1" ("opt.t2"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      LEADING(@"SEL$2" ("opt.t10"@"SEL$2" "opt.t9"@"SEL$2" ))
 | 
						|
      USE_NL(@"SEL$2" ("opt.t9"@"SEL$2" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$2" ("opt.t9"@"SEL$2" ))
 | 
						|
      FULL(@"SEL$2" "opt.t10"@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t9"@"SEL$2")
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 17(end)  ************** 
 | 
						|
 | 
						|
***************   Case 18   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t2 where (t1.c1 + t2.c1) in (select max(t9.c1) from t9, t10); 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                      |NAME    |EST. ROWS|COST |
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN              |        |750      |76097|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN   |        |300      |18716|
 | 
						|
|2 |  SUBPLAN SCAN                |VIEW1   |1        |18233|
 | 
						|
|3 |   SCALAR GROUP BY            |        |1        |18233|
 | 
						|
|4 |    NESTED-LOOP JOIN CARTESIAN|        |20000    |14412|
 | 
						|
|5 |     PX COORDINATOR           |        |200      |154  |
 | 
						|
|6 |      EXCHANGE OUT DISTR      |:EX10000|200      |144  |
 | 
						|
|7 |       PX PARTITION ITERATOR  |        |200      |144  |
 | 
						|
|8 |        TABLE SCAN            |t10     |200      |144  |
 | 
						|
|9 |     MATERIAL                 |        |100      |106  |
 | 
						|
|10|      TABLE SCAN              |t9      |100      |88   |
 | 
						|
|11|  PX COORDINATOR              |        |300      |290  |
 | 
						|
|12|   EXCHANGE OUT DISTR         |:EX20000|300      |205  |
 | 
						|
|13|    PX PARTITION ITERATOR     |        |300      |205  |
 | 
						|
|14|     TABLE SCAN               |t2      |300      |205  |
 | 
						|
|15| MATERIAL                     |        |500      |573  |
 | 
						|
|16|  PX COORDINATOR              |        |500      |389  |
 | 
						|
|17|   EXCHANGE OUT DISTR         |:EX30000|500      |342  |
 | 
						|
|18|    PX PARTITION ITERATOR     |        |500      |342  |
 | 
						|
|19|     TABLE SCAN               |t1      |500      |342  |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      conds([t1.c1 + t2.c1 = VIEW1.max(t9.c1)]), nl_params_(nil)
 | 
						|
  1 - output([t2.c1], [t2.c2], [t2.c3], [VIEW1.max(t9.c1)]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  2 - output([VIEW1.max(t9.c1)]), filter(nil), 
 | 
						|
      access([VIEW1.max(t9.c1)])
 | 
						|
  3 - output([T_FUN_MAX(t9.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(t9.c1)])
 | 
						|
  4 - output([t9.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  5 - output([1]), filter(nil)
 | 
						|
  6 - output([1]), filter(nil), dop=1
 | 
						|
  7 - output([1]), filter(nil)
 | 
						|
  8 - output([1]), filter(nil), 
 | 
						|
      access([t10.c1]), partitions(p[0-1])
 | 
						|
  9 - output([t9.c1]), filter(nil)
 | 
						|
  10 - output([t9.c1]), filter(nil), 
 | 
						|
      access([t9.c1]), partitions(p0)
 | 
						|
  11 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  12 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
 | 
						|
  13 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  14 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
  15 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  16 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  17 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  18 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  19 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" (("VIEW1"@"SEL$1" "opt.t2"@"SEL$1" )"opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t2"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t2"@"SEL$1" ))
 | 
						|
      LEADING(@"SEL$2" ("opt.t10"@"SEL$2" "opt.t9"@"SEL$2" ))
 | 
						|
      USE_NL(@"SEL$2" ("opt.t9"@"SEL$2" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$2" ("opt.t9"@"SEL$2" ))
 | 
						|
      FULL(@"SEL$2" "opt.t10"@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t9"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 18(end)  ************** 
 | 
						|
 | 
						|
***************   Case 19   ***************
 | 
						|
 | 
						|
SQL: select * from t8, (select count(*) from t1 where t1.c1 > any (select t2.c1 from t2)) as tt; 
 | 
						|
 | 
						|
======================================================================
 | 
						|
|ID|OPERATOR                                 |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN               |        |100      |498 |
 | 
						|
|1 | SUBPLAN SCAN                            |tt      |1        |343 |
 | 
						|
|2 |  SCALAR GROUP BY                        |        |1        |343 |
 | 
						|
|3 |   PX COORDINATOR                        |        |1        |311 |
 | 
						|
|4 |    EXCHANGE OUT DISTR                   |:EX10002|1        |311 |
 | 
						|
|5 |     MERGE GROUP BY                      |        |1        |311 |
 | 
						|
|6 |      NESTED-LOOP JOIN                   |        |167      |279 |
 | 
						|
|7 |       EXCHANGE IN DISTR                 |        |1        |37  |
 | 
						|
|8 |        EXCHANGE OUT DISTR (BC2HOST)     |:EX10001|1        |37  |
 | 
						|
|9 |         SUBPLAN SCAN                    |VIEW1   |1        |37  |
 | 
						|
|10|          SCALAR GROUP BY                |        |1        |37  |
 | 
						|
|11|           SUBPLAN SCAN                  |VIEW2   |1        |37  |
 | 
						|
|12|            LIMIT                        |        |1        |37  |
 | 
						|
|13|             EXCHANGE IN MERGE SORT DISTR|        |1        |36  |
 | 
						|
|14|              EXCHANGE OUT DISTR         |:EX10000|1        |36  |
 | 
						|
|15|               PX PARTITION ITERATOR     |        |1        |36  |
 | 
						|
|16|                TABLE SCAN               |t2      |1        |36  |
 | 
						|
|17|       PX PARTITION ITERATOR             |        |167      |134 |
 | 
						|
|18|        TABLE SCAN                       |t1      |167      |134 |
 | 
						|
|19| TABLE SCAN                              |t8      |100      |90  |
 | 
						|
======================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t8.c1], [t8.c2], [tt.count(*)]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([tt.count(*)]), filter(nil), 
 | 
						|
      access([tt.count(*)])
 | 
						|
  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([1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([VIEW1.c1])
 | 
						|
  7 - output([VIEW1.c1]), filter(nil)
 | 
						|
  8 - output([VIEW1.c1]), filter(nil), is_single, dop=1
 | 
						|
  9 - output([VIEW1.c1]), filter(nil), 
 | 
						|
      access([VIEW1.c1])
 | 
						|
  10 - output([T_FUN_MIN(VIEW2.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MIN(VIEW2.c1)])
 | 
						|
  11 - output([VIEW2.c1]), filter(nil), 
 | 
						|
      access([VIEW2.c1])
 | 
						|
  12 - output([t2.c1]), filter(nil), limit(1), offset(nil)
 | 
						|
  13 - output([t2.c1]), filter(nil), sort_keys([t2.c1, ASC]), Local Order
 | 
						|
  14 - output([t2.c1]), filter(nil), dop=1
 | 
						|
  15 - output([t2.c1]), filter(nil)
 | 
						|
  16 - output([t2.c1]), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p[0-2]), 
 | 
						|
      limit(1), offset(nil)
 | 
						|
  17 - output([1]), filter(nil)
 | 
						|
  18 - output([1]), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4])
 | 
						|
  19 - output([t8.c1], [t8.c2]), filter(nil), 
 | 
						|
      access([t8.c1], [t8.c2]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("tt"@"SEL$1" "opt.t8"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t8"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t8"@"SEL$1" ))
 | 
						|
      NO_USE_HASH_AGGREGATION(@"SEL$2")
 | 
						|
      LEADING(@"SEL$2" ("VIEW1"@"SEL$2" "opt.t1"@"SEL$2" ))
 | 
						|
      USE_NL(@"SEL$2" ("opt.t1"@"SEL$2" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$2" ("opt.t1"@"SEL$2" ) BC2HOST NONE)
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$2" ("opt.t1"@"SEL$2" ))
 | 
						|
      FULL(@"SEL$4" "opt.t2"@"SEL$4")
 | 
						|
      FULL(@"SEL$2" "opt.t1"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt.t8"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 19(end)  ************** 
 | 
						|
 | 
						|
***************   Case 20   ***************
 | 
						|
 | 
						|
SQL: select  /*+ BEGIN_OUTLINE_DATA  USE_MERGE(@"SEL$1" "opt.t2"@"SEL$1") LEADING(@"SEL$1" "opt.t1"@"SEL$1" "opt.t2"@"SEL$1")  FULL(@"SEL$1" "opt.t1"@"SEL$1")  FULL(@"SEL$1" "opt.t2"@"SEL$1")  END_OUTLINE_DATA  */* from t1,t2 where t1.c1=t2.c1; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |300      |1649|
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|300      |1536|
 | 
						|
|2 |  MERGE JOIN                   |        |300      |1536|
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|        |500      |389 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)  |:EX10000|500      |342 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |        |500      |342 |
 | 
						|
|6 |      TABLE SCAN               |t1      |500      |342 |
 | 
						|
|7 |   SORT                        |        |300      |859 |
 | 
						|
|8 |    PX PARTITION ITERATOR      |        |300      |205 |
 | 
						|
|9 |     TABLE SCAN                |t2      |300      |205 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), sort_keys([t1.c1, ASC]), Local Order
 | 
						|
  4 - (#keys=1, [t1.c1]), output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  5 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  6 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
  7 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
 | 
						|
  8 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t1"@"SEL$1" "opt.t2"@"SEL$1" ))
 | 
						|
      USE_MERGE(@"SEL$1" ("opt.t2"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t2"@"SEL$1" ) PARTITION NONE)
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 20(end)  ************** 
 | 
						|
 | 
						|
***************   Case 21   ***************
 | 
						|
 | 
						|
SQL: select /*+ BEGIN_OUTLINE_DATA USE_MERGE(@"SEL$1" "opt.t1"@"SEL$1") LEADING(@"SEL$1" "opt.t2"@"SEL$1" "opt.t1"@"SEL$1") FULL(@"SEL$1" "opt.t2"@"SEL$1") FULL(@"SEL$1" "opt.t1"@"SEL$1")    END_OUTLINE_DATA */* from t1,t2 where t1.c1=t2.c1; 
 | 
						|
 | 
						|
============================================================
 | 
						|
|ID|OPERATOR                       |NAME    |EST. ROWS|COST|
 | 
						|
------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |        |300      |1649|
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001|300      |1536|
 | 
						|
|2 |  MERGE JOIN                   |        |300      |1536|
 | 
						|
|3 |   SORT                        |        |300      |859 |
 | 
						|
|4 |    PX PARTITION ITERATOR      |        |300      |205 |
 | 
						|
|5 |     TABLE SCAN                |t2      |300      |205 |
 | 
						|
|6 |   EXCHANGE IN MERGE SORT DISTR|        |500      |389 |
 | 
						|
|7 |    EXCHANGE OUT DISTR (PKEY)  |:EX10000|500      |342 |
 | 
						|
|8 |     PX PARTITION ITERATOR     |        |500      |342 |
 | 
						|
|9 |      TABLE SCAN               |t1      |500      |342 |
 | 
						|
============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      equal_conds([t1.c1 = t2.c1]), other_conds(nil)
 | 
						|
  3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), sort_keys([t2.c1, ASC]), local merge sort
 | 
						|
  4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
  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)
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t2"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_MERGE(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t1"@"SEL$1" ) NONE PARTITION)
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 21(end)  ************** 
 | 
						|
 | 
						|
***************   Case 22   ***************
 | 
						|
 | 
						|
SQL: select /*+ BEGIN_OUTLINE_DATA USE_NL(@"SEL$1" "opt.tt2"@"SEL$1") LEADING(@"SEL$1" "opt.tt1"@"SEL$1" "opt.tt2"@"SEL$1") FULL(@"SEL$1" "opt.tt1"@"SEL$1") FULL(@"SEL$1" "opt.tt2"@"SEL$1") END_OUTLINE_DATA */* from t1 as tt1,t2 as tt2 where tt1.c1=tt2.c1; 
 | 
						|
 | 
						|
===========================================================
 | 
						|
|ID|OPERATOR                     |NAME    |EST. ROWS|COST |
 | 
						|
-----------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR               |        |300      |18870|
 | 
						|
|1 | EXCHANGE OUT DISTR          |:EX10001|300      |18757|
 | 
						|
|2 |  NESTED-LOOP JOIN           |        |300      |18757|
 | 
						|
|3 |   EXCHANGE IN DISTR         |        |500      |389  |
 | 
						|
|4 |    EXCHANGE OUT DISTR (PKEY)|:EX10000|500      |342  |
 | 
						|
|5 |     PX PARTITION ITERATOR   |        |500      |342  |
 | 
						|
|6 |      TABLE SCAN             |tt1     |500      |342  |
 | 
						|
|7 |   PX PARTITION ITERATOR     |        |1        |36   |
 | 
						|
|8 |    TABLE GET                |tt2     |1        |36   |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([tt1.c1], [tt1.c2], [tt2.c1], [tt2.c2], [tt2.c3]), filter(nil)
 | 
						|
  1 - output([tt1.c1], [tt1.c2], [tt2.c1], [tt2.c2], [tt2.c3]), filter(nil), dop=1
 | 
						|
  2 - output([tt1.c1], [tt1.c2], [tt2.c1], [tt2.c2], [tt2.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([tt1.c1])
 | 
						|
  3 - output([tt1.c1], [tt1.c2], [PARTITION_ID]), filter(nil)
 | 
						|
  4 - (#keys=1, [tt1.c1]), output([tt1.c1], [tt1.c2], [PARTITION_ID]), filter(nil), dop=1
 | 
						|
  5 - output([tt1.c1], [tt1.c2]), filter(nil)
 | 
						|
  6 - output([tt1.c1], [tt1.c2]), filter(nil), 
 | 
						|
      access([tt1.c1], [tt1.c2]), partitions(p[0-4])
 | 
						|
  7 - output([tt2.c1], [tt2.c2], [tt2.c3]), filter(nil)
 | 
						|
  8 - output([tt2.c1], [tt2.c2], [tt2.c3]), filter(nil), 
 | 
						|
      access([tt2.c1], [tt2.c2], [tt2.c3]), partitions(p[0-2])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.tt1"@"SEL$1" "opt.tt2"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.tt2"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.tt2"@"SEL$1" ) PARTITION NONE)
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.tt2"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.tt1"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.tt2"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 22(end)  ************** 
 | 
						|
 | 
						|
***************   Case 23   ***************
 | 
						|
 | 
						|
SQL: select /*+read_consistency("weak")*/* from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |389 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |342 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |342 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |342 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4]), 
 | 
						|
      hint(read_consistency:2)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      READ_CONSISTENCY("WEAK")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 23(end)  ************** 
 | 
						|
 | 
						|
***************   Case 24   ***************
 | 
						|
 | 
						|
SQL: select /*+hotspot*/* from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |389 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |342 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |342 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |342 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 24(end)  ************** 
 | 
						|
 | 
						|
***************   Case 25   ***************
 | 
						|
 | 
						|
SQL: select /*+topk(1 100)*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |389 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |342 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |342 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |342 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 25(end)  ************** 
 | 
						|
 | 
						|
***************   Case 26   ***************
 | 
						|
 | 
						|
SQL: select /*+query_timeout(100)*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |389 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |342 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |342 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |342 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      QUERY_TIMEOUT(100)
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 26(end)  ************** 
 | 
						|
 | 
						|
***************   Case 27   ***************
 | 
						|
 | 
						|
SQL: select /*+frozen_version(1)*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |389 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |342 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |342 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |342 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4]), 
 | 
						|
      hint(frozen_version:"1-0-0", read_consistency:1)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FROZEN_VERSION(1)
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 27(end)  ************** 
 | 
						|
 | 
						|
***************   Case 28   ***************
 | 
						|
 | 
						|
SQL: select /*+use_plan_cache(none)*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |389 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |342 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |342 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |342 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      USE_PLAN_CACHE("NONE")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 28(end)  ************** 
 | 
						|
 | 
						|
***************   Case 29   ***************
 | 
						|
 | 
						|
SQL: select /*+use_plan_cache(default)*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |389 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |342 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |342 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |342 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      USE_PLAN_CACHE("DEFAULT")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 29(end)  ************** 
 | 
						|
 | 
						|
***************   Case 30   ***************
 | 
						|
 | 
						|
SQL: select /*+use_plan_cache(nothing)*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |389 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |342 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |342 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |342 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 30(end)  ************** 
 | 
						|
 | 
						|
***************   Case 31   ***************
 | 
						|
 | 
						|
SQL: select /*+activate_buried_point(1,FIX_MODE,1,1)*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |389 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |342 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |342 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |342 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 31(end)  ************** 
 | 
						|
 | 
						|
***************   Case 32   ***************
 | 
						|
 | 
						|
SQL: select /*+no_rewrite*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |389 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |342 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |342 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |342 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      NO_REWRITE
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 32(end)  ************** 
 | 
						|
 | 
						|
***************   Case 33   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where c1 > any (select /*+no_rewrite*/ count(*) from t2); 
 | 
						|
 | 
						|
=============================================================
 | 
						|
|ID|OPERATOR                        |NAME    |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                  |        |167      |576 |
 | 
						|
|1 | EXCHANGE OUT DISTR             |:EX10002|167      |552 |
 | 
						|
|2 |  NESTED-LOOP JOIN              |        |167      |552 |
 | 
						|
|3 |   EXCHANGE IN DISTR            |        |1        |306 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (BC2HOST)|:EX10001|1        |306 |
 | 
						|
|5 |     SUBPLAN SCAN               |VIEW1   |1        |306 |
 | 
						|
|6 |      SCALAR GROUP BY           |        |1        |306 |
 | 
						|
|7 |       EXCHANGE IN DISTR        |        |1        |249 |
 | 
						|
|8 |        EXCHANGE OUT DISTR      |:EX10000|1        |249 |
 | 
						|
|9 |         MERGE GROUP BY         |        |1        |249 |
 | 
						|
|10|          PX PARTITION ITERATOR |        |300      |192 |
 | 
						|
|11|           TABLE SCAN           |t2      |300      |192 |
 | 
						|
|12|   PX PARTITION ITERATOR        |        |167      |138 |
 | 
						|
|13|    TABLE SCAN                  |t1      |167      |138 |
 | 
						|
=============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([VIEW1.count(*)])
 | 
						|
  3 - output([VIEW1.count(*)]), filter(nil)
 | 
						|
  4 - output([VIEW1.count(*)]), filter(nil), is_single, dop=1
 | 
						|
  5 - output([VIEW1.count(*)]), filter(nil), 
 | 
						|
      access([VIEW1.count(*)])
 | 
						|
  6 - output([T_FUN_COUNT_SUM(T_FUN_COUNT(*))]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT_SUM(T_FUN_COUNT(*))])
 | 
						|
  7 - output([T_FUN_COUNT(*)]), filter(nil)
 | 
						|
  8 - output([T_FUN_COUNT(*)]), filter(nil), dop=1
 | 
						|
  9 - output([T_FUN_COUNT(*)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_COUNT(*)])
 | 
						|
  10 - output([1]), filter(nil)
 | 
						|
  11 - output([1]), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p[0-2])
 | 
						|
  12 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  13 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("VIEW1"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      PQ_DISTRIBUTE(@"SEL$1" ("opt.t1"@"SEL$1" ) BC2HOST NONE)
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      NO_USE_HASH_AGGREGATION(@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t2"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 33(end)  ************** 
 | 
						|
 | 
						|
***************   Case 34   ***************
 | 
						|
 | 
						|
SQL: select /*+trace_log*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |389 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |342 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |342 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |342 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      TRACE_LOG
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 34(end)  ************** 
 | 
						|
 | 
						|
***************   Case 35   ***************
 | 
						|
 | 
						|
SQL: select /*+log_level('INFO')*/ * from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |389 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |342 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |342 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |342 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      LOG_LEVEL('info')
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 35(end)  ************** 
 | 
						|
 | 
						|
***************   Case 36   ***************
 | 
						|
 | 
						|
SQL: select * from t1,(select /*+log_level('INFO')*/ count(*) from t2) as tt; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN |        |500      |1019|
 | 
						|
|1 | SUBPLAN SCAN              |tt      |1        |306 |
 | 
						|
|2 |  SCALAR GROUP BY          |        |1        |306 |
 | 
						|
|3 |   PX COORDINATOR          |        |1        |249 |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000|1        |249 |
 | 
						|
|5 |     MERGE GROUP BY        |        |1        |249 |
 | 
						|
|6 |      PX PARTITION ITERATOR|        |300      |192 |
 | 
						|
|7 |       TABLE SCAN          |t2      |300      |192 |
 | 
						|
|8 | PX COORDINATOR            |        |500      |389 |
 | 
						|
|9 |  EXCHANGE OUT DISTR       |:EX20000|500      |342 |
 | 
						|
|10|   PX PARTITION ITERATOR   |        |500      |342 |
 | 
						|
|11|    TABLE SCAN             |t1      |500      |342 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [tt.count(*)]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([tt.count(*)]), filter(nil), 
 | 
						|
      access([tt.count(*)])
 | 
						|
  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([1]), filter(nil)
 | 
						|
  7 - output([1]), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p[0-2])
 | 
						|
  8 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  11 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("tt"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      NO_USE_HASH_AGGREGATION(@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t2"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      LOG_LEVEL('info')
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 36(end)  ************** 
 | 
						|
 | 
						|
***************   Case 37   ***************
 | 
						|
 | 
						|
SQL: select * from t1,(select /*+trace_log*/ count(*) from t2) as tt; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN |        |500      |1019|
 | 
						|
|1 | SUBPLAN SCAN              |tt      |1        |306 |
 | 
						|
|2 |  SCALAR GROUP BY          |        |1        |306 |
 | 
						|
|3 |   PX COORDINATOR          |        |1        |249 |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000|1        |249 |
 | 
						|
|5 |     MERGE GROUP BY        |        |1        |249 |
 | 
						|
|6 |      PX PARTITION ITERATOR|        |300      |192 |
 | 
						|
|7 |       TABLE SCAN          |t2      |300      |192 |
 | 
						|
|8 | PX COORDINATOR            |        |500      |389 |
 | 
						|
|9 |  EXCHANGE OUT DISTR       |:EX20000|500      |342 |
 | 
						|
|10|   PX PARTITION ITERATOR   |        |500      |342 |
 | 
						|
|11|    TABLE SCAN             |t1      |500      |342 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [tt.count(*)]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([tt.count(*)]), filter(nil), 
 | 
						|
      access([tt.count(*)])
 | 
						|
  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([1]), filter(nil)
 | 
						|
  7 - output([1]), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p[0-2])
 | 
						|
  8 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  11 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("tt"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      NO_USE_HASH_AGGREGATION(@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t2"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      TRACE_LOG
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 37(end)  ************** 
 | 
						|
 | 
						|
***************   Case 38   ***************
 | 
						|
 | 
						|
SQL: select * from t1,(select /*+use_plan_cache(none)*/ count(*) from t2) as tt; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN |        |500      |1019|
 | 
						|
|1 | SUBPLAN SCAN              |tt      |1        |306 |
 | 
						|
|2 |  SCALAR GROUP BY          |        |1        |306 |
 | 
						|
|3 |   PX COORDINATOR          |        |1        |249 |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000|1        |249 |
 | 
						|
|5 |     MERGE GROUP BY        |        |1        |249 |
 | 
						|
|6 |      PX PARTITION ITERATOR|        |300      |192 |
 | 
						|
|7 |       TABLE SCAN          |t2      |300      |192 |
 | 
						|
|8 | PX COORDINATOR            |        |500      |389 |
 | 
						|
|9 |  EXCHANGE OUT DISTR       |:EX20000|500      |342 |
 | 
						|
|10|   PX PARTITION ITERATOR   |        |500      |342 |
 | 
						|
|11|    TABLE SCAN             |t1      |500      |342 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [tt.count(*)]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([tt.count(*)]), filter(nil), 
 | 
						|
      access([tt.count(*)])
 | 
						|
  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([1]), filter(nil)
 | 
						|
  7 - output([1]), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p[0-2])
 | 
						|
  8 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  11 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("tt"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      NO_USE_HASH_AGGREGATION(@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t2"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      USE_PLAN_CACHE("NONE")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 38(end)  ************** 
 | 
						|
 | 
						|
***************   Case 39   ***************
 | 
						|
 | 
						|
SQL: select * from t1,(select /*+use_plan_cache(default)*/ count(*) from t2) as tt; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN |        |500      |1019|
 | 
						|
|1 | SUBPLAN SCAN              |tt      |1        |306 |
 | 
						|
|2 |  SCALAR GROUP BY          |        |1        |306 |
 | 
						|
|3 |   PX COORDINATOR          |        |1        |249 |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000|1        |249 |
 | 
						|
|5 |     MERGE GROUP BY        |        |1        |249 |
 | 
						|
|6 |      PX PARTITION ITERATOR|        |300      |192 |
 | 
						|
|7 |       TABLE SCAN          |t2      |300      |192 |
 | 
						|
|8 | PX COORDINATOR            |        |500      |389 |
 | 
						|
|9 |  EXCHANGE OUT DISTR       |:EX20000|500      |342 |
 | 
						|
|10|   PX PARTITION ITERATOR   |        |500      |342 |
 | 
						|
|11|    TABLE SCAN             |t1      |500      |342 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [tt.count(*)]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([tt.count(*)]), filter(nil), 
 | 
						|
      access([tt.count(*)])
 | 
						|
  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([1]), filter(nil)
 | 
						|
  7 - output([1]), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p[0-2])
 | 
						|
  8 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  11 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("tt"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      NO_USE_HASH_AGGREGATION(@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t2"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      USE_PLAN_CACHE("DEFAULT")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 39(end)  ************** 
 | 
						|
 | 
						|
***************   Case 40   ***************
 | 
						|
 | 
						|
SQL: select * from t1,(select /*+use_plan_cache(nothing)*/ count(*) from t2) as tt; 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST|
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN |        |500      |1019|
 | 
						|
|1 | SUBPLAN SCAN              |tt      |1        |306 |
 | 
						|
|2 |  SCALAR GROUP BY          |        |1        |306 |
 | 
						|
|3 |   PX COORDINATOR          |        |1        |249 |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000|1        |249 |
 | 
						|
|5 |     MERGE GROUP BY        |        |1        |249 |
 | 
						|
|6 |      PX PARTITION ITERATOR|        |300      |192 |
 | 
						|
|7 |       TABLE SCAN          |t2      |300      |192 |
 | 
						|
|8 | PX COORDINATOR            |        |500      |389 |
 | 
						|
|9 |  EXCHANGE OUT DISTR       |:EX20000|500      |342 |
 | 
						|
|10|   PX PARTITION ITERATOR   |        |500      |342 |
 | 
						|
|11|    TABLE SCAN             |t1      |500      |342 |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [tt.count(*)]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([tt.count(*)]), filter(nil), 
 | 
						|
      access([tt.count(*)])
 | 
						|
  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([1]), filter(nil)
 | 
						|
  7 - output([1]), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p[0-2])
 | 
						|
  8 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  11 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("tt"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      NO_USE_HASH_AGGREGATION(@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t2"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 40(end)  ************** 
 | 
						|
 | 
						|
***************   Case 41   ***************
 | 
						|
 | 
						|
SQL: select   /*+ BEGIN_OUTLINE_DATA FULL(@"SEL$1" "t1"@"SEL$1") READ_CONSISTENCY("WEAK") HOTSPOT TOPK(1 100) QUERY_TIMEOUT(100) FROZEN_VERSION(1) USE_PLAN_CACHE("EXACT") NO_REWRITE TRACE_LOG LOG_LEVEL('info') END_OUTLINE_DATA */* from t1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |389 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |342 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |342 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |342 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4]), 
 | 
						|
      hint(frozen_version:"1-0-0", read_consistency:1)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FROZEN_VERSION(1)
 | 
						|
      QUERY_TIMEOUT(100)
 | 
						|
      NO_REWRITE
 | 
						|
      TRACE_LOG
 | 
						|
      LOG_LEVEL('info')
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 41(end)  ************** 
 | 
						|
 | 
						|
***************   Case 42   ***************
 | 
						|
 | 
						|
SQL: select max(c1) from t1 group by c1; 
 | 
						|
 | 
						|
====================================================
 | 
						|
|ID|OPERATOR               |NAME    |EST. ROWS|COST|
 | 
						|
----------------------------------------------------
 | 
						|
|0 |PX COORDINATOR         |        |500      |354 |
 | 
						|
|1 | EXCHANGE OUT DISTR    |:EX10000|500      |331 |
 | 
						|
|2 |  PX PARTITION ITERATOR|        |500      |331 |
 | 
						|
|3 |   TABLE SCAN          |t1      |500      |331 |
 | 
						|
====================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1]), filter(nil)
 | 
						|
  1 - output([t1.c1]), filter(nil), dop=1
 | 
						|
  2 - output([t1.c1]), filter(nil)
 | 
						|
  3 - output([t1.c1]), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 42(end)  ************** 
 | 
						|
 | 
						|
***************   Case 43   ***************
 | 
						|
 | 
						|
SQL: select min(c2) from t1 group by c2; 
 | 
						|
 | 
						|
=================================================================
 | 
						|
|ID|OPERATOR                       |NAME         |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------------
 | 
						|
|0 |PX COORDINATOR                 |             |100      |635 |
 | 
						|
|1 | EXCHANGE OUT DISTR            |:EX10001     |100      |626 |
 | 
						|
|2 |  MERGE GROUP BY               |             |100      |626 |
 | 
						|
|3 |   EXCHANGE IN MERGE SORT DISTR|             |100      |489 |
 | 
						|
|4 |    EXCHANGE OUT DISTR (HASH)  |:EX10000     |100      |479 |
 | 
						|
|5 |     PX PARTITION ITERATOR     |             |100      |479 |
 | 
						|
|6 |      MERGE GROUP BY           |             |100      |479 |
 | 
						|
|7 |       TABLE SCAN              |t1(idx_t1_c2)|500      |342 |
 | 
						|
=================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([T_FUN_MIN(T_FUN_MIN(t1.c2))]), filter(nil)
 | 
						|
  1 - output([T_FUN_MIN(T_FUN_MIN(t1.c2))]), filter(nil), dop=1
 | 
						|
  2 - output([T_FUN_MIN(T_FUN_MIN(t1.c2))]), filter(nil), 
 | 
						|
      group([t1.c2]), agg_func([T_FUN_MIN(T_FUN_MIN(t1.c2))])
 | 
						|
  3 - output([T_FUN_MIN(t1.c2)], [t1.c2]), filter(nil), sort_keys([t1.c2, ASC]), Local Order
 | 
						|
  4 - (#keys=1, [t1.c2]), output([T_FUN_MIN(t1.c2)], [t1.c2]), filter(nil), dop=1
 | 
						|
  5 - output([T_FUN_MIN(t1.c2)], [t1.c2]), filter(nil)
 | 
						|
  6 - output([T_FUN_MIN(t1.c2)], [t1.c2]), filter(nil), 
 | 
						|
      group([t1.c2]), agg_func([T_FUN_MIN(t1.c2)])
 | 
						|
  7 - output([t1.c2]), filter(nil), 
 | 
						|
      access([t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      NO_USE_HASH_AGGREGATION(@"SEL$1")
 | 
						|
      NO_USE_HASH_AGGREGATION(@"SEL$1")
 | 
						|
      INDEX(@"SEL$1" "opt.t1"@"SEL$1" "idx_t1_c2")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 43(end)  ************** 
 | 
						|
 | 
						|
***************   Case 44   ***************
 | 
						|
 | 
						|
SQL: insert into t1 (c1) values(1); 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |1   |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |1   |
 | 
						|
|2 |  INSERT            |    |1        |1   |
 | 
						|
|3 |   EXPRESSION       |    |1        |1   |
 | 
						|
=============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output(nil), filter(nil)
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - output([__values.c1], [?]), filter(nil), 
 | 
						|
      columns([{t1: ({t1: (t1.c1, t1.c2)})}]), partitions(p1)
 | 
						|
  3 - output([__values.c1]), filter(nil)
 | 
						|
      values({?})
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 44(end)  ************** 
 | 
						|
 | 
						|
***************   Case 45   ***************
 | 
						|
 | 
						|
SQL: update t7 set c1=100 where c1=1; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |UPDATE    |    |1        |53  |
 | 
						|
|1 | TABLE GET|t7  |1        |52  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output(nil), filter(nil), table_columns([{t7: ({t7: (t7.c1, t7.c2)})}]),
 | 
						|
      update([t7.c1=?])
 | 
						|
  1 - output([t7.c1], [t7.c2], [?]), filter(nil), 
 | 
						|
      access([t7.c1], [t7.c2]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"UPD$1" "opt.t7"@"UPD$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 45(end)  ************** 
 | 
						|
 | 
						|
***************   Case 46   ***************
 | 
						|
 | 
						|
SQL: delete from t1 where c1=1; 
 | 
						|
 | 
						|
=============================================
 | 
						|
|ID|OPERATOR            |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------
 | 
						|
|0 |EXCHANGE IN REMOTE  |    |1        |53  |
 | 
						|
|1 | EXCHANGE OUT REMOTE|    |1        |53  |
 | 
						|
|2 |  DELETE            |    |1        |53  |
 | 
						|
|3 |   TABLE GET        |t1  |1        |52  |
 | 
						|
=============================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output(nil), filter(nil)
 | 
						|
  1 - output(nil), filter(nil)
 | 
						|
  2 - output(nil), filter(nil), table_columns([{t1: ({t1: (t1.c1, t1.c2)})}])
 | 
						|
  3 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p1)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"DEL$1" "opt.t1"@"DEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 46(end)  ************** 
 | 
						|
 | 
						|
***************   Case 47   ***************
 | 
						|
 | 
						|
SQL: select /*+index(t_normal_idx idx)*/* from t_normal_idx order by c3 limit 1; 
 | 
						|
 | 
						|
=======================================================
 | 
						|
|ID|OPERATOR        |NAME              |EST. ROWS|COST|
 | 
						|
-------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN|                  |1        |124 |
 | 
						|
|1 | LIMIT          |                  |1        |87  |
 | 
						|
|2 |  TOP-N SORT    |                  |1        |87  |
 | 
						|
|3 |   TABLE SCAN   |t_normal_idx(idx) |100      |54  |
 | 
						|
|4 | TABLE GET      |t_normal_idx_alias|1        |37  |
 | 
						|
=======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t_normal_idx.c1], [t_normal_idx_alias.c2], [t_normal_idx.c3], [t_normal_idx_alias.c4], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t_normal_idx.c1])
 | 
						|
  1 - output([t_normal_idx.c1], [t_normal_idx.c3]), filter(nil), limit(1), offset(nil)
 | 
						|
  2 - output([t_normal_idx.c1], [t_normal_idx.c3]), filter(nil), sort_keys([t_normal_idx.c3, ASC]), topn(1)
 | 
						|
  3 - output([t_normal_idx.c1], [t_normal_idx.c3]), filter(nil), 
 | 
						|
      access([t_normal_idx.c1], [t_normal_idx.c3]), partitions(p0)
 | 
						|
  4 - output([t_normal_idx_alias.c2], [t_normal_idx_alias.c4], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), filter(nil), 
 | 
						|
      access([t_normal_idx_alias.c2], [t_normal_idx_alias.c4], [t_normal_idx_alias.c5], [t_normal_idx_alias.c6], [t_normal_idx_alias.c7], [t_normal_idx_alias.c8], [t_normal_idx_alias.c9], [t_normal_idx_alias.c10]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      USE_LATE_MATERIALIZATION
 | 
						|
      LEADING(@"SEL$1" ("opt.t_normal_idx"@"SEL$1" "opt.t_normal_idx_alias"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t_normal_idx_alias"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t_normal_idx_alias"@"SEL$1" ))
 | 
						|
      INDEX(@"SEL$1" "opt.t_normal_idx"@"SEL$1" "idx")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 47(end)  ************** 
 | 
						|
 | 
						|
***************   Case 48   ***************
 | 
						|
 | 
						|
SQL: select /*+no_use_late_materialization index(t_normal_idx idx)*/* from t_normal_idx where c2=1 order by c4 limit 1; 
 | 
						|
 | 
						|
==================================================
 | 
						|
|ID|OPERATOR    |NAME             |EST. ROWS|COST|
 | 
						|
--------------------------------------------------
 | 
						|
|0 |LIMIT       |                 |1        |783 |
 | 
						|
|1 | TOP-N SORT |                 |1        |783 |
 | 
						|
|2 |  TABLE SCAN|t_normal_idx(idx)|100      |676 |
 | 
						|
==================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9], [t_normal_idx.c10]), filter(nil), limit(1), offset(nil)
 | 
						|
  1 - output([t_normal_idx.c1], [t_normal_idx.c2], [t_normal_idx.c3], [t_normal_idx.c4], [t_normal_idx.c5], [t_normal_idx.c6], [t_normal_idx.c7], [t_normal_idx.c8], [t_normal_idx.c9], [t_normal_idx.c10]), filter(nil), sort_keys([t_normal_idx.c4, ASC]), topn(1)
 | 
						|
  2 - output([t_normal_idx.c2], [t_normal_idx.c1], [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.c2], [t_normal_idx.c1], [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)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      NO_USE_LATE_MATERIALIZATION
 | 
						|
      INDEX(@"SEL$1" "opt.t_normal_idx"@"SEL$1" "idx")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 48(end)  ************** 
 | 
						|
 | 
						|
***************   Case 49   ***************
 | 
						|
 | 
						|
SQL: select * from t1 where t1.c1 > (select c1 from t2); 
 | 
						|
 | 
						|
=====================================================
 | 
						|
|ID|OPERATOR                |NAME    |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------
 | 
						|
|0 |SUBPLAN FILTER          |        |167      |382 |
 | 
						|
|1 | PX COORDINATOR         |        |167      |154 |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000|167      |138 |
 | 
						|
|3 |   PX PARTITION ITERATOR|        |167      |138 |
 | 
						|
|4 |    TABLE SCAN          |t1      |167      |138 |
 | 
						|
|5 | PX COORDINATOR         |        |300      |206 |
 | 
						|
|6 |  EXCHANGE OUT DISTR    |:EX20000|300      |192 |
 | 
						|
|7 |   PX PARTITION ITERATOR|        |300      |192 |
 | 
						|
|8 |    TABLE SCAN          |t2      |300      |192 |
 | 
						|
=====================================================
 | 
						|
 | 
						|
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)
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
  5 - output([t2.c1]), filter(nil)
 | 
						|
  6 - output([t2.c1]), filter(nil), dop=1
 | 
						|
  7 - output([t2.c1]), filter(nil)
 | 
						|
  8 - output([t2.c1]), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p[0-2])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FULL(@"SEL$2" "opt.t2"@"SEL$2")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 49(end)  ************** 
 | 
						|
 | 
						|
***************   Case 50   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t2 where (t1.c1 + t2.c1) > (select c1 from t3); 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST |
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |SUBPLAN FILTER            |        |50000    |89806|
 | 
						|
|1 | NESTED-LOOP JOIN         |        |50000    |82757|
 | 
						|
|2 |  PX COORDINATOR          |        |300      |290  |
 | 
						|
|3 |   EXCHANGE OUT DISTR     |:EX10000|300      |205  |
 | 
						|
|4 |    PX PARTITION ITERATOR |        |300      |205  |
 | 
						|
|5 |     TABLE SCAN           |t2      |300      |205  |
 | 
						|
|6 |  MATERIAL                |        |500      |573  |
 | 
						|
|7 |   PX COORDINATOR         |        |500      |389  |
 | 
						|
|8 |    EXCHANGE OUT DISTR    |:EX20000|500      |342  |
 | 
						|
|9 |     PX PARTITION ITERATOR|        |500      |342  |
 | 
						|
|10|      TABLE SCAN          |t1      |500      |342  |
 | 
						|
|11| PX COORDINATOR           |        |200      |149  |
 | 
						|
|12|  EXCHANGE OUT DISTR      |:EX30000|200      |140  |
 | 
						|
|13|   PX PARTITION ITERATOR  |        |200      |140  |
 | 
						|
|14|    TABLE SCAN            |t3      |200      |140  |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      conds([t1.c1 + t2.c1 > ?]), nl_params_(nil)
 | 
						|
  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)
 | 
						|
  5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
  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)
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
  11 - output([t3.c1]), filter(nil)
 | 
						|
  12 - output([t3.c1]), filter(nil), dop=1
 | 
						|
  13 - output([t3.c1]), filter(nil)
 | 
						|
  14 - output([t3.c1]), filter(nil), 
 | 
						|
      access([t3.c1]), partitions(p[0-1])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t2"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FULL(@"SEL$2" "opt.t3"@"SEL$2")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 50(end)  ************** 
 | 
						|
 | 
						|
***************   Case 51   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t2 where (t1.c1 + t2.c1) > (select t3.c1 from t3, t4); 
 | 
						|
 | 
						|
===============================================================
 | 
						|
|ID|OPERATOR                   |NAME         |EST. ROWS|COST  |
 | 
						|
---------------------------------------------------------------
 | 
						|
|0 |SUBPLAN FILTER             |             |50000    |104032|
 | 
						|
|1 | NESTED-LOOP JOIN          |             |50000    |82757 |
 | 
						|
|2 |  PX COORDINATOR           |             |300      |290   |
 | 
						|
|3 |   EXCHANGE OUT DISTR      |:EX10000     |300      |205   |
 | 
						|
|4 |    PX PARTITION ITERATOR  |             |300      |205   |
 | 
						|
|5 |     TABLE SCAN            |t2           |300      |205   |
 | 
						|
|6 |  MATERIAL                 |             |500      |573   |
 | 
						|
|7 |   PX COORDINATOR          |             |500      |389   |
 | 
						|
|8 |    EXCHANGE OUT DISTR     |:EX20000     |500      |342   |
 | 
						|
|9 |     PX PARTITION ITERATOR |             |500      |342   |
 | 
						|
|10|      TABLE SCAN           |t1           |500      |342   |
 | 
						|
|11| NESTED-LOOP JOIN CARTESIAN|             |20000    |14374 |
 | 
						|
|12|  PX COORDINATOR           |             |200      |149   |
 | 
						|
|13|   EXCHANGE OUT DISTR      |:EX30000     |200      |140   |
 | 
						|
|14|    PX PARTITION ITERATOR  |             |200      |140   |
 | 
						|
|15|     TABLE SCAN            |t3           |200      |140   |
 | 
						|
|16|  MATERIAL                 |             |100      |73    |
 | 
						|
|17|   TABLE SCAN              |t4(idx_t4_c2)|100      |54    |
 | 
						|
===============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      conds([t1.c1 + t2.c1 > ?]), nl_params_(nil)
 | 
						|
  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)
 | 
						|
  5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
  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)
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
  11 - output([t3.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  12 - output([t3.c1]), filter(nil)
 | 
						|
  13 - output([t3.c1]), filter(nil), dop=1
 | 
						|
  14 - output([t3.c1]), filter(nil)
 | 
						|
  15 - output([t3.c1]), filter(nil), 
 | 
						|
      access([t3.c1]), partitions(p[0-1])
 | 
						|
  16 - output([1]), filter(nil)
 | 
						|
  17 - output([1]), filter(nil), 
 | 
						|
      access([t4.c2]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t2"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      LEADING(@"SEL$2" ("opt.t3"@"SEL$2" "opt.t4"@"SEL$2" ))
 | 
						|
      USE_NL(@"SEL$2" ("opt.t4"@"SEL$2" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$2" ("opt.t4"@"SEL$2" ))
 | 
						|
      FULL(@"SEL$2" "opt.t3"@"SEL$2")
 | 
						|
      INDEX(@"SEL$2" "opt.t4"@"SEL$2" "idx_t4_c2")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 51(end)  ************** 
 | 
						|
 | 
						|
***************   Case 52   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t2 where t1.c1 > (select c1 from t2); 
 | 
						|
 | 
						|
=========================================================
 | 
						|
|ID|OPERATOR                   |NAME    |EST. ROWS|COST |
 | 
						|
---------------------------------------------------------
 | 
						|
|0 |SUBPLAN FILTER             |        |50000    |43515|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|        |50000    |36409|
 | 
						|
|2 |  PX COORDINATOR           |        |300      |290  |
 | 
						|
|3 |   EXCHANGE OUT DISTR      |:EX10000|300      |205  |
 | 
						|
|4 |    PX PARTITION ITERATOR  |        |300      |205  |
 | 
						|
|5 |     TABLE SCAN            |t2      |300      |205  |
 | 
						|
|6 |  MATERIAL                 |        |167      |215  |
 | 
						|
|7 |   PX COORDINATOR          |        |167      |154  |
 | 
						|
|8 |    EXCHANGE OUT DISTR     |:EX20000|167      |138  |
 | 
						|
|9 |     PX PARTITION ITERATOR |        |167      |138  |
 | 
						|
|10|      TABLE SCAN           |t1      |167      |138  |
 | 
						|
|11| PX COORDINATOR            |        |300      |206  |
 | 
						|
|12|  EXCHANGE OUT DISTR       |:EX30000|300      |192  |
 | 
						|
|13|   PX PARTITION ITERATOR   |        |300      |192  |
 | 
						|
|14|    TABLE SCAN             |t2      |300      |192  |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  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)
 | 
						|
  5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
  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)
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
  11 - output([t2.c1]), filter(nil)
 | 
						|
  12 - output([t2.c1]), filter(nil), dop=1
 | 
						|
  13 - output([t2.c1]), filter(nil)
 | 
						|
  14 - output([t2.c1]), filter(nil), 
 | 
						|
      access([t2.c1]), partitions(p[0-2])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t2"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FULL(@"SEL$2" "opt.t2"@"SEL$2")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 52(end)  ************** 
 | 
						|
 | 
						|
***************   Case 53   ***************
 | 
						|
 | 
						|
SQL: select /*+use_nl(t2) leading(t1 t2)*/ * from t1,t2 where t2.c1 > (select 1); 
 | 
						|
 | 
						|
=========================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST  |
 | 
						|
---------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |150000   |114989|
 | 
						|
|1 | PX COORDINATOR           |        |500      |389   |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|500      |342   |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |500      |342   |
 | 
						|
|4 |    TABLE SCAN            |t1      |500      |342   |
 | 
						|
|5 | MATERIAL                 |        |300      |621   |
 | 
						|
|6 |  PX COORDINATOR          |        |300      |290   |
 | 
						|
|7 |   EXCHANGE OUT DISTR     |:EX20000|300      |205   |
 | 
						|
|8 |    PX PARTITION ITERATOR |        |300      |205   |
 | 
						|
|9 |     TABLE SCAN           |t2      |300      |205   |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(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)
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
  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)
 | 
						|
  9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t1"@"SEL$1" "opt.t2"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t2"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t2"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 53(end)  ************** 
 | 
						|
 | 
						|
***************   Case 54   ***************
 | 
						|
 | 
						|
SQL: select /*+use_nl(t2) leading(t1 t2)*/ * from t1,t2 where t1.c1 > (select 1); 
 | 
						|
 | 
						|
=========================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST  |
 | 
						|
---------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |150000   |114989|
 | 
						|
|1 | PX COORDINATOR           |        |500      |389   |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|500      |342   |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |500      |342   |
 | 
						|
|4 |    TABLE SCAN            |t1      |500      |342   |
 | 
						|
|5 | MATERIAL                 |        |300      |621   |
 | 
						|
|6 |  PX COORDINATOR          |        |300      |290   |
 | 
						|
|7 |   EXCHANGE OUT DISTR     |:EX20000|300      |205   |
 | 
						|
|8 |    PX PARTITION ITERATOR |        |300      |205   |
 | 
						|
|9 |     TABLE SCAN           |t2      |300      |205   |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(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)
 | 
						|
  4 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
  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)
 | 
						|
  9 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t1"@"SEL$1" "opt.t2"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t2"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t2"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 54(end)  ************** 
 | 
						|
 | 
						|
***************   Case 55   ***************
 | 
						|
 | 
						|
SQL: select /*+use_nl(t1) leading(t2 t1)*/ * from t1,t2 where t2.c1 > (select 1); 
 | 
						|
 | 
						|
=========================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST  |
 | 
						|
---------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |150000   |108575|
 | 
						|
|1 | PX COORDINATOR           |        |300      |290   |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|300      |205   |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |300      |205   |
 | 
						|
|4 |    TABLE SCAN            |t2      |300      |205   |
 | 
						|
|5 | MATERIAL                 |        |500      |573   |
 | 
						|
|6 |  PX COORDINATOR          |        |500      |389   |
 | 
						|
|7 |   EXCHANGE OUT DISTR     |:EX20000|500      |342   |
 | 
						|
|8 |    PX PARTITION ITERATOR |        |500      |342   |
 | 
						|
|9 |     TABLE SCAN           |t1      |500      |342   |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  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)
 | 
						|
  4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
  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)
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t2"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 55(end)  ************** 
 | 
						|
 | 
						|
***************   Case 56   ***************
 | 
						|
 | 
						|
SQL: select /*+use_nl(t1) leading(t2 t1)*/ * from t1,t2 where t1.c1 > (select 1); 
 | 
						|
 | 
						|
=========================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST  |
 | 
						|
---------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |150000   |108575|
 | 
						|
|1 | PX COORDINATOR           |        |300      |290   |
 | 
						|
|2 |  EXCHANGE OUT DISTR      |:EX10000|300      |205   |
 | 
						|
|3 |   PX PARTITION ITERATOR  |        |300      |205   |
 | 
						|
|4 |    TABLE SCAN            |t2      |300      |205   |
 | 
						|
|5 | MATERIAL                 |        |500      |573   |
 | 
						|
|6 |  PX COORDINATOR          |        |500      |389   |
 | 
						|
|7 |   EXCHANGE OUT DISTR     |:EX20000|500      |342   |
 | 
						|
|8 |    PX PARTITION ITERATOR |        |500      |342   |
 | 
						|
|9 |     TABLE SCAN           |t1      |500      |342   |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  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)
 | 
						|
  4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
  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)
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t2"@"SEL$1" "opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 56(end)  ************** 
 | 
						|
 | 
						|
***************   Case 57   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t2,t3 where (t2.c1 + t1.c1) > (select 1); 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                  |NAME    |EST. ROWS|COST   |
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|        |10000000 |7669251|
 | 
						|
|1 | NESTED-LOOP JOIN         |        |50000    |70198  |
 | 
						|
|2 |  PX COORDINATOR          |        |300      |290    |
 | 
						|
|3 |   EXCHANGE OUT DISTR     |:EX10000|300      |205    |
 | 
						|
|4 |    PX PARTITION ITERATOR |        |300      |205    |
 | 
						|
|5 |     TABLE SCAN           |t2      |300      |205    |
 | 
						|
|6 |  MATERIAL                |        |500      |573    |
 | 
						|
|7 |   PX COORDINATOR         |        |500      |389    |
 | 
						|
|8 |    EXCHANGE OUT DISTR    |:EX20000|500      |342    |
 | 
						|
|9 |     PX PARTITION ITERATOR|        |500      |342    |
 | 
						|
|10|      TABLE SCAN          |t1      |500      |342    |
 | 
						|
|11| MATERIAL                 |        |200      |426    |
 | 
						|
|12|  PX COORDINATOR          |        |200      |205    |
 | 
						|
|13|   EXCHANGE OUT DISTR     |:EX30000|200      |149    |
 | 
						|
|14|    PX PARTITION ITERATOR |        |200      |149    |
 | 
						|
|15|     TABLE SCAN           |t3      |200      |149    |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      conds([t2.c1 + t1.c1 > ?]), nl_params_(nil)
 | 
						|
  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)
 | 
						|
  5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
  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)
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
  11 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
 | 
						|
  12 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
 | 
						|
  13 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
 | 
						|
  14 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
 | 
						|
  15 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1])
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" (("opt.t2"@"SEL$1" "opt.t1"@"SEL$1" )"opt.t3"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t3"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t3"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t3"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 57(end)  ************** 
 | 
						|
 | 
						|
***************   Case 58   ***************
 | 
						|
 | 
						|
SQL: select * from t1,t2,t3 where (t2.c1 + t1.c1) > (select t4.c1 from t4, t5); 
 | 
						|
 | 
						|
================================================================
 | 
						|
|ID|OPERATOR                   |NAME         |EST. ROWS|COST   |
 | 
						|
----------------------------------------------------------------
 | 
						|
|0 |SUBPLAN FILTER             |             |10000000 |9083521|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|             |10000000 |7681810|
 | 
						|
|2 |  NESTED-LOOP JOIN         |             |50000    |82757  |
 | 
						|
|3 |   PX COORDINATOR          |             |300      |290    |
 | 
						|
|4 |    EXCHANGE OUT DISTR     |:EX10000     |300      |205    |
 | 
						|
|5 |     PX PARTITION ITERATOR |             |300      |205    |
 | 
						|
|6 |      TABLE SCAN           |t2           |300      |205    |
 | 
						|
|7 |   MATERIAL                |             |500      |573    |
 | 
						|
|8 |    PX COORDINATOR         |             |500      |389    |
 | 
						|
|9 |     EXCHANGE OUT DISTR    |:EX20000     |500      |342    |
 | 
						|
|10|      PX PARTITION ITERATOR|             |500      |342    |
 | 
						|
|11|       TABLE SCAN          |t1           |500      |342    |
 | 
						|
|12|  MATERIAL                 |             |200      |426    |
 | 
						|
|13|   PX COORDINATOR          |             |200      |205    |
 | 
						|
|14|    EXCHANGE OUT DISTR     |:EX30000     |200      |149    |
 | 
						|
|15|     PX PARTITION ITERATOR |             |200      |149    |
 | 
						|
|16|      TABLE SCAN           |t3           |200      |149    |
 | 
						|
|17| NESTED-LOOP JOIN CARTESIAN|             |30000    |21492  |
 | 
						|
|18|  PX COORDINATOR           |             |300      |191    |
 | 
						|
|19|   EXCHANGE OUT DISTR      |:EX40000     |300      |162    |
 | 
						|
|20|    PX PARTITION ITERATOR  |             |300      |162    |
 | 
						|
|21|     TABLE SCAN            |t5(idx_t5_c2)|300      |162    |
 | 
						|
|22|  MATERIAL                 |             |100      |73     |
 | 
						|
|23|   TABLE SCAN              |t4(idx_t4_c2)|100      |54     |
 | 
						|
================================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3], [t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  2 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      conds([t2.c1 + t1.c1 > ?]), nl_params_(nil)
 | 
						|
  3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  4 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), dop=1
 | 
						|
  5 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil)
 | 
						|
  6 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), 
 | 
						|
      access([t2.c1], [t2.c2], [t2.c3]), partitions(p[0-2])
 | 
						|
  7 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  8 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  9 - output([t1.c1], [t1.c2]), filter(nil), dop=1
 | 
						|
  10 - output([t1.c1], [t1.c2]), filter(nil)
 | 
						|
  11 - output([t1.c1], [t1.c2]), filter(nil), 
 | 
						|
      access([t1.c1], [t1.c2]), partitions(p[0-4])
 | 
						|
  12 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
 | 
						|
  13 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
 | 
						|
  14 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), dop=1
 | 
						|
  15 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil)
 | 
						|
  16 - output([t3.c1], [t3.c2], [t3.c3]), filter(nil), 
 | 
						|
      access([t3.c1], [t3.c2], [t3.c3]), partitions(p[0-1])
 | 
						|
  17 - output([t4.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  18 - output([1]), filter(nil)
 | 
						|
  19 - output([1]), filter(nil), dop=1
 | 
						|
  20 - output([1]), filter(nil)
 | 
						|
  21 - output([1]), filter(nil), 
 | 
						|
      access([t5.c2]), partitions(p[0-2])
 | 
						|
  22 - output([t4.c1]), filter(nil)
 | 
						|
  23 - output([t4.c1]), filter(nil), 
 | 
						|
      access([t4.c1]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" (("opt.t2"@"SEL$1" "opt.t1"@"SEL$1" )"opt.t3"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t3"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t3"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t1"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t2"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t3"@"SEL$1")
 | 
						|
      LEADING(@"SEL$2" ("opt.t5"@"SEL$2" "opt.t4"@"SEL$2" ))
 | 
						|
      USE_NL(@"SEL$2" ("opt.t4"@"SEL$2" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$2" ("opt.t4"@"SEL$2" ))
 | 
						|
      INDEX(@"SEL$2" "opt.t5"@"SEL$2" "idx_t5_c2")
 | 
						|
      INDEX(@"SEL$2" "opt.t4"@"SEL$2" "idx_t4_c2")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 58(end)  ************** 
 | 
						|
 | 
						|
***************   Case 59   ***************
 | 
						|
 | 
						|
SQL: select 1 from t1 inner join t1 t2 using(c1) where t1.c1 < (select t3.c1 from t3) and t1.c1 > (select t4.c1 from t4); 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                |NAME         |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |SUBPLAN FILTER          |             |56       |258 |
 | 
						|
|1 | PX COORDINATOR         |             |56       |48  |
 | 
						|
|2 |  EXCHANGE OUT DISTR    |:EX10000     |56       |45  |
 | 
						|
|3 |   PX PARTITION ITERATOR|             |56       |45  |
 | 
						|
|4 |    TABLE SCAN          |t1           |56       |45  |
 | 
						|
|5 | PX COORDINATOR         |             |200      |149 |
 | 
						|
|6 |  EXCHANGE OUT DISTR    |:EX20000     |200      |140 |
 | 
						|
|7 |   PX PARTITION ITERATOR|             |200      |140 |
 | 
						|
|8 |    TABLE SCAN          |t3           |200      |140 |
 | 
						|
|9 | TABLE SCAN             |t4(idx_t4_c2)|100      |54  |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)], [subquery(2)]), init_plan_idxs_(nil)
 | 
						|
  1 - output([1]), filter(nil)
 | 
						|
  2 - output([1]), filter(nil), dop=1
 | 
						|
  3 - output([1]), filter(nil)
 | 
						|
  4 - output([1]), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4])
 | 
						|
  5 - output([t3.c1]), filter(nil)
 | 
						|
  6 - output([t3.c1]), filter(nil), dop=1
 | 
						|
  7 - output([t3.c1]), filter(nil)
 | 
						|
  8 - output([t3.c1]), filter(nil), 
 | 
						|
      access([t3.c1]), partitions(p[0-1])
 | 
						|
  9 - output([t4.c1]), filter(nil), 
 | 
						|
      access([t4.c1]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FULL(@"SEL$2" "opt.t3"@"SEL$2")
 | 
						|
      INDEX(@"SEL$3" "opt.t4"@"SEL$3" "idx_t4_c2")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 59(end)  ************** 
 | 
						|
 | 
						|
***************   Case 60   ***************
 | 
						|
 | 
						|
SQL: select 1 from t1 inner join t1 t2 using(c1) where t1.c1 < (select t3.c1 from t3) order by (select t4.c1 from t4); 
 | 
						|
 | 
						|
===========================================================
 | 
						|
|ID|OPERATOR                 |NAME         |EST. ROWS|COST|
 | 
						|
-----------------------------------------------------------
 | 
						|
|0 |SUBPLAN FILTER           |             |167      |391 |
 | 
						|
|1 | SUBPLAN FILTER          |             |167      |314 |
 | 
						|
|2 |  PX COORDINATOR         |             |167      |142 |
 | 
						|
|3 |   EXCHANGE OUT DISTR    |:EX10000     |167      |134 |
 | 
						|
|4 |    PX PARTITION ITERATOR|             |167      |134 |
 | 
						|
|5 |     TABLE SCAN          |t1           |167      |134 |
 | 
						|
|6 |  PX COORDINATOR         |             |200      |149 |
 | 
						|
|7 |   EXCHANGE OUT DISTR    |:EX20000     |200      |140 |
 | 
						|
|8 |    PX PARTITION ITERATOR|             |200      |140 |
 | 
						|
|9 |     TABLE SCAN          |t3           |200      |140 |
 | 
						|
|10| TABLE SCAN              |t4(idx_t4_c2)|100      |54  |
 | 
						|
===========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  1 - output([1]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  2 - output([1]), filter(nil)
 | 
						|
  3 - output([1]), filter(nil), dop=1
 | 
						|
  4 - output([1]), filter(nil)
 | 
						|
  5 - output([1]), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4])
 | 
						|
  6 - output([t3.c1]), filter(nil)
 | 
						|
  7 - output([t3.c1]), filter(nil), dop=1
 | 
						|
  8 - output([t3.c1]), filter(nil)
 | 
						|
  9 - output([t3.c1]), filter(nil), 
 | 
						|
      access([t3.c1]), partitions(p[0-1])
 | 
						|
  10 - output([t4.c1]), filter(nil), 
 | 
						|
      access([t4.c1]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      FULL(@"SEL$2" "opt.t3"@"SEL$2")
 | 
						|
      INDEX(@"SEL$3" "opt.t4"@"SEL$3" "idx_t4_c2")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 60(end)  ************** 
 | 
						|
 | 
						|
***************   Case 61   ***************
 | 
						|
 | 
						|
SQL: select 1 from t1 inner join t1 t2 using(c1) where t1.c1 < (select t4.c1 from t3, t4); 
 | 
						|
 | 
						|
==============================================================
 | 
						|
|ID|OPERATOR                   |NAME         |EST. ROWS|COST |
 | 
						|
--------------------------------------------------------------
 | 
						|
|0 |SUBPLAN FILTER             |             |167      |14539|
 | 
						|
|1 | PX COORDINATOR            |             |167      |142  |
 | 
						|
|2 |  EXCHANGE OUT DISTR       |:EX10000     |167      |134  |
 | 
						|
|3 |   PX PARTITION ITERATOR   |             |167      |134  |
 | 
						|
|4 |    TABLE SCAN             |t1           |167      |134  |
 | 
						|
|5 | NESTED-LOOP JOIN CARTESIAN|             |20000    |14374|
 | 
						|
|6 |  PX COORDINATOR           |             |200      |149  |
 | 
						|
|7 |   EXCHANGE OUT DISTR      |:EX20000     |200      |140  |
 | 
						|
|8 |    PX PARTITION ITERATOR  |             |200      |140  |
 | 
						|
|9 |     TABLE SCAN            |t3           |200      |140  |
 | 
						|
|10|  MATERIAL                 |             |100      |73   |
 | 
						|
|11|   TABLE SCAN              |t4(idx_t4_c2)|100      |54   |
 | 
						|
==============================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([?]), filter(nil), 
 | 
						|
      exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil)
 | 
						|
  1 - output([1]), filter(nil)
 | 
						|
  2 - output([1]), filter(nil), dop=1
 | 
						|
  3 - output([1]), filter(nil)
 | 
						|
  4 - output([1]), filter(nil), 
 | 
						|
      access([t1.c1]), partitions(p[0-4])
 | 
						|
  5 - output([t4.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  6 - output([1]), filter(nil)
 | 
						|
  7 - output([1]), filter(nil), dop=1
 | 
						|
  8 - output([1]), filter(nil)
 | 
						|
  9 - output([1]), filter(nil), 
 | 
						|
      access([t3.c1]), partitions(p[0-1])
 | 
						|
  10 - output([t4.c1]), filter(nil)
 | 
						|
  11 - output([t4.c1]), filter(nil), 
 | 
						|
      access([t4.c1]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t1"@"SEL$1")
 | 
						|
      LEADING(@"SEL$2" ("opt.t3"@"SEL$2" "opt.t4"@"SEL$2" ))
 | 
						|
      USE_NL(@"SEL$2" ("opt.t4"@"SEL$2" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$2" ("opt.t4"@"SEL$2" ))
 | 
						|
      FULL(@"SEL$2" "opt.t3"@"SEL$2")
 | 
						|
      INDEX(@"SEL$2" "opt.t4"@"SEL$2" "idx_t4_c2")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 61(end)  ************** 
 | 
						|
 | 
						|
***************   Case 62   ***************
 | 
						|
 | 
						|
SQL: select /*+qb_name(select_1)*/* from t4; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |92  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t4"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 62(end)  ************** 
 | 
						|
 | 
						|
***************   Case 63   ***************
 | 
						|
 | 
						|
SQL: select /*+qb_name(select_1) qb_name(select_2)*/* from t4; 
 | 
						|
 | 
						|
===================================
 | 
						|
|ID|OPERATOR  |NAME|EST. ROWS|COST|
 | 
						|
-----------------------------------
 | 
						|
|0 |TABLE SCAN|t4  |100      |92  |
 | 
						|
===================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t4.c1], [t4.c2], [t4.c3]), filter(nil), 
 | 
						|
      access([t4.c1], [t4.c2], [t4.c3]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      FULL(@"SEL$1" "opt.t4"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 63(end)  ************** 
 | 
						|
 | 
						|
***************   Case 64   ***************
 | 
						|
 | 
						|
SQL: select t20.c1 from t20 join t0 where t0.c1 in (select t7.c1 from t7 join t8); 
 | 
						|
 | 
						|
========================================================
 | 
						|
|ID|OPERATOR                     |NAME |EST. ROWS|COST |
 | 
						|
--------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN   |     |10000    |10934|
 | 
						|
|1 | NESTED-LOOP SEMI JOIN       |     |100      |3745 |
 | 
						|
|2 |  TABLE SCAN                 |t0   |100      |90   |
 | 
						|
|3 |  SUBPLAN SCAN               |VIEW1|1        |36   |
 | 
						|
|4 |   NESTED-LOOP JOIN CARTESIAN|     |1        |36   |
 | 
						|
|5 |    TABLE GET                |t7   |1        |36   |
 | 
						|
|6 |    TABLE SCAN               |t8   |100      |88   |
 | 
						|
|7 | MATERIAL                    |     |100      |113  |
 | 
						|
|8 |  TABLE SCAN                 |t20  |100      |95   |
 | 
						|
========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t20.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_([t0.c1])
 | 
						|
  2 - output([t0.c1]), filter(nil), 
 | 
						|
      access([t0.c1]), partitions(p0)
 | 
						|
  3 - output([1]), filter(nil), 
 | 
						|
      access([VIEW1.c1])
 | 
						|
  4 - output([t7.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  5 - output([t7.c1]), filter(nil), 
 | 
						|
      access([t7.c1]), partitions(p0)
 | 
						|
  6 - output([1]), filter(nil), 
 | 
						|
      access([t8.c1]), partitions(p0)
 | 
						|
  7 - output([t20.c1]), filter(nil)
 | 
						|
  8 - output([t20.c1]), filter(nil), 
 | 
						|
      access([t20.c1]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" (("opt.t0"@"SEL$1" "VIEW1"@"SEL$1" )"opt.t20"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t20"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t20"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("VIEW1"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("VIEW1"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t0"@"SEL$1")
 | 
						|
      LEADING(@"SEL$2" ("opt.t7"@"SEL$2" "opt.t8"@"SEL$2" ))
 | 
						|
      USE_NL(@"SEL$2" ("opt.t8"@"SEL$2" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$2" ("opt.t8"@"SEL$2" ))
 | 
						|
      FULL(@"SEL$2" "opt.t7"@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t8"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt.t20"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 64(end)  ************** 
 | 
						|
 | 
						|
***************   Case 65   ***************
 | 
						|
 | 
						|
SQL: select t20.c1 from t20 join t0 join (t7 left join t8 on t7.c1 = t8.c1); 
 | 
						|
 | 
						|
======================================================
 | 
						|
|ID|OPERATOR                   |NAME|EST. ROWS|COST  |
 | 
						|
------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN |    |1000000  |715022|
 | 
						|
|1 | NESTED-LOOP JOIN CARTESIAN|    |10000    |7277  |
 | 
						|
|2 |  TABLE SCAN               |t20 |100      |95    |
 | 
						|
|3 |  MATERIAL                 |    |100      |106   |
 | 
						|
|4 |   TABLE SCAN              |t0  |100      |88    |
 | 
						|
|5 | MATERIAL                  |    |100      |106   |
 | 
						|
|6 |  TABLE SCAN               |t7  |100      |88    |
 | 
						|
======================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t20.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([t20.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  2 - output([t20.c1]), filter(nil), 
 | 
						|
      access([t20.c1]), partitions(p0)
 | 
						|
  3 - output([1]), filter(nil)
 | 
						|
  4 - output([1]), filter(nil), 
 | 
						|
      access([t0.pk]), partitions(p0)
 | 
						|
  5 - output([1]), filter(nil)
 | 
						|
  6 - output([1]), filter(nil), 
 | 
						|
      access([t7.c1]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" (("opt.t20"@"SEL$1" "opt.t0"@"SEL$1" )"opt.t7"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t7"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t7"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t0"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t0"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t20"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t0"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t7"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 65(end)  ************** 
 | 
						|
 | 
						|
***************   Case 66   ***************
 | 
						|
 | 
						|
SQL: select t20.c1 from t20 left join (t7 left join t8 on t7.c1 = t8.c1) on t20.c1 = t7.c1 join t0; 
 | 
						|
 | 
						|
===================================================
 | 
						|
|ID|OPERATOR                  |NAME|EST. ROWS|COST|
 | 
						|
---------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN|    |10000    |7277|
 | 
						|
|1 | TABLE SCAN               |t20 |100      |95  |
 | 
						|
|2 | MATERIAL                 |    |100      |106 |
 | 
						|
|3 |  TABLE SCAN              |t0  |100      |88  |
 | 
						|
===================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t20.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([t20.c1]), filter(nil), 
 | 
						|
      access([t20.c1]), partitions(p0)
 | 
						|
  2 - output([1]), filter(nil)
 | 
						|
  3 - output([1]), filter(nil), 
 | 
						|
      access([t0.pk]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t20"@"SEL$1" "opt.t0"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t0"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t0"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t20"@"SEL$1")
 | 
						|
      FULL(@"SEL$1" "opt.t0"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 66(end)  ************** 
 | 
						|
 | 
						|
***************   Case 67   ***************
 | 
						|
 | 
						|
SQL: select t20.c1 from t20 join t0 where t0.c1 in (select max(t7.c1) from t7 join t8); 
 | 
						|
 | 
						|
=========================================================
 | 
						|
|ID|OPERATOR                       |NAME |EST. ROWS|COST|
 | 
						|
---------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN     |     |100      |9459|
 | 
						|
|1 | TABLE SCAN                    |t20  |100      |95  |
 | 
						|
|2 | MATERIAL                      |     |1        |9293|
 | 
						|
|3 |  NESTED-LOOP JOIN             |     |1        |9293|
 | 
						|
|4 |   SUBPLAN SCAN                |VIEW1|1        |9181|
 | 
						|
|5 |    SCALAR GROUP BY            |     |1        |9180|
 | 
						|
|6 |     NESTED-LOOP JOIN CARTESIAN|     |10000    |7270|
 | 
						|
|7 |      TABLE SCAN               |t7   |100      |88  |
 | 
						|
|8 |      MATERIAL                 |     |100      |106 |
 | 
						|
|9 |       TABLE SCAN              |t8   |100      |88  |
 | 
						|
|10|   TABLE SCAN                  |t0   |100      |90  |
 | 
						|
=========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t20.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([t20.c1]), filter(nil), 
 | 
						|
      access([t20.c1]), partitions(p0)
 | 
						|
  2 - output([1]), filter(nil)
 | 
						|
  3 - output([1]), filter(nil), 
 | 
						|
      conds([t0.c1 = VIEW1.max(t7.c1)]), nl_params_(nil)
 | 
						|
  4 - output([VIEW1.max(t7.c1)]), filter(nil), 
 | 
						|
      access([VIEW1.max(t7.c1)])
 | 
						|
  5 - output([T_FUN_MAX(t7.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(t7.c1)])
 | 
						|
  6 - output([t7.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  7 - output([t7.c1]), filter(nil), 
 | 
						|
      access([t7.c1]), partitions(p0)
 | 
						|
  8 - output([1]), filter(nil)
 | 
						|
  9 - output([1]), filter(nil), 
 | 
						|
      access([t8.c1]), partitions(p0)
 | 
						|
  10 - output([t0.c1]), filter(nil), 
 | 
						|
      access([t0.c1]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t20"@"SEL$1" ("VIEW1"@"SEL$1" "opt.t0"@"SEL$1" )))
 | 
						|
      USE_NL(@"SEL$1" ("VIEW1"@"SEL$1" "opt.t0"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("VIEW1"@"SEL$1" "opt.t0"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t20"@"SEL$1")
 | 
						|
      USE_NL(@"SEL$1" ("opt.t0"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t0"@"SEL$1" ))
 | 
						|
      LEADING(@"SEL$2" ("opt.t7"@"SEL$2" "opt.t8"@"SEL$2" ))
 | 
						|
      USE_NL(@"SEL$2" ("opt.t8"@"SEL$2" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$2" ("opt.t8"@"SEL$2" ))
 | 
						|
      FULL(@"SEL$2" "opt.t7"@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t8"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt.t0"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 67(end)  ************** 
 | 
						|
 | 
						|
***************   Case 68   ***************
 | 
						|
 | 
						|
SQL: select t20.c1 from t20 join t0 where t0.c1 in (select max(t7.c1) from t7 join t8) and t0.c1 in (select max(t7.c2) from t7); 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                        |NAME |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN      |     |1        |9497|
 | 
						|
|1 | TABLE SCAN                     |t20  |100      |95  |
 | 
						|
|2 | MATERIAL                       |     |1        |9402|
 | 
						|
|3 |  NESTED-LOOP JOIN              |     |1        |9402|
 | 
						|
|4 |   SUBPLAN SCAN                 |VIEW2|1        |109 |
 | 
						|
|5 |    SCALAR GROUP BY             |     |1        |109 |
 | 
						|
|6 |     TABLE SCAN                 |t7   |100      |90  |
 | 
						|
|7 |   NESTED-LOOP JOIN             |     |1        |9293|
 | 
						|
|8 |    SUBPLAN SCAN                |VIEW1|1        |9181|
 | 
						|
|9 |     SCALAR GROUP BY            |     |1        |9180|
 | 
						|
|10|      NESTED-LOOP JOIN CARTESIAN|     |10000    |7270|
 | 
						|
|11|       TABLE SCAN               |t7   |100      |88  |
 | 
						|
|12|       MATERIAL                 |     |100      |106 |
 | 
						|
|13|        TABLE SCAN              |t8   |100      |88  |
 | 
						|
|14|    TABLE SCAN                  |t0   |100      |90  |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t20.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([t20.c1]), filter(nil), 
 | 
						|
      access([t20.c1]), partitions(p0)
 | 
						|
  2 - output([1]), filter(nil)
 | 
						|
  3 - output([1]), filter(nil), 
 | 
						|
      conds([t0.c1 = VIEW2.max(t7.c2)]), nl_params_(nil)
 | 
						|
  4 - output([VIEW2.max(t7.c2)]), filter(nil), 
 | 
						|
      access([VIEW2.max(t7.c2)])
 | 
						|
  5 - output([T_FUN_MAX(t7.c2)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(t7.c2)])
 | 
						|
  6 - output([t7.c2]), filter(nil), 
 | 
						|
      access([t7.c2]), partitions(p0)
 | 
						|
  7 - output([t0.c1]), filter(nil), 
 | 
						|
      conds([t0.c1 = VIEW1.max(t7.c1)]), nl_params_(nil)
 | 
						|
  8 - output([VIEW1.max(t7.c1)]), filter(nil), 
 | 
						|
      access([VIEW1.max(t7.c1)])
 | 
						|
  9 - output([T_FUN_MAX(t7.c1)]), filter(nil), 
 | 
						|
      group(nil), agg_func([T_FUN_MAX(t7.c1)])
 | 
						|
  10 - output([t7.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  11 - output([t7.c1]), filter(nil), 
 | 
						|
      access([t7.c1]), partitions(p0)
 | 
						|
  12 - output([1]), filter(nil)
 | 
						|
  13 - output([1]), filter(nil), 
 | 
						|
      access([t8.c1]), partitions(p0)
 | 
						|
  14 - output([t0.c1]), filter(nil), 
 | 
						|
      access([t0.c1]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" ("opt.t20"@"SEL$1" ("VIEW2"@"SEL$1" ("VIEW1"@"SEL$1" "opt.t0"@"SEL$1" ))))
 | 
						|
      USE_NL(@"SEL$1" ("VIEW2"@"SEL$1" "VIEW1"@"SEL$1" "opt.t0"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("VIEW2"@"SEL$1" "VIEW1"@"SEL$1" "opt.t0"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t20"@"SEL$1")
 | 
						|
      USE_NL(@"SEL$1" ("VIEW1"@"SEL$1" "opt.t0"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("VIEW1"@"SEL$1" "opt.t0"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$3" "opt.t7"@"SEL$3")
 | 
						|
      USE_NL(@"SEL$1" ("opt.t0"@"SEL$1" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t0"@"SEL$1" ))
 | 
						|
      LEADING(@"SEL$2" ("opt.t7"@"SEL$2" "opt.t8"@"SEL$2" ))
 | 
						|
      USE_NL(@"SEL$2" ("opt.t8"@"SEL$2" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$2" ("opt.t8"@"SEL$2" ))
 | 
						|
      FULL(@"SEL$2" "opt.t7"@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t8"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt.t0"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 68(end)  ************** 
 | 
						|
 | 
						|
***************   Case 69   ***************
 | 
						|
 | 
						|
SQL: select t20.c1 from t20 join t0 where 1 in (select t7.c1 from t7 join t8); 
 | 
						|
 | 
						|
==========================================================
 | 
						|
|ID|OPERATOR                        |NAME |EST. ROWS|COST|
 | 
						|
----------------------------------------------------------
 | 
						|
|0 |NESTED-LOOP JOIN CARTESIAN      |     |10000    |9547|
 | 
						|
|1 | NESTED-LOOP SEMI JOIN CARTESIAN|     |100      |2365|
 | 
						|
|2 |  TABLE SCAN                    |t20  |100      |95  |
 | 
						|
|3 |  MATERIAL                      |     |100      |237 |
 | 
						|
|4 |   SUBPLAN SCAN                 |VIEW1|100      |219 |
 | 
						|
|5 |    NESTED-LOOP JOIN CARTESIAN  |     |100      |205 |
 | 
						|
|6 |     TABLE GET                  |t7   |1        |52  |
 | 
						|
|7 |     TABLE SCAN                 |t8   |100      |88  |
 | 
						|
|8 | MATERIAL                       |     |100      |106 |
 | 
						|
|9 |  TABLE SCAN                    |t0   |100      |88  |
 | 
						|
==========================================================
 | 
						|
 | 
						|
Outputs & filters: 
 | 
						|
-------------------------------------
 | 
						|
  0 - output([t20.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  1 - output([t20.c1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  2 - output([t20.c1]), filter(nil), 
 | 
						|
      access([t20.c1]), partitions(p0)
 | 
						|
  3 - output([1]), filter(nil)
 | 
						|
  4 - output([1]), filter(nil), 
 | 
						|
      access(nil)
 | 
						|
  5 - output([1]), filter(nil), 
 | 
						|
      conds(nil), nl_params_(nil)
 | 
						|
  6 - output([1]), filter(nil), 
 | 
						|
      access([t7.c1]), partitions(p0)
 | 
						|
  7 - output([1]), filter(nil), 
 | 
						|
      access([t8.c1]), partitions(p0)
 | 
						|
  8 - output([1]), filter(nil)
 | 
						|
  9 - output([1]), filter(nil), 
 | 
						|
      access([t0.pk]), partitions(p0)
 | 
						|
 | 
						|
Outline Data:
 | 
						|
-------------------------------------
 | 
						|
  /*+
 | 
						|
      BEGIN_OUTLINE_DATA
 | 
						|
      LEADING(@"SEL$1" (("opt.t20"@"SEL$1" "VIEW1"@"SEL$1" )"opt.t0"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("opt.t0"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("opt.t0"@"SEL$1" ))
 | 
						|
      USE_NL(@"SEL$1" ("VIEW1"@"SEL$1" ))
 | 
						|
      USE_NL_MATERIALIZATION(@"SEL$1" ("VIEW1"@"SEL$1" ))
 | 
						|
      FULL(@"SEL$1" "opt.t20"@"SEL$1")
 | 
						|
      LEADING(@"SEL$2" ("opt.t7"@"SEL$2" "opt.t8"@"SEL$2" ))
 | 
						|
      USE_NL(@"SEL$2" ("opt.t8"@"SEL$2" ))
 | 
						|
      NO_USE_NL_MATERIALIZATION(@"SEL$2" ("opt.t8"@"SEL$2" ))
 | 
						|
      FULL(@"SEL$2" "opt.t7"@"SEL$2")
 | 
						|
      FULL(@"SEL$2" "opt.t8"@"SEL$2")
 | 
						|
      FULL(@"SEL$1" "opt.t0"@"SEL$1")
 | 
						|
      END_OUTLINE_DATA
 | 
						|
  */
 | 
						|
 | 
						|
*************** Case 69(end)  ************** 
 | 
						|
 |