duplication hint:
error hint:
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 = 1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 = 1)
(4 rows)
-- No. A-5-1-2
/* +SeqScan(t1)*/
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
-- No. A-5-1-3
--+SeqScan(t1)
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
-- No. A-5-1-4
--+SeqScan(t1)
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
-- No. A-5-1-5
-- +SeqScan(t1)
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
-- No. A-5-1-6
--SeqScan(t1)
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
INFO: hint syntax error at or near "/* nest comment */ */
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;"
DETAIL: Block comments nest doesn't supported.
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
-- No. A-5-1-8
/* +SeqScan(t1) /* nest comment */ */
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
-- No. A-5-1-9
/*SeqScan(t1) /* nest comment */ */
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
/* normal comment */
/*+SeqScan(t1)*/
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
-- No. A-5-2-3
EXPLAIN (COSTS false) SELECT /*+SeqScan(t1)*/ * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
---- No. A-5-4 hint delimiter
----
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
EXPLAIN (COSTS false) SELECT * FROM s1.t1 ")" WHERE ")".c1 = 1;
INFO: hint syntax error at or near "))"
DETAIL: Relation name is necessary.
- QUERY PLAN
-------------------------------------
- Index Scan using t1_pkey on t1 ")"
+ QUERY PLAN
+----------------------------------
+ Index Scan using t1_i1 on t1 ")"
Index Cond: (c1 = 1)
(2 rows)
EXPLAIN (COSTS false) SELECT * FROM s1.t1 """" WHERE """".c1 = 1;
INFO: hint syntax error at or near ""
DETAIL: Unterminated quoted relation name.
- QUERY PLAN
--------------------------------------
- Index Scan using t1_pkey on t1 """"
+ QUERY PLAN
+-----------------------------------
+ Index Scan using t1_i1 on t1 """"
Index Cond: (c1 = 1)
(2 rows)
EXPLAIN (COSTS false) SELECT * FROM s1.t1 " " WHERE " ".c1 = 1;
INFO: hint syntax error at or near ")"
DETAIL: Relation name is necessary.
- QUERY PLAN
-------------------------------------
- Index Scan using t1_pkey on t1 " "
+ QUERY PLAN
+----------------------------------
+ Index Scan using t1_i1 on t1 " "
Index Cond: (c1 = 1)
(2 rows)
EXPLAIN (COSTS false) SELECT * FROM s1.t1 " " WHERE " ".c1 = 1;
INFO: hint syntax error at or near ")"
DETAIL: Relation name is necessary.
- QUERY PLAN
--------------------------------------------
- Index Scan using t1_pkey on t1 " "
+ QUERY PLAN
+-----------------------------------
+ Index Scan using t1_i1 on t1 " "
Index Cond: (c1 = 1)
(2 rows)
".c1 = 1;
INFO: hint syntax error at or near ")"
DETAIL: Relation name is necessary.
- QUERY PLAN
-----------------------------------
- Index Scan using t1_pkey on t1 "
+ QUERY PLAN
+--------------------------------
+ Index Scan using t1_i1 on t1 "
"
Index Cond: (c1 = 1)
(3 rows)
INFO: hint syntax error at or near "/**/)*/
EXPLAIN (COSTS false) SELECT * FROM s1.t1 "/**/" WHERE "/**/".c1 = 1;"
DETAIL: Block comments nest doesn't supported.
- QUERY PLAN
----------------------------------------
- Index Scan using t1_pkey on t1 "/**/"
+ QUERY PLAN
+-------------------------------------
+ Index Scan using t1_i1 on t1 "/**/"
Index Cond: (c1 = 1)
(2 rows)
INFO: hint syntax error at or near "/**//**//**/)*/
EXPLAIN (COSTS false) SELECT * FROM s1.t1 "/**//**//**/" WHERE "/**//**//**/".c1 = 1;"
DETAIL: Block comments nest doesn't supported.
- QUERY PLAN
------------------------------------------------
- Index Scan using t1_pkey on t1 "/**//**//**/"
+ QUERY PLAN
+---------------------------------------------
+ Index Scan using t1_i1 on t1 "/**//**//**/"
Index Cond: (c1 = 1)
(2 rows)
DETAIL: Block comments nest doesn't supported.
QUERY PLAN
------------------------------------------
- Index Scan using t1_pkey on t1 "tT()""
+ Index Scan using t1_i1 on t1 "tT()""
Set/**/あ"
Index Cond: (c1 = 1)
(3 rows)
duplication hint:
error hint:
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 = 1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 = 1)
(4 rows)
duplication hint:
error hint:
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 = 1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 = 1)
(4 rows)
duplication hint:
error hint:
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 = 1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 = 1)
(4 rows)
duplication hint:
error hint:
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 = 1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 = 1)
(4 rows)
duplication hint:
error hint:
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 = 1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 = 1)
(4 rows)
duplication hint:
error hint:
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 = 1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 = 1)
(4 rows)
INFO: hint syntax error at or near "/* value */off)Set(enable_bitmapscan off)SeqScan(t1)*/
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;"
DETAIL: Block comments nest doesn't supported.
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
/*+Set(enable_indexscan off)*/
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 = 1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 = 1)
(4 rows)
/*+Set(enable_indexscan off)*/
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
/*+Set(enable_indexscan off)*/
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 = 1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 = 1)
(4 rows)
duplication hint:
error hint:
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 = 1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 = 1)
(4 rows)
/*+Set(enable_indexscan off)*/
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 = 1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 = 1)
(4 rows)
/*+Set(enable_indexscan off)*/
EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 = 1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 = 1)
(4 rows)
duplication hint:
error hint:
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
TidScan(t1)
error hint:
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 = 1)
Filter: (ctid = '(1,1)'::tid)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 = 1)
(5 rows)
QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
Filter: (ctid = '(1,1)'::tid)
(3 rows)
error hint:
Set(enable_indexscan enable)
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
----
PREPARE p1 AS SELECT * FROM s1.t1 WHERE t1.c1 = 1;
EXPLAIN (COSTS false) EXECUTE p1;
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
/*+SeqScan(t1)*/
EXPLAIN (COSTS false) EXECUTE p1 (1);
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 < $1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 < $1)
(4 rows)
duplication hint:
error hint:
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 < $1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 < $1)
(4 rows)
error hint:
EXPLAIN (COSTS false) EXECUTE p1 (1);
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 < $1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 < $1)
(4 rows)
duplication hint:
error hint:
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+----------------------------------
Bitmap Heap Scan on t1
Recheck Cond: (c1 < $1)
- -> Bitmap Index Scan on t1_pkey
+ -> Bitmap Index Scan on t1_i1
Index Cond: (c1 < $1)
(4 rows)
PREPARE p1 AS SELECT * FROM s1.t1 WHERE t1.c1 = 1;
/*+BitmapScan(t1)*/
EXPLAIN (COSTS false) EXECUTE p1;
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
UPDATE pg_catalog.pg_class SET relpages = relpages WHERE relname = 't1';
/*+BitmapScan(t1)*/
EXPLAIN (COSTS false) EXECUTE p1;
- QUERY PLAN
---------------------------------
- Index Scan using t1_pkey on t1
+ QUERY PLAN
+------------------------------
+ Index Scan using t1_i1 on t1
Index Cond: (c1 = 1)
(2 rows)
---- No. A-12-2 reset of global variable of original at the error
----
EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
- QUERY PLAN
---------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Seq Scan on t2
NestLoop(t1 t1)
EXPLAIN (COSTS false) EXECUTE p1;
- QUERY PLAN
---------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Sort
Sort Key: t1.c1
-> Seq Scan on t1
- -> Index Scan using t2_pkey on t2
+ -> Index Scan using t2_i1 on t2
(6 rows)
-- No. A-12-1-1
duplication hint:
error hint:
- QUERY PLAN
---------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Sort
Sort Key: t1.c1
-> Seq Scan on t1
- -> Index Scan using t2_pkey on t2
+ -> Index Scan using t2_i1 on t2
(6 rows)
-- No. A-12-1-2
(29 rows)
EXPLAIN (COSTS false) EXECUTE p1;
- QUERY PLAN
---------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Sort
Sort Key: t1.c1
-> Seq Scan on t1
- -> Index Scan using t2_pkey on t2
+ -> Index Scan using t2_i1 on t2
(6 rows)
-- No. A-12-1-3
duplication hint:
error hint:
- QUERY PLAN
---------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Sort
Sort Key: t1.c1
-> Seq Scan on t1
- -> Index Scan using t2_pkey on t2
+ -> Index Scan using t2_i1 on t2
(6 rows)
EXPLAIN (COSTS false) EXECUTE p1;
- QUERY PLAN
---------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Sort
Sort Key: t1.c1
-> Seq Scan on t1
- -> Index Scan using t2_pkey on t2
+ -> Index Scan using t2_i1 on t2
(6 rows)
SELECT name, setting FROM settings;
EXPLAIN (COSTS false) EXECUTE p2;
ERROR: prepared statement "p2" does not exist
EXPLAIN (COSTS false) EXECUTE p1;
- QUERY PLAN
---------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Sort
Sort Key: t1.c1
-> Seq Scan on t1
- -> Index Scan using t2_pkey on t2
+ -> Index Scan using t2_i1 on t2
(6 rows)
SELECT name, setting FROM settings;
---- No. A-12-3 effective range of the hint
----
EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
- QUERY PLAN
---------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Seq Scan on t2
duplication hint:
error hint:
- QUERY PLAN
---------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
- -> Index Scan using t2_pkey on t2
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t2_i1 on t2
(4 rows)
SELECT name, setting FROM settings;
duplication hint:
error hint:
- QUERY PLAN
---------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
- -> Index Scan using t2_pkey on t2
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t2_i1 on t2
(4 rows)
COMMIT;
duplication hint:
error hint:
- QUERY PLAN
---------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
- -> Index Scan using t2_pkey on t2
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t2_i1 on t2
(4 rows)
\connect
(29 rows)
EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
- QUERY PLAN
---------------------------------------
+ QUERY PLAN
+------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Seq Scan on t2
SET client_min_messages TO LOG;
SET search_path TO public;
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
---------------------------------------------------
+ QUERY PLAN
+------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Merge Cond: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t3.c1)
- -> Index Scan using t1_pkey on t1
- -> Index Scan using t3_pkey on t3
- -> Index Scan using t4_pkey on t4
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t3_i1 on t3
+ -> Index Scan using t4_i1 on t4
-> Sort
Sort Key: t2.c1
-> Seq Scan on t2
------------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Hash Join
duplication hint:
error hint:
- QUERY PLAN
-------------------------------------------------------
+ QUERY PLAN
+----------------------------------------------------
Merge Join
Merge Cond: (t_1.c1 = t_2.c1)
-> Merge Join
Merge Cond: (t_1.c1 = t_4.c1)
-> Merge Join
Merge Cond: (t_1.c1 = t_3.c1)
- -> Index Scan using t1_pkey on t1 t_1
- -> Index Scan using t3_pkey on t3 t_3
- -> Index Scan using t4_pkey on t4 t_4
+ -> Index Scan using t1_i1 on t1 t_1
+ -> Index Scan using t3_i1 on t3 t_3
+ -> Index Scan using t4_i1 on t4 t_4
-> Sort
Sort Key: t_2.c1
-> Seq Scan on t2 t_2
--------------------------------------------------------
Merge Join
Merge Cond: (t_1.c1 = t_2.c1)
- -> Index Scan using t1_pkey on t1 t_1
+ -> Index Scan using t1_i1 on t1 t_1
-> Sort
Sort Key: t_2.c1
-> Hash Join
------------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Hash Join
duplication hint:
error hint:
- QUERY PLAN
---------------------------------------------------
+ QUERY PLAN
+------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Merge Cond: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t3.c1)
- -> Index Scan using t1_pkey on t1
- -> Index Scan using t3_pkey on t3
- -> Index Scan using t4_pkey on t4
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t3_i1 on t3
+ -> Index Scan using t4_i1 on t4
-> Sort
Sort Key: t2.c1
-> Seq Scan on t2
------------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Hash Join
Nested Loop
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Hash Join
-> Seq Scan on t3
-> Hash
-> Seq Scan on t2
- -> Index Scan using t4_pkey on t4
+ -> Index Scan using t4_i1 on t4
Index Cond: (c1 = t1.c1)
(13 rows)
------------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Hash Join
-- No. L-1-4-2
EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s2.t1 WHERE s1.t1.c1 = t2.c1 AND s1.t1.c1 = t3.c1 AND s1.t1.c1 = s2.t1.c1;
- QUERY PLAN
---------------------------------------------------
+ QUERY PLAN
+------------------------------------------------
Merge Join
Merge Cond: (s1.t1.c1 = s2.t1.c1)
-> Merge Join
Merge Cond: (s1.t1.c1 = t2.c1)
-> Merge Join
Merge Cond: (s1.t1.c1 = t3.c1)
- -> Index Scan using t1_pkey on t1
- -> Index Scan using t3_pkey on t3
- -> Index Scan using t2_pkey on t2
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t3_i1 on t3
+ -> Index Scan using t2_i1 on t2
-> Sort
Sort Key: s2.t1.c1
-> Seq Scan on t1
duplication hint:
error hint:
- QUERY PLAN
---------------------------------------------------
+ QUERY PLAN
+------------------------------------------------
Merge Join
Merge Cond: (s1.t1.c1 = s2.t1.c1)
-> Merge Join
Merge Cond: (s1.t1.c1 = t2.c1)
-> Merge Join
Merge Cond: (s1.t1.c1 = t3.c1)
- -> Index Scan using t1_pkey on t1
- -> Index Scan using t3_pkey on t3
- -> Index Scan using t2_pkey on t2
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t3_i1 on t3
+ -> Index Scan using t2_i1 on t2
-> Sort
Sort Key: s2.t1.c1
-> Seq Scan on t1
duplication hint:
error hint:
- QUERY PLAN
---------------------------------------------------
+ QUERY PLAN
+------------------------------------------------
Nested Loop
-> Nested Loop
-> Merge Join
Merge Cond: (t3.c1 = t2.c1)
- -> Index Scan using t3_pkey on t3
+ -> Index Scan using t3_i1 on t3
-> Sort
Sort Key: t2.c1
-> Seq Scan on t2
-> Index Scan using t1_pkey on t1
Index Cond: (c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
Index Cond: (c1 = t2.c1)
(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;
- QUERY PLAN
---------------------------------------------------
+ QUERY PLAN
+------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = s2t1.c1)
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Merge Cond: (t1.c1 = t3.c1)
- -> Index Scan using t1_pkey on t1
- -> Index Scan using t3_pkey on t3
- -> Index Scan using t2_pkey on t2
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t3_i1 on t3
+ -> Index Scan using t2_i1 on t2
-> Sort
Sort Key: s2t1.c1
-> Seq Scan on t1 s2t1
Merge Cond: (t1.c1 = t3.c1)
-> Merge Join
Merge Cond: (t1.c1 = s2t1.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Index Scan using t1_pkey on t1 s2t1
- -> Index Scan using t3_pkey on t3
+ -> Index Scan using t3_i1 on t3
-> Sort
Sort Key: t2.c1
-> Seq Scan on t2
-- No. L-1-4-3
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
-----------------------------------------------------------------
+ QUERY PLAN
+---------------------------------------------------------------
Merge Join
Merge Cond: (s1.t1.c1 = s1.t2.c1)
InitPlan 1 (returns $0)
Merge Cond: (s1.t1.c1 = s1.t4.c1)
-> Merge Join
Merge Cond: (s1.t1.c1 = s1.t3.c1)
- -> Index Scan using t1_pkey on t1
- -> Index Scan using t3_pkey on t3
- -> Index Scan using t4_pkey on t4
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t3_i1 on t3
+ -> Index Scan using t4_i1 on t4
-> Sort
Sort Key: s1.t2.c1
-> Seq Scan on t2
Merge Cond: (s1.t1.c1 = s1.t4.c1)
-> Merge Join
Merge Cond: (s1.t1.c1 = s1.t3.c1)
- -> Index Scan using t1_pkey on t1
- -> Index Scan using t3_pkey on t3
- -> Index Scan using t4_pkey on t4
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t3_i1 on t3
+ -> Index Scan using t4_i1 on t4
-> Sort
Sort Key: s1.t2.c1
-> Seq Scan on t2
-> Aggregate
-> Merge Join
Merge Cond: (s1.t1.c1 = s1.t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: s1.t2.c1
-> Hash Join
-> Seq Scan on t4
-> Hash
-> Seq Scan on t2
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: s1.t2.c1
-> Hash Join
--------------------------------------------------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Hash Join
------------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Hash Join
------------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Hash Join
error hint:
Leading(t4 t2 t3 t4)
- QUERY PLAN
---------------------------------------------------
+ QUERY PLAN
+------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Merge Cond: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t3.c1)
- -> Index Scan using t1_pkey on t1
- -> Index Scan using t3_pkey on t3
- -> Index Scan using t4_pkey on t4
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t3_i1 on t3
+ -> Index Scan using t4_i1 on t4
-> Sort
Sort Key: t2.c1
-> Seq Scan on t2
------------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Hash Join
error hint:
Leading(t4 t2 t2 t4)
- QUERY PLAN
---------------------------------------------------
+ QUERY PLAN
+------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Merge Cond: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t3.c1)
- -> Index Scan using t1_pkey on t1
- -> Index Scan using t3_pkey on t3
- -> Index Scan using t4_pkey on t4
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t3_i1 on t3
+ -> Index Scan using t4_i1 on t4
-> Sort
Sort Key: t2.c1
-> Seq Scan on t2
------------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Hash Join
-- No. L-1-6-11
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
---------------------------------------------------
+ QUERY PLAN
+------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
-> Merge Join
Merge Cond: (t1.c1 = t4.c1)
-> Merge Join
Merge Cond: (t1.c1 = t3.c1)
- -> Index Scan using t1_pkey on t1
- -> Index Scan using t3_pkey on t3
- -> Index Scan using t4_pkey on t4
+ -> Index Scan using t1_i1 on t1
+ -> Index Scan using t3_i1 on t3
+ -> Index Scan using t4_i1 on t4
-> Sort
Sort Key: t2.c1
-> Seq Scan on t2
Nested Loop
-> Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Hash Join
-> Seq Scan on t3
-> Hash
-> Seq Scan on t2
- -> Index Scan using t4_pkey on t4
+ -> Index Scan using t4_i1 on t4
Index Cond: (c1 = t1.c1)
(13 rows)
------------------------------------------------------
Merge Join
Merge Cond: (t1.c1 = t2.c1)
- -> Index Scan using t1_pkey on t1
+ -> Index Scan using t1_i1 on t1
-> Sort
Sort Key: t2.c1
-> Hash Join