QUERY PLAN
------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Sort Key: t2.c1
-> Seq Scan on t2
-> Index Scan using t4_i1 on t4
- Index Cond: (c1 = t3.c1)
-(13 rows)
+ Index Cond: (c1 = t1.c1)
+(12 rows)
----
---- No. L-1-1 specified pattern of the object name
QUERY PLAN
----------------------------------------------------
Nested Loop
- Join Filter: (t_1.c1 = t_4.c1)
-> Merge Join
Merge Cond: (t_1.c1 = t_2.c1)
-> Merge Join
Sort Key: t_2.c1
-> Seq Scan on t2 t_2
-> Index Scan using t4_i1 on t4 t_4
- Index Cond: (c1 = t_3.c1)
-(13 rows)
+ Index Cond: (c1 = t_1.c1)
+(12 rows)
-- No. L-1-1-3
/*+Leading(t_4 t_2 t_3 t_1)*/
QUERY PLAN
------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Sort Key: t2.c1
-> Seq Scan on t2
-> Index Scan using t4_i1 on t4
- Index Cond: (c1 = t3.c1)
-(13 rows)
+ Index Cond: (c1 = t1.c1)
+(12 rows)
----
---- No. L-1-3 table doesn't exist in the hint option
QUERY PLAN
------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Sort Key: t2.c1
-> Seq Scan on t2
-> Index Scan using t4_i1 on t4
- Index Cond: (c1 = t3.c1)
-(13 rows)
+ Index Cond: (c1 = t1.c1)
+(12 rows)
----
---- No. L-1-4 conflict table name
QUERY PLAN
------------------------------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = t4.c1)
InitPlan 1 (returns $1)
-> Aggregate
-> Nested Loop
- Join Filter: (t1_1.c1 = t4_1.c1)
-> Merge Join
Merge Cond: (t1_1.c1 = t2_1.c1)
-> Merge Join
Sort Key: t2_1.c1
-> Seq Scan on t2 t2_1
-> Index Only Scan using t4_i1 on t4 t4_1
- Index Cond: (c1 = t3_1.c1)
+ Index Cond: (c1 = t1_1.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Sort Key: t2.c1
-> Seq Scan on t2
-> Index Scan using t4_i1 on t4
- Index Cond: (c1 = t3.c1)
-(28 rows)
+ Index Cond: (c1 = t1.c1)
+(26 rows)
/*+Leading(t4 t2 t3 t1)*/
EXPLAIN (COSTS false) SELECT *, (SELECT max(t1.c1) FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1) FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
QUERY PLAN
------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Sort Key: t2.c1
-> Seq Scan on t2
-> Index Scan using t4_i1 on t4
- Index Cond: (c1 = t3.c1)
-(13 rows)
+ Index Cond: (c1 = t1.c1)
+(12 rows)
/*+Leading(t4 t2 t3 t4)*/
EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
QUERY PLAN
------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Sort Key: t2.c1
-> Seq Scan on t2
-> Index Scan using t4_i1 on t4
- Index Cond: (c1 = t3.c1)
-(13 rows)
+ Index Cond: (c1 = t1.c1)
+(12 rows)
-- No. L-1-5-3
/*+Leading(t4 t2 t3 t1 t4 t2 t3 t1)*/
QUERY PLAN
------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Sort Key: t2.c1
-> Seq Scan on t2
-> Index Scan using t4_i1 on t4
- Index Cond: (c1 = t3.c1)
-(13 rows)
+ Index Cond: (c1 = t1.c1)
+(12 rows)
/*+Leading(t4 t2 t2 t4)*/
EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
QUERY PLAN
------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Sort Key: t2.c1
-> Seq Scan on t2
-> Index Scan using t4_i1 on t4
- Index Cond: (c1 = t3.c1)
-(13 rows)
+ Index Cond: (c1 = t1.c1)
+(12 rows)
----
---- No. L-1-6 object type for the hint
QUERY PLAN
------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Sort Key: t2.c1
-> Seq Scan on t2
-> Index Only Scan using t4_i1 on t4
- Index Cond: (c1 = t3.c1)
-(13 rows)
+ Index Cond: (c1 = t1.c1)
+(12 rows)
/*+Leading(st4 t2 t3 t1)*/
EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, (SELECT t4.c1 FROM s1.t4) st4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = st4.c1;
QUERY PLAN
------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Sort Key: t2.c1
-> Seq Scan on t2
-> Index Only Scan using t4_i1 on t4
- Index Cond: (c1 = t3.c1)
-(13 rows)
+ Index Cond: (c1 = t1.c1)
+(12 rows)
/*+Leading(t4 t2 t3 t1)*/
EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, (SELECT t4.c1 FROM s1.t4) st4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = st4.c1;
QUERY PLAN
------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Sort Key: t2.c1
-> Seq Scan on t2
-> Index Scan using t4_i1 on t4
- Index Cond: (c1 = t3.c1)
-(13 rows)
+ Index Cond: (c1 = t1.c1)
+(12 rows)
-- No. L-3-6-2
/*+Leading((t2 t3))*/
QUERY PLAN
------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Sort Key: t2.c1
-> Seq Scan on t2
-> Index Scan using t4_i1 on t4
- Index Cond: (c1 = t3.c1)
-(13 rows)
+ Index Cond: (c1 = t1.c1)
+(12 rows)
-- No. L-3-6-4
/*+Leading(((t1 t2) (t3 t4)))*/