-- ambigous error
EXPLAIN (COSTS false) SELECT * FROM t1, s0.t1, t2 WHERE public.t1.id = s0.t1.id AND public.t1.id = t2.id;
- QUERY PLAN
------------------------------------------------
+ QUERY PLAN
+-------------------------------------------------
Merge Join
Merge Cond: (t1.id = t2.id)
-> Merge Join
- Merge Cond: (t1.id = t1.id)
- -> Index Scan using t1_pkey on t1
+ Merge Cond: (t1.id = t1_1.id)
-> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_pkey on t1 t1_1
-> Index Scan using t2_pkey on t2
(7 rows)
error hint:
NestLoop(t1 t2)
- QUERY PLAN
------------------------------------------------
+ QUERY PLAN
+-------------------------------------------------
Merge Join
Merge Cond: (t1.id = t2.id)
-> Merge Join
- Merge Cond: (t1.id = t1.id)
- -> Index Scan using t1_pkey on t1
+ Merge Cond: (t1.id = t1_1.id)
-> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_pkey on t1 t1_1
-> Index Scan using t2_pkey on t2
(7 rows)
error hint:
Leading(t1 t2 t1)
- QUERY PLAN
------------------------------------------------
+ QUERY PLAN
+-------------------------------------------------
Merge Join
Merge Cond: (t1.id = t2.id)
-> Merge Join
- Merge Cond: (t1.id = t1.id)
- -> Index Scan using t1_pkey on t1
+ Merge Cond: (t1.id = t1_1.id)
-> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_pkey on t1 t1_1
-> Index Scan using t2_pkey on t2
(7 rows)
-- No. J-1-4-2
EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = s2.t1.c1;
- QUERY PLAN
--------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
- Merge Cond: (t1.c1 = t1.c1)
+ Merge Cond: (t1.c1 = t1_1.c1)
-> Index Scan using t1_i1 on t1
-> Sort
- Sort Key: t1.c1
- -> Seq Scan on t1
+ Sort Key: t1_1.c1
+ -> Seq Scan on t1 t1_1
(6 rows)
/*+HashJoin(t1 t1)*/
error hint:
HashJoin(t1 t1)
- QUERY PLAN
--------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
- Merge Cond: (t1.c1 = t1.c1)
+ Merge Cond: (t1.c1 = t1_1.c1)
-> Index Scan using t1_i1 on t1
-> Sort
- Sort Key: t1.c1
- -> Seq Scan on t1
+ Sort Key: t1_1.c1
+ -> Seq Scan on t1 t1_1
(6 rows)
/*+HashJoin(s1.t1 s2.t1)*/
duplication hint:
error hint:
- QUERY PLAN
--------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
- Merge Cond: (t1.c1 = t1.c1)
+ Merge Cond: (t1.c1 = t1_1.c1)
-> Index Scan using t1_i1 on t1
-> Sort
- Sort Key: t1.c1
- -> Seq Scan on t1
+ Sort Key: t1_1.c1
+ -> Seq Scan on t1 t1_1
(6 rows)
EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 s2t1 WHERE s1.t1.c1 = s2t1.c1;
-- No. J-1-4-3
EXPLAIN (COSTS false) SELECT *, (SELECT max(t1.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
- QUERY PLAN
--------------------------------------------------------
+ QUERY PLAN
+------------------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
InitPlan 1 (returns $0)
-> Aggregate
-> Merge Join
- Merge Cond: (t1.c1 = t2.c1)
- -> Index Only Scan using t1_i1 on t1
+ Merge Cond: (t1_1.c1 = t2_1.c1)
+ -> Index Only Scan using t1_i1 on t1 t1_1
-> Sort
- Sort Key: t2.c1
- -> Seq Scan on t2
+ Sort Key: t2_1.c1
+ -> Seq Scan on t2 t2_1
-> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
duplication hint:
error hint:
- QUERY PLAN
---------------------------------------------------
+ QUERY PLAN
+------------------------------------------------
Hash Join
Hash Cond: (t1.c1 = t2.c1)
InitPlan 1 (returns $0)
-> Aggregate
-> Hash Join
- Hash Cond: (t1.c1 = t2.c1)
- -> Seq Scan on t1
+ Hash Cond: (t1_1.c1 = t2_1.c1)
+ -> Seq Scan on t1 t1_1
-> Hash
- -> Seq Scan on t2
+ -> Seq Scan on t2 t2_1
-> Seq Scan on t1
-> Hash
-> Seq Scan on t2
-- No. J-1-6-2
EXPLAIN (COSTS false) SELECT * FROM s1.p1 t1, s1.p1 t2 WHERE t1.c1 = t2.c1;
- QUERY PLAN
----------------------------------------
+ QUERY PLAN
+-----------------------------------------
Hash Join
Hash Cond: (t1.c1 = t2.c1)
-> Append
-> Seq Scan on p1 t1
- -> Seq Scan on p1c1 t1
- -> Seq Scan on p1c2 t1
- -> Seq Scan on p1c3 t1
+ -> Seq Scan on p1c1 t1_1
+ -> Seq Scan on p1c2 t1_2
+ -> Seq Scan on p1c3 t1_3
-> Hash
-> Append
-> Seq Scan on p1 t2
- -> Seq Scan on p1c1 t2
- -> Seq Scan on p1c2 t2
- -> Seq Scan on p1c3 t2
+ -> Seq Scan on p1c1 t2_1
+ -> Seq Scan on p1c2 t2_2
+ -> Seq Scan on p1c3 t2_3
(13 rows)
/*+NestLoop(t1 t2)*/
duplication hint:
error hint:
- QUERY PLAN
-------------------------------------------------
+ QUERY PLAN
+--------------------------------------------------
Nested Loop
-> Append
-> Seq Scan on p1 t1
- -> Seq Scan on p1c1 t1
- -> Seq Scan on p1c2 t1
- -> Seq Scan on p1c3 t1
+ -> Seq Scan on p1c1 t1_1
+ -> Seq Scan on p1c2 t1_2
+ -> Seq Scan on p1c3 t1_3
-> Append
-> Seq Scan on p1 t2
Filter: (t1.c1 = c1)
- -> Index Scan using p1c1_i on p1c1 t2
+ -> Index Scan using p1c1_i on p1c1 t2_1
Index Cond: (c1 = t1.c1)
- -> Index Scan using p1c2_i on p1c2 t2
+ -> Index Scan using p1c2_i on p1c2 t2_2
Index Cond: (c1 = t1.c1)
- -> Index Scan using p1c3_i on p1c3 t2
+ -> Index Scan using p1c3_i on p1c3 t2_3
Index Cond: (c1 = t1.c1)
(15 rows)
-- No. J-1-6-9
EXPLAIN (COSTS false) WITH c1(c1) AS (SELECT max(t1.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1) SELECT * FROM s1.t1, c1 WHERE t1.c1 = c1.c1;
- QUERY PLAN
--------------------------------------------------------
+ QUERY PLAN
+------------------------------------------------------------
Nested Loop
CTE c1
-> Aggregate
-> Merge Join
- Merge Cond: (s1.t1.c1 = t2.c1)
- -> Index Only Scan using t1_i1 on t1
+ Merge Cond: (t1_1.c1 = t2.c1)
+ -> Index Only Scan using t1_i1 on t1 t1_1
-> Sort
Sort Key: t2.c1
-> Seq Scan on t2
duplication hint:
error hint:
- QUERY PLAN
--------------------------------------------------------
+ QUERY PLAN
+------------------------------------------------------------
Hash Join
- Hash Cond: (s1.t1.c1 = c1.c1)
+ Hash Cond: (t1.c1 = c1.c1)
CTE c1
-> Aggregate
-> Nested Loop
-> Seq Scan on t2
- -> Index Only Scan using t1_i1 on t1
+ -> Index Only Scan using t1_i1 on t1 t1_1
Index Cond: (c1 = t2.c1)
-> Seq Scan on t1
-> Hash
-- No. J-1-6-10
EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
- QUERY PLAN
-----------------------------------
+ QUERY PLAN
+------------------------------------
Hash Join
- Hash Cond: (v1t1.c1 = v1t1.c1)
+ Hash Cond: (v1t1.c1 = v1t1_1.c1)
-> Seq Scan on t1 v1t1
-> Hash
- -> Seq Scan on t1 v1t1
+ -> Seq Scan on t1 v1t1_1
(5 rows)
/*+NestLoop(t1 t2)*/
duplication hint:
error hint:
- QUERY PLAN
-----------------------------------
+ QUERY PLAN
+------------------------------------
Hash Join
- Hash Cond: (v1t1.c1 = v1t1.c1)
+ Hash Cond: (v1t1.c1 = v1t1_1.c1)
-> Seq Scan on t1 v1t1
-> Hash
- -> Seq Scan on t1 v1t1
+ -> Seq Scan on t1 v1t1_1
(5 rows)
/*+NestLoop(v1t1 v1t1_)*/
-- No. J-2-3-4
EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
- QUERY PLAN
-----------------------------------
+ QUERY PLAN
+------------------------------------
Hash Join
- Hash Cond: (v1t1.c1 = v1t1.c1)
+ Hash Cond: (v1t1.c1 = v1t1_1.c1)
-> Seq Scan on t1 v1t1
-> Hash
- -> Seq Scan on t1 v1t1
+ -> Seq Scan on t1 v1t1_1
(5 rows)
/*+HashJoin(v1t1 v1t1)*/
error hint:
HashJoin(v1t1 v1t1)
- QUERY PLAN
-----------------------------------
+ QUERY PLAN
+------------------------------------
Hash Join
- Hash Cond: (v1t1.c1 = v1t1.c1)
+ Hash Cond: (v1t1.c1 = v1t1_1.c1)
-> Seq Scan on t1 v1t1
-> Hash
- -> Seq Scan on t1 v1t1
+ -> Seq Scan on t1 v1t1_1
(5 rows)
-- No. J-2-3-5
-- No. J-2-3-6
EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
- QUERY PLAN
-----------------------------------
+ QUERY PLAN
+------------------------------------
Hash Join
- Hash Cond: (r4t1.c1 = r4t1.c1)
+ Hash Cond: (r4t1.c1 = r4t1_1.c1)
-> Seq Scan on t1 r4t1
-> Hash
- -> Seq Scan on t1 r4t1
+ -> Seq Scan on t1 r4t1_1
(5 rows)
/*+HashJoin(r4t1 r4t1)*/
error hint:
HashJoin(r4t1 r4t1)
- QUERY PLAN
-----------------------------------
+ QUERY PLAN
+------------------------------------
Hash Join
- Hash Cond: (r4t1.c1 = r4t1.c1)
+ Hash Cond: (r4t1.c1 = r4t1_1.c1)
-> Seq Scan on t1 r4t1
-> Hash
- -> Seq Scan on t1 r4t1
+ -> Seq Scan on t1 r4t1_1
(5 rows)
-- No. J-2-3-7
QUERY PLAN
-------------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = "*VALUES*".column1)
+ Join Filter: (t1.c1 = "*VALUES*_1".column1)
-> Nested Loop
-> Hash Join
Hash Cond: (t2.c1 = "*VALUES*".column1)
-> Values Scan on "*VALUES*"
-> Index Scan using t1_i1 on t1
Index Cond: (c1 = t2.c1)
- -> Values Scan on "*VALUES*"
+ -> Values Scan on "*VALUES*_1"
(11 rows)
/*+ Leading(t4 t3 t2 t1) NestLoop(t4 t3)HashJoin(t4 t3 t2)MergeJoin(t4 t3 t2 t1)*/
QUERY PLAN
-------------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = "*VALUES*".column1)
+ Join Filter: (t1.c1 = "*VALUES*_1".column1)
-> Nested Loop
-> Hash Join
Hash Cond: (t2.c1 = "*VALUES*".column1)
-> Values Scan on "*VALUES*"
-> Index Scan using t1_i1 on t1
Index Cond: (c1 = t2.c1)
- -> Values Scan on "*VALUES*"
+ -> Values Scan on "*VALUES*_1"
(11 rows)
/*+ Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)*/
QUERY PLAN
-------------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = "*VALUES*".column1)
+ Join Filter: (t1.c1 = "*VALUES*_1".column1)
-> Nested Loop
-> Hash Join
Hash Cond: (t2.c1 = "*VALUES*".column1)
-> Values Scan on "*VALUES*"
-> Index Scan using t1_i1 on t1
Index Cond: (c1 = t2.c1)
- -> Values Scan on "*VALUES*"
+ -> Values Scan on "*VALUES*_1"
(11 rows)
----
QUERY PLAN
------------------------------------------------
Merge Join
- Merge Cond: (t1.c1 = t1.c1)
+ Merge Cond: (t1_1.c1 = t1.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
-> Index Scan using t3_i1 on t3
-> Index Scan using t2_i1 on t2
-> Sort
- Sort Key: t1.c1
- -> Seq Scan on t1
+ Sort Key: t1_1.c1
+ -> Seq Scan on t1 t1_1
(12 rows)
/*+Leading(t1 t2 t3 t1)*/
QUERY PLAN
------------------------------------------------
Merge Join
- Merge Cond: (t1.c1 = t1.c1)
+ Merge Cond: (t1.c1 = t1_1.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
-> Index Scan using t3_i1 on t3
-> Index Scan using t2_i1 on t2
-> Sort
- Sort Key: t1.c1
- -> Seq Scan on t1
+ Sort Key: t1_1.c1
+ -> Seq Scan on t1 t1_1
(12 rows)
/*+Leading(s1.t1 t2 t3 s2.t1)*/
QUERY PLAN
------------------------------------------------
Merge Join
- Merge Cond: (t1.c1 = t1.c1)
+ Merge Cond: (t1.c1 = t1_1.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
-> Index Scan using t3_i1 on t3
-> Index Scan using t2_i1 on t2
-> Sort
- Sort Key: t1.c1
- -> Seq Scan on t1
+ Sort Key: t1_1.c1
+ -> Seq Scan on t1 t1_1
(12 rows)
EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s2.t1 s2t1 WHERE s1.t1.c1 = t2.c1 AND s1.t1.c1 = t3.c1 AND s1.t1.c1 = s2t1.c1;
-- No. L-1-6-2
EXPLAIN (COSTS false) SELECT * FROM s1.p1 t1, s1.p1 t2, s1.p1 t3, s1.p1 t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
- QUERY PLAN
----------------------------------------------------
+ QUERY PLAN
+-----------------------------------------------------
Hash Join
Hash Cond: (t1.c1 = t4.c1)
-> Hash Join
Hash Cond: (t1.c1 = t2.c1)
-> Append
-> Seq Scan on p1 t1
- -> Seq Scan on p1c1 t1
- -> Seq Scan on p1c2 t1
- -> Seq Scan on p1c3 t1
+ -> Seq Scan on p1c1 t1_1
+ -> Seq Scan on p1c2 t1_2
+ -> Seq Scan on p1c3 t1_3
-> Hash
-> Append
-> Seq Scan on p1 t2
- -> Seq Scan on p1c1 t2
- -> Seq Scan on p1c2 t2
- -> Seq Scan on p1c3 t2
+ -> Seq Scan on p1c1 t2_1
+ -> Seq Scan on p1c2 t2_2
+ -> Seq Scan on p1c3 t2_3
-> Hash
-> Append
-> Seq Scan on p1 t3
- -> Seq Scan on p1c1 t3
- -> Seq Scan on p1c2 t3
- -> Seq Scan on p1c3 t3
+ -> Seq Scan on p1c1 t3_1
+ -> Seq Scan on p1c2 t3_2
+ -> Seq Scan on p1c3 t3_3
-> Hash
-> Append
-> Seq Scan on p1 t4
- -> Seq Scan on p1c1 t4
- -> Seq Scan on p1c2 t4
- -> Seq Scan on p1c3 t4
+ -> Seq Scan on p1c1 t4_1
+ -> Seq Scan on p1c2 t4_2
+ -> Seq Scan on p1c3 t4_3
(29 rows)
/*+Leading(t4 t3 t2 t1)*/
duplication hint:
error hint:
- QUERY PLAN
----------------------------------------------------
+ QUERY PLAN
+-----------------------------------------------------
Hash Join
Hash Cond: (t2.c1 = t1.c1)
-> Hash Join
Hash Cond: (t3.c1 = t4.c1)
-> Append
-> Seq Scan on p1 t3
- -> Seq Scan on p1c1 t3
- -> Seq Scan on p1c2 t3
- -> Seq Scan on p1c3 t3
+ -> Seq Scan on p1c1 t3_1
+ -> Seq Scan on p1c2 t3_2
+ -> Seq Scan on p1c3 t3_3
-> Hash
-> Append
-> Seq Scan on p1 t4
- -> Seq Scan on p1c1 t4
- -> Seq Scan on p1c2 t4
- -> Seq Scan on p1c3 t4
+ -> Seq Scan on p1c1 t4_1
+ -> Seq Scan on p1c2 t4_2
+ -> Seq Scan on p1c3 t4_3
-> Hash
-> Append
-> Seq Scan on p1 t2
- -> Seq Scan on p1c1 t2
- -> Seq Scan on p1c2 t2
- -> Seq Scan on p1c3 t2
+ -> Seq Scan on p1c1 t2_1
+ -> Seq Scan on p1c2 t2_2
+ -> Seq Scan on p1c3 t2_3
-> Hash
-> Append
-> Seq Scan on p1 t1
- -> Seq Scan on p1c1 t1
- -> Seq Scan on p1c2 t1
- -> Seq Scan on p1c3 t1
+ -> Seq Scan on p1c1 t1_1
+ -> Seq Scan on p1c2 t1_2
+ -> Seq Scan on p1c3 t1_3
(29 rows)
-- No. L-1-6-3
-- No. L-1-6-10
EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2, s1.v1 t3, s1.v1 t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
- QUERY PLAN
-----------------------------------------------
+ QUERY PLAN
+------------------------------------------------
Hash Join
- Hash Cond: (v1t1.c1 = v1t1.c1)
+ Hash Cond: (v1t1.c1 = v1t1_3.c1)
-> Hash Join
- Hash Cond: (v1t1.c1 = v1t1.c1)
+ Hash Cond: (v1t1.c1 = v1t1_2.c1)
-> Hash Join
- Hash Cond: (v1t1.c1 = v1t1.c1)
+ Hash Cond: (v1t1.c1 = v1t1_1.c1)
-> Seq Scan on t1 v1t1
-> Hash
- -> Seq Scan on t1 v1t1
+ -> Seq Scan on t1 v1t1_1
-> Hash
- -> Seq Scan on t1 v1t1
+ -> Seq Scan on t1 v1t1_2
-> Hash
- -> Seq Scan on t1 v1t1
+ -> Seq Scan on t1 v1t1_3
(13 rows)
/*+Leading(t4 t3 t2 t1)*/
duplication hint:
error hint:
- QUERY PLAN
-----------------------------------------------
+ QUERY PLAN
+------------------------------------------------
Hash Join
- Hash Cond: (v1t1.c1 = v1t1.c1)
+ Hash Cond: (v1t1.c1 = v1t1_3.c1)
-> Hash Join
- Hash Cond: (v1t1.c1 = v1t1.c1)
+ Hash Cond: (v1t1.c1 = v1t1_2.c1)
-> Hash Join
- Hash Cond: (v1t1.c1 = v1t1.c1)
+ Hash Cond: (v1t1.c1 = v1t1_1.c1)
-> Seq Scan on t1 v1t1
-> Hash
- -> Seq Scan on t1 v1t1
+ -> Seq Scan on t1 v1t1_1
-> Hash
- -> Seq Scan on t1 v1t1
+ -> Seq Scan on t1 v1t1_2
-> Hash
- -> Seq Scan on t1 v1t1
+ -> Seq Scan on t1 v1t1_3
(13 rows)
EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1_ t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
-- No. L-2-3-4
EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
- QUERY PLAN
-----------------------------------
+ QUERY PLAN
+------------------------------------
Hash Join
- Hash Cond: (v1t1.c1 = v1t1.c1)
+ Hash Cond: (v1t1.c1 = v1t1_1.c1)
-> Seq Scan on t1 v1t1
-> Hash
- -> Seq Scan on t1 v1t1
+ -> Seq Scan on t1 v1t1_1
(5 rows)
/*+Leading(v1t1 v1t1)*/
error hint:
Leading(v1t1 v1t1)
- QUERY PLAN
-----------------------------------
+ QUERY PLAN
+------------------------------------
Hash Join
- Hash Cond: (v1t1.c1 = v1t1.c1)
+ Hash Cond: (v1t1.c1 = v1t1_1.c1)
-> Seq Scan on t1 v1t1
-> Hash
- -> Seq Scan on t1 v1t1
+ -> Seq Scan on t1 v1t1_1
(5 rows)
-- No. L-2-3-5
-- No. L-2-3-6
EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
- QUERY PLAN
-----------------------------------
+ QUERY PLAN
+------------------------------------
Hash Join
- Hash Cond: (r4t1.c1 = r4t1.c1)
+ Hash Cond: (r4t1.c1 = r4t1_1.c1)
-> Seq Scan on t1 r4t1
-> Hash
- -> Seq Scan on t1 r4t1
+ -> Seq Scan on t1 r4t1_1
(5 rows)
/*+Leading(r4t1 r4t1)*/
error hint:
Leading(r4t1 r4t1)
- QUERY PLAN
-----------------------------------
+ QUERY PLAN
+------------------------------------
Hash Join
- Hash Cond: (r4t1.c1 = r4t1.c1)
+ Hash Cond: (r4t1.c1 = r4t1_1.c1)
-> Seq Scan on t1 r4t1
-> Hash
- -> Seq Scan on t1 r4t1
+ -> Seq Scan on t1 r4t1_1
(5 rows)
-- No. L-2-3-7
QUERY PLAN
-------------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = "*VALUES*".column1)
+ Join Filter: (t1.c1 = "*VALUES*_1".column1)
-> Nested Loop
-> Hash Join
Hash Cond: (t2.c1 = "*VALUES*".column1)
-> Values Scan on "*VALUES*"
-> Index Scan using t1_i1 on t1
Index Cond: (c1 = t2.c1)
- -> Values Scan on "*VALUES*"
+ -> Values Scan on "*VALUES*_1"
(11 rows)
/*+ Leading(t4 t3 t2 t1) */
QUERY PLAN
-------------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = "*VALUES*".column1)
+ Join Filter: (t1.c1 = "*VALUES*_1".column1)
-> Nested Loop
-> Hash Join
Hash Cond: (t2.c1 = "*VALUES*".column1)
-> Values Scan on "*VALUES*"
-> Index Scan using t1_i1 on t1
Index Cond: (c1 = t2.c1)
- -> Values Scan on "*VALUES*"
+ -> Values Scan on "*VALUES*_1"
(11 rows)
/*+ Leading(*VALUES* t3 t2 t1) */
QUERY PLAN
-------------------------------------------------------
Nested Loop
- Join Filter: (t1.c1 = "*VALUES*".column1)
+ Join Filter: (t1.c1 = "*VALUES*_1".column1)
-> Nested Loop
-> Hash Join
Hash Cond: (t2.c1 = "*VALUES*".column1)
-> Values Scan on "*VALUES*"
-> Index Scan using t1_i1 on t1
Index Cond: (c1 = t2.c1)
- -> Values Scan on "*VALUES*"
+ -> Values Scan on "*VALUES*_1"
(11 rows)
----
duplication hint:
error hint:
- QUERY PLAN
------------------------------------------------
+ QUERY PLAN
+-------------------------------------------------
Hash Join
Hash Cond: (t1.c1 = t3.c1)
-> Hash Join
Hash Cond: (t1.c1 = t2.c1)
-> Append
-> Seq Scan on p2c1 t1
- -> Seq Scan on p2c1c1 t1
- -> Seq Scan on p2c1c2 t1
+ -> Seq Scan on p2c1c1 t1_1
+ -> Seq Scan on p2c1c2 t1_2
-> Hash
-> Append
-> Seq Scan on p2c2 t2
- -> Seq Scan on p2c2c1 t2
- -> Seq Scan on p2c2c2 t2
+ -> Seq Scan on p2c2c1 t2_1
+ -> Seq Scan on p2c2c2 t2_2
-> Hash
-> Append
-> Seq Scan on p2c3 t3
- -> Seq Scan on p2c3c1 t3
- -> Seq Scan on p2c3c2 t3
+ -> Seq Scan on p2c3c1 t3_1
+ -> Seq Scan on p2c3c2 t3_2
(18 rows)
-- No. L-3-3-2
duplication hint:
error hint:
- QUERY PLAN
------------------------------------------------
+ QUERY PLAN
+-------------------------------------------------
Hash Join
Hash Cond: (t1.c1 = t3.c1)
-> Hash Join
Hash Cond: (t1.c1 = t2.c1)
-> Append
-> Seq Scan on p2c1 t1
- -> Seq Scan on p2c1c1 t1
- -> Seq Scan on p2c1c2 t1
+ -> Seq Scan on p2c1c1 t1_1
+ -> Seq Scan on p2c1c2 t1_2
-> Hash
-> Append
-> Seq Scan on p2c2 t2
- -> Seq Scan on p2c2c1 t2
- -> Seq Scan on p2c2c2 t2
+ -> Seq Scan on p2c2c1 t2_1
+ -> Seq Scan on p2c2c2 t2_2
-> Hash
-> Append
-> Seq Scan on p2c3 t3
- -> Seq Scan on p2c3c1 t3
- -> Seq Scan on p2c3c2 t3
+ -> Seq Scan on p2c3c1 t3_1
+ -> Seq Scan on p2c3c2 t3_2
(18 rows)
----
Nested Loop
-> Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
- -> Seq Scan on t1
+ -> Seq Scan on t1 t1_1
Filter: (c1 = 1)
(5 rows)
Recheck Cond: (c1 = 1)
-> Bitmap Index Scan on t1_i1
Index Cond: (c1 = 1)
- -> Bitmap Heap Scan on t1
+ -> Bitmap Heap Scan on t1 t1_1
Recheck Cond: (c1 = 1)
-> Bitmap Index Scan on t1_pkey
Index Cond: (c1 = 1)
-> Result
InitPlan 1 (returns $0)
-> Limit
- -> Index Only Scan using t1_i1 on t1
+ -> Index Only Scan using t1_i1 on t1 t1_1
Index Cond: ((c1 IS NOT NULL) AND (c1 = 1))
(8 rows)
-> Result
InitPlan 1 (returns $0)
-> Limit
- -> Bitmap Heap Scan on t1
+ -> Bitmap Heap Scan on t1 t1_1
Recheck Cond: ((c1 IS NOT NULL) AND (c1 = 1))
-> Bitmap Index Scan on t1_i1
Index Cond: ((c1 IS NOT NULL) AND (c1 = 1))
-> Result
InitPlan 1 (returns $0)
-> Limit
- -> Index Only Scan using t1_i1 on t1
+ -> Index Only Scan using t1_i1 on t1_1
Index Cond: ((c1 IS NOT NULL) AND (c1 = 1))
-> Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
-> Result
InitPlan 1 (returns $0)
-> Limit
- -> Index Only Scan using t1_i1 on t1
+ -> Index Only Scan using t1_i1 on t1 t1_1
Index Cond: ((c1 IS NOT NULL) AND (c1 = 1))
-> Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
-- No. S-2-3-4
EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
- QUERY PLAN
-----------------------------------
+ QUERY PLAN
+------------------------------------
Hash Join
- Hash Cond: (v1t1.c1 = v1t1.c1)
+ Hash Cond: (v1t1.c1 = v1t1_1.c1)
-> Seq Scan on t1 v1t1
-> Hash
- -> Seq Scan on t1 v1t1
+ -> Seq Scan on t1 v1t1_1
(5 rows)
/*+BitmapScan(v1t1)*/
------------------------------------------
Nested Loop
-> Index Scan using t1_i1 on t1 v1t1
- -> Bitmap Heap Scan on t1 v1t1
+ -> Bitmap Heap Scan on t1 v1t1_1
Recheck Cond: (c1 = v1t1.c1)
-> Bitmap Index Scan on t1_i1
Index Cond: (c1 = v1t1.c1)
-- No. S-2-3-6
EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
- QUERY PLAN
-----------------------------------
+ QUERY PLAN
+------------------------------------
Hash Join
- Hash Cond: (r4t1.c1 = r4t1.c1)
+ Hash Cond: (r4t1.c1 = r4t1_1.c1)
-> Seq Scan on t1 r4t1
-> Hash
- -> Seq Scan on t1 r4t1
+ -> Seq Scan on t1 r4t1_1
(5 rows)
/*+BitmapScan(r4t1)*/
------------------------------------------
Nested Loop
-> Index Scan using t1_i1 on t1 r4t1
- -> Bitmap Heap Scan on t1 r4t1
+ -> Bitmap Heap Scan on t1 r4t1_1
Recheck Cond: (c1 = r4t1.c1)
-> Bitmap Index Scan on t1_i1
Index Cond: (c1 = r4t1.c1)
-- No. S-2-4-2
EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1')) AS t1 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t2 (c1, c2) WHERE t1.c1 = t2.c1;
- QUERY PLAN
-----------------------------------------------------------
+ QUERY PLAN
+------------------------------------------------------------
Nested Loop
- Join Filter: ("*VALUES*".column1 = "*VALUES*".column1)
- -> Values Scan on "*VALUES*"
+ Join Filter: ("*VALUES*".column1 = "*VALUES*_1".column1)
-> Values Scan on "*VALUES*"
+ -> Values Scan on "*VALUES*_1"
(4 rows)
/*+SeqScan(t1 t2)*/
error hint:
SeqScan(t1 t2)
- QUERY PLAN
-----------------------------------------------------------
+ QUERY PLAN
+------------------------------------------------------------
Nested Loop
- Join Filter: ("*VALUES*".column1 = "*VALUES*".column1)
- -> Values Scan on "*VALUES*"
+ Join Filter: ("*VALUES*".column1 = "*VALUES*_1".column1)
-> Values Scan on "*VALUES*"
+ -> Values Scan on "*VALUES*_1"
(4 rows)
/*+SeqScan(*VALUES*)*/
duplication hint:
error hint:
- QUERY PLAN
-----------------------------------------------------------
+ QUERY PLAN
+------------------------------------------------------------
Nested Loop
- Join Filter: ("*VALUES*".column1 = "*VALUES*".column1)
- -> Values Scan on "*VALUES*"
+ Join Filter: ("*VALUES*".column1 = "*VALUES*_1".column1)
-> Values Scan on "*VALUES*"
+ -> Values Scan on "*VALUES*_1"
(4 rows)
----