2 SET pg_hint_plan.enable TO on;
3 SET pg_hint_plan.debug_print TO on;
4 SET client_min_messages TO LOG;
5 SET search_path TO public;
6 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
13 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
15 --------------------------------
16 Index Scan using t1_pkey on t1
20 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c3 < 10;
22 ---------------------------------
23 Bitmap Heap Scan on t1
24 Recheck Cond: (c3 < 10)
25 -> Bitmap Index Scan on t1_i
29 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
31 -----------------------------------
33 TID Cond: (ctid = '(1,1)'::tid)
38 ---- No. S-1-1 specified pattern of the object name
42 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
58 EXPLAIN (COSTS false) SELECT * FROM s1.t1 t_1 WHERE t_1.c1 = 1;
67 ------------------------------------
68 Index Scan using t1_pkey on t1 t_1
74 EXPLAIN (COSTS false) SELECT * FROM s1.t1 t_1 WHERE t_1.c1 = 1;
89 ---- No. S-1-2 specified schema name in the hint option
93 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
109 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
118 --------------------------------
119 Index Scan using t1_pkey on t1
124 ---- No. S-1-3 table doesn't exist in the hint option
128 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
144 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
153 --------------------------------
154 Index Scan using t1_pkey on t1
159 ---- No. S-1-4 conflict table name
162 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = 1 AND t1.c1 = t2.c1;
164 --------------------------------------
166 -> Index Scan using t1_pkey on t1
173 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = 1 AND t1.c1 = t2.c1;
182 --------------------------
191 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = 1 AND s1.t1.c1 = s2.t1.c1;
193 --------------------------------------
195 -> Index Scan using t1_pkey on t1
202 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = 1 AND s1.t1.c1 = s2.t1.c1;
211 --------------------------------------
213 -> Index Scan using t1_pkey on t1
215 -> Index Scan using t1_pkey on t1
220 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 s2t1 WHERE s1.t1.c1 = 1 AND s1.t1.c1 = s2t1.c1;
229 ---------------------------
233 -> Seq Scan on t1 s2t1
237 /*+BitmapScan(s2t1)*/
238 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 s2t1 WHERE s1.t1.c1 = 1 AND s1.t1.c1 = s2t1.c1;
247 ------------------------------------------
249 -> Index Scan using t1_pkey on t1
251 -> Bitmap Heap Scan on t1 s2t1
252 Recheck Cond: (c1 = 1)
253 -> Bitmap Index Scan on t1_pkey
258 EXPLAIN (COSTS false) SELECT (SELECT max(c1) FROM s1.t1 WHERE s1.t1.c1 = 1) FROM s1.t1 WHERE s1.t1.c1 = 1;
260 ---------------------------------------------------------------------
261 Index Scan using t1_pkey on t1
263 InitPlan 2 (returns $1)
265 InitPlan 1 (returns $0)
267 -> Index Scan using t1_pkey on t1
268 Index Cond: ((c1 IS NOT NULL) AND (c1 = 1))
272 EXPLAIN (COSTS false) SELECT (SELECT max(c1) FROM s1.t1 WHERE s1.t1.c1 = 1) FROM s1.t1 WHERE s1.t1.c1 = 1;
281 -----------------------------------------------------------------
284 InitPlan 2 (returns $1)
286 InitPlan 1 (returns $0)
289 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
293 EXPLAIN (COSTS false) SELECT (SELECT max(c1) FROM s1.t1 t11 WHERE t11.c1 = 1) FROM s1.t1 t12 WHERE t12.c1 = 1;
302 -----------------------------------------------------------------
303 Index Scan using t1_pkey on t1 t12
305 InitPlan 2 (returns $1)
307 InitPlan 1 (returns $0)
309 -> Seq Scan on t1 t11
310 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
314 EXPLAIN (COSTS false) SELECT (SELECT max(c1) FROM s1.t1 t11 WHERE t11.c1 = 1) FROM s1.t1 t12 WHERE t12.c1 = 1;
323 ---------------------------------------------------------------------
326 InitPlan 2 (returns $1)
328 InitPlan 1 (returns $0)
330 -> Index Scan using t1_pkey on t1 t11
331 Index Cond: ((c1 IS NOT NULL) AND (c1 = 1))
335 ---- No. S-1-5 object type for the hint
339 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
354 EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE p1.c1 = 1;
356 ---------------------------------
361 -> Seq Scan on p1c1 p1
366 EXPLAIN (COSTS false) SELECT * FROM s1.p1 WHERE p1.c1 = 1;
375 ---------------------------------------------------
378 -> Index Scan using p1_pkey on p1
380 -> Index Scan using p1c1_pkey on p1c1 p1
385 EXPLAIN (COSTS false) SELECT * FROM s1.ul1 WHERE ul1.c1 = 1;
387 ----------------------------------
388 Index Scan using ul1_pkey on ul1
393 EXPLAIN (COSTS false) SELECT * FROM s1.ul1 WHERE ul1.c1 = 1;
408 CREATE TEMP TABLE tm1 (LIKE s1.t1 INCLUDING ALL);
409 NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "tm1_pkey" for table "tm1"
410 EXPLAIN (COSTS false) SELECT * FROM tm1 WHERE tm1.c1 = 1;
412 ----------------------------------
413 Index Scan using tm1_pkey on tm1
418 EXPLAIN (COSTS false) SELECT * FROM tm1 WHERE tm1.c1 = 1;
433 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class WHERE oid = 1;
435 -------------------------------------------------
436 Index Scan using pg_class_oid_index on pg_class
437 Index Cond: (oid = 1::oid)
440 /*+SeqScan(pg_class)*/
441 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class WHERE oid = 1;
450 --------------------------
452 Filter: (oid = 1::oid)
458 EXPLAIN (COSTS false) SELECT * FROM s1.f1() AS ft1 WHERE ft1.c1 = 1;
460 -------------------------
461 Function Scan on f1 ft1
466 EXPLAIN (COSTS false) SELECT * FROM s1.f1() AS ft1 WHERE ft1.c1 = 1;
475 -------------------------
476 Function Scan on f1 ft1
481 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS val1 (c1, c2, c3, c4) WHERE val1.c1 = 1;
483 ---------------------------
484 Values Scan on "*VALUES*"
485 Filter: (column1 = 1)
489 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS val1 (c1, c2, c3, c4) WHERE val1.c1 = 1;
498 ---------------------------
499 Values Scan on "*VALUES*"
500 Filter: (column1 = 1)
503 /*+SeqScan(*VALUES*)*/
504 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS val1 (c1, c2, c3, c4) WHERE val1.c1 = 1;
513 ---------------------------
514 Values Scan on "*VALUES*"
515 Filter: (column1 = 1)
519 EXPLAIN (COSTS false) WITH c1(c1) AS (SELECT max(c1) FROM s1.t1 WHERE t1.c1 = 1)
520 SELECT * FROM s1.t1, c1 WHERE t1.c1 = 1 AND t1.c1 = c1.c1;
522 ---------------------------------------------------------------------
526 InitPlan 1 (returns $0)
528 -> Index Scan using t1_pkey on t1
529 Index Cond: ((c1 IS NOT NULL) AND (c1 = 1))
530 -> Index Scan using t1_pkey on t1
537 EXPLAIN (COSTS false) WITH c1(c1) AS (SELECT max(c1) FROM s1.t1 WHERE t1.c1 = 1)
538 SELECT * FROM s1.t1, c1 WHERE t1.c1 = 1 AND t1.c1 = c1.c1;
547 ---------------------------------------------------------------------
551 InitPlan 1 (returns $0)
553 -> Index Scan using t1_pkey on t1
554 Index Cond: ((c1 IS NOT NULL) AND (c1 = 1))
555 -> Index Scan using t1_pkey on t1
562 EXPLAIN (COSTS false) SELECT * FROM s1.v1 WHERE v1.c1 = 1;
564 -------------------------------------
565 Index Scan using t1_pkey on t1 v1t1
570 EXPLAIN (COSTS false) SELECT * FROM s1.v1 WHERE v1.c1 = 1;
579 -------------------------------------
580 Index Scan using t1_pkey on t1 v1t1
585 EXPLAIN (COSTS false) SELECT * FROM (SELECT * FROM s1.t1 WHERE t1.c1 = 1) AS s1 WHERE s1.c1 = 1;
587 --------------------------------
588 Index Scan using t1_pkey on t1
593 EXPLAIN (COSTS false) SELECT * FROM (SELECT * FROM s1.t1 WHERE t1.c1 = 1) AS s1 WHERE s1.c1 = 1;
602 --------------------------------
603 Index Scan using t1_pkey on t1
608 ---- No. S-3-1 scan method hint
611 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
613 ---------------------
619 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
628 ---------------------
634 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
636 --------------------------------
637 Index Scan using t1_pkey on t1
642 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
657 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
659 --------------------------------
660 Index Scan using t1_pkey on t1
665 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
674 --------------------------------
675 Index Scan using t1_pkey on t1
680 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
682 ---------------------
688 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
697 --------------------------------
698 Index Scan using t1_pkey on t1
699 Index Cond: (c1 >= 1)
703 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c3 < 10;
705 ---------------------------------
706 Bitmap Heap Scan on t1
707 Recheck Cond: (c3 < 10)
708 -> Bitmap Index Scan on t1_i
709 Index Cond: (c3 < 10)
713 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c3 < 10;
722 ---------------------------------
723 Bitmap Heap Scan on t1
724 Recheck Cond: (c3 < 10)
725 -> Bitmap Index Scan on t1_i
726 Index Cond: (c3 < 10)
730 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
732 --------------------------------
733 Index Scan using t1_pkey on t1
738 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
747 ------------------------------------
748 Bitmap Heap Scan on t1
749 Recheck Cond: (c1 = 1)
750 -> Bitmap Index Scan on t1_pkey
755 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
757 -----------------------------------
759 TID Cond: (ctid = '(1,1)'::tid)
764 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
773 -----------------------------------
775 TID Cond: (ctid = '(1,1)'::tid)
780 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid IN ('(1,1)', '(2,2)', '(3,3)');
782 -------------------------------------------------------------
783 Index Scan using t1_pkey on t1
785 Filter: (ctid = ANY ('{"(1,1)","(2,2)","(3,3)"}'::tid[]))
789 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid IN ('(1,1)', '(2,2)', '(3,3)');
798 ---------------------------------------------------------------
800 TID Cond: (ctid = ANY ('{"(1,1)","(2,2)","(3,3)"}'::tid[]))
805 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
807 ---------------------
813 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
822 --------------------------------
823 Index Scan using t1_pkey on t1
824 Index Cond: (c1 >= 1)
828 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
830 --------------------------------
831 Index Scan using t1_pkey on t1
836 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
845 --------------------------------
846 Index Scan using t1_pkey on t1
851 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
853 --------------------------------
854 Index Scan using t1_pkey on t1
859 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
868 ------------------------------------
869 Bitmap Heap Scan on t1
870 Recheck Cond: (c1 = 1)
871 -> Bitmap Index Scan on t1_pkey
876 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
878 ---------------------
884 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 >= 1;
893 ---------------------
899 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c3 < 10;
901 ---------------------------------
902 Bitmap Heap Scan on t1
903 Recheck Cond: (c3 < 10)
904 -> Bitmap Index Scan on t1_i
905 Index Cond: (c3 < 10)
908 /*+NoBitmapScan(t1)*/
909 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c3 < 10;
918 ---------------------
924 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
926 --------------------------------
927 Index Scan using t1_pkey on t1
931 /*+NoBitmapScan(t1)*/
932 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
941 --------------------------------
942 Index Scan using t1_pkey on t1
947 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
949 -----------------------------------
951 TID Cond: (ctid = '(1,1)'::tid)
956 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1 AND t1.ctid = '(1,1)';
965 ---------------------------------
966 Index Scan using t1_pkey on t1
968 Filter: (ctid = '(1,1)'::tid)
972 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
974 --------------------------------
975 Index Scan using t1_pkey on t1
980 EXPLAIN (COSTS false) SELECT * FROM s1.t1 WHERE t1.c1 = 1;
989 --------------------------------
990 Index Scan using t1_pkey on t1