1 SET search_path TO public;
2 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
4 --------------------------------------
6 Merge Cond: (t1.id = t2.id)
7 -> Index Scan using t1_pkey on t1
8 -> Index Scan using t2_pkey on t2
11 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.val = t2.val;
13 -------------------------------------------
15 Merge Cond: (t2.val = t1.val)
16 -> Index Scan using t2_val on t2
18 -> Index Scan using t1_val on t1
22 SET pg_hint_plan.debug_print TO on;
23 SET client_min_messages TO LOG;
24 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
26 --------------------------------------
28 Merge Cond: (t1.id = t2.id)
29 -> Index Scan using t1_pkey on t1
30 -> Index Scan using t2_pkey on t2
33 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.val = t2.val;
35 -------------------------------------------
37 Merge Cond: (t2.val = t1.val)
38 -> Index Scan using t2_val on t2
40 -> Index Scan using t1_val on t1
44 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
45 INFO: hint syntax error at or near "Test (t1 t2) "
46 DETAIL: Unrecognized hint keyword "Test".
48 --------------------------------------
50 Merge Cond: (t1.id = t2.id)
51 -> Index Scan using t1_pkey on t1
52 -> Index Scan using t2_pkey on t2
55 SET pg_hint_plan.enable_hint TO off;
57 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
59 --------------------------------------
61 Merge Cond: (t1.id = t2.id)
62 -> Index Scan using t1_pkey on t1
63 -> Index Scan using t2_pkey on t2
66 SET pg_hint_plan.enable_hint TO on;
67 /*Set(enable_indexscan off)*/
68 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
70 --------------------------------------
72 Merge Cond: (t1.id = t2.id)
73 -> Index Scan using t1_pkey on t1
74 -> Index Scan using t2_pkey on t2
77 --+Set(enable_indexscan off)
78 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
80 --------------------------------------
82 Merge Cond: (t1.id = t2.id)
83 -> Index Scan using t1_pkey on t1
84 -> Index Scan using t2_pkey on t2
87 /*+Set(enable_indexscan off) /* nest comment */ */
88 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
89 INFO: hint syntax error at or near "/* nest comment */ */
90 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;"
91 DETAIL: Nested block comments are not supported.
93 --------------------------------------
95 Merge Cond: (t1.id = t2.id)
96 -> Index Scan using t1_pkey on t1
97 -> Index Scan using t2_pkey on t2
100 /*+Set(enable_indexscan off)*/
101 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
104 Set(enable_indexscan off)
110 ------------------------------
112 Hash Cond: (t1.id = t2.id)
118 EXPLAIN (COSTS false) /*+Set(enable_indexscan off)*/
119 SELECT * FROM t1, t2 WHERE t1.id = t2.id;
122 Set(enable_indexscan off)
128 ------------------------------
130 Hash Cond: (t1.id = t2.id)
136 /*+ Set(enable_indexscan off) Set(enable_hashjoin off) */
137 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
140 Set(enable_hashjoin off)
141 Set(enable_indexscan off)
147 -------------------------------
149 Merge Cond: (t1.id = t2.id)
158 /*+ Set ( enable_indexscan off ) */
159 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
162 Set(enable_indexscan off)
168 ------------------------------
170 Hash Cond: (t1.id = t2.id)
183 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
186 Set(enable_indexscan off)
192 ------------------------------
194 Hash Cond: (t1.id = t2.id)
200 /*+ Set(enable_indexscan off)Set(enable_nestloop off)Set(enable_mergejoin off)
201 Set(enable_seqscan off)
203 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
206 Set(enable_indexscan off)
207 Set(enable_mergejoin off)
208 Set(enable_nestloop off)
209 Set(enable_seqscan off)
215 ------------------------------------------
217 -> Index Scan using t2_pkey on t2
218 -> Bitmap Heap Scan on t1
219 Recheck Cond: (id = t2.id)
220 -> Bitmap Index Scan on t1_pkey
221 Index Cond: (id = t2.id)
224 /*+Set(work_mem "1M")*/
225 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
226 INFO: invalid value for parameter "work_mem": "1M"
227 HINT: Valid units for this parameter are "kB", "MB", and "GB".
236 --------------------------------------
238 Merge Cond: (t1.id = t2.id)
239 -> Index Scan using t1_pkey on t1
240 -> Index Scan using t2_pkey on t2
243 /*+Set(work_mem "1MB")*/
244 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
253 --------------------------------------
255 Merge Cond: (t1.id = t2.id)
256 -> Index Scan using t1_pkey on t1
257 -> Index Scan using t2_pkey on t2
260 /*+Set(work_mem TO "1MB")*/
261 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
262 INFO: hint syntax error at or near "Set(work_mem TO "1MB")"
263 DETAIL: Set hint requires name and value of GUC parameter.
272 --------------------------------------
274 Merge Cond: (t1.id = t2.id)
275 -> Index Scan using t1_pkey on t1
276 -> Index Scan using t2_pkey on t2
280 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
281 INFO: hint syntax error at or near ""
282 DETAIL: SeqScan hint accepts only one relation.
291 --------------------------------------
293 Merge Cond: (t1.id = t2.id)
294 -> Index Scan using t1_pkey on t1
295 -> Index Scan using t2_pkey on t2
299 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
308 ------------------------------
310 Hash Cond: (t1.id = t2.id)
316 /*+SeqScan(t1)IndexScan(t2)*/
317 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
327 --------------------------------------------
329 Hash Cond: (t1.id = t2.id)
332 -> Index Scan using t2_pkey on t2
336 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
345 ------------------------------------------
348 -> Bitmap Heap Scan on t2
349 Recheck Cond: (id = t1.id)
350 -> Bitmap Index Scan on t2_pkey
351 Index Cond: (id = t1.id)
354 /*+BitmapScan(t2)NoSeqScan(t1)*/
355 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
365 ------------------------------------------
367 -> Index Scan using t1_pkey on t1
368 -> Bitmap Heap Scan on t2
369 Recheck Cond: (id = t1.id)
370 -> Bitmap Index Scan on t2_pkey
371 Index Cond: (id = t1.id)
375 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
384 ------------------------------
386 Hash Cond: (t1.id = t2.id)
392 /*+NoBitmapScan(t1)*/
393 EXPLAIN (COSTS false) SELECT * FROM t1, t4 WHERE t1.val < 10;
402 ----------------------------
411 EXPLAIN (COSTS false) SELECT * FROM t3, t4 WHERE t3.id = t4.id AND t4.ctid = '(1,1)';
420 -----------------------------------------------
422 Merge Cond: (t3.id = t4.id)
423 -> Index Scan using t3_pkey on t3
427 TID Cond: (ctid = '(1,1)'::tid)
431 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)';
440 ---------------------------------------
443 Filter: (ctid = '(1,1)'::tid)
444 -> Index Scan using t2_pkey on t2
445 Index Cond: (id = t1.id)
449 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
458 ------------------------------
460 Hash Cond: (t1.id = t2.id)
467 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
476 --------------------------------------
479 -> Index Scan using t1_pkey on t1
480 Index Cond: (id = t2.id)
483 /*+NoMergeJoin(t1 t2)*/
484 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
493 ------------------------------
495 Hash Cond: (t1.id = t2.id)
501 /*+MergeJoin(t1 t3)*/
502 EXPLAIN (COSTS false) SELECT * FROM t1, t3 WHERE t1.val = t3.val;
511 -------------------------------------
513 Merge Cond: (t1.val = t3.val)
514 -> Index Scan using t1_val on t1
521 EXPLAIN (COSTS false) SELECT * FROM t1, t3 WHERE t1.val = t3.val;
530 -------------------------------------
533 -> Index Scan using t1_val on t1
534 Index Cond: (val = t3.val)
537 /*+NoHashJoin(t1 t3)*/
538 EXPLAIN (COSTS false) SELECT * FROM t1, t3 WHERE t1.val = t3.val;
547 -------------------------------------
550 -> Index Scan using t1_val on t1
551 Index Cond: (val = t3.val)
554 /*+MergeJoin(t4 t1 t2 t3)*/
555 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
558 MergeJoin(t1 t2 t3 t4)
564 --------------------------------------------------
566 Merge Cond: (t1.id = t4.id)
568 Merge Cond: (t1.id = t3.id)
570 Merge Cond: (t1.id = t2.id)
571 -> Index Scan using t1_pkey on t1
572 -> Index Scan using t2_pkey on t2
573 -> Index Scan using t3_pkey on t3
579 /*+HashJoin(t3 t4 t1 t2)*/
580 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
583 HashJoin(t1 t2 t3 t4)
589 --------------------------------------------------------
591 Hash Cond: (t3.id = t1.id)
595 Merge Cond: (t1.id = t4.id)
597 Merge Cond: (t1.id = t2.id)
598 -> Index Scan using t1_pkey on t1
599 -> Index Scan using t2_pkey on t2
605 /*+NestLoop(t2 t3 t4 t1) IndexScan(t3)*/
606 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
610 NestLoop(t1 t2 t3 t4)
616 --------------------------------------------------
619 Merge Cond: (t1.id = t4.id)
621 Merge Cond: (t1.id = t2.id)
622 -> Index Scan using t1_pkey on t1
623 -> Index Scan using t2_pkey on t2
627 -> Index Scan using t3_pkey on t3
628 Index Cond: (id = t1.id)
631 /*+NoNestLoop(t4 t1 t3 t2)*/
632 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
635 NoNestLoop(t1 t2 t3 t4)
641 --------------------------------------------------
643 Merge Cond: (t1.id = t4.id)
645 Merge Cond: (t1.id = t3.id)
647 Merge Cond: (t1.id = t2.id)
648 -> Index Scan using t1_pkey on t1
649 -> Index Scan using t2_pkey on t2
650 -> Index Scan using t3_pkey on t3
657 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
658 INFO: hint syntax error at or near ""
659 DETAIL: Closing parenthesis is necessary.
661 --------------------------------------------------
664 Merge Cond: (t1.id = t4.id)
666 Merge Cond: (t1.id = t2.id)
667 -> Index Scan using t1_pkey on t1
668 -> Index Scan using t2_pkey on t2
672 -> Index Scan using t3_pkey on t3
673 Index Cond: (id = t1.id)
677 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
678 INFO: hint syntax error at or near "Leading( )"
679 DETAIL: Leading hint requires at least two relations.
688 --------------------------------------------------
691 Merge Cond: (t1.id = t4.id)
693 Merge Cond: (t1.id = t2.id)
694 -> Index Scan using t1_pkey on t1
695 -> Index Scan using t2_pkey on t2
699 -> Index Scan using t3_pkey on t3
700 Index Cond: (id = t1.id)
704 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
705 INFO: hint syntax error at or near "Leading( t3 )"
706 DETAIL: Leading hint requires at least two relations.
715 --------------------------------------------------
718 Merge Cond: (t1.id = t4.id)
720 Merge Cond: (t1.id = t2.id)
721 -> Index Scan using t1_pkey on t1
722 -> Index Scan using t2_pkey on t2
726 -> Index Scan using t3_pkey on t3
727 Index Cond: (id = t1.id)
730 /*+Leading( t3 t4 )*/
731 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
740 --------------------------------------------------
744 Merge Cond: (t3.id = t4.id)
745 -> Index Scan using t3_pkey on t3
749 -> Index Scan using t2_pkey on t2
750 Index Cond: (id = t3.id)
751 -> Index Scan using t1_pkey on t1
752 Index Cond: (id = t2.id)
755 /*+Leading(t3 t4 t1)*/
756 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
765 --------------------------------------------------
768 Merge Cond: (t3.id = t1.id)
770 Merge Cond: (t3.id = t4.id)
771 -> Index Scan using t3_pkey on t3
775 -> Index Scan using t1_pkey on t1
776 -> Index Scan using t2_pkey on t2
777 Index Cond: (id = t1.id)
780 /*+Leading(t3 t4 t1 t2)*/
781 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
790 --------------------------------------------------
793 Merge Cond: (t3.id = t1.id)
795 Merge Cond: (t3.id = t4.id)
796 -> Index Scan using t3_pkey on t3
800 -> Index Scan using t1_pkey on t1
801 -> Index Scan using t2_pkey on t2
802 Index Cond: (id = t1.id)
805 /*+Leading(t3 t4 t1 t2 t1)*/
806 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
807 INFO: hint syntax error at or near "Leading(t3 t4 t1 t2 t1)"
808 DETAIL: Relation name "t1" is duplicated.
814 Leading(t3 t4 t1 t2 t1)
817 --------------------------------------------------
820 Merge Cond: (t1.id = t4.id)
822 Merge Cond: (t1.id = t2.id)
823 -> Index Scan using t1_pkey on t1
824 -> Index Scan using t2_pkey on t2
828 -> Index Scan using t3_pkey on t3
829 Index Cond: (id = t1.id)
832 /*+Leading(t3 t4 t4)*/
833 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
834 INFO: hint syntax error at or near "Leading(t3 t4 t4)"
835 DETAIL: Relation name "t4" is duplicated.
844 --------------------------------------------------
847 Merge Cond: (t1.id = t4.id)
849 Merge Cond: (t1.id = t2.id)
850 -> Index Scan using t1_pkey on t1
851 -> Index Scan using t2_pkey on t2
855 -> Index Scan using t3_pkey on t3
856 Index Cond: (id = t1.id)
859 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
861 -----------------------------------------------
863 -> Values Scan on "*VALUES*"
864 -> Index Scan using t1_pkey on t1
865 Index Cond: (id = "*VALUES*".column1)
869 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
878 -----------------------------------------------
880 -> Values Scan on "*VALUES*"
881 -> Index Scan using t1_pkey on t1
882 Index Cond: (id = "*VALUES*".column1)
885 /*+HashJoin(t1 *VALUES*)*/
886 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
889 HashJoin(*VALUES* t1)
895 -------------------------------------------
897 Hash Cond: (t1.id = "*VALUES*".column1)
900 -> Values Scan on "*VALUES*"
903 /*+HashJoin(t1 *VALUES*) IndexScan(t1) IndexScan(*VALUES*)*/
904 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
908 HashJoin(*VALUES* t1)
915 -------------------------------------------
917 Hash Cond: (t1.id = "*VALUES*".column1)
918 -> Index Scan using t1_pkey on t1
920 -> Values Scan on "*VALUES*"
923 -- single table scan hint test
924 EXPLAIN (COSTS false) SELECT (SELECT max(id) FROM t1 v_1 WHERE id < 10), id FROM v1 WHERE v1.id = (SELECT max(id) FROM t1 v_2 WHERE id < 10);
926 ------------------------------------------------------------------------
927 Index Only Scan using t1_pkey on t1
928 Index Cond: (id = $3)
929 InitPlan 2 (returns $1)
931 InitPlan 1 (returns $0)
933 -> Index Only Scan Backward using t1_pkey on t1 v_1
934 Index Cond: ((id IS NOT NULL) AND (id < 10))
935 InitPlan 4 (returns $3)
937 InitPlan 3 (returns $2)
939 -> Index Only Scan Backward using t1_pkey on t1 v_2
940 Index Cond: ((id IS NOT NULL) AND (id < 10))
944 EXPLAIN (COSTS false) SELECT (SELECT max(id) FROM t1 v_1 WHERE id < 10), id FROM v1 WHERE v1.id = (SELECT max(id) FROM t1 v_2 WHERE id < 10);
953 ------------------------------------------------------------------------
954 Index Only Scan using t1_pkey on t1
955 Index Cond: (id = $2)
956 InitPlan 1 (returns $0)
958 -> Bitmap Heap Scan on t1 v_1
959 Recheck Cond: (id < 10)
960 -> Bitmap Index Scan on t1_pkey
961 Index Cond: (id < 10)
962 InitPlan 3 (returns $2)
964 InitPlan 2 (returns $1)
966 -> Index Only Scan Backward using t1_pkey on t1 v_2
967 Index Cond: ((id IS NOT NULL) AND (id < 10))
971 EXPLAIN (COSTS false) SELECT (SELECT max(id) FROM t1 v_1 WHERE id < 10), id FROM v1 WHERE v1.id = (SELECT max(id) FROM t1 v_2 WHERE id < 10);
980 ------------------------------------------------------------------------
981 Index Only Scan using t1_pkey on t1
982 Index Cond: (id = $2)
983 InitPlan 2 (returns $1)
985 InitPlan 1 (returns $0)
987 -> Index Only Scan Backward using t1_pkey on t1 v_1
988 Index Cond: ((id IS NOT NULL) AND (id < 10))
989 InitPlan 3 (returns $2)
991 -> Bitmap Heap Scan on t1 v_2
992 Recheck Cond: (id < 10)
993 -> Bitmap Index Scan on t1_pkey
994 Index Cond: (id < 10)
998 EXPLAIN (COSTS false) SELECT (SELECT max(id) FROM t1 v_1 WHERE id < 10), id FROM v1 WHERE v1.id = (SELECT max(id) FROM t1 v_2 WHERE id < 10);
1007 ------------------------------------------------------------------------
1008 Bitmap Heap Scan on t1
1009 Recheck Cond: (id = $3)
1010 InitPlan 2 (returns $1)
1012 InitPlan 1 (returns $0)
1014 -> Index Only Scan Backward using t1_pkey on t1 v_1
1015 Index Cond: ((id IS NOT NULL) AND (id < 10))
1016 InitPlan 4 (returns $3)
1018 InitPlan 3 (returns $2)
1020 -> Index Only Scan Backward using t1_pkey on t1 v_2
1021 Index Cond: ((id IS NOT NULL) AND (id < 10))
1022 -> Bitmap Index Scan on t1_pkey
1023 Index Cond: (id = $3)
1026 /*+BitmapScan(v_1)BitmapScan(v_2)*/
1027 EXPLAIN (COSTS false) SELECT (SELECT max(id) FROM t1 v_1 WHERE id < 10), id FROM v1 WHERE v1.id = (SELECT max(id) FROM t1 v_2 WHERE id < 10);
1037 --------------------------------------------------
1038 Index Only Scan using t1_pkey on t1
1039 Index Cond: (id = $1)
1040 InitPlan 1 (returns $0)
1042 -> Bitmap Heap Scan on t1 v_1
1043 Recheck Cond: (id < 10)
1044 -> Bitmap Index Scan on t1_pkey
1045 Index Cond: (id < 10)
1046 InitPlan 2 (returns $1)
1048 -> Bitmap Heap Scan on t1 v_2
1049 Recheck Cond: (id < 10)
1050 -> Bitmap Index Scan on t1_pkey
1051 Index Cond: (id < 10)
1054 /*+BitmapScan(v_1)BitmapScan(t1)*/
1055 EXPLAIN (COSTS false) SELECT (SELECT max(id) FROM t1 v_1 WHERE id < 10), id FROM v1 WHERE v1.id = (SELECT max(id) FROM t1 v_2 WHERE id < 10);
1065 ------------------------------------------------------------------------
1066 Bitmap Heap Scan on t1
1067 Recheck Cond: (id = $2)
1068 InitPlan 1 (returns $0)
1070 -> Bitmap Heap Scan on t1 v_1
1071 Recheck Cond: (id < 10)
1072 -> Bitmap Index Scan on t1_pkey
1073 Index Cond: (id < 10)
1074 InitPlan 3 (returns $2)
1076 InitPlan 2 (returns $1)
1078 -> Index Only Scan Backward using t1_pkey on t1 v_2
1079 Index Cond: ((id IS NOT NULL) AND (id < 10))
1080 -> Bitmap Index Scan on t1_pkey
1081 Index Cond: (id = $2)
1084 /*+BitmapScan(v_2)BitmapScan(t1)*/
1085 EXPLAIN (COSTS false) SELECT (SELECT max(id) FROM t1 v_1 WHERE id < 10), id FROM v1 WHERE v1.id = (SELECT max(id) FROM t1 v_2 WHERE id < 10);
1095 ------------------------------------------------------------------------
1096 Bitmap Heap Scan on t1
1097 Recheck Cond: (id = $2)
1098 InitPlan 2 (returns $1)
1100 InitPlan 1 (returns $0)
1102 -> Index Only Scan Backward using t1_pkey on t1 v_1
1103 Index Cond: ((id IS NOT NULL) AND (id < 10))
1104 InitPlan 3 (returns $2)
1106 -> Bitmap Heap Scan on t1 v_2
1107 Recheck Cond: (id < 10)
1108 -> Bitmap Index Scan on t1_pkey
1109 Index Cond: (id < 10)
1110 -> Bitmap Index Scan on t1_pkey
1111 Index Cond: (id = $2)
1114 /*+BitmapScan(v_1)BitmapScan(v_2)BitmapScan(t1)*/
1115 EXPLAIN (COSTS false) SELECT (SELECT max(id) FROM t1 v_1 WHERE id < 10), id FROM v1 WHERE v1.id = (SELECT max(id) FROM t1 v_2 WHERE id < 10);
1126 --------------------------------------------------
1127 Bitmap Heap Scan on t1
1128 Recheck Cond: (id = $1)
1129 InitPlan 1 (returns $0)
1131 -> Bitmap Heap Scan on t1 v_1
1132 Recheck Cond: (id < 10)
1133 -> Bitmap Index Scan on t1_pkey
1134 Index Cond: (id < 10)
1135 InitPlan 2 (returns $1)
1137 -> Bitmap Heap Scan on t1 v_2
1138 Recheck Cond: (id < 10)
1139 -> Bitmap Index Scan on t1_pkey
1140 Index Cond: (id < 10)
1141 -> Bitmap Index Scan on t1_pkey
1142 Index Cond: (id = $1)
1145 -- full scan hint pattern test
1146 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1148 -----------------------------------
1150 TID Cond: (ctid = '(1,1)'::tid)
1155 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1164 -------------------------------------------------
1166 Filter: ((id < 10) AND (ctid = '(1,1)'::tid))
1170 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1179 ---------------------------------
1180 Index Scan using t1_pkey on t1
1181 Index Cond: (id < 10)
1182 Filter: (ctid = '(1,1)'::tid)
1186 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1195 ------------------------------------
1196 Bitmap Heap Scan on t1
1197 Recheck Cond: (id < 10)
1198 Filter: (ctid = '(1,1)'::tid)
1199 -> Bitmap Index Scan on t1_pkey
1200 Index Cond: (id < 10)
1204 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1213 -----------------------------------
1215 TID Cond: (ctid = '(1,1)'::tid)
1220 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1229 -----------------------------------
1231 TID Cond: (ctid = '(1,1)'::tid)
1235 /*+NoIndexScan(t1)*/
1236 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1245 -----------------------------------
1247 TID Cond: (ctid = '(1,1)'::tid)
1251 /*+NoBitmapScan(t1)*/
1252 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1261 -----------------------------------
1263 TID Cond: (ctid = '(1,1)'::tid)
1268 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1277 ---------------------------------
1278 Index Scan using t1_pkey on t1
1279 Index Cond: (id < 10)
1280 Filter: (ctid = '(1,1)'::tid)
1283 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1285 -----------------------------------------
1287 Join Filter: (t1.id = t2.id)
1289 TID Cond: (ctid = '(1,1)'::tid)
1291 TID Cond: (ctid = '(1,1)'::tid)
1295 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1304 -----------------------------------------
1306 Join Filter: (t1.id = t2.id)
1308 Filter: (ctid = '(1,1)'::tid)
1310 TID Cond: (ctid = '(1,1)'::tid)
1314 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1323 -----------------------------------------
1325 Join Filter: (t1.id = t2.id)
1327 TID Cond: (ctid = '(1,1)'::tid)
1329 Filter: (ctid = '(1,1)'::tid)
1332 /*+SeqScan(t1) SeqScan(t2)*/
1333 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1343 ---------------------------------------
1345 Join Filter: (t1.id = t2.id)
1347 Filter: (ctid = '(1,1)'::tid)
1349 Filter: (ctid = '(1,1)'::tid)
1352 /*+SeqScan(t1) IndexScan(t2)*/
1353 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1363 ---------------------------------------
1366 Filter: (ctid = '(1,1)'::tid)
1367 -> Index Scan using t2_pkey on t2
1368 Index Cond: (id = t1.id)
1369 Filter: (ctid = '(1,1)'::tid)
1372 /*+SeqScan(t1) BitmapScan(t2)*/
1373 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1383 ------------------------------------------
1386 Filter: (ctid = '(1,1)'::tid)
1387 -> Bitmap Heap Scan on t2
1388 Recheck Cond: (id = t1.id)
1389 Filter: (ctid = '(1,1)'::tid)
1390 -> Bitmap Index Scan on t2_pkey
1391 Index Cond: (id = t1.id)
1394 /*+SeqScan(t1) TidScan(t2)*/
1395 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1405 -----------------------------------------
1407 Join Filter: (t1.id = t2.id)
1409 Filter: (ctid = '(1,1)'::tid)
1411 TID Cond: (ctid = '(1,1)'::tid)
1414 /*+SeqScan(t1) NoSeqScan(t2)*/
1415 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1425 -----------------------------------------
1427 Join Filter: (t1.id = t2.id)
1429 Filter: (ctid = '(1,1)'::tid)
1431 TID Cond: (ctid = '(1,1)'::tid)
1434 /*+SeqScan(t1) NoIndexScan(t2)*/
1435 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1445 -----------------------------------------
1447 Join Filter: (t1.id = t2.id)
1449 Filter: (ctid = '(1,1)'::tid)
1451 TID Cond: (ctid = '(1,1)'::tid)
1454 /*+SeqScan(t1) NoBitmapScan(t2)*/
1455 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1465 -----------------------------------------
1467 Join Filter: (t1.id = t2.id)
1469 Filter: (ctid = '(1,1)'::tid)
1471 TID Cond: (ctid = '(1,1)'::tid)
1474 /*+SeqScan(t1) NoTidScan(t2)*/
1475 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1485 ---------------------------------------
1488 Filter: (ctid = '(1,1)'::tid)
1489 -> Index Scan using t2_pkey on t2
1490 Index Cond: (id = t1.id)
1491 Filter: (ctid = '(1,1)'::tid)
1495 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1504 -----------------------------------------
1507 TID Cond: (ctid = '(1,1)'::tid)
1508 -> Index Scan using t1_pkey on t1
1509 Index Cond: (id = t2.id)
1510 Filter: (ctid = '(1,1)'::tid)
1514 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1523 -----------------------------------------
1526 TID Cond: (ctid = '(1,1)'::tid)
1527 -> Index Scan using t2_pkey on t2
1528 Index Cond: (id = t1.id)
1529 Filter: (ctid = '(1,1)'::tid)
1532 /*+IndexScan(t1) SeqScan(t2)*/
1533 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1543 ---------------------------------------
1546 Filter: (ctid = '(1,1)'::tid)
1547 -> Index Scan using t1_pkey on t1
1548 Index Cond: (id = t2.id)
1549 Filter: (ctid = '(1,1)'::tid)
1552 /*+IndexScan(t1) IndexScan(t2)*/
1553 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1563 ---------------------------------------
1565 -> Index Scan using t2_pkey on t2
1566 Filter: (ctid = '(1,1)'::tid)
1567 -> Index Scan using t1_pkey on t1
1568 Index Cond: (id = t2.id)
1569 Filter: (ctid = '(1,1)'::tid)
1572 /*+IndexScan(t1) BitmapScan(t2)*/
1573 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1583 ------------------------------------------
1585 -> Index Scan using t1_pkey on t1
1586 Filter: (ctid = '(1,1)'::tid)
1587 -> Bitmap Heap Scan on t2
1588 Recheck Cond: (id = t1.id)
1589 Filter: (ctid = '(1,1)'::tid)
1590 -> Bitmap Index Scan on t2_pkey
1591 Index Cond: (id = t1.id)
1594 /*+IndexScan(t1) TidScan(t2)*/
1595 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1605 -----------------------------------------
1608 TID Cond: (ctid = '(1,1)'::tid)
1609 -> Index Scan using t1_pkey on t1
1610 Index Cond: (id = t2.id)
1611 Filter: (ctid = '(1,1)'::tid)
1614 /*+IndexScan(t1) NoSeqScan(t2)*/
1615 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1625 -----------------------------------------
1628 TID Cond: (ctid = '(1,1)'::tid)
1629 -> Index Scan using t1_pkey on t1
1630 Index Cond: (id = t2.id)
1631 Filter: (ctid = '(1,1)'::tid)
1634 /*+IndexScan(t1) NoIndexScan(t2)*/
1635 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1645 -----------------------------------------
1648 TID Cond: (ctid = '(1,1)'::tid)
1649 -> Index Scan using t1_pkey on t1
1650 Index Cond: (id = t2.id)
1651 Filter: (ctid = '(1,1)'::tid)
1654 /*+IndexScan(t1) NoBitmapScan(t2)*/
1655 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1665 -----------------------------------------
1668 TID Cond: (ctid = '(1,1)'::tid)
1669 -> Index Scan using t1_pkey on t1
1670 Index Cond: (id = t2.id)
1671 Filter: (ctid = '(1,1)'::tid)
1674 /*+IndexScan(t1) NoTidScan(t2)*/
1675 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1685 ---------------------------------------
1688 Filter: (ctid = '(1,1)'::tid)
1689 -> Index Scan using t1_pkey on t1
1690 Index Cond: (id = t2.id)
1691 Filter: (ctid = '(1,1)'::tid)
1695 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1704 ------------------------------------------
1707 TID Cond: (ctid = '(1,1)'::tid)
1708 -> Bitmap Heap Scan on t1
1709 Recheck Cond: (id = t2.id)
1710 Filter: (ctid = '(1,1)'::tid)
1711 -> Bitmap Index Scan on t1_pkey
1712 Index Cond: (id = t2.id)
1716 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1725 ------------------------------------------
1728 TID Cond: (ctid = '(1,1)'::tid)
1729 -> Bitmap Heap Scan on t2
1730 Recheck Cond: (id = t1.id)
1731 Filter: (ctid = '(1,1)'::tid)
1732 -> Bitmap Index Scan on t2_pkey
1733 Index Cond: (id = t1.id)
1737 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1746 ------------------------------------------
1749 TID Cond: (ctid = '(1,1)'::tid)
1750 -> Bitmap Heap Scan on t2
1751 Recheck Cond: (id = t1.id)
1752 Filter: (ctid = '(1,1)'::tid)
1753 -> Bitmap Index Scan on t2_pkey
1754 Index Cond: (id = t1.id)
1757 /*+BitmapScan(t1) SeqScan(t2)*/
1758 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1768 ------------------------------------------
1771 Filter: (ctid = '(1,1)'::tid)
1772 -> Bitmap Heap Scan on t1
1773 Recheck Cond: (id = t2.id)
1774 Filter: (ctid = '(1,1)'::tid)
1775 -> Bitmap Index Scan on t1_pkey
1776 Index Cond: (id = t2.id)
1779 /*+BitmapScan(t1) IndexScan(t2)*/
1780 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1790 ------------------------------------------
1792 -> Index Scan using t2_pkey on t2
1793 Filter: (ctid = '(1,1)'::tid)
1794 -> Bitmap Heap Scan on t1
1795 Recheck Cond: (id = t2.id)
1796 Filter: (ctid = '(1,1)'::tid)
1797 -> Bitmap Index Scan on t1_pkey
1798 Index Cond: (id = t2.id)
1801 /*+BitmapScan(t1) BitmapScan(t2)*/
1802 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1812 ------------------------------------------
1814 -> Index Scan using t2_pkey on t2
1815 Filter: (ctid = '(1,1)'::tid)
1816 -> Bitmap Heap Scan on t1
1817 Recheck Cond: (id = t2.id)
1818 Filter: (ctid = '(1,1)'::tid)
1819 -> Bitmap Index Scan on t1_pkey
1820 Index Cond: (id = t2.id)
1823 /*+BitmapScan(t1) TidScan(t2)*/
1824 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1834 ------------------------------------------
1837 TID Cond: (ctid = '(1,1)'::tid)
1838 -> Bitmap Heap Scan on t1
1839 Recheck Cond: (id = t2.id)
1840 Filter: (ctid = '(1,1)'::tid)
1841 -> Bitmap Index Scan on t1_pkey
1842 Index Cond: (id = t2.id)
1845 /*+BitmapScan(t1) NoSeqScan(t2)*/
1846 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1856 ------------------------------------------
1859 TID Cond: (ctid = '(1,1)'::tid)
1860 -> Bitmap Heap Scan on t1
1861 Recheck Cond: (id = t2.id)
1862 Filter: (ctid = '(1,1)'::tid)
1863 -> Bitmap Index Scan on t1_pkey
1864 Index Cond: (id = t2.id)
1867 /*+BitmapScan(t1) NoIndexScan(t2)*/
1868 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1878 ------------------------------------------
1881 TID Cond: (ctid = '(1,1)'::tid)
1882 -> Bitmap Heap Scan on t1
1883 Recheck Cond: (id = t2.id)
1884 Filter: (ctid = '(1,1)'::tid)
1885 -> Bitmap Index Scan on t1_pkey
1886 Index Cond: (id = t2.id)
1889 /*+BitmapScan(t1) NoBitmapScan(t2)*/
1890 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1900 ------------------------------------------
1903 TID Cond: (ctid = '(1,1)'::tid)
1904 -> Bitmap Heap Scan on t1
1905 Recheck Cond: (id = t2.id)
1906 Filter: (ctid = '(1,1)'::tid)
1907 -> Bitmap Index Scan on t1_pkey
1908 Index Cond: (id = t2.id)
1911 /*+BitmapScan(t1) NoTidScan(t2)*/
1912 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1922 ------------------------------------------
1925 Filter: (ctid = '(1,1)'::tid)
1926 -> Bitmap Heap Scan on t1
1927 Recheck Cond: (id = t2.id)
1928 Filter: (ctid = '(1,1)'::tid)
1929 -> Bitmap Index Scan on t1_pkey
1930 Index Cond: (id = t2.id)
1934 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1943 -----------------------------------------
1945 Join Filter: (t1.id = t2.id)
1947 TID Cond: (ctid = '(1,1)'::tid)
1949 TID Cond: (ctid = '(1,1)'::tid)
1953 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1962 -----------------------------------------
1964 Join Filter: (t1.id = t2.id)
1966 TID Cond: (ctid = '(1,1)'::tid)
1968 TID Cond: (ctid = '(1,1)'::tid)
1971 /*+TidScan(t1) SeqScan(t2)*/
1972 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1982 -----------------------------------------
1984 Join Filter: (t1.id = t2.id)
1986 TID Cond: (ctid = '(1,1)'::tid)
1988 Filter: (ctid = '(1,1)'::tid)
1991 /*+TidScan(t1) IndexScan(t2)*/
1992 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2002 -----------------------------------------
2005 TID Cond: (ctid = '(1,1)'::tid)
2006 -> Index Scan using t2_pkey on t2
2007 Index Cond: (id = t1.id)
2008 Filter: (ctid = '(1,1)'::tid)
2011 /*+TidScan(t1) BitmapScan(t2)*/
2012 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2022 ------------------------------------------
2025 TID Cond: (ctid = '(1,1)'::tid)
2026 -> Bitmap Heap Scan on t2
2027 Recheck Cond: (id = t1.id)
2028 Filter: (ctid = '(1,1)'::tid)
2029 -> Bitmap Index Scan on t2_pkey
2030 Index Cond: (id = t1.id)
2033 /*+TidScan(t1) TidScan(t2)*/
2034 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2044 -----------------------------------------
2046 Join Filter: (t1.id = t2.id)
2048 TID Cond: (ctid = '(1,1)'::tid)
2050 TID Cond: (ctid = '(1,1)'::tid)
2053 /*+TidScan(t1) NoSeqScan(t2)*/
2054 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2064 -----------------------------------------
2066 Join Filter: (t1.id = t2.id)
2068 TID Cond: (ctid = '(1,1)'::tid)
2070 TID Cond: (ctid = '(1,1)'::tid)
2073 /*+TidScan(t1) NoIndexScan(t2)*/
2074 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2084 -----------------------------------------
2086 Join Filter: (t1.id = t2.id)
2088 TID Cond: (ctid = '(1,1)'::tid)
2090 TID Cond: (ctid = '(1,1)'::tid)
2093 /*+TidScan(t1) NoBitmapScan(t2)*/
2094 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2104 -----------------------------------------
2106 Join Filter: (t1.id = t2.id)
2108 TID Cond: (ctid = '(1,1)'::tid)
2110 TID Cond: (ctid = '(1,1)'::tid)
2113 /*+TidScan(t1) NoTidScan(t2)*/
2114 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2124 -----------------------------------------
2127 TID Cond: (ctid = '(1,1)'::tid)
2128 -> Index Scan using t2_pkey on t2
2129 Index Cond: (id = t1.id)
2130 Filter: (ctid = '(1,1)'::tid)
2134 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2143 -----------------------------------------
2145 Join Filter: (t1.id = t2.id)
2147 TID Cond: (ctid = '(1,1)'::tid)
2149 TID Cond: (ctid = '(1,1)'::tid)
2153 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2162 -----------------------------------------
2164 Join Filter: (t1.id = t2.id)
2166 TID Cond: (ctid = '(1,1)'::tid)
2168 TID Cond: (ctid = '(1,1)'::tid)
2171 /*+NoSeqScan(t1) SeqScan(t2)*/
2172 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2182 -----------------------------------------
2184 Join Filter: (t1.id = t2.id)
2186 TID Cond: (ctid = '(1,1)'::tid)
2188 Filter: (ctid = '(1,1)'::tid)
2191 /*+NoSeqScan(t1) IndexScan(t2)*/
2192 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2202 -----------------------------------------
2205 TID Cond: (ctid = '(1,1)'::tid)
2206 -> Index Scan using t2_pkey on t2
2207 Index Cond: (id = t1.id)
2208 Filter: (ctid = '(1,1)'::tid)
2211 /*+NoSeqScan(t1) BitmapScan(t2)*/
2212 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2222 ------------------------------------------
2225 TID Cond: (ctid = '(1,1)'::tid)
2226 -> Bitmap Heap Scan on t2
2227 Recheck Cond: (id = t1.id)
2228 Filter: (ctid = '(1,1)'::tid)
2229 -> Bitmap Index Scan on t2_pkey
2230 Index Cond: (id = t1.id)
2233 /*+NoSeqScan(t1) TidScan(t2)*/
2234 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2244 -----------------------------------------
2246 Join Filter: (t1.id = t2.id)
2248 TID Cond: (ctid = '(1,1)'::tid)
2250 TID Cond: (ctid = '(1,1)'::tid)
2253 /*+NoSeqScan(t1) NoSeqScan(t2)*/
2254 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2264 -----------------------------------------
2266 Join Filter: (t1.id = t2.id)
2268 TID Cond: (ctid = '(1,1)'::tid)
2270 TID Cond: (ctid = '(1,1)'::tid)
2273 /*+NoSeqScan(t1) NoIndexScan(t2)*/
2274 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2284 -----------------------------------------
2286 Join Filter: (t1.id = t2.id)
2288 TID Cond: (ctid = '(1,1)'::tid)
2290 TID Cond: (ctid = '(1,1)'::tid)
2293 /*+NoSeqScan(t1) NoBitmapScan(t2)*/
2294 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2304 -----------------------------------------
2306 Join Filter: (t1.id = t2.id)
2308 TID Cond: (ctid = '(1,1)'::tid)
2310 TID Cond: (ctid = '(1,1)'::tid)
2313 /*+NoSeqScan(t1) NoTidScan(t2)*/
2314 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2324 -----------------------------------------
2327 TID Cond: (ctid = '(1,1)'::tid)
2328 -> Index Scan using t2_pkey on t2
2329 Index Cond: (id = t1.id)
2330 Filter: (ctid = '(1,1)'::tid)
2333 /*+NoIndexScan(t1)*/
2334 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2343 -----------------------------------------
2345 Join Filter: (t1.id = t2.id)
2347 TID Cond: (ctid = '(1,1)'::tid)
2349 TID Cond: (ctid = '(1,1)'::tid)
2352 /*+NoIndexScan(t2)*/
2353 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2362 -----------------------------------------
2364 Join Filter: (t1.id = t2.id)
2366 TID Cond: (ctid = '(1,1)'::tid)
2368 TID Cond: (ctid = '(1,1)'::tid)
2371 /*+NoIndexScan(t1) SeqScan(t2)*/
2372 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2382 -----------------------------------------
2384 Join Filter: (t1.id = t2.id)
2386 TID Cond: (ctid = '(1,1)'::tid)
2388 Filter: (ctid = '(1,1)'::tid)
2391 /*+NoIndexScan(t1) IndexScan(t2)*/
2392 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2402 -----------------------------------------
2405 TID Cond: (ctid = '(1,1)'::tid)
2406 -> Index Scan using t2_pkey on t2
2407 Index Cond: (id = t1.id)
2408 Filter: (ctid = '(1,1)'::tid)
2411 /*+NoIndexScan(t1) BitmapScan(t2)*/
2412 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2422 ------------------------------------------
2425 TID Cond: (ctid = '(1,1)'::tid)
2426 -> Bitmap Heap Scan on t2
2427 Recheck Cond: (id = t1.id)
2428 Filter: (ctid = '(1,1)'::tid)
2429 -> Bitmap Index Scan on t2_pkey
2430 Index Cond: (id = t1.id)
2433 /*+NoIndexScan(t1) TidScan(t2)*/
2434 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2444 -----------------------------------------
2446 Join Filter: (t1.id = t2.id)
2448 TID Cond: (ctid = '(1,1)'::tid)
2450 TID Cond: (ctid = '(1,1)'::tid)
2453 /*+NoIndexScan(t1) NoSeqScan(t2)*/
2454 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2464 -----------------------------------------
2466 Join Filter: (t1.id = t2.id)
2468 TID Cond: (ctid = '(1,1)'::tid)
2470 TID Cond: (ctid = '(1,1)'::tid)
2473 /*+NoIndexScan(t1) NoIndexScan(t2)*/
2474 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2484 -----------------------------------------
2486 Join Filter: (t1.id = t2.id)
2488 TID Cond: (ctid = '(1,1)'::tid)
2490 TID Cond: (ctid = '(1,1)'::tid)
2493 /*+NoIndexScan(t1) NoBitmapScan(t2)*/
2494 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2504 -----------------------------------------
2506 Join Filter: (t1.id = t2.id)
2508 TID Cond: (ctid = '(1,1)'::tid)
2510 TID Cond: (ctid = '(1,1)'::tid)
2513 /*+NoIndexScan(t1) NoTidScan(t2)*/
2514 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2524 -----------------------------------------
2527 TID Cond: (ctid = '(1,1)'::tid)
2528 -> Index Scan using t2_pkey on t2
2529 Index Cond: (id = t1.id)
2530 Filter: (ctid = '(1,1)'::tid)
2533 /*+NoBitmapScan(t1)*/
2534 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2543 -----------------------------------------
2545 Join Filter: (t1.id = t2.id)
2547 TID Cond: (ctid = '(1,1)'::tid)
2549 TID Cond: (ctid = '(1,1)'::tid)
2552 /*+NoBitmapScan(t2)*/
2553 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2562 -----------------------------------------
2564 Join Filter: (t1.id = t2.id)
2566 TID Cond: (ctid = '(1,1)'::tid)
2568 TID Cond: (ctid = '(1,1)'::tid)
2571 /*+NoBitmapScan(t1) SeqScan(t2)*/
2572 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2582 -----------------------------------------
2584 Join Filter: (t1.id = t2.id)
2586 TID Cond: (ctid = '(1,1)'::tid)
2588 Filter: (ctid = '(1,1)'::tid)
2591 /*+NoBitmapScan(t1) IndexScan(t2)*/
2592 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2602 -----------------------------------------
2605 TID Cond: (ctid = '(1,1)'::tid)
2606 -> Index Scan using t2_pkey on t2
2607 Index Cond: (id = t1.id)
2608 Filter: (ctid = '(1,1)'::tid)
2611 /*+NoBitmapScan(t1) BitmapScan(t2)*/
2612 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2622 ------------------------------------------
2625 TID Cond: (ctid = '(1,1)'::tid)
2626 -> Bitmap Heap Scan on t2
2627 Recheck Cond: (id = t1.id)
2628 Filter: (ctid = '(1,1)'::tid)
2629 -> Bitmap Index Scan on t2_pkey
2630 Index Cond: (id = t1.id)
2633 /*+NoBitmapScan(t1) TidScan(t2)*/
2634 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2644 -----------------------------------------
2646 Join Filter: (t1.id = t2.id)
2648 TID Cond: (ctid = '(1,1)'::tid)
2650 TID Cond: (ctid = '(1,1)'::tid)
2653 /*+NoBitmapScan(t1) NoSeqScan(t2)*/
2654 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2664 -----------------------------------------
2666 Join Filter: (t1.id = t2.id)
2668 TID Cond: (ctid = '(1,1)'::tid)
2670 TID Cond: (ctid = '(1,1)'::tid)
2673 /*+NoBitmapScan(t1) NoIndexScan(t2)*/
2674 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2684 -----------------------------------------
2686 Join Filter: (t1.id = t2.id)
2688 TID Cond: (ctid = '(1,1)'::tid)
2690 TID Cond: (ctid = '(1,1)'::tid)
2693 /*+NoBitmapScan(t1) NoBitmapScan(t2)*/
2694 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2704 -----------------------------------------
2706 Join Filter: (t1.id = t2.id)
2708 TID Cond: (ctid = '(1,1)'::tid)
2710 TID Cond: (ctid = '(1,1)'::tid)
2713 /*+NoBitmapScan(t1) NoTidScan(t2)*/
2714 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2724 -----------------------------------------
2727 TID Cond: (ctid = '(1,1)'::tid)
2728 -> Index Scan using t2_pkey on t2
2729 Index Cond: (id = t1.id)
2730 Filter: (ctid = '(1,1)'::tid)
2734 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2743 -----------------------------------------
2746 TID Cond: (ctid = '(1,1)'::tid)
2747 -> Index Scan using t1_pkey on t1
2748 Index Cond: (id = t2.id)
2749 Filter: (ctid = '(1,1)'::tid)
2753 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2762 -----------------------------------------
2765 TID Cond: (ctid = '(1,1)'::tid)
2766 -> Index Scan using t2_pkey on t2
2767 Index Cond: (id = t1.id)
2768 Filter: (ctid = '(1,1)'::tid)
2771 /*+NoTidScan(t1) SeqScan(t2)*/
2772 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2782 ---------------------------------------
2785 Filter: (ctid = '(1,1)'::tid)
2786 -> Index Scan using t1_pkey on t1
2787 Index Cond: (id = t2.id)
2788 Filter: (ctid = '(1,1)'::tid)
2791 /*+NoTidScan(t1) IndexScan(t2)*/
2792 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2802 ---------------------------------------
2804 -> Index Scan using t2_pkey on t2
2805 Filter: (ctid = '(1,1)'::tid)
2806 -> Index Scan using t1_pkey on t1
2807 Index Cond: (id = t2.id)
2808 Filter: (ctid = '(1,1)'::tid)
2811 /*+NoTidScan(t1) BitmapScan(t2)*/
2812 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2822 ------------------------------------------
2825 Filter: (ctid = '(1,1)'::tid)
2826 -> Bitmap Heap Scan on t2
2827 Recheck Cond: (id = t1.id)
2828 Filter: (ctid = '(1,1)'::tid)
2829 -> Bitmap Index Scan on t2_pkey
2830 Index Cond: (id = t1.id)
2833 /*+NoTidScan(t1) TidScan(t2)*/
2834 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2844 -----------------------------------------
2847 TID Cond: (ctid = '(1,1)'::tid)
2848 -> Index Scan using t1_pkey on t1
2849 Index Cond: (id = t2.id)
2850 Filter: (ctid = '(1,1)'::tid)
2853 /*+NoTidScan(t1) NoSeqScan(t2)*/
2854 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2864 -----------------------------------------
2867 TID Cond: (ctid = '(1,1)'::tid)
2868 -> Index Scan using t1_pkey on t1
2869 Index Cond: (id = t2.id)
2870 Filter: (ctid = '(1,1)'::tid)
2873 /*+NoTidScan(t1) NoIndexScan(t2)*/
2874 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2884 -----------------------------------------
2887 TID Cond: (ctid = '(1,1)'::tid)
2888 -> Index Scan using t1_pkey on t1
2889 Index Cond: (id = t2.id)
2890 Filter: (ctid = '(1,1)'::tid)
2893 /*+NoTidScan(t1) NoBitmapScan(t2)*/
2894 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2904 -----------------------------------------
2907 TID Cond: (ctid = '(1,1)'::tid)
2908 -> Index Scan using t1_pkey on t1
2909 Index Cond: (id = t2.id)
2910 Filter: (ctid = '(1,1)'::tid)
2913 /*+NoTidScan(t1) NoTidScan(t2)*/
2914 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2924 ---------------------------------------
2927 Filter: (ctid = '(1,1)'::tid)
2928 -> Index Scan using t1_pkey on t1
2929 Index Cond: (id = t2.id)
2930 Filter: (ctid = '(1,1)'::tid)
2934 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)' AND t1.id < 10 AND t2.id < 10;
2936 -----------------------------------------
2938 Join Filter: (t1.id = t2.id)
2940 TID Cond: (ctid = '(1,1)'::tid)
2943 TID Cond: (ctid = '(1,1)'::tid)
2947 /*+BitmapScan(t1) BitmapScan(t2)*/
2948 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)' AND t1.id < 10 AND t2.id < 10;
2958 --------------------------------------------------------
2960 -> Bitmap Heap Scan on t2
2961 Recheck Cond: (id < 10)
2962 Filter: (ctid = '(1,1)'::tid)
2963 -> Bitmap Index Scan on t2_pkey
2964 Index Cond: (id < 10)
2965 -> Bitmap Heap Scan on t1
2966 Recheck Cond: ((id = t2.id) AND (id < 10))
2967 Filter: (ctid = '(1,1)'::tid)
2968 -> Bitmap Index Scan on t1_pkey
2969 Index Cond: ((id = t2.id) AND (id < 10))
2973 EXPLAIN (COSTS false) SELECT * FROM t1 FULL OUTER JOIN t2 ON (t1.id = t2.id);
2975 ------------------------------
2977 Hash Cond: (t1.id = t2.id)
2983 /*+MergeJoin(t1 t2)*/
2984 EXPLAIN (COSTS false) SELECT * FROM t1 FULL OUTER JOIN t2 ON (t1.id = t2.id);
2993 --------------------------------------
2995 Merge Cond: (t1.id = t2.id)
2996 -> Index Scan using t1_pkey on t1
2997 -> Index Scan using t2_pkey on t2
3000 /*+NestLoop(t1 t2)*/
3001 EXPLAIN (COSTS false) SELECT * FROM t1 FULL OUTER JOIN t2 ON (t1.id = t2.id);
3010 --------------------------------------
3012 Merge Cond: (t1.id = t2.id)
3013 -> Index Scan using t1_pkey on t1
3014 -> Index Scan using t2_pkey on t2
3017 -- inherite table test
3018 SET constraint_exclusion TO off;
3019 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3021 -----------------------------------------------------------------------
3024 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3025 -> Seq Scan on p1_c1
3026 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3027 -> Seq Scan on p1_c2
3028 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3029 -> Seq Scan on p1_c3
3030 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3031 -> Seq Scan on p1_c4
3032 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3033 -> Seq Scan on p1_c1_c1
3034 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3035 -> Seq Scan on p1_c1_c2
3036 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3037 -> Seq Scan on p1_c3_c1
3038 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3039 -> Seq Scan on p1_c3_c2
3040 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3043 SET constraint_exclusion TO on;
3044 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3046 -----------------------------------------------------------------------
3049 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3050 -> Seq Scan on p1_c1
3051 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3052 -> Seq Scan on p1_c1_c1
3053 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3054 -> Seq Scan on p1_c1_c2
3055 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3058 SET constraint_exclusion TO off;
3060 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3069 -----------------------------------------------------------------------
3072 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3073 -> Seq Scan on p1_c1
3074 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3075 -> Seq Scan on p1_c2
3076 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3077 -> Seq Scan on p1_c3
3078 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3079 -> Seq Scan on p1_c4
3080 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3081 -> Seq Scan on p1_c1_c1
3082 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3083 -> Seq Scan on p1_c1_c2
3084 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3085 -> Seq Scan on p1_c3_c1
3086 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3087 -> Seq Scan on p1_c3_c2
3088 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3092 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3101 --------------------------------------------------
3103 -> Index Scan using p1_pkey on p1
3104 Index Cond: ((id >= 50) AND (id <= 51))
3105 Filter: (ctid = '(1,1)'::tid)
3106 -> Index Scan using p1_c1_pkey on p1_c1
3107 Index Cond: ((id >= 50) AND (id <= 51))
3108 Filter: (ctid = '(1,1)'::tid)
3109 -> Index Scan using p1_c2_pkey on p1_c2
3110 Index Cond: ((id >= 50) AND (id <= 51))
3111 Filter: (ctid = '(1,1)'::tid)
3112 -> Index Scan using p1_c3_pkey on p1_c3
3113 Index Cond: ((id >= 50) AND (id <= 51))
3114 Filter: (ctid = '(1,1)'::tid)
3115 -> Index Scan using p1_c4_pkey on p1_c4
3116 Index Cond: ((id >= 50) AND (id <= 51))
3117 Filter: (ctid = '(1,1)'::tid)
3118 -> Index Scan using p1_c1_c1_pkey on p1_c1_c1
3119 Index Cond: ((id >= 50) AND (id <= 51))
3120 Filter: (ctid = '(1,1)'::tid)
3121 -> Index Scan using p1_c1_c2_pkey on p1_c1_c2
3122 Index Cond: ((id >= 50) AND (id <= 51))
3123 Filter: (ctid = '(1,1)'::tid)
3124 -> Index Scan using p1_c3_c1_pkey on p1_c3_c1
3125 Index Cond: ((id >= 50) AND (id <= 51))
3126 Filter: (ctid = '(1,1)'::tid)
3127 -> Index Scan using p1_c3_c2_pkey on p1_c3_c2
3128 Index Cond: ((id >= 50) AND (id <= 51))
3129 Filter: (ctid = '(1,1)'::tid)
3133 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3142 -------------------------------------------------------
3144 -> Bitmap Heap Scan on p1
3145 Recheck Cond: ((id >= 50) AND (id <= 51))
3146 Filter: (ctid = '(1,1)'::tid)
3147 -> Bitmap Index Scan on p1_pkey
3148 Index Cond: ((id >= 50) AND (id <= 51))
3149 -> Bitmap Heap Scan on p1_c1
3150 Recheck Cond: ((id >= 50) AND (id <= 51))
3151 Filter: (ctid = '(1,1)'::tid)
3152 -> Bitmap Index Scan on p1_c1_pkey
3153 Index Cond: ((id >= 50) AND (id <= 51))
3154 -> Bitmap Heap Scan on p1_c2
3155 Recheck Cond: ((id >= 50) AND (id <= 51))
3156 Filter: (ctid = '(1,1)'::tid)
3157 -> Bitmap Index Scan on p1_c2_pkey
3158 Index Cond: ((id >= 50) AND (id <= 51))
3159 -> Bitmap Heap Scan on p1_c3
3160 Recheck Cond: ((id >= 50) AND (id <= 51))
3161 Filter: (ctid = '(1,1)'::tid)
3162 -> Bitmap Index Scan on p1_c3_pkey
3163 Index Cond: ((id >= 50) AND (id <= 51))
3164 -> Bitmap Heap Scan on p1_c4
3165 Recheck Cond: ((id >= 50) AND (id <= 51))
3166 Filter: (ctid = '(1,1)'::tid)
3167 -> Bitmap Index Scan on p1_c4_pkey
3168 Index Cond: ((id >= 50) AND (id <= 51))
3169 -> Bitmap Heap Scan on p1_c1_c1
3170 Recheck Cond: ((id >= 50) AND (id <= 51))
3171 Filter: (ctid = '(1,1)'::tid)
3172 -> Bitmap Index Scan on p1_c1_c1_pkey
3173 Index Cond: ((id >= 50) AND (id <= 51))
3174 -> Bitmap Heap Scan on p1_c1_c2
3175 Recheck Cond: ((id >= 50) AND (id <= 51))
3176 Filter: (ctid = '(1,1)'::tid)
3177 -> Bitmap Index Scan on p1_c1_c2_pkey
3178 Index Cond: ((id >= 50) AND (id <= 51))
3179 -> Bitmap Heap Scan on p1_c3_c1
3180 Recheck Cond: ((id >= 50) AND (id <= 51))
3181 Filter: (ctid = '(1,1)'::tid)
3182 -> Bitmap Index Scan on p1_c3_c1_pkey
3183 Index Cond: ((id >= 50) AND (id <= 51))
3184 -> Bitmap Heap Scan on p1_c3_c2
3185 Recheck Cond: ((id >= 50) AND (id <= 51))
3186 Filter: (ctid = '(1,1)'::tid)
3187 -> Bitmap Index Scan on p1_c3_c2_pkey
3188 Index Cond: ((id >= 50) AND (id <= 51))
3192 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3201 ---------------------------------------------
3204 TID Cond: (ctid = '(1,1)'::tid)
3205 Filter: ((id >= 50) AND (id <= 51))
3206 -> Tid Scan on p1_c1
3207 TID Cond: (ctid = '(1,1)'::tid)
3208 Filter: ((id >= 50) AND (id <= 51))
3209 -> Tid Scan on p1_c2
3210 TID Cond: (ctid = '(1,1)'::tid)
3211 Filter: ((id >= 50) AND (id <= 51))
3212 -> Tid Scan on p1_c3
3213 TID Cond: (ctid = '(1,1)'::tid)
3214 Filter: ((id >= 50) AND (id <= 51))
3215 -> Tid Scan on p1_c4
3216 TID Cond: (ctid = '(1,1)'::tid)
3217 Filter: ((id >= 50) AND (id <= 51))
3218 -> Tid Scan on p1_c1_c1
3219 TID Cond: (ctid = '(1,1)'::tid)
3220 Filter: ((id >= 50) AND (id <= 51))
3221 -> Tid Scan on p1_c1_c2
3222 TID Cond: (ctid = '(1,1)'::tid)
3223 Filter: ((id >= 50) AND (id <= 51))
3224 -> Tid Scan on p1_c3_c1
3225 TID Cond: (ctid = '(1,1)'::tid)
3226 Filter: ((id >= 50) AND (id <= 51))
3227 -> Tid Scan on p1_c3_c2
3228 TID Cond: (ctid = '(1,1)'::tid)
3229 Filter: ((id >= 50) AND (id <= 51))
3232 SET constraint_exclusion TO on;
3234 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3243 -----------------------------------------------------------------------
3246 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3247 -> Seq Scan on p1_c1
3248 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3249 -> Seq Scan on p1_c1_c1
3250 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3251 -> Seq Scan on p1_c1_c2
3252 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3256 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3265 --------------------------------------------------
3267 -> Index Scan using p1_pkey on p1
3268 Index Cond: ((id >= 50) AND (id <= 51))
3269 Filter: (ctid = '(1,1)'::tid)
3270 -> Index Scan using p1_c1_pkey on p1_c1
3271 Index Cond: ((id >= 50) AND (id <= 51))
3272 Filter: (ctid = '(1,1)'::tid)
3273 -> Index Scan using p1_c1_c1_pkey on p1_c1_c1
3274 Index Cond: ((id >= 50) AND (id <= 51))
3275 Filter: (ctid = '(1,1)'::tid)
3276 -> Index Scan using p1_c1_c2_pkey on p1_c1_c2
3277 Index Cond: ((id >= 50) AND (id <= 51))
3278 Filter: (ctid = '(1,1)'::tid)
3282 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3291 -------------------------------------------------------
3293 -> Bitmap Heap Scan on p1
3294 Recheck Cond: ((id >= 50) AND (id <= 51))
3295 Filter: (ctid = '(1,1)'::tid)
3296 -> Bitmap Index Scan on p1_pkey
3297 Index Cond: ((id >= 50) AND (id <= 51))
3298 -> Bitmap Heap Scan on p1_c1
3299 Recheck Cond: ((id >= 50) AND (id <= 51))
3300 Filter: (ctid = '(1,1)'::tid)
3301 -> Bitmap Index Scan on p1_c1_pkey
3302 Index Cond: ((id >= 50) AND (id <= 51))
3303 -> Bitmap Heap Scan on p1_c1_c1
3304 Recheck Cond: ((id >= 50) AND (id <= 51))
3305 Filter: (ctid = '(1,1)'::tid)
3306 -> Bitmap Index Scan on p1_c1_c1_pkey
3307 Index Cond: ((id >= 50) AND (id <= 51))
3308 -> Bitmap Heap Scan on p1_c1_c2
3309 Recheck Cond: ((id >= 50) AND (id <= 51))
3310 Filter: (ctid = '(1,1)'::tid)
3311 -> Bitmap Index Scan on p1_c1_c2_pkey
3312 Index Cond: ((id >= 50) AND (id <= 51))
3316 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3325 ---------------------------------------------
3328 TID Cond: (ctid = '(1,1)'::tid)
3329 Filter: ((id >= 50) AND (id <= 51))
3330 -> Tid Scan on p1_c1
3331 TID Cond: (ctid = '(1,1)'::tid)
3332 Filter: ((id >= 50) AND (id <= 51))
3333 -> Tid Scan on p1_c1_c1
3334 TID Cond: (ctid = '(1,1)'::tid)
3335 Filter: ((id >= 50) AND (id <= 51))
3336 -> Tid Scan on p1_c1_c2
3337 TID Cond: (ctid = '(1,1)'::tid)
3338 Filter: ((id >= 50) AND (id <= 51))
3341 SET constraint_exclusion TO off;
3342 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3344 -----------------------------------------------------------------------------------
3346 Merge Cond: (public.p1.id = t1.id)
3348 Sort Key: public.p1.id
3351 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3352 -> Seq Scan on p1_c1
3353 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3354 -> Seq Scan on p1_c2
3355 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3356 -> Seq Scan on p1_c3
3357 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3358 -> Seq Scan on p1_c4
3359 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3360 -> Seq Scan on p1_c1_c1
3361 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3362 -> Seq Scan on p1_c1_c2
3363 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3364 -> Seq Scan on p1_c3_c1
3365 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3366 -> Seq Scan on p1_c3_c2
3367 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3368 -> Index Scan using t1_pkey on t1
3369 Index Cond: (id < 10)
3372 SET constraint_exclusion TO on;
3373 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3375 -----------------------------------------------------------------------------------
3377 Merge Cond: (public.p1.id = t1.id)
3379 Sort Key: public.p1.id
3382 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3383 -> Seq Scan on p1_c1
3384 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3385 -> Seq Scan on p1_c1_c1
3386 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3387 -> Seq Scan on p1_c1_c2
3388 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3389 -> Index Scan using t1_pkey on t1
3390 Index Cond: (id < 10)
3393 SET constraint_exclusion TO off;
3395 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3404 -----------------------------------------------------------------------------------
3406 Merge Cond: (public.p1.id = t1.id)
3408 Sort Key: public.p1.id
3411 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3412 -> Seq Scan on p1_c1
3413 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3414 -> Seq Scan on p1_c2
3415 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3416 -> Seq Scan on p1_c3
3417 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3418 -> Seq Scan on p1_c4
3419 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3420 -> Seq Scan on p1_c1_c1
3421 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3422 -> Seq Scan on p1_c1_c2
3423 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3424 -> Seq Scan on p1_c3_c1
3425 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3426 -> Seq Scan on p1_c3_c2
3427 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3428 -> Index Scan using t1_pkey on t1
3429 Index Cond: (id < 10)
3433 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3442 -----------------------------------------------------------------------------------
3444 Merge Cond: (public.p1.id = t1.id)
3446 Sort Key: public.p1.id
3449 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3450 -> Seq Scan on p1_c1
3451 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3452 -> Seq Scan on p1_c2
3453 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3454 -> Seq Scan on p1_c3
3455 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3456 -> Seq Scan on p1_c4
3457 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3458 -> Seq Scan on p1_c1_c1
3459 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3460 -> Seq Scan on p1_c1_c2
3461 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3462 -> Seq Scan on p1_c3_c1
3463 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3464 -> Seq Scan on p1_c3_c2
3465 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3466 -> Index Scan using t1_pkey on t1
3467 Index Cond: (id < 10)
3471 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3480 -----------------------------------------------------------------------------------
3482 Merge Cond: (public.p1.id = t1.id)
3484 Sort Key: public.p1.id
3487 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3488 -> Seq Scan on p1_c1
3489 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3490 -> Seq Scan on p1_c2
3491 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3492 -> Seq Scan on p1_c3
3493 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3494 -> Seq Scan on p1_c4
3495 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3496 -> Seq Scan on p1_c1_c1
3497 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3498 -> Seq Scan on p1_c1_c2
3499 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3500 -> Seq Scan on p1_c3_c1
3501 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3502 -> Seq Scan on p1_c3_c2
3503 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3504 -> Index Scan using t1_pkey on t1
3505 Index Cond: (id < 10)
3509 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3518 -----------------------------------------------------------------------------------
3520 Merge Cond: (public.p1.id = t1.id)
3522 Sort Key: public.p1.id
3525 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3526 -> Seq Scan on p1_c1
3527 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3528 -> Seq Scan on p1_c2
3529 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3530 -> Seq Scan on p1_c3
3531 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3532 -> Seq Scan on p1_c4
3533 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3534 -> Seq Scan on p1_c1_c1
3535 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3536 -> Seq Scan on p1_c1_c2
3537 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3538 -> Seq Scan on p1_c3_c1
3539 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3540 -> Seq Scan on p1_c3_c2
3541 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3542 -> Index Scan using t1_pkey on t1
3543 Index Cond: (id < 10)
3546 /*+NestLoop(p1 t1)*/
3547 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3556 -----------------------------------------------------------------------------
3558 Join Filter: (public.p1.id = t1.id)
3561 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3562 -> Seq Scan on p1_c1
3563 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3564 -> Seq Scan on p1_c2
3565 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3566 -> Seq Scan on p1_c3
3567 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3568 -> Seq Scan on p1_c4
3569 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3570 -> Seq Scan on p1_c1_c1
3571 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3572 -> Seq Scan on p1_c1_c2
3573 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3574 -> Seq Scan on p1_c3_c1
3575 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3576 -> Seq Scan on p1_c3_c2
3577 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3579 -> Index Scan using t1_pkey on t1
3580 Index Cond: (id < 10)
3583 /*+MergeJoin(p1 t1)*/
3584 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3593 -----------------------------------------------------------------------------------
3595 Merge Cond: (public.p1.id = t1.id)
3597 Sort Key: public.p1.id
3600 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3601 -> Seq Scan on p1_c1
3602 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3603 -> Seq Scan on p1_c2
3604 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3605 -> Seq Scan on p1_c3
3606 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3607 -> Seq Scan on p1_c4
3608 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3609 -> Seq Scan on p1_c1_c1
3610 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3611 -> Seq Scan on p1_c1_c2
3612 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3613 -> Seq Scan on p1_c3_c1
3614 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3615 -> Seq Scan on p1_c3_c2
3616 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3617 -> Index Scan using t1_pkey on t1
3618 Index Cond: (id < 10)
3621 /*+HashJoin(p1 t1)*/
3622 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3631 -----------------------------------------------------------------------------
3633 Hash Cond: (public.p1.id = t1.id)
3636 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3637 -> Seq Scan on p1_c1
3638 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3639 -> Seq Scan on p1_c2
3640 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3641 -> Seq Scan on p1_c3
3642 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3643 -> Seq Scan on p1_c4
3644 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3645 -> Seq Scan on p1_c1_c1
3646 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3647 -> Seq Scan on p1_c1_c2
3648 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3649 -> Seq Scan on p1_c3_c1
3650 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3651 -> Seq Scan on p1_c3_c2
3652 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3654 -> Index Scan using t1_pkey on t1
3655 Index Cond: (id < 10)
3658 SET constraint_exclusion TO on;
3660 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3669 -----------------------------------------------------------------------------------
3671 Merge Cond: (public.p1.id = t1.id)
3673 Sort Key: public.p1.id
3676 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3677 -> Seq Scan on p1_c1
3678 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3679 -> Seq Scan on p1_c1_c1
3680 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3681 -> Seq Scan on p1_c1_c2
3682 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3683 -> Index Scan using t1_pkey on t1
3684 Index Cond: (id < 10)
3688 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3697 -----------------------------------------------------------------------------------
3699 Merge Cond: (public.p1.id = t1.id)
3701 Sort Key: public.p1.id
3704 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3705 -> Seq Scan on p1_c1
3706 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3707 -> Seq Scan on p1_c1_c1
3708 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3709 -> Seq Scan on p1_c1_c2
3710 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3711 -> Index Scan using t1_pkey on t1
3712 Index Cond: (id < 10)
3716 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3725 -----------------------------------------------------------------------------------
3727 Merge Cond: (public.p1.id = t1.id)
3729 Sort Key: public.p1.id
3732 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3733 -> Seq Scan on p1_c1
3734 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3735 -> Seq Scan on p1_c1_c1
3736 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3737 -> Seq Scan on p1_c1_c2
3738 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3739 -> Index Scan using t1_pkey on t1
3740 Index Cond: (id < 10)
3744 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3753 -----------------------------------------------------------------------------------
3755 Merge Cond: (public.p1.id = t1.id)
3757 Sort Key: public.p1.id
3760 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3761 -> Seq Scan on p1_c1
3762 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3763 -> Seq Scan on p1_c1_c1
3764 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3765 -> Seq Scan on p1_c1_c2
3766 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3767 -> Index Scan using t1_pkey on t1
3768 Index Cond: (id < 10)
3771 /*+NestLoop(p1 t1)*/
3772 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3781 -----------------------------------------------------------------------------------
3783 Join Filter: (public.p1.id = t1.id)
3784 -> Index Scan using t1_pkey on t1
3785 Index Cond: (id < 10)
3789 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3790 -> Seq Scan on p1_c1
3791 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3792 -> Seq Scan on p1_c1_c1
3793 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3794 -> Seq Scan on p1_c1_c2
3795 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3798 /*+MergeJoin(p1 t1)*/
3799 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3808 -----------------------------------------------------------------------------------
3810 Merge Cond: (public.p1.id = t1.id)
3812 Sort Key: public.p1.id
3815 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3816 -> Seq Scan on p1_c1
3817 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3818 -> Seq Scan on p1_c1_c1
3819 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3820 -> Seq Scan on p1_c1_c2
3821 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3822 -> Index Scan using t1_pkey on t1
3823 Index Cond: (id < 10)
3826 /*+HashJoin(p1 t1)*/
3827 EXPLAIN (COSTS false) SELECT * FROM p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3836 -----------------------------------------------------------------------------------
3838 Hash Cond: (t1.id = public.p1.id)
3839 -> Index Scan using t1_pkey on t1
3840 Index Cond: (id < 10)
3844 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3845 -> Seq Scan on p1_c1
3846 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3847 -> Seq Scan on p1_c1_c1
3848 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3849 -> Seq Scan on p1_c1_c2
3850 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3853 SET constraint_exclusion TO off;
3854 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3856 -----------------------------------------------------------------
3858 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3861 SET constraint_exclusion TO on;
3862 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3864 -----------------------------------------------------------------
3866 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3869 SET constraint_exclusion TO off;
3871 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3880 -----------------------------------------------------------------
3882 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3886 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3895 -------------------------------------------
3896 Index Scan using p1_pkey on p1
3897 Index Cond: ((id >= 50) AND (id <= 51))
3898 Filter: (ctid = '(1,1)'::tid)
3902 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3911 -------------------------------------------------
3912 Bitmap Heap Scan on p1
3913 Recheck Cond: ((id >= 50) AND (id <= 51))
3914 Filter: (ctid = '(1,1)'::tid)
3915 -> Bitmap Index Scan on p1_pkey
3916 Index Cond: ((id >= 50) AND (id <= 51))
3920 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3929 ---------------------------------------
3931 TID Cond: (ctid = '(1,1)'::tid)
3932 Filter: ((id >= 50) AND (id <= 51))
3935 /*+NestLoop(p1 t1)*/
3936 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3945 -----------------------------------------------------------------------
3948 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3949 -> Index Scan using t1_pkey on t1
3950 Index Cond: ((id = p1.id) AND (id < 10))
3953 /*+MergeJoin(p1 t1)*/
3954 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3963 -----------------------------------------------------------------------------
3965 Merge Cond: (p1.id = t1.id)
3969 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3970 -> Index Scan using t1_pkey on t1
3971 Index Cond: (id < 10)
3974 /*+HashJoin(p1 t1)*/
3975 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
3984 -----------------------------------------------------------------------------
3986 Hash Cond: (t1.id = p1.id)
3987 -> Index Scan using t1_pkey on t1
3988 Index Cond: (id < 10)
3991 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3994 SET constraint_exclusion TO on;
3996 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
4005 -----------------------------------------------------------------
4007 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4011 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
4020 -------------------------------------------
4021 Index Scan using p1_pkey on p1
4022 Index Cond: ((id >= 50) AND (id <= 51))
4023 Filter: (ctid = '(1,1)'::tid)
4027 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
4036 -------------------------------------------------
4037 Bitmap Heap Scan on p1
4038 Recheck Cond: ((id >= 50) AND (id <= 51))
4039 Filter: (ctid = '(1,1)'::tid)
4040 -> Bitmap Index Scan on p1_pkey
4041 Index Cond: ((id >= 50) AND (id <= 51))
4045 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
4054 ---------------------------------------
4056 TID Cond: (ctid = '(1,1)'::tid)
4057 Filter: ((id >= 50) AND (id <= 51))
4060 /*+NestLoop(p1 t1)*/
4061 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
4070 -----------------------------------------------------------------------
4073 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4074 -> Index Scan using t1_pkey on t1
4075 Index Cond: ((id = p1.id) AND (id < 10))
4078 /*+MergeJoin(p1 t1)*/
4079 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
4088 -----------------------------------------------------------------------------
4090 Merge Cond: (p1.id = t1.id)
4094 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4095 -> Index Scan using t1_pkey on t1
4096 Index Cond: (id < 10)
4099 /*+HashJoin(p1 t1)*/
4100 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
4109 -----------------------------------------------------------------------------
4111 Hash Cond: (t1.id = p1.id)
4112 -> Index Scan using t1_pkey on t1
4113 Index Cond: (id < 10)
4116 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4119 SET constraint_exclusion TO off;
4120 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
4122 -----------------------------------------------------------------------
4125 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4126 -> Index Scan using t1_pkey on t1
4127 Index Cond: ((id = p1.id) AND (id < 10))
4130 SET constraint_exclusion TO on;
4131 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
4133 -----------------------------------------------------------------------
4136 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4137 -> Index Scan using t1_pkey on t1
4138 Index Cond: ((id = p1.id) AND (id < 10))
4141 SET constraint_exclusion TO off;
4143 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
4152 -----------------------------------------------------------------------
4155 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4156 -> Index Scan using t1_pkey on t1
4157 Index Cond: ((id = p1.id) AND (id < 10))
4161 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
4170 --------------------------------------------------
4172 -> Index Scan using p1_pkey on p1
4173 Index Cond: ((id >= 50) AND (id <= 51))
4174 Filter: (ctid = '(1,1)'::tid)
4175 -> Index Scan using t1_pkey on t1
4176 Index Cond: ((id = p1.id) AND (id < 10))
4180 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
4189 -------------------------------------------------------
4191 -> Bitmap Heap Scan on p1
4192 Recheck Cond: ((id >= 50) AND (id <= 51))
4193 Filter: (ctid = '(1,1)'::tid)
4194 -> Bitmap Index Scan on p1_pkey
4195 Index Cond: ((id >= 50) AND (id <= 51))
4196 -> Index Scan using t1_pkey on t1
4197 Index Cond: ((id = p1.id) AND (id < 10))
4201 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
4210 --------------------------------------------------
4213 TID Cond: (ctid = '(1,1)'::tid)
4214 Filter: ((id >= 50) AND (id <= 51))
4215 -> Index Scan using t1_pkey on t1
4216 Index Cond: ((id = p1.id) AND (id < 10))
4219 SET constraint_exclusion TO on;
4221 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
4230 -----------------------------------------------------------------------
4233 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4234 -> Index Scan using t1_pkey on t1
4235 Index Cond: ((id = p1.id) AND (id < 10))
4239 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
4248 --------------------------------------------------
4250 -> Index Scan using p1_pkey on p1
4251 Index Cond: ((id >= 50) AND (id <= 51))
4252 Filter: (ctid = '(1,1)'::tid)
4253 -> Index Scan using t1_pkey on t1
4254 Index Cond: ((id = p1.id) AND (id < 10))
4258 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
4267 -------------------------------------------------------
4269 -> Bitmap Heap Scan on p1
4270 Recheck Cond: ((id >= 50) AND (id <= 51))
4271 Filter: (ctid = '(1,1)'::tid)
4272 -> Bitmap Index Scan on p1_pkey
4273 Index Cond: ((id >= 50) AND (id <= 51))
4274 -> Index Scan using t1_pkey on t1
4275 Index Cond: ((id = p1.id) AND (id < 10))
4279 EXPLAIN (COSTS false) SELECT * FROM ONLY p1, t1 WHERE p1.id >= 50 AND p1.id <= 51 AND p1.ctid = '(1,1)' AND p1.id = t1.id AND t1.id < 10;
4288 --------------------------------------------------
4291 TID Cond: (ctid = '(1,1)'::tid)
4292 Filter: ((id >= 50) AND (id <= 51))
4293 -> Index Scan using t1_pkey on t1
4294 Index Cond: ((id = p1.id) AND (id < 10))
4298 /*+SeqScan("""t1 ) ")IndexScan("t 2 """)HashJoin("""t1 ) "T3"t 2 """)Leading("""t1 ) "T3"t 2 """)Set(application_name"a a a"" a A")*/
4299 EXPLAIN (COSTS false) SELECT * FROM t1 """t1 ) ", t2 "t 2 """, t3 "T3" WHERE """t1 ) ".id = "t 2 """.id AND """t1 ) ".id = "T3".id;
4304 HashJoin("""t1 ) " T3 "t 2 """)
4305 Leading("""t1 ) " T3 "t 2 """)
4306 Set(application_name "a a a"" a A")
4312 ---------------------------------------------------------
4314 Hash Cond: ("t 2 """.id = """t1 ) ".id)
4315 -> Index Scan using t2_pkey on t2 "t 2 """
4318 Hash Cond: ("""t1 ) ".id = "T3".id)
4319 -> Seq Scan on t1 """t1 ) "
4321 -> Seq Scan on t3 "T3"
4324 -- duplicate hint test
4325 /*+SeqScan(t1)SeqScan(t2)IndexScan(t1)IndexScan(t2)BitmapScan(t1)BitmapScan(t2)TidScan(t1)TidScan(t2)HashJoin(t1 t2)NestLoop(t2 t1)MergeJoin(t1 t2)Leading(t1 t2)Leading(t2 t1)Set(enable_seqscan off)Set(enable_mergejoin on)Set(enable_seqscan on)*/
4326 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
4327 INFO: hint syntax error at or near "SeqScan(t1)SeqScan(t2)IndexScan(t1)IndexScan(t2)BitmapScan(t1)BitmapScan(t2)TidScan(t1)TidScan(t2)HashJoin(t1 t2)NestLoop(t2 t1)MergeJoin(t1 t2)Leading(t1 t2)Leading(t2 t1)Set(enable_seqscan off)Set(enable_mergejoin on)Set(enable_seqscan on)"
4328 DETAIL: Conflict scan method hint.
4329 INFO: hint syntax error at or near "IndexScan(t1)IndexScan(t2)BitmapScan(t1)BitmapScan(t2)TidScan(t1)TidScan(t2)HashJoin(t1 t2)NestLoop(t2 t1)MergeJoin(t1 t2)Leading(t1 t2)Leading(t2 t1)Set(enable_seqscan off)Set(enable_mergejoin on)Set(enable_seqscan on)"
4330 DETAIL: Conflict scan method hint.
4331 INFO: hint syntax error at or near "BitmapScan(t1)BitmapScan(t2)TidScan(t1)TidScan(t2)HashJoin(t1 t2)NestLoop(t2 t1)MergeJoin(t1 t2)Leading(t1 t2)Leading(t2 t1)Set(enable_seqscan off)Set(enable_mergejoin on)Set(enable_seqscan on)"
4332 DETAIL: Conflict scan method hint.
4333 INFO: hint syntax error at or near "SeqScan(t2)IndexScan(t1)IndexScan(t2)BitmapScan(t1)BitmapScan(t2)TidScan(t1)TidScan(t2)HashJoin(t1 t2)NestLoop(t2 t1)MergeJoin(t1 t2)Leading(t1 t2)Leading(t2 t1)Set(enable_seqscan off)Set(enable_mergejoin on)Set(enable_seqscan on)"
4334 DETAIL: Conflict scan method hint.
4335 INFO: hint syntax error at or near "IndexScan(t2)BitmapScan(t1)BitmapScan(t2)TidScan(t1)TidScan(t2)HashJoin(t1 t2)NestLoop(t2 t1)MergeJoin(t1 t2)Leading(t1 t2)Leading(t2 t1)Set(enable_seqscan off)Set(enable_mergejoin on)Set(enable_seqscan on)"
4336 DETAIL: Conflict scan method hint.
4337 INFO: hint syntax error at or near "BitmapScan(t2)TidScan(t1)TidScan(t2)HashJoin(t1 t2)NestLoop(t2 t1)MergeJoin(t1 t2)Leading(t1 t2)Leading(t2 t1)Set(enable_seqscan off)Set(enable_mergejoin on)Set(enable_seqscan on)"
4338 DETAIL: Conflict scan method hint.
4339 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)MergeJoin(t1 t2)Leading(t1 t2)Leading(t2 t1)Set(enable_seqscan off)Set(enable_mergejoin on)Set(enable_seqscan on)"
4340 DETAIL: Conflict join method hint.
4341 INFO: hint syntax error at or near "NestLoop(t2 t1)MergeJoin(t1 t2)Leading(t1 t2)Leading(t2 t1)Set(enable_seqscan off)Set(enable_mergejoin on)Set(enable_seqscan on)"
4342 DETAIL: Conflict join method hint.
4343 INFO: hint syntax error at or near "Set(enable_seqscan off)Set(enable_mergejoin on)Set(enable_seqscan on)"
4344 DETAIL: Conflict set hint.
4345 INFO: hint syntax error at or near "Leading(t1 t2)Leading(t2 t1)Set(enable_seqscan off)Set(enable_mergejoin on)Set(enable_seqscan on)"
4346 DETAIL: Conflict leading hint.
4353 Set(enable_mergejoin on)
4354 Set(enable_seqscan on)
4366 Set(enable_seqscan off)
4370 -----------------------------------------------
4372 Merge Cond: (t1.id = t2.id)
4376 TID Cond: (ctid = '(1,1)'::tid)
4380 TID Cond: (ctid = '(1,1)'::tid)
4383 -- sub query Leading hint test
4384 SET from_collapse_limit TO 100;
4385 SET geqo_threshold TO 100;
4386 EXPLAIN (COSTS false)
4388 SELECT max(t1_5.id) FROM t1 t1_5, t2 t2_5, t3 t3_5 WHERE t1_5.id = t2_5.id AND t2_5.id = t3_5.id
4391 SELECT max(t1_2.id) FROM t1 t1_2, t2 t2_2, t3 t3_2 WHERE t1_2.id = t2_2.id AND t2_2.id = t3_2.id
4392 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4393 SELECT t1_3.id FROM t1 t1_3, t2 t2_3, t3 t3_3 WHERE t1_3.id = t2_3.id AND t2_3.id = t3_3.id
4394 ) v1_1(id), c1_1 WHERE t1_1.id = t2_1.id AND t2_1.id = t3_1.id AND t2_1.id = v1_1.id AND v1_1.id = c1_1.id AND t1_1.id = (
4395 SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t2_4.id = t3_4.id
4398 ------------------------------------------------------------------------------
4403 Merge Cond: (t1_5.id = t3_5.id)
4405 Merge Cond: (t1_5.id = t2_5.id)
4406 -> Index Only Scan using t1_pkey on t1 t1_5
4407 -> Index Only Scan using t2_pkey on t2 t2_5
4410 -> Seq Scan on t3 t3_5
4411 InitPlan 2 (returns $1)
4414 Merge Cond: (t1_2.id = t3_2.id)
4416 Merge Cond: (t1_2.id = t2_2.id)
4417 -> Index Only Scan using t1_pkey on t1 t1_2
4418 -> Index Only Scan using t2_pkey on t2 t2_2
4421 -> Seq Scan on t3 t3_2
4422 InitPlan 3 (returns $2)
4425 Merge Cond: (t1_4.id = t3_4.id)
4427 Merge Cond: (t1_4.id = t2_4.id)
4428 -> Index Only Scan using t1_pkey on t1 t1_4
4429 -> Index Only Scan using t2_pkey on t2 t2_4
4432 -> Seq Scan on t3 t3_4
4438 -> Index Only Scan using t1_pkey on t1 t1_1
4439 Index Cond: (id = $2)
4440 -> Index Only Scan using t2_pkey on t2 t2_1
4441 Index Cond: (id = $2)
4442 -> Seq Scan on t3 t3_1
4444 -> Index Only Scan using t1_pkey on t1 t1_3
4445 Index Cond: (id = $2)
4446 -> Index Only Scan using t2_pkey on t2 t2_3
4447 Index Cond: (id = $2)
4448 -> Seq Scan on t3 t3_3
4454 /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)*/
4455 EXPLAIN (COSTS false)
4457 SELECT max(t1_5.id) FROM t1 t1_5, t2 t2_5, t3 t3_5 WHERE t1_5.id = t2_5.id AND t2_5.id = t3_5.id
4460 SELECT max(t1_2.id) FROM t1 t1_2, t2 t2_2, t3 t3_2 WHERE t1_2.id = t2_2.id AND t2_2.id = t3_2.id
4461 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4462 SELECT t1_3.id FROM t1 t1_3, t2 t2_3, t3 t3_3 WHERE t1_3.id = t2_3.id AND t2_3.id = t3_3.id
4463 ) v1_1(id), c1_1 WHERE t1_1.id = t2_1.id AND t2_1.id = t3_1.id AND t2_1.id = v1_1.id AND v1_1.id = c1_1.id AND t1_1.id = (
4464 SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t2_4.id = t3_4.id
4470 MergeJoin(t1_3 t3_3)
4478 ------------------------------------------------------------------------------
4483 Merge Cond: (t1_5.id = t3_5.id)
4485 -> Index Only Scan using t2_pkey on t2 t2_5
4486 -> Index Only Scan using t1_pkey on t1 t1_5
4487 Index Cond: (id = t2_5.id)
4490 -> Seq Scan on t3 t3_5
4491 InitPlan 2 (returns $3)
4494 Merge Cond: (t1_2.id = t3_2.id)
4496 -> Index Only Scan using t2_pkey on t2 t2_2
4497 -> Index Only Scan using t1_pkey on t1 t1_2
4498 Index Cond: (id = t2_2.id)
4501 -> Seq Scan on t3 t3_2
4502 InitPlan 3 (returns $5)
4505 Merge Cond: (t1_4.id = t3_4.id)
4507 -> Index Only Scan using t2_pkey on t2 t2_4
4508 -> Index Only Scan using t1_pkey on t1 t1_4
4509 Index Cond: (id = t2_4.id)
4512 -> Seq Scan on t3 t3_4
4518 -> Index Only Scan using t1_pkey on t1 t1_1
4519 Index Cond: (id = $5)
4520 -> Index Only Scan using t2_pkey on t2 t2_1
4521 Index Cond: (id = $5)
4522 -> Seq Scan on t3 t3_1
4524 -> Index Only Scan using t1_pkey on t1 t1_3
4525 Index Cond: (id = $5)
4526 -> Index Only Scan using t2_pkey on t2 t2_3
4527 Index Cond: (id = $5)
4528 -> Seq Scan on t3 t3_3
4534 /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)Leading(a t1_1 t1_2 t1_4 t1_5)*/
4535 EXPLAIN (COSTS false)
4537 SELECT max(t1_5.id) FROM t1 t1_5, t2 t2_5, t3 t3_5 WHERE t1_5.id = t2_5.id AND t2_5.id = t3_5.id
4540 SELECT max(t1_2.id) FROM t1 t1_2, t2 t2_2, t3 t3_2 WHERE t1_2.id = t2_2.id AND t2_2.id = t3_2.id
4541 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4542 SELECT t1_3.id FROM t1 t1_3, t2 t2_3, t3 t3_3 WHERE t1_3.id = t2_3.id AND t2_3.id = t3_3.id
4543 ) v1_1(id), c1_1 WHERE t1_1.id = t2_1.id AND t2_1.id = t3_1.id AND t2_1.id = v1_1.id AND v1_1.id = c1_1.id AND t1_1.id = (
4544 SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t2_4.id = t3_4.id
4550 MergeJoin(t1_3 t3_3)
4554 Leading(a t1_1 t1_2 t1_4 t1_5)
4559 ------------------------------------------------------------------------------
4564 Merge Cond: (t1_5.id = t3_5.id)
4566 -> Index Only Scan using t2_pkey on t2 t2_5
4567 -> Index Only Scan using t1_pkey on t1 t1_5
4568 Index Cond: (id = t2_5.id)
4571 -> Seq Scan on t3 t3_5
4572 InitPlan 2 (returns $3)
4575 Merge Cond: (t1_2.id = t3_2.id)
4577 -> Index Only Scan using t2_pkey on t2 t2_2
4578 -> Index Only Scan using t1_pkey on t1 t1_2
4579 Index Cond: (id = t2_2.id)
4582 -> Seq Scan on t3 t3_2
4583 InitPlan 3 (returns $5)
4586 Merge Cond: (t1_4.id = t3_4.id)
4588 -> Index Only Scan using t2_pkey on t2 t2_4
4589 -> Index Only Scan using t1_pkey on t1 t1_4
4590 Index Cond: (id = t2_4.id)
4593 -> Seq Scan on t3 t3_4
4599 -> Index Only Scan using t1_pkey on t1 t1_1
4600 Index Cond: (id = $5)
4601 -> Index Only Scan using t2_pkey on t2 t2_1
4602 Index Cond: (id = $5)
4603 -> Seq Scan on t3 t3_1
4605 -> Index Only Scan using t1_pkey on t1 t1_3
4606 Index Cond: (id = $5)
4607 -> Index Only Scan using t2_pkey on t2 t2_3
4608 Index Cond: (id = $5)
4609 -> Seq Scan on t3 t3_3
4615 /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)Leading(a t3_2 t3_5 t2_2 c1_1 t3_4 t3_3 t2_3 t2_4 t1_3 t2_5 t1_2 t3_1 t1_4 t2_1 t1_5 t1_1)*/
4616 EXPLAIN (COSTS false)
4618 SELECT max(t1_5.id) FROM t1 t1_5, t2 t2_5, t3 t3_5 WHERE t1_5.id = t2_5.id AND t2_5.id = t3_5.id
4621 SELECT max(t1_2.id) FROM t1 t1_2, t2 t2_2, t3 t3_2 WHERE t1_2.id = t2_2.id AND t2_2.id = t3_2.id
4622 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4623 SELECT t1_3.id FROM t1 t1_3, t2 t2_3, t3 t3_3 WHERE t1_3.id = t2_3.id AND t2_3.id = t3_3.id
4624 ) v1_1(id), c1_1 WHERE t1_1.id = t2_1.id AND t2_1.id = t3_1.id AND t2_1.id = v1_1.id AND v1_1.id = c1_1.id AND t1_1.id = (
4625 SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t2_4.id = t3_4.id
4631 MergeJoin(t1_3 t3_3)
4635 Leading(a t3_2 t3_5 t2_2 c1_1 t3_4 t3_3 t2_3 t2_4 t1_3 t2_5 t1_2 t3_1 t1_4 t2_1 t1_5 t1_1)
4640 ------------------------------------------------------------------------------
4645 Merge Cond: (t1_5.id = t3_5.id)
4647 -> Index Only Scan using t2_pkey on t2 t2_5
4648 -> Index Only Scan using t1_pkey on t1 t1_5
4649 Index Cond: (id = t2_5.id)
4652 -> Seq Scan on t3 t3_5
4653 InitPlan 2 (returns $3)
4656 Merge Cond: (t1_2.id = t3_2.id)
4658 -> Index Only Scan using t2_pkey on t2 t2_2
4659 -> Index Only Scan using t1_pkey on t1 t1_2
4660 Index Cond: (id = t2_2.id)
4663 -> Seq Scan on t3 t3_2
4664 InitPlan 3 (returns $5)
4667 Merge Cond: (t1_4.id = t3_4.id)
4669 -> Index Only Scan using t2_pkey on t2 t2_4
4670 -> Index Only Scan using t1_pkey on t1 t1_4
4671 Index Cond: (id = t2_4.id)
4674 -> Seq Scan on t3 t3_4
4680 -> Index Only Scan using t1_pkey on t1 t1_1
4681 Index Cond: (id = $5)
4682 -> Index Only Scan using t2_pkey on t2 t2_1
4683 Index Cond: (id = $5)
4684 -> Seq Scan on t3 t3_1
4686 -> Index Only Scan using t1_pkey on t1 t1_3
4687 Index Cond: (id = $5)
4688 -> Index Only Scan using t2_pkey on t2 t2_3
4689 Index Cond: (id = $5)
4690 -> Seq Scan on t3 t3_3
4696 /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)Leading(t3_5 t2_5 t1_5)Leading(t3_2 t2_2 t1_2)Leading(t3_4 t2_4 t1_4)Leading(c1_1 t3_3 t2_3 t1_3 t3_1 t2_1 t1_1)*/
4697 EXPLAIN (COSTS false)
4699 SELECT max(t1_5.id) FROM t1 t1_5, t2 t2_5, t3 t3_5 WHERE t1_5.id = t2_5.id AND t2_5.id = t3_5.id
4702 SELECT max(t1_2.id) FROM t1 t1_2, t2 t2_2, t3 t3_2 WHERE t1_2.id = t2_2.id AND t2_2.id = t3_2.id
4703 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4704 SELECT t1_3.id FROM t1 t1_3, t2 t2_3, t3 t3_3 WHERE t1_3.id = t2_3.id AND t2_3.id = t3_3.id
4705 ) v1_1(id), c1_1 WHERE t1_1.id = t2_1.id AND t2_1.id = t3_1.id AND t2_1.id = v1_1.id AND v1_1.id = c1_1.id AND t1_1.id = (
4706 SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t2_4.id = t3_4.id
4710 Leading(t3_5 t2_5 t1_5)
4711 Leading(t3_2 t2_2 t1_2)
4712 Leading(t3_4 t2_4 t1_4)
4713 Leading(c1_1 t3_3 t2_3 t1_3 t3_1 t2_1 t1_1)
4717 MergeJoin(t1_3 t3_3)
4724 ------------------------------------------------------------------------
4729 Merge Cond: (t2_5.id = t1_5.id)
4731 Merge Cond: (t2_5.id = t3_5.id)
4732 -> Index Only Scan using t2_pkey on t2 t2_5
4735 -> Seq Scan on t3 t3_5
4736 -> Index Only Scan using t1_pkey on t1 t1_5
4737 InitPlan 2 (returns $1)
4740 Merge Cond: (t2_2.id = t1_2.id)
4742 Merge Cond: (t2_2.id = t3_2.id)
4743 -> Index Only Scan using t2_pkey on t2 t2_2
4746 -> Seq Scan on t3 t3_2
4747 -> Index Only Scan using t1_pkey on t1 t1_2
4748 InitPlan 3 (returns $2)
4751 Merge Cond: (t2_4.id = t1_4.id)
4753 Merge Cond: (t2_4.id = t3_4.id)
4754 -> Index Only Scan using t2_pkey on t2 t2_4
4757 -> Seq Scan on t3 t3_4
4758 -> Index Only Scan using t1_pkey on t1 t1_4
4764 -> Seq Scan on t3 t3_3
4768 -> Index Only Scan using t2_pkey on t2 t2_3
4769 Index Cond: (id = $2)
4770 -> Index Only Scan using t1_pkey on t1 t1_3
4771 Index Cond: (id = $2)
4772 -> Seq Scan on t3 t3_1
4774 -> Index Only Scan using t2_pkey on t2 t2_1
4775 Index Cond: (id = $2)
4776 -> Index Only Scan using t1_pkey on t1 t1_1
4777 Index Cond: (id = $2)
4780 SET from_collapse_limit TO 1;
4781 EXPLAIN (COSTS false)
4783 SELECT max(t1_5.id) FROM t1 t1_5, t2 t2_5, t3 t3_5 WHERE t1_5.id = t2_5.id AND t2_5.id = t3_5.id
4786 SELECT max(t1_2.id) FROM t1 t1_2, t2 t2_2, t3 t3_2 WHERE t1_2.id = t2_2.id AND t2_2.id = t3_2.id
4787 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4788 SELECT t1_3.id FROM t1 t1_3, t2 t2_3, t3 t3_3 WHERE t1_3.id = t2_3.id AND t2_3.id = t3_3.id
4789 ) v1_1(id), c1_1 WHERE t1_1.id = t2_1.id AND t2_1.id = t3_1.id AND t2_1.id = v1_1.id AND v1_1.id = c1_1.id AND t1_1.id = (
4790 SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t2_4.id = t3_4.id
4793 --------------------------------------------------------------------
4798 Merge Cond: (t1_5.id = t3_5.id)
4800 Merge Cond: (t1_5.id = t2_5.id)
4801 -> Index Only Scan using t1_pkey on t1 t1_5
4802 -> Index Only Scan using t2_pkey on t2 t2_5
4805 -> Seq Scan on t3 t3_5
4806 InitPlan 2 (returns $1)
4809 Merge Cond: (t1_2.id = t3_2.id)
4811 Merge Cond: (t1_2.id = t2_2.id)
4812 -> Index Only Scan using t1_pkey on t1 t1_2
4813 -> Index Only Scan using t2_pkey on t2 t2_2
4816 -> Seq Scan on t3 t3_2
4817 InitPlan 3 (returns $2)
4820 Merge Cond: (t1_4.id = t3_4.id)
4822 Merge Cond: (t1_4.id = t2_4.id)
4823 -> Index Only Scan using t1_pkey on t1 t1_4
4824 -> Index Only Scan using t2_pkey on t2 t2_4
4827 -> Seq Scan on t3 t3_4
4831 -> Index Only Scan using t1_pkey on t1 t1_1
4832 Index Cond: (id = $2)
4833 -> Index Only Scan using t2_pkey on t2 t2_1
4834 Index Cond: (id = $2)
4835 -> Seq Scan on t3 t3_1
4839 -> Index Only Scan using t1_pkey on t1 t1_3
4840 Index Cond: (id = $2)
4841 -> Index Only Scan using t2_pkey on t2 t2_3
4842 Index Cond: (id = $2)
4843 -> Seq Scan on t3 t3_3
4849 /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)*/
4850 EXPLAIN (COSTS false)
4852 SELECT max(t1_5.id) FROM t1 t1_5, t2 t2_5, t3 t3_5 WHERE t1_5.id = t2_5.id AND t2_5.id = t3_5.id
4855 SELECT max(t1_2.id) FROM t1 t1_2, t2 t2_2, t3 t3_2 WHERE t1_2.id = t2_2.id AND t2_2.id = t3_2.id
4856 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4857 SELECT t1_3.id FROM t1 t1_3, t2 t2_3, t3 t3_3 WHERE t1_3.id = t2_3.id AND t2_3.id = t3_3.id
4858 ) v1_1(id), c1_1 WHERE t1_1.id = t2_1.id AND t2_1.id = t3_1.id AND t2_1.id = v1_1.id AND v1_1.id = c1_1.id AND t1_1.id = (
4859 SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t2_4.id = t3_4.id
4865 MergeJoin(t1_3 t3_3)
4873 --------------------------------------------------------------------
4878 Merge Cond: (t1_5.id = t3_5.id)
4880 -> Index Only Scan using t2_pkey on t2 t2_5
4881 -> Index Only Scan using t1_pkey on t1 t1_5
4882 Index Cond: (id = t2_5.id)
4885 -> Seq Scan on t3 t3_5
4886 InitPlan 2 (returns $3)
4889 Merge Cond: (t1_2.id = t3_2.id)
4891 -> Index Only Scan using t2_pkey on t2 t2_2
4892 -> Index Only Scan using t1_pkey on t1 t1_2
4893 Index Cond: (id = t2_2.id)
4896 -> Seq Scan on t3 t3_2
4897 InitPlan 3 (returns $5)
4900 Merge Cond: (t1_4.id = t3_4.id)
4902 -> Index Only Scan using t2_pkey on t2 t2_4
4903 -> Index Only Scan using t1_pkey on t1 t1_4
4904 Index Cond: (id = t2_4.id)
4907 -> Seq Scan on t3 t3_4
4911 -> Index Only Scan using t1_pkey on t1 t1_1
4912 Index Cond: (id = $5)
4913 -> Index Only Scan using t2_pkey on t2 t2_1
4914 Index Cond: (id = $5)
4915 -> Seq Scan on t3 t3_1
4919 -> Index Only Scan using t1_pkey on t1 t1_3
4920 Index Cond: (id = $5)
4921 -> Index Only Scan using t2_pkey on t2 t2_3
4922 Index Cond: (id = $5)
4923 -> Seq Scan on t3 t3_3
4929 /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)Leading(a t1_1 t1_2 t1_4 t1_5)*/
4930 EXPLAIN (COSTS false)
4932 SELECT max(t1_5.id) FROM t1 t1_5, t2 t2_5, t3 t3_5 WHERE t1_5.id = t2_5.id AND t2_5.id = t3_5.id
4935 SELECT max(t1_2.id) FROM t1 t1_2, t2 t2_2, t3 t3_2 WHERE t1_2.id = t2_2.id AND t2_2.id = t3_2.id
4936 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4937 SELECT t1_3.id FROM t1 t1_3, t2 t2_3, t3 t3_3 WHERE t1_3.id = t2_3.id AND t2_3.id = t3_3.id
4938 ) v1_1(id), c1_1 WHERE t1_1.id = t2_1.id AND t2_1.id = t3_1.id AND t2_1.id = v1_1.id AND v1_1.id = c1_1.id AND t1_1.id = (
4939 SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t2_4.id = t3_4.id
4945 MergeJoin(t1_3 t3_3)
4949 Leading(a t1_1 t1_2 t1_4 t1_5)
4954 --------------------------------------------------------------------
4959 Merge Cond: (t1_5.id = t3_5.id)
4961 -> Index Only Scan using t2_pkey on t2 t2_5
4962 -> Index Only Scan using t1_pkey on t1 t1_5
4963 Index Cond: (id = t2_5.id)
4966 -> Seq Scan on t3 t3_5
4967 InitPlan 2 (returns $3)
4970 Merge Cond: (t1_2.id = t3_2.id)
4972 -> Index Only Scan using t2_pkey on t2 t2_2
4973 -> Index Only Scan using t1_pkey on t1 t1_2
4974 Index Cond: (id = t2_2.id)
4977 -> Seq Scan on t3 t3_2
4978 InitPlan 3 (returns $5)
4981 Merge Cond: (t1_4.id = t3_4.id)
4983 -> Index Only Scan using t2_pkey on t2 t2_4
4984 -> Index Only Scan using t1_pkey on t1 t1_4
4985 Index Cond: (id = t2_4.id)
4988 -> Seq Scan on t3 t3_4
4992 -> Index Only Scan using t1_pkey on t1 t1_1
4993 Index Cond: (id = $5)
4994 -> Index Only Scan using t2_pkey on t2 t2_1
4995 Index Cond: (id = $5)
4996 -> Seq Scan on t3 t3_1
5000 -> Index Only Scan using t1_pkey on t1 t1_3
5001 Index Cond: (id = $5)
5002 -> Index Only Scan using t2_pkey on t2 t2_3
5003 Index Cond: (id = $5)
5004 -> Seq Scan on t3 t3_3
5010 /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)Leading(a t3_2 t3_5 t2_2 c1_1 t3_4 t3_3 t2_3 t2_4 t1_3 t2_5 t1_2 t3_1 t1_4 t2_1 t1_5 t1_1)*/
5011 EXPLAIN (COSTS false)
5013 SELECT max(t1_5.id) FROM t1 t1_5, t2 t2_5, t3 t3_5 WHERE t1_5.id = t2_5.id AND t2_5.id = t3_5.id
5016 SELECT max(t1_2.id) FROM t1 t1_2, t2 t2_2, t3 t3_2 WHERE t1_2.id = t2_2.id AND t2_2.id = t3_2.id
5017 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
5018 SELECT t1_3.id FROM t1 t1_3, t2 t2_3, t3 t3_3 WHERE t1_3.id = t2_3.id AND t2_3.id = t3_3.id
5019 ) v1_1(id), c1_1 WHERE t1_1.id = t2_1.id AND t2_1.id = t3_1.id AND t2_1.id = v1_1.id AND v1_1.id = c1_1.id AND t1_1.id = (
5020 SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t2_4.id = t3_4.id
5026 MergeJoin(t1_3 t3_3)
5030 Leading(a t3_2 t3_5 t2_2 c1_1 t3_4 t3_3 t2_3 t2_4 t1_3 t2_5 t1_2 t3_1 t1_4 t2_1 t1_5 t1_1)
5035 --------------------------------------------------------------------
5040 Merge Cond: (t1_5.id = t3_5.id)
5042 -> Index Only Scan using t2_pkey on t2 t2_5
5043 -> Index Only Scan using t1_pkey on t1 t1_5
5044 Index Cond: (id = t2_5.id)
5047 -> Seq Scan on t3 t3_5
5048 InitPlan 2 (returns $3)
5051 Merge Cond: (t1_2.id = t3_2.id)
5053 -> Index Only Scan using t2_pkey on t2 t2_2
5054 -> Index Only Scan using t1_pkey on t1 t1_2
5055 Index Cond: (id = t2_2.id)
5058 -> Seq Scan on t3 t3_2
5059 InitPlan 3 (returns $5)
5062 Merge Cond: (t1_4.id = t3_4.id)
5064 -> Index Only Scan using t2_pkey on t2 t2_4
5065 -> Index Only Scan using t1_pkey on t1 t1_4
5066 Index Cond: (id = t2_4.id)
5069 -> Seq Scan on t3 t3_4
5073 -> Index Only Scan using t1_pkey on t1 t1_1
5074 Index Cond: (id = $5)
5075 -> Index Only Scan using t2_pkey on t2 t2_1
5076 Index Cond: (id = $5)
5077 -> Seq Scan on t3 t3_1
5081 -> Index Only Scan using t1_pkey on t1 t1_3
5082 Index Cond: (id = $5)
5083 -> Index Only Scan using t2_pkey on t2 t2_3
5084 Index Cond: (id = $5)
5085 -> Seq Scan on t3 t3_3
5091 /*+HashJoin(t1_1 t3_1)MergeJoin(t1_3 t3_3)NestLoop(t1_2 t2_2)NestLoop(t1_4 t2_4)NestLoop(t1_5 t2_5)Leading(t3_5 t2_5 t1_5)Leading(t3_2 t2_2 t1_2)Leading(t3_4 t2_4 t1_4)Leading(c1_1 t3_3 t2_3 t1_3 t3_1 t2_1 t1_1)*/
5092 EXPLAIN (COSTS false)
5094 SELECT max(t1_5.id) FROM t1 t1_5, t2 t2_5, t3 t3_5 WHERE t1_5.id = t2_5.id AND t2_5.id = t3_5.id
5097 SELECT max(t1_2.id) FROM t1 t1_2, t2 t2_2, t3 t3_2 WHERE t1_2.id = t2_2.id AND t2_2.id = t3_2.id
5098 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
5099 SELECT t1_3.id FROM t1 t1_3, t2 t2_3, t3 t3_3 WHERE t1_3.id = t2_3.id AND t2_3.id = t3_3.id
5100 ) v1_1(id), c1_1 WHERE t1_1.id = t2_1.id AND t2_1.id = t3_1.id AND t2_1.id = v1_1.id AND v1_1.id = c1_1.id AND t1_1.id = (
5101 SELECT max(t1_4.id) FROM t1 t1_4, t2 t2_4, t3 t3_4 WHERE t1_4.id = t2_4.id AND t2_4.id = t3_4.id
5105 MergeJoin(t1_3 t3_3)
5106 Leading(t3_5 t2_5 t1_5)
5107 Leading(t3_2 t2_2 t1_2)
5108 Leading(t3_4 t2_4 t1_4)
5109 Leading(c1_1 t3_3 t2_3 t1_3 t3_1 t2_1 t1_1)
5119 ------------------------------------------------------------------------------
5124 Merge Cond: (t2_5.id = t1_5.id)
5126 Merge Cond: (t2_5.id = t3_5.id)
5127 -> Index Only Scan using t2_pkey on t2 t2_5
5130 -> Seq Scan on t3 t3_5
5131 -> Index Only Scan using t1_pkey on t1 t1_5
5132 InitPlan 2 (returns $1)
5135 Merge Cond: (t2_2.id = t1_2.id)
5137 Merge Cond: (t2_2.id = t3_2.id)
5138 -> Index Only Scan using t2_pkey on t2 t2_2
5141 -> Seq Scan on t3 t3_2
5142 -> Index Only Scan using t1_pkey on t1 t1_2
5143 InitPlan 3 (returns $2)
5146 Merge Cond: (t2_4.id = t1_4.id)
5148 Merge Cond: (t2_4.id = t3_4.id)
5149 -> Index Only Scan using t2_pkey on t2 t2_4
5152 -> Seq Scan on t3 t3_4
5153 -> Index Only Scan using t1_pkey on t1 t1_4
5159 -> Index Only Scan using t1_pkey on t1 t1_3
5160 Index Cond: (id = $2)
5161 -> Index Only Scan using t2_pkey on t2 t2_3
5162 Index Cond: (id = $2)
5163 -> Seq Scan on t3 t3_3
5167 -> Seq Scan on t3 t3_1
5169 -> Index Only Scan using t2_pkey on t2 t2_1
5170 Index Cond: (id = $2)
5171 -> Index Only Scan using t1_pkey on t1 t1_1
5172 Index Cond: (id = $2)
5176 EXPLAIN (COSTS false) SELECT * FROM t1, s0.t1, t2 WHERE public.t1.id = s0.t1.id AND public.t1.id = t2.id;
5178 -----------------------------------------------
5180 Merge Cond: (public.t1.id = t2.id)
5182 Merge Cond: (public.t1.id = s0.t1.id)
5183 -> Index Scan using t1_pkey on t1
5184 -> Index Scan using t1_pkey on t1
5185 -> Index Scan using t2_pkey on t2
5188 /*+NestLoop(t1 t2)*/
5189 EXPLAIN (COSTS false) SELECT * FROM t1, s0.t1, t2 WHERE public.t1.id = s0.t1.id AND public.t1.id = t2.id;
5190 INFO: hint syntax error at or near "NestLoop(t1 t2)"
5191 DETAIL: Relation name "t1" is ambiguous.
5200 -----------------------------------------------
5202 Merge Cond: (public.t1.id = t2.id)
5204 Merge Cond: (public.t1.id = s0.t1.id)
5205 -> Index Scan using t1_pkey on t1
5206 -> Index Scan using t1_pkey on t1
5207 -> Index Scan using t2_pkey on t2
5210 /*+Leading(t1 t2 t1)*/
5211 EXPLAIN (COSTS false) SELECT * FROM t1, s0.t1, t2 WHERE public.t1.id = s0.t1.id AND public.t1.id = t2.id;
5212 INFO: hint syntax error at or near "Leading(t1 t2 t1)"
5213 DETAIL: Relation name "t1" is ambiguous.
5222 -----------------------------------------------
5224 Merge Cond: (public.t1.id = t2.id)
5226 Merge Cond: (public.t1.id = s0.t1.id)
5227 -> Index Scan using t1_pkey on t1
5228 -> Index Scan using t1_pkey on t1
5229 -> Index Scan using t2_pkey on t2
5232 -- identifier length test
5233 EXPLAIN (COSTS false) SELECT * FROM t1 "123456789012345678901234567890123456789012345678901234567890123" JOIN t2 ON ("123456789012345678901234567890123456789012345678901234567890123".id = t2.id) JOIN t3 ON (t2.id = t3.id);
5235 --------------------------------------------------------------------------------------------------------------
5237 Merge Cond: ("123456789012345678901234567890123456789012345678901234567890123".id = t3.id)
5239 Merge Cond: ("123456789012345678901234567890123456789012345678901234567890123".id = t2.id)
5240 -> Index Scan using t1_pkey on t1 "123456789012345678901234567890123456789012345678901234567890123"
5241 -> Index Scan using t2_pkey on t2
5248 Leading(123456789012345678901234567890123456789012345678901234567890123 t2 t3)
5249 SeqScan(123456789012345678901234567890123456789012345678901234567890123)
5250 MergeJoin(123456789012345678901234567890123456789012345678901234567890123 t2)
5251 Set(123456789012345678901234567890123456789012345678901234567890123 1)
5253 EXPLAIN (COSTS false) SELECT * FROM t1 "123456789012345678901234567890123456789012345678901234567890123" JOIN t2 ON ("123456789012345678901234567890123456789012345678901234567890123".id = t2.id) JOIN t3 ON (t2.id = t3.id);
5254 INFO: unrecognized configuration parameter "123456789012345678901234567890123456789012345678901234567890123"
5257 SeqScan(123456789012345678901234567890123456789012345678901234567890123)
5258 MergeJoin(123456789012345678901234567890123456789012345678901234567890123 t2)
5259 Leading(123456789012345678901234567890123456789012345678901234567890123 t2 t3)
5263 Set(123456789012345678901234567890123456789012345678901234567890123 1)
5266 ----------------------------------------------------------------------------------------------------
5268 Merge Cond: ("123456789012345678901234567890123456789012345678901234567890123".id = t3.id)
5270 Merge Cond: (t2.id = "123456789012345678901234567890123456789012345678901234567890123".id)
5271 -> Index Scan using t2_pkey on t2
5273 Sort Key: "123456789012345678901234567890123456789012345678901234567890123".id
5274 -> Seq Scan on t1 "123456789012345678901234567890123456789012345678901234567890123"
5281 Leading(1234567890123456789012345678901234567890123456789012345678901234 t2 t3)
5282 SeqScan(1234567890123456789012345678901234567890123456789012345678901234)
5283 MergeJoin(1234567890123456789012345678901234567890123456789012345678901234 t2)
5284 Set(1234567890123456789012345678901234567890123456789012345678901234 1)
5285 Set(cursor_tuple_fraction 0.1234567890123456789012345678901234567890123456789012345678901234)
5287 EXPLAIN (COSTS false) SELECT * FROM t1 "1234567890123456789012345678901234567890123456789012345678901234" JOIN t2 ON ("1234567890123456789012345678901234567890123456789012345678901234".id = t2.id) JOIN t3 ON (t2.id = t3.id);
5288 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5289 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5290 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5291 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5292 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5293 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5294 INFO: unrecognized configuration parameter "123456789012345678901234567890123456789012345678901234567890123"
5297 SeqScan(123456789012345678901234567890123456789012345678901234567890123)
5298 MergeJoin(123456789012345678901234567890123456789012345678901234567890123 t2)
5299 Leading(123456789012345678901234567890123456789012345678901234567890123 t2 t3)
5300 Set(cursor_tuple_fraction 0.1234567890123456789012345678901234567890123456789012345678901234)
5304 Set(123456789012345678901234567890123456789012345678901234567890123 1)
5307 ----------------------------------------------------------------------------------------------------
5309 Merge Cond: ("123456789012345678901234567890123456789012345678901234567890123".id = t3.id)
5311 Merge Cond: (t2.id = "123456789012345678901234567890123456789012345678901234567890123".id)
5312 -> Index Scan using t2_pkey on t2
5314 Sort Key: "123456789012345678901234567890123456789012345678901234567890123".id
5315 -> Seq Scan on t1 "123456789012345678901234567890123456789012345678901234567890123"
5321 SET "123456789012345678901234567890123456789012345678901234567890123" TO 1;
5322 ERROR: unrecognized configuration parameter "123456789012345678901234567890123456789012345678901234567890123"
5323 SET "1234567890123456789012345678901234567890123456789012345678901234" TO 1;
5324 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5325 ERROR: unrecognized configuration parameter "123456789012345678901234567890123456789012345678901234567890123"
5326 SET cursor_tuple_fraction TO 1234567890123456789012345678901234567890123456789012345678901234;
5327 ERROR: 1.23457e+63 is outside the valid range for parameter "cursor_tuple_fraction" (0 .. 1)
5329 /*+ Set(enable_seqscan 100)Set(seq_page_cost on)*/
5330 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
5331 INFO: parameter "enable_seqscan" requires a Boolean value
5332 INFO: parameter "seq_page_cost" requires a numeric value
5338 Set(enable_seqscan 100)
5339 Set(seq_page_cost on)
5342 --------------------------------------
5344 Merge Cond: (t1.id = t2.id)
5345 -> Index Scan using t1_pkey on t1
5346 -> Index Scan using t2_pkey on t2
5349 -- debug log of candidate index to use IndexScan
5350 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5352 ----------------------------------------------------------------------------------------
5353 Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
5354 Index Cond: (id = 1)
5357 /*+IndexScan(t5 t5_id2)*/
5358 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5359 LOG: available indexes for IndexScan(t5): t5_id2
5362 IndexScan(t5 t5_id2)
5368 -------------------------------
5369 Index Scan using t5_id2 on t5
5370 Index Cond: (id = 1)
5373 /*+IndexScan(t5 no_exist)*/
5374 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5375 LOG: available indexes for IndexScan(t5):
5378 IndexScan(t5 no_exist)
5384 --------------------
5389 /*+IndexScan(t5 t5_id1 t5_id2)*/
5390 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5391 LOG: available indexes for IndexScan(t5): t5_id2 t5_id1
5394 IndexScan(t5 t5_id1 t5_id2)
5400 -------------------------------
5401 Index Scan using t5_id2 on t5
5402 Index Cond: (id = 1)
5405 /*+IndexScan(t5 no_exist t5_id2)*/
5406 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5407 LOG: available indexes for IndexScan(t5): t5_id2
5410 IndexScan(t5 no_exist t5_id2)
5416 -------------------------------
5417 Index Scan using t5_id2 on t5
5418 Index Cond: (id = 1)
5421 /*+IndexScan(t5 no_exist5 no_exist2)*/
5422 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5423 LOG: available indexes for IndexScan(t5):
5426 IndexScan(t5 no_exist5 no_exist2)
5432 --------------------
5438 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5440 --------------------------------------------------------
5442 Hash Cond: (t3.val = t2.val)
5446 Hash Cond: (t2.id = t1.id)
5449 -> Index Scan using t1_pkey on t1
5450 Index Cond: (id < 10)
5454 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5455 INFO: hint syntax error at or near "Leading((t1))"
5456 DETAIL: Leading hint requires two sets of relations when parentheses nests.
5465 --------------------------------------------------------
5467 Hash Cond: (t3.val = t2.val)
5471 Hash Cond: (t2.id = t1.id)
5474 -> Index Scan using t1_pkey on t1
5475 Index Cond: (id < 10)
5478 /*+Leading((t1 t2))*/
5479 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5488 --------------------------------------------
5490 Join Filter: (t2.val = t3.val)
5492 Hash Cond: (t1.id = t2.id)
5493 -> Index Scan using t1_pkey on t1
5494 Index Cond: (id < 10)
5500 /*+Leading((t1 t2 t3))*/
5501 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5502 INFO: hint syntax error at or near "Leading((t1 t2 t3))"
5503 DETAIL: Leading hint requires two sets of relations when parentheses nests.
5512 --------------------------------------------------------
5514 Hash Cond: (t3.val = t2.val)
5518 Hash Cond: (t2.id = t1.id)
5521 -> Index Scan using t1_pkey on t1
5522 Index Cond: (id < 10)
5525 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.id < 10;
5527 --------------------------------------------
5529 Hash Cond: (t2.id = t1.id)
5532 -> Index Scan using t1_pkey on t1
5533 Index Cond: (id < 10)
5536 /*+Leading((t1 t2))*/
5537 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.id < 10;
5546 --------------------------------------
5548 Hash Cond: (t1.id = t2.id)
5549 -> Index Scan using t1_pkey on t1
5550 Index Cond: (id < 10)
5555 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5557 --------------------------------------------------------
5559 Hash Cond: (t3.val = t2.val)
5563 Hash Cond: (t2.id = t1.id)
5566 -> Index Scan using t1_pkey on t1
5567 Index Cond: (id < 10)
5570 /*+Leading(((t1 t2) t3))*/
5571 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5574 Leading(((t1 t2) t3))
5580 --------------------------------------------
5582 Join Filter: (t2.val = t3.val)
5584 Hash Cond: (t1.id = t2.id)
5585 -> Index Scan using t1_pkey on t1
5586 Index Cond: (id < 10)
5592 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t3.id = t4.id AND t1.val = t3.val AND t1.id < 10;
5594 --------------------------------------------------------
5597 Merge Cond: (t3.id = t4.id)
5599 Join Filter: (t1.val = t3.val)
5600 -> Index Scan using t3_pkey on t3
5602 -> Index Scan using t1_pkey on t1
5603 Index Cond: (id < 10)
5607 -> Index Scan using t2_pkey on t2
5608 Index Cond: (id = t1.id)
5611 /*+Leading((((t1 t2) t3) t4))*/
5612 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t3.id = t4.id AND t1.val = t3.val AND t1.id < 10;
5615 Leading((((t1 t2) t3) t4))
5621 --------------------------------------------------
5624 Join Filter: (t1.val = t3.val)
5626 Hash Cond: (t1.id = t2.id)
5627 -> Index Scan using t1_pkey on t1
5628 Index Cond: (id < 10)
5632 -> Index Scan using t4_pkey on t4
5633 Index Cond: (id = t3.id)
5636 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5638 --------------------------------------------------------
5640 Hash Cond: (t3.val = t2.val)
5644 Hash Cond: (t2.id = t1.id)
5647 -> Index Scan using t1_pkey on t1
5648 Index Cond: (id < 10)
5651 /*+Leading(((t1 t2) t3))*/
5652 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5655 Leading(((t1 t2) t3))
5661 --------------------------------------------
5663 Join Filter: (t2.val = t3.val)
5665 Hash Cond: (t1.id = t2.id)
5666 -> Index Scan using t1_pkey on t1
5667 Index Cond: (id < 10)
5673 /*+Leading((t1 (t2 t3)))*/
5674 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5677 Leading((t1 (t2 t3)))
5683 --------------------------------------------
5685 Hash Cond: (t1.id = t2.id)
5686 -> Index Scan using t1_pkey on t1
5687 Index Cond: (id < 10)
5690 Hash Cond: (t2.val = t3.val)
5696 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t3.id = t4.id AND t1.val = t3.val AND t1.id < 10;
5698 --------------------------------------------------------
5701 Merge Cond: (t3.id = t4.id)
5703 Join Filter: (t1.val = t3.val)
5704 -> Index Scan using t3_pkey on t3
5706 -> Index Scan using t1_pkey on t1
5707 Index Cond: (id < 10)
5711 -> Index Scan using t2_pkey on t2
5712 Index Cond: (id = t1.id)
5715 /*+Leading(((t1 t2) (t3 t4)))*/
5716 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t3.id = t4.id AND t1.val = t3.val AND t1.id < 10;
5719 Leading(((t1 t2) (t3 t4)))
5725 --------------------------------------------
5727 Join Filter: (t1.val = t3.val)
5729 Hash Cond: (t1.id = t2.id)
5730 -> Index Scan using t1_pkey on t1
5731 Index Cond: (id < 10)
5735 Merge Cond: (t3.id = t4.id)
5736 -> Index Scan using t3_pkey on t3
5742 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < ( SELECT t1_2.id FROM t1 t1_2, t2 t2_2 WHERE t1_2.id = t2_2.id AND t2_2.val > 100 ORDER BY t1_2.id LIMIT 1);
5744 --------------------------------------------------------------------
5746 Hash Cond: (t2.val = t3.val)
5747 InitPlan 1 (returns $1)
5752 -> Index Scan using t2_val on t2 t2_2
5753 Index Cond: (val > 100)
5754 -> Index Only Scan using t1_pkey on t1 t1_2
5755 Index Cond: (id = t2_2.id)
5757 Merge Cond: (t1.id = t2.id)
5758 -> Index Scan using t1_pkey on t1
5759 Index Cond: (id < $1)
5760 -> Index Scan using t2_pkey on t2
5765 /*+Leading(((t1 t2) t3)) Leading(((t3 t1) t2))*/
5766 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t1.val = t3.val AND t1.id < ( SELECT t1_2.id FROM t1 t1_2, t2 t2_2 WHERE t1_2.id = t2_2.id AND t2_2.val > 100 ORDER BY t1_2.id LIMIT 1);
5767 INFO: hint syntax error at or near "Leading(((t1 t2) t3)) Leading(((t3 t1) t2))"
5768 DETAIL: Conflict leading hint.
5771 Leading(((t3 t1) t2))
5774 Leading(((t1 t2) t3))
5778 --------------------------------------------------------------------
5780 Hash Cond: (t1.id = t2.id)
5781 InitPlan 1 (returns $1)
5786 -> Index Scan using t2_val on t2 t2_2
5787 Index Cond: (val > 100)
5788 -> Index Only Scan using t1_pkey on t1 t1_2
5789 Index Cond: (id = t2_2.id)
5791 Hash Cond: (t3.val = t1.val)
5794 -> Index Scan using t1_pkey on t1
5795 Index Cond: (id < $1)
5800 /*+Leading(((t1 t2) t3)) Leading((t1_2 t2_2))*/
5801 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < ( SELECT t1_2.id FROM t1 t1_2, t2 t2_2 WHERE t1_2.id = t2_2.id AND t2_2.val > 100 ORDER BY t1_2.id LIMIT 1);
5804 Leading(((t1 t2) t3))
5805 Leading((t1_2 t2_2))
5811 --------------------------------------------------------------
5813 Hash Cond: (t2.val = t3.val)
5814 InitPlan 1 (returns $0)
5817 Merge Cond: (t1_2.id = t2_2.id)
5818 -> Index Only Scan using t1_pkey on t1 t1_2
5821 -> Index Scan using t2_val on t2 t2_2
5822 Index Cond: (val > 100)
5824 Merge Cond: (t1.id = t2.id)
5825 -> Index Scan using t1_pkey on t1
5826 Index Cond: (id < $0)
5827 -> Index Scan using t2_pkey on t2
5832 /*+Leading(((((t1 t2) t3) t1_2) t2_2))*/
5833 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < ( SELECT t1_2.id FROM t1 t1_2, t2 t2_2 WHERE t1_2.id = t2_2.id AND t2_2.val > 100 ORDER BY t1_2.id LIMIT 1);
5837 Leading(((((t1 t2) t3) t1_2) t2_2))
5842 --------------------------------------------------------------------
5844 Hash Cond: (t2.val = t3.val)
5845 InitPlan 1 (returns $1)
5850 -> Index Scan using t2_val on t2 t2_2
5851 Index Cond: (val > 100)
5852 -> Index Only Scan using t1_pkey on t1 t1_2
5853 Index Cond: (id = t2_2.id)
5855 Merge Cond: (t1.id = t2.id)
5856 -> Index Scan using t1_pkey on t1
5857 Index Cond: (id < $1)
5858 -> Index Scan using t2_pkey on t2
5863 -- Specified outer/inner leading hint and join method hint at the same time
5864 /*+Leading(((t1 t2) t3))*/
5865 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5868 Leading(((t1 t2) t3))
5874 --------------------------------------------
5876 Join Filter: (t2.val = t3.val)
5878 Hash Cond: (t1.id = t2.id)
5879 -> Index Scan using t1_pkey on t1
5880 Index Cond: (id < 10)
5886 /*+Leading(((t1 t2) t3)) MergeJoin(t1 t2)*/
5887 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5891 Leading(((t1 t2) t3))
5897 --------------------------------------------
5899 Join Filter: (t2.val = t3.val)
5901 Merge Cond: (t1.id = t2.id)
5902 -> Index Scan using t1_pkey on t1
5903 Index Cond: (id < 10)
5904 -> Index Scan using t2_pkey on t2
5908 /*+Leading(((t1 t2) t3)) MergeJoin(t1 t2 t3)*/
5909 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5913 Leading(((t1 t2) t3))
5919 --------------------------------------------------
5921 Merge Cond: (t2.val = t3.val)
5925 Hash Cond: (t1.id = t2.id)
5926 -> Index Scan using t1_pkey on t1
5927 Index Cond: (id < 10)
5935 /*+Leading(((t1 t2) t3)) MergeJoin(t1 t3)*/
5936 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5939 Leading(((t1 t2) t3))
5946 --------------------------------------------
5948 Join Filter: (t2.val = t3.val)
5950 Hash Cond: (t1.id = t2.id)
5951 -> Index Scan using t1_pkey on t1
5952 Index Cond: (id < 10)
5958 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t3.id = t4.id AND t1.val = t3.val AND t1.id < 10;
5960 --------------------------------------------------------
5963 Merge Cond: (t3.id = t4.id)
5965 Join Filter: (t1.val = t3.val)
5966 -> Index Scan using t3_pkey on t3
5968 -> Index Scan using t1_pkey on t1
5969 Index Cond: (id < 10)
5973 -> Index Scan using t2_pkey on t2
5974 Index Cond: (id = t1.id)
5977 /*+Leading(((t1 t2) t3)) MergeJoin(t3 t4)*/
5978 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t3.id = t4.id AND t1.val = t3.val AND t1.id < 10;
5981 Leading(((t1 t2) t3))
5988 --------------------------------------------------
5991 Join Filter: (t1.val = t3.val)
5993 Hash Cond: (t1.id = t2.id)
5994 -> Index Scan using t1_pkey on t1
5995 Index Cond: (id < 10)
5999 -> Index Scan using t4_pkey on t4
6000 Index Cond: (id = t3.id)
6003 /*+Leading(((t1 t2) t3)) MergeJoin(t1 t2 t3 t4)*/
6004 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t3.id = t4.id AND t1.val = t3.val AND t1.id < 10;
6007 MergeJoin(t1 t2 t3 t4)
6008 Leading(((t1 t2) t3))
6014 --------------------------------------------------------
6016 Merge Cond: (t3.id = t4.id)
6020 Join Filter: (t1.val = t3.val)
6022 Hash Cond: (t1.id = t2.id)
6023 -> Index Scan using t1_pkey on t1
6024 Index Cond: (id < 10)
6033 /*+ Leading ( ( t1 ( t2 t3 ) ) ) */
6034 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6037 Leading((t1 (t2 t3)))
6043 --------------------------------------------
6045 Hash Cond: (t1.id = t2.id)
6046 -> Index Scan using t1_pkey on t1
6047 Index Cond: (id < 10)
6050 Hash Cond: (t2.val = t3.val)
6056 /*+Leading((t1(t2 t3)))*/
6057 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6060 Leading((t1 (t2 t3)))
6066 --------------------------------------------
6068 Hash Cond: (t1.id = t2.id)
6069 -> Index Scan using t1_pkey on t1
6070 Index Cond: (id < 10)
6073 Hash Cond: (t2.val = t3.val)
6079 /*+Leading(("t1(t2" "t3)"))*/
6080 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6084 Leading(("t1(t2" "t3)"))
6089 --------------------------------------------------------
6091 Hash Cond: (t3.val = t2.val)
6095 Hash Cond: (t2.id = t1.id)
6098 -> Index Scan using t1_pkey on t1
6099 Index Cond: (id < 10)
6102 /*+ Leading ( ( ( t1 t2 ) t3 ) ) */
6103 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6106 Leading(((t1 t2) t3))
6112 --------------------------------------------
6114 Join Filter: (t2.val = t3.val)
6116 Hash Cond: (t1.id = t2.id)
6117 -> Index Scan using t1_pkey on t1
6118 Index Cond: (id < 10)
6124 /*+Leading(((t1 t2)t3))*/
6125 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6128 Leading(((t1 t2) t3))
6134 --------------------------------------------
6136 Join Filter: (t2.val = t3.val)
6138 Hash Cond: (t1.id = t2.id)
6139 -> Index Scan using t1_pkey on t1
6140 Index Cond: (id < 10)
6146 /*+Leading(("(t1" "t2)t3"))*/
6147 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6151 Leading(("(t1" "t2)t3"))
6156 --------------------------------------------------------
6158 Hash Cond: (t3.val = t2.val)
6162 Hash Cond: (t2.id = t1.id)
6165 -> Index Scan using t1_pkey on t1
6166 Index Cond: (id < 10)
6169 /*+Leading((t1(t2(t3(t4 t5)))))*/
6170 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4, t5 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id AND t1.id = t5.id;
6173 Leading((t1 (t2 (t3 (t4 t5)))))
6179 ----------------------------------------------------------------------------------------------------------------------------------
6181 Merge Cond: (t1.id = t2.id)
6182 -> Index Scan using t1_pkey on t1
6185 Merge Cond: (t2.id = t3.id)
6186 -> Index Scan using t2_pkey on t2
6189 Merge Cond: (t3.id = t4.id)
6190 -> Index Scan using t3_pkey on t3
6193 Merge Cond: (t4.id = t5.id)
6194 -> Index Scan using t4_pkey on t4
6195 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6198 /*+Leading((t5(t4(t3(t2 t1)))))*/
6199 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4, t5 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id AND t1.id = t5.id;
6202 Leading((t5 (t4 (t3 (t2 t1)))))
6208 --------------------------------------------------------------------------
6210 Hash Cond: (t5.id = t1.id)
6214 Merge Cond: (t4.id = t1.id)
6220 Merge Cond: (t3.id = t1.id)
6226 Merge Cond: (t2.id = t1.id)
6227 -> Index Scan using t2_pkey on t2
6228 -> Index Scan using t1_pkey on t1
6231 /*+Leading(((((t1 t2)t3)t4)t5))*/
6232 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4, t5 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id AND t1.id = t5.id;
6235 Leading(((((t1 t2) t3) t4) t5))
6241 ----------------------------------------------------------------------------------------------
6244 Merge Cond: (t1.id = t4.id)
6246 Merge Cond: (t1.id = t3.id)
6248 Merge Cond: (t1.id = t2.id)
6249 -> Index Scan using t1_pkey on t1
6250 -> Index Scan using t2_pkey on t2
6251 -> Index Scan using t3_pkey on t3
6255 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6256 Index Cond: (id = t1.id)
6259 /*+Leading(((((t5 t4)t3)t2)t1))*/
6260 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4, t5 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id AND t1.id = t5.id;
6263 Leading(((((t5 t4) t3) t2) t1))
6269 ----------------------------------------------------------------------------------------------------------------
6271 Join Filter: (t2.id = t1.id)
6273 Join Filter: (t3.id = t2.id)
6275 Merge Cond: (t4.id = t3.id)
6277 Merge Cond: (t5.id = t4.id)
6278 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6282 -> Index Scan using t3_pkey on t3
6283 -> Index Scan using t2_pkey on t2
6284 Index Cond: (id = t5.id)
6285 -> Index Scan using t1_pkey on t1
6286 Index Cond: (id = t5.id)
6289 /*+Leading(((t1 t2)(t3(t4 t5))))*/
6290 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4, t5 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id AND t1.id = t5.id;
6293 Leading(((t1 t2) (t3 (t4 t5))))
6299 ----------------------------------------------------------------------------------------------------------------------
6301 Merge Cond: (t1.id = t3.id)
6303 Merge Cond: (t1.id = t2.id)
6304 -> Index Scan using t1_pkey on t1
6305 -> Index Scan using t2_pkey on t2
6308 Merge Cond: (t3.id = t4.id)
6309 -> Index Scan using t3_pkey on t3
6312 Merge Cond: (t4.id = t5.id)
6313 -> Index Scan using t4_pkey on t4
6314 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6317 /*+Leading(((t5 t4)(t3(t2 t1))))*/
6318 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4, t5 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id AND t1.id = t5.id;
6321 Leading(((t5 t4) (t3 (t2 t1))))
6327 ----------------------------------------------------------------------------------------------------
6329 Merge Cond: (t4.id = t1.id)
6331 Merge Cond: (t5.id = t4.id)
6332 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6338 Merge Cond: (t3.id = t1.id)
6339 -> Index Scan using t3_pkey on t3
6342 Merge Cond: (t2.id = t1.id)
6343 -> Index Scan using t2_pkey on t2
6344 -> Index Scan using t1_pkey on t1
6347 /*+Leading((((t1 t2)t3)(t4 t5)))*/
6348 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4, t5 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id AND t1.id = t5.id;
6351 Leading((((t1 t2) t3) (t4 t5)))
6357 ----------------------------------------------------------------------------------------------------------
6359 Merge Cond: (t1.id = t4.id)
6361 Merge Cond: (t1.id = t3.id)
6363 Merge Cond: (t1.id = t2.id)
6364 -> Index Scan using t1_pkey on t1
6365 -> Index Scan using t2_pkey on t2
6366 -> Index Scan using t3_pkey on t3
6369 Merge Cond: (t4.id = t5.id)
6370 -> Index Scan using t4_pkey on t4
6371 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6374 /*+Leading((((t5 t4)t3)(t2 t1)))*/
6375 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4, t5 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id AND t1.id = t5.id;
6378 Leading((((t5 t4) t3) (t2 t1)))
6384 ----------------------------------------------------------------------------------------------------------
6386 Merge Cond: (t3.id = t1.id)
6388 Merge Cond: (t4.id = t3.id)
6390 Merge Cond: (t5.id = t4.id)
6391 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6395 -> Index Scan using t3_pkey on t3
6398 Merge Cond: (t2.id = t1.id)
6399 -> Index Scan using t2_pkey on t2
6400 -> Index Scan using t1_pkey on t1
6403 -- inherite table test to specify the index's name
6404 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6406 -----------------------------------------------------------------------
6409 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6410 -> Seq Scan on p2_c1
6411 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6412 -> Tid Scan on p2_c1_c1
6413 TID Cond: (ctid = '(1,1)'::tid)
6414 Filter: ((id >= 50) AND (id <= 51))
6415 -> Tid Scan on p2_c1_c2
6416 TID Cond: (ctid = '(1,1)'::tid)
6417 Filter: ((id >= 50) AND (id <= 51))
6420 /*+IndexScan(p2 p2_pkey)*/
6421 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6422 LOG: available indexes for IndexScan(p2): p2_pkey
6423 LOG: available indexes for IndexScan(p2_c1): p2_c1_pkey
6424 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6425 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6426 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6427 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6428 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6429 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6430 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6433 IndexScan(p2 p2_pkey)
6439 --------------------------------------------------
6441 -> Index Scan using p2_pkey on p2
6442 Index Cond: ((id >= 50) AND (id <= 51))
6443 Filter: (ctid = '(1,1)'::tid)
6444 -> Index Scan using p2_c1_pkey on p2_c1
6445 Index Cond: ((id >= 50) AND (id <= 51))
6446 Filter: (ctid = '(1,1)'::tid)
6447 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1
6448 Index Cond: ((id >= 50) AND (id <= 51))
6449 Filter: (ctid = '(1,1)'::tid)
6450 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2
6451 Index Cond: ((id >= 50) AND (id <= 51))
6452 Filter: (ctid = '(1,1)'::tid)
6455 /*+IndexScan(p2 p2_id_val_idx)*/
6456 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6457 LOG: available indexes for IndexScan(p2): p2_id_val_idx
6458 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx
6459 LOG: available indexes for IndexScan(p2_c2): p2_c2_id_val_idx
6460 LOG: available indexes for IndexScan(p2_c3): p2_c3_id_val_idx
6461 LOG: available indexes for IndexScan(p2_c4): p2_c4_id_val_idx
6462 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_id_val_idx
6463 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_id_val_idx
6464 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_id_val_idx
6465 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_id_val_idx
6468 IndexScan(p2 p2_id_val_idx)
6474 --------------------------------------------------------
6476 -> Index Scan using p2_id_val_idx on p2
6477 Index Cond: ((id >= 50) AND (id <= 51))
6478 Filter: (ctid = '(1,1)'::tid)
6479 -> Index Scan using p2_c1_id_val_idx on p2_c1
6480 Index Cond: ((id >= 50) AND (id <= 51))
6481 Filter: (ctid = '(1,1)'::tid)
6482 -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1
6483 Index Cond: ((id >= 50) AND (id <= 51))
6484 Filter: (ctid = '(1,1)'::tid)
6485 -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2
6486 Index Cond: ((id >= 50) AND (id <= 51))
6487 Filter: (ctid = '(1,1)'::tid)
6490 /*+IndexScan(p2 p2_val_id_idx)*/
6491 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6492 LOG: available indexes for IndexScan(p2): p2_val_id_idx
6493 LOG: available indexes for IndexScan(p2_c1): p2_c1_val_id_idx
6494 LOG: available indexes for IndexScan(p2_c2): p2_c2_val_id_idx
6495 LOG: available indexes for IndexScan(p2_c3): p2_c3_val_id_idx
6496 LOG: available indexes for IndexScan(p2_c4):
6497 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_val_id_idx
6498 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_val_id_idx
6499 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_val_id_idx
6500 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_val_id_idx
6503 IndexScan(p2 p2_val_id_idx)
6509 --------------------------------------------------------
6511 -> Index Scan using p2_val_id_idx on p2
6512 Index Cond: ((id >= 50) AND (id <= 51))
6513 Filter: (ctid = '(1,1)'::tid)
6514 -> Index Scan using p2_c1_val_id_idx on p2_c1
6515 Index Cond: ((id >= 50) AND (id <= 51))
6516 Filter: (ctid = '(1,1)'::tid)
6517 -> Index Scan using p2_c1_c1_val_id_idx on p2_c1_c1
6518 Index Cond: ((id >= 50) AND (id <= 51))
6519 Filter: (ctid = '(1,1)'::tid)
6520 -> Index Scan using p2_c1_c2_val_id_idx on p2_c1_c2
6521 Index Cond: ((id >= 50) AND (id <= 51))
6522 Filter: (ctid = '(1,1)'::tid)
6525 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
6527 -----------------------------------------------------------------------------------------
6530 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6531 -> Seq Scan on p2_c1
6532 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6533 -> Seq Scan on p2_c2
6534 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6535 -> Seq Scan on p2_c3
6536 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6537 -> Tid Scan on p2_c4
6538 TID Cond: (ctid = '(1,1)'::tid)
6539 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6540 -> Tid Scan on p2_c1_c1
6541 TID Cond: (ctid = '(1,1)'::tid)
6542 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6543 -> Tid Scan on p2_c1_c2
6544 TID Cond: (ctid = '(1,1)'::tid)
6545 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6546 -> Tid Scan on p2_c3_c1
6547 TID Cond: (ctid = '(1,1)'::tid)
6548 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6549 -> Tid Scan on p2_c3_c2
6550 TID Cond: (ctid = '(1,1)'::tid)
6551 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6554 /*+IndexScan(p2 p2_val)*/
6555 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
6556 LOG: available indexes for IndexScan(p2):
6557 LOG: available indexes for IndexScan(p2_c1):
6558 LOG: available indexes for IndexScan(p2_c2):
6559 LOG: available indexes for IndexScan(p2_c3):
6560 LOG: available indexes for IndexScan(p2_c4):
6561 LOG: available indexes for IndexScan(p2_c1_c1):
6562 LOG: available indexes for IndexScan(p2_c1_c2):
6563 LOG: available indexes for IndexScan(p2_c3_c1):
6564 LOG: available indexes for IndexScan(p2_c3_c2):
6567 IndexScan(p2 p2_val)
6573 -----------------------------------------------------------------------------------------
6576 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6577 -> Seq Scan on p2_c1
6578 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6579 -> Seq Scan on p2_c2
6580 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6581 -> Seq Scan on p2_c3
6582 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6583 -> Tid Scan on p2_c4
6584 TID Cond: (ctid = '(1,1)'::tid)
6585 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6586 -> Tid Scan on p2_c1_c1
6587 TID Cond: (ctid = '(1,1)'::tid)
6588 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6589 -> Tid Scan on p2_c1_c2
6590 TID Cond: (ctid = '(1,1)'::tid)
6591 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6592 -> Tid Scan on p2_c3_c1
6593 TID Cond: (ctid = '(1,1)'::tid)
6594 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6595 -> Tid Scan on p2_c3_c2
6596 TID Cond: (ctid = '(1,1)'::tid)
6597 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6600 /*+IndexScan(p2 p2_pkey)*/
6601 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6602 LOG: available indexes for IndexScan(p2): p2_pkey
6603 LOG: available indexes for IndexScan(p2_c1): p2_c1_pkey
6604 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6605 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6606 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6607 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6608 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6609 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6610 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6613 IndexScan(p2 p2_pkey)
6619 --------------------------------------------------
6621 -> Index Scan using p2_pkey on p2
6622 Index Cond: ((id >= 50) AND (id <= 51))
6623 Filter: (ctid = '(1,1)'::tid)
6624 -> Index Scan using p2_c1_pkey on p2_c1
6625 Index Cond: ((id >= 50) AND (id <= 51))
6626 Filter: (ctid = '(1,1)'::tid)
6627 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1
6628 Index Cond: ((id >= 50) AND (id <= 51))
6629 Filter: (ctid = '(1,1)'::tid)
6630 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2
6631 Index Cond: ((id >= 50) AND (id <= 51))
6632 Filter: (ctid = '(1,1)'::tid)
6635 /*+IndexScan(p2 p2_id2_val)*/
6636 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6637 LOG: available indexes for IndexScan(p2): p2_id2_val
6638 LOG: available indexes for IndexScan(p2_c1): p2_c1_id2_val
6639 LOG: available indexes for IndexScan(p2_c2): p2_c2_id2_val
6640 LOG: available indexes for IndexScan(p2_c3):
6641 LOG: available indexes for IndexScan(p2_c4):
6642 LOG: available indexes for IndexScan(p2_c1_c1):
6643 LOG: available indexes for IndexScan(p2_c1_c2):
6644 LOG: available indexes for IndexScan(p2_c3_c1):
6645 LOG: available indexes for IndexScan(p2_c3_c2):
6648 IndexScan(p2 p2_id2_val)
6654 -------------------------------------------------
6656 -> Index Scan using p2_id2_val on p2
6657 Index Cond: ((id >= 50) AND (id <= 51))
6658 Filter: (ctid = '(1,1)'::tid)
6659 -> Index Scan using p2_c1_id2_val on p2_c1
6660 Index Cond: ((id >= 50) AND (id <= 51))
6661 Filter: (ctid = '(1,1)'::tid)
6662 -> Tid Scan on p2_c1_c1
6663 TID Cond: (ctid = '(1,1)'::tid)
6664 Filter: ((id >= 50) AND (id <= 51))
6665 -> Tid Scan on p2_c1_c2
6666 TID Cond: (ctid = '(1,1)'::tid)
6667 Filter: ((id >= 50) AND (id <= 51))
6670 /*+IndexScan(p2 p2_val2_id)*/
6671 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6672 LOG: available indexes for IndexScan(p2): p2_val2_id
6673 LOG: available indexes for IndexScan(p2_c1):
6674 LOG: available indexes for IndexScan(p2_c2):
6675 LOG: available indexes for IndexScan(p2_c3):
6676 LOG: available indexes for IndexScan(p2_c4):
6677 LOG: available indexes for IndexScan(p2_c1_c1):
6678 LOG: available indexes for IndexScan(p2_c1_c2):
6679 LOG: available indexes for IndexScan(p2_c3_c1):
6680 LOG: available indexes for IndexScan(p2_c3_c2):
6683 IndexScan(p2 p2_val2_id)
6689 -----------------------------------------------------------------------
6691 -> Index Scan using p2_val2_id on p2
6692 Index Cond: ((id >= 50) AND (id <= 51))
6693 Filter: (ctid = '(1,1)'::tid)
6694 -> Seq Scan on p2_c1
6695 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6696 -> Tid Scan on p2_c1_c1
6697 TID Cond: (ctid = '(1,1)'::tid)
6698 Filter: ((id >= 50) AND (id <= 51))
6699 -> Tid Scan on p2_c1_c2
6700 TID Cond: (ctid = '(1,1)'::tid)
6701 Filter: ((id >= 50) AND (id <= 51))
6704 /*+IndexScan(p2 p2_pkey)*/
6705 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6706 LOG: available indexes for IndexScan(p2): p2_pkey
6707 LOG: available indexes for IndexScan(p2_c1): p2_c1_pkey
6708 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6709 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6710 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6711 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6712 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6713 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6714 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6717 IndexScan(p2 p2_pkey)
6723 --------------------------------------------------
6725 -> Index Scan using p2_pkey on p2
6726 Index Cond: ((id >= 50) AND (id <= 51))
6727 Filter: (ctid = '(1,1)'::tid)
6728 -> Index Scan using p2_c1_pkey on p2_c1
6729 Index Cond: ((id >= 50) AND (id <= 51))
6730 Filter: (ctid = '(1,1)'::tid)
6731 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1
6732 Index Cond: ((id >= 50) AND (id <= 51))
6733 Filter: (ctid = '(1,1)'::tid)
6734 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2
6735 Index Cond: ((id >= 50) AND (id <= 51))
6736 Filter: (ctid = '(1,1)'::tid)
6739 /*+IndexScan(p2 p2_c1_id_val_idx)*/
6740 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6741 LOG: available indexes for IndexScan(p2):
6742 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx
6743 LOG: available indexes for IndexScan(p2_c2):
6744 LOG: available indexes for IndexScan(p2_c3):
6745 LOG: available indexes for IndexScan(p2_c4):
6746 LOG: available indexes for IndexScan(p2_c1_c1):
6747 LOG: available indexes for IndexScan(p2_c1_c2):
6748 LOG: available indexes for IndexScan(p2_c3_c1):
6749 LOG: available indexes for IndexScan(p2_c3_c2):
6752 IndexScan(p2 p2_c1_id_val_idx)
6758 -----------------------------------------------------------------------
6761 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6762 -> Index Scan using p2_c1_id_val_idx on p2_c1
6763 Index Cond: ((id >= 50) AND (id <= 51))
6764 Filter: (ctid = '(1,1)'::tid)
6765 -> Tid Scan on p2_c1_c1
6766 TID Cond: (ctid = '(1,1)'::tid)
6767 Filter: ((id >= 50) AND (id <= 51))
6768 -> Tid Scan on p2_c1_c2
6769 TID Cond: (ctid = '(1,1)'::tid)
6770 Filter: ((id >= 50) AND (id <= 51))
6773 /*+IndexScan(p2 no_exist)*/
6774 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6775 LOG: available indexes for IndexScan(p2):
6776 LOG: available indexes for IndexScan(p2_c1):
6777 LOG: available indexes for IndexScan(p2_c2):
6778 LOG: available indexes for IndexScan(p2_c3):
6779 LOG: available indexes for IndexScan(p2_c4):
6780 LOG: available indexes for IndexScan(p2_c1_c1):
6781 LOG: available indexes for IndexScan(p2_c1_c2):
6782 LOG: available indexes for IndexScan(p2_c3_c1):
6783 LOG: available indexes for IndexScan(p2_c3_c2):
6786 IndexScan(p2 no_exist)
6792 -----------------------------------------------------------------------
6795 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6796 -> Seq Scan on p2_c1
6797 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6798 -> Tid Scan on p2_c1_c1
6799 TID Cond: (ctid = '(1,1)'::tid)
6800 Filter: ((id >= 50) AND (id <= 51))
6801 -> Tid Scan on p2_c1_c2
6802 TID Cond: (ctid = '(1,1)'::tid)
6803 Filter: ((id >= 50) AND (id <= 51))
6806 /*+IndexScan(p2 p2_pkey p2_c1_id_val_idx)*/
6807 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6808 LOG: available indexes for IndexScan(p2): p2_pkey
6809 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx p2_c1_pkey
6810 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6811 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6812 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6813 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6814 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6815 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6816 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6819 IndexScan(p2 p2_pkey p2_c1_id_val_idx)
6825 --------------------------------------------------
6827 -> Index Scan using p2_pkey on p2
6828 Index Cond: ((id >= 50) AND (id <= 51))
6829 Filter: (ctid = '(1,1)'::tid)
6830 -> Index Scan using p2_c1_id_val_idx on p2_c1
6831 Index Cond: ((id >= 50) AND (id <= 51))
6832 Filter: (ctid = '(1,1)'::tid)
6833 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1
6834 Index Cond: ((id >= 50) AND (id <= 51))
6835 Filter: (ctid = '(1,1)'::tid)
6836 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2
6837 Index Cond: ((id >= 50) AND (id <= 51))
6838 Filter: (ctid = '(1,1)'::tid)
6841 /*+IndexScan(p2 p2_pkey no_exist)*/
6842 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6843 LOG: available indexes for IndexScan(p2): p2_pkey
6844 LOG: available indexes for IndexScan(p2_c1): p2_c1_pkey
6845 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6846 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6847 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6848 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6849 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6850 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6851 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6854 IndexScan(p2 p2_pkey no_exist)
6860 --------------------------------------------------
6862 -> Index Scan using p2_pkey on p2
6863 Index Cond: ((id >= 50) AND (id <= 51))
6864 Filter: (ctid = '(1,1)'::tid)
6865 -> Index Scan using p2_c1_pkey on p2_c1
6866 Index Cond: ((id >= 50) AND (id <= 51))
6867 Filter: (ctid = '(1,1)'::tid)
6868 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1
6869 Index Cond: ((id >= 50) AND (id <= 51))
6870 Filter: (ctid = '(1,1)'::tid)
6871 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2
6872 Index Cond: ((id >= 50) AND (id <= 51))
6873 Filter: (ctid = '(1,1)'::tid)
6876 /*+IndexScan(p2 p2_c1_id_val_idx no_exist)*/
6877 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6878 LOG: available indexes for IndexScan(p2):
6879 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx
6880 LOG: available indexes for IndexScan(p2_c2):
6881 LOG: available indexes for IndexScan(p2_c3):
6882 LOG: available indexes for IndexScan(p2_c4):
6883 LOG: available indexes for IndexScan(p2_c1_c1):
6884 LOG: available indexes for IndexScan(p2_c1_c2):
6885 LOG: available indexes for IndexScan(p2_c3_c1):
6886 LOG: available indexes for IndexScan(p2_c3_c2):
6889 IndexScan(p2 p2_c1_id_val_idx no_exist)
6895 -----------------------------------------------------------------------
6898 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6899 -> Index Scan using p2_c1_id_val_idx on p2_c1
6900 Index Cond: ((id >= 50) AND (id <= 51))
6901 Filter: (ctid = '(1,1)'::tid)
6902 -> Tid Scan on p2_c1_c1
6903 TID Cond: (ctid = '(1,1)'::tid)
6904 Filter: ((id >= 50) AND (id <= 51))
6905 -> Tid Scan on p2_c1_c2
6906 TID Cond: (ctid = '(1,1)'::tid)
6907 Filter: ((id >= 50) AND (id <= 51))
6910 /*+IndexScan(p2 p2_pkey p2_c1_id_val_idx no_exist)*/
6911 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6912 LOG: available indexes for IndexScan(p2): p2_pkey
6913 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx p2_c1_pkey
6914 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6915 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6916 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6917 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6918 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6919 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6920 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6923 IndexScan(p2 p2_pkey p2_c1_id_val_idx no_exist)
6929 --------------------------------------------------
6931 -> Index Scan using p2_pkey on p2
6932 Index Cond: ((id >= 50) AND (id <= 51))
6933 Filter: (ctid = '(1,1)'::tid)
6934 -> Index Scan using p2_c1_id_val_idx on p2_c1
6935 Index Cond: ((id >= 50) AND (id <= 51))
6936 Filter: (ctid = '(1,1)'::tid)
6937 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1
6938 Index Cond: ((id >= 50) AND (id <= 51))
6939 Filter: (ctid = '(1,1)'::tid)
6940 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2
6941 Index Cond: ((id >= 50) AND (id <= 51))
6942 Filter: (ctid = '(1,1)'::tid)
6945 /*+IndexScan(p2 p2_val_idx)*/
6946 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
6947 LOG: available indexes for IndexScan(p2): p2_val_idx
6948 LOG: available indexes for IndexScan(p2_c1): p2_c1_val_idx
6949 LOG: available indexes for IndexScan(p2_c2): p2_c2_val_idx
6950 LOG: available indexes for IndexScan(p2_c3): p2_c3_val_idx
6951 LOG: available indexes for IndexScan(p2_c4): p2_c4_val_idx
6952 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_val_idx
6953 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_val_idx
6954 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_val_idx
6955 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_val_idx
6958 IndexScan(p2 p2_val_idx)
6964 -------------------------------------------------------------------
6966 -> Index Scan using p2_val_idx on p2
6967 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6968 Filter: (ctid = '(1,1)'::tid)
6969 -> Index Scan using p2_c1_val_idx on p2_c1
6970 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6971 Filter: (ctid = '(1,1)'::tid)
6972 -> Index Scan using p2_c2_val_idx on p2_c2
6973 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6974 Filter: (ctid = '(1,1)'::tid)
6975 -> Index Scan using p2_c3_val_idx on p2_c3
6976 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6977 Filter: (ctid = '(1,1)'::tid)
6978 -> Index Scan using p2_c4_val_idx on p2_c4
6979 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6980 Filter: (ctid = '(1,1)'::tid)
6981 -> Index Scan using p2_c1_c1_val_idx on p2_c1_c1
6982 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6983 Filter: (ctid = '(1,1)'::tid)
6984 -> Index Scan using p2_c1_c2_val_idx on p2_c1_c2
6985 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6986 Filter: (ctid = '(1,1)'::tid)
6987 -> Index Scan using p2_c3_c1_val_idx on p2_c3_c1
6988 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6989 Filter: (ctid = '(1,1)'::tid)
6990 -> Index Scan using p2_c3_c2_val_idx on p2_c3_c2
6991 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6992 Filter: (ctid = '(1,1)'::tid)
6995 /*+IndexScan(p2 p2_expr)*/
6996 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
6997 LOG: available indexes for IndexScan(p2): p2_expr
6998 LOG: available indexes for IndexScan(p2_c1): p2_c1_expr_idx
6999 LOG: available indexes for IndexScan(p2_c2): p2_c2_expr_idx
7000 LOG: available indexes for IndexScan(p2_c3): p2_c3_expr_idx
7001 LOG: available indexes for IndexScan(p2_c4): p2_c4_expr_idx
7002 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_expr_idx
7003 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_expr_idx
7004 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_expr_idx
7005 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_expr_idx
7008 IndexScan(p2 p2_expr)
7014 -----------------------------------------------------------------------------------------
7017 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7018 -> Seq Scan on p2_c1
7019 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7020 -> Seq Scan on p2_c2
7021 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7022 -> Seq Scan on p2_c3
7023 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7024 -> Tid Scan on p2_c4
7025 TID Cond: (ctid = '(1,1)'::tid)
7026 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7027 -> Tid Scan on p2_c1_c1
7028 TID Cond: (ctid = '(1,1)'::tid)
7029 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7030 -> Tid Scan on p2_c1_c2
7031 TID Cond: (ctid = '(1,1)'::tid)
7032 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7033 -> Tid Scan on p2_c3_c1
7034 TID Cond: (ctid = '(1,1)'::tid)
7035 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7036 -> Tid Scan on p2_c3_c2
7037 TID Cond: (ctid = '(1,1)'::tid)
7038 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7041 /*+IndexScan(p2 p2_val_idx6)*/
7042 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
7043 LOG: available indexes for IndexScan(p2): p2_val_idx6
7044 LOG: available indexes for IndexScan(p2_c1): p2_c1_val_idx6
7045 LOG: available indexes for IndexScan(p2_c2): p2_c2_val_idx6
7046 LOG: available indexes for IndexScan(p2_c3): p2_c3_val_idx6
7047 LOG: available indexes for IndexScan(p2_c4): p2_c4_val_idx6
7048 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_val_idx6
7049 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_val_idx6
7050 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_val_idx6
7051 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_val_idx6
7054 IndexScan(p2 p2_val_idx6)
7060 -----------------------------------------------------------------------------------------
7063 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7064 -> Seq Scan on p2_c1
7065 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7066 -> Seq Scan on p2_c2
7067 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7068 -> Seq Scan on p2_c3
7069 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7070 -> Tid Scan on p2_c4
7071 TID Cond: (ctid = '(1,1)'::tid)
7072 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7073 -> Tid Scan on p2_c1_c1
7074 TID Cond: (ctid = '(1,1)'::tid)
7075 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7076 -> Tid Scan on p2_c1_c2
7077 TID Cond: (ctid = '(1,1)'::tid)
7078 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7079 -> Tid Scan on p2_c3_c1
7080 TID Cond: (ctid = '(1,1)'::tid)
7081 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7082 -> Tid Scan on p2_c3_c2
7083 TID Cond: (ctid = '(1,1)'::tid)
7084 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7087 /*+IndexScan(p2 p2_val_idx p2_val_idx6)*/
7088 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
7089 LOG: available indexes for IndexScan(p2): p2_val_idx6 p2_val_idx
7090 LOG: available indexes for IndexScan(p2_c1): p2_c1_val_idx6 p2_c1_val_idx
7091 LOG: available indexes for IndexScan(p2_c2): p2_c2_val_idx6 p2_c2_val_idx
7092 LOG: available indexes for IndexScan(p2_c3): p2_c3_val_idx6 p2_c3_val_idx
7093 LOG: available indexes for IndexScan(p2_c4): p2_c4_val_idx6 p2_c4_val_idx
7094 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_val_idx6 p2_c1_c1_val_idx
7095 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_val_idx6 p2_c1_c2_val_idx
7096 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_val_idx6 p2_c3_c1_val_idx
7097 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_val_idx6 p2_c3_c2_val_idx
7100 IndexScan(p2 p2_val_idx p2_val_idx6)
7106 -------------------------------------------------------------------
7108 -> Index Scan using p2_val_idx on p2
7109 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7110 Filter: (ctid = '(1,1)'::tid)
7111 -> Index Scan using p2_c1_val_idx on p2_c1
7112 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7113 Filter: (ctid = '(1,1)'::tid)
7114 -> Index Scan using p2_c2_val_idx on p2_c2
7115 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7116 Filter: (ctid = '(1,1)'::tid)
7117 -> Index Scan using p2_c3_val_idx on p2_c3
7118 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7119 Filter: (ctid = '(1,1)'::tid)
7120 -> Index Scan using p2_c4_val_idx on p2_c4
7121 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7122 Filter: (ctid = '(1,1)'::tid)
7123 -> Index Scan using p2_c1_c1_val_idx on p2_c1_c1
7124 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7125 Filter: (ctid = '(1,1)'::tid)
7126 -> Index Scan using p2_c1_c2_val_idx on p2_c1_c2
7127 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7128 Filter: (ctid = '(1,1)'::tid)
7129 -> Index Scan using p2_c3_c1_val_idx on p2_c3_c1
7130 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7131 Filter: (ctid = '(1,1)'::tid)
7132 -> Index Scan using p2_c3_c2_val_idx on p2_c3_c2
7133 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7134 Filter: (ctid = '(1,1)'::tid)
7137 -- regular expression
7139 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7141 ---------------------------------------------------------------------------------------------
7142 Index Only Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
7143 Index Cond: (id = 1)
7146 /*+ IndexScanRegexp(t5 t5_[^i].*)*/
7147 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7148 LOG: available indexes for IndexScanRegexp(t5): t5_val t5_pkey
7151 IndexScanRegexp(t5 t5_[^i].*)
7157 --------------------------------
7158 Index Scan using t5_pkey on t5
7159 Index Cond: (id = 1)
7162 /*+ IndexScanRegexp(t5 t5_id[0-9].*)*/
7163 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7164 LOG: available indexes for IndexScanRegexp(t5): t5_id3 t5_id2 t5_id1
7167 IndexScanRegexp(t5 t5_id[0-9].*)
7173 -------------------------------
7174 Index Scan using t5_id3 on t5
7175 Index Cond: (id = 1)
7178 /*+ IndexScanRegexp(t5 t5[^_].*)*/
7179 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7180 LOG: available indexes for IndexScanRegexp(t5):
7183 IndexScanRegexp(t5 t5[^_].*)
7189 --------------------
7194 /*+ IndexScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)*/
7195 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7196 LOG: available indexes for IndexScanRegexp(t5):
7199 IndexScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)
7205 --------------------
7210 /*+ IndexScan(t5 t5_id[0-9].*)*/
7211 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7212 LOG: available indexes for IndexScan(t5):
7215 IndexScan(t5 t5_id[0-9].*)
7221 --------------------
7226 /*+ IndexOnlyScanRegexp(t5 t5_[^i].*)*/
7227 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7228 LOG: available indexes for IndexOnlyScanRegexp(t5): t5_val t5_pkey
7231 IndexOnlyScanRegexp(t5 t5_[^i].*)
7237 -------------------------------------
7238 Index Only Scan using t5_pkey on t5
7239 Index Cond: (id = 1)
7242 /*+ IndexOnlyScanRegexp(t5 t5_id[0-9].*)*/
7243 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7244 LOG: available indexes for IndexOnlyScanRegexp(t5): t5_id3 t5_id2 t5_id1
7247 IndexOnlyScanRegexp(t5 t5_id[0-9].*)
7253 ------------------------------------
7254 Index Only Scan using t5_id3 on t5
7255 Index Cond: (id = 1)
7258 /*+ IndexOnlyScanRegexp(t5 t5[^_].*)*/
7259 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7260 LOG: available indexes for IndexOnlyScanRegexp(t5):
7263 IndexOnlyScanRegexp(t5 t5[^_].*)
7269 --------------------
7274 /*+ IndexOnlyScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)*/
7275 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7276 LOG: available indexes for IndexOnlyScanRegexp(t5):
7279 IndexOnlyScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)
7285 --------------------
7290 /*+ IndexOnlyScan(t5 t5_id[0-9].*)*/
7291 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7292 LOG: available indexes for IndexOnlyScan(t5):
7295 IndexOnlyScan(t5 t5_id[0-9].*)
7301 --------------------
7306 /*+ BitmapScanRegexp(t5 t5_[^i].*)*/
7307 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7308 LOG: available indexes for BitmapScanRegexp(t5): t5_val t5_pkey
7311 BitmapScanRegexp(t5 t5_[^i].*)
7317 ------------------------------------
7318 Bitmap Heap Scan on t5
7319 Recheck Cond: (id = 1)
7320 -> Bitmap Index Scan on t5_pkey
7321 Index Cond: (id = 1)
7324 /*+ BitmapScanRegexp(t5 t5_id[0-9].*)*/
7325 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7326 LOG: available indexes for BitmapScanRegexp(t5): t5_id3 t5_id2 t5_id1
7329 BitmapScanRegexp(t5 t5_id[0-9].*)
7335 -----------------------------------
7336 Bitmap Heap Scan on t5
7337 Recheck Cond: (id = 1)
7338 -> Bitmap Index Scan on t5_id3
7339 Index Cond: (id = 1)
7342 /*+ BitmapScanRegexp(t5 t5[^_].*)*/
7343 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7344 LOG: available indexes for BitmapScanRegexp(t5):
7347 BitmapScanRegexp(t5 t5[^_].*)
7353 --------------------
7358 /*+ BitmapScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)*/
7359 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7360 LOG: available indexes for BitmapScanRegexp(t5):
7363 BitmapScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)
7369 --------------------
7374 /*+ BitmapScan(t5 t5_id[0-9].*)*/
7375 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7376 LOG: available indexes for BitmapScan(t5):
7379 BitmapScan(t5 t5_id[0-9].*)
7385 --------------------
7391 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7393 ----------------------------
7397 -> Seq Scan on p1_c1
7399 -> Seq Scan on p1_c2
7401 -> Seq Scan on p1_c3
7403 -> Seq Scan on p1_c4
7405 -> Seq Scan on p1_c1_c1
7407 -> Seq Scan on p1_c1_c2
7409 -> Seq Scan on p1_c3_c1
7411 -> Seq Scan on p1_c3_c2
7415 /*+ IndexScanRegexp(p1 p1_.*[^0-9]$)*/
7416 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7417 LOG: available indexes for IndexScanRegexp(p1): p1_pkey
7418 LOG: available indexes for IndexScanRegexp(p1_c1): p1_c1_pkey
7419 LOG: available indexes for IndexScanRegexp(p1_c2): p1_c2_pkey
7420 LOG: available indexes for IndexScanRegexp(p1_c3): p1_c3_pkey
7421 LOG: available indexes for IndexScanRegexp(p1_c4): p1_c4_pkey
7422 LOG: available indexes for IndexScanRegexp(p1_c1_c1): p1_c1_c1_pkey
7423 LOG: available indexes for IndexScanRegexp(p1_c1_c2): p1_c1_c2_pkey
7424 LOG: available indexes for IndexScanRegexp(p1_c3_c1): p1_c3_c1_pkey
7425 LOG: available indexes for IndexScanRegexp(p1_c3_c2): p1_c3_c2_pkey
7428 IndexScanRegexp(p1 p1_.*[^0-9]$)
7434 ----------------------------
7438 -> Seq Scan on p1_c1
7440 -> Seq Scan on p1_c2
7442 -> Seq Scan on p1_c3
7444 -> Seq Scan on p1_c4
7446 -> Seq Scan on p1_c1_c1
7448 -> Seq Scan on p1_c1_c2
7450 -> Seq Scan on p1_c3_c1
7452 -> Seq Scan on p1_c3_c2
7456 /*+ IndexScanRegexp(p1 p1_.*val2.*)*/
7457 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7458 LOG: available indexes for IndexScanRegexp(p1): p1_val2
7459 LOG: available indexes for IndexScanRegexp(p1_c1): p1_c1_val2
7460 LOG: available indexes for IndexScanRegexp(p1_c2): p1_c2_val2
7461 LOG: available indexes for IndexScanRegexp(p1_c3): p1_c3_val2
7462 LOG: available indexes for IndexScanRegexp(p1_c4): p1_c4_val2
7463 LOG: available indexes for IndexScanRegexp(p1_c1_c1): p1_c1_c1_val2
7464 LOG: available indexes for IndexScanRegexp(p1_c1_c2): p1_c1_c2_val2
7465 LOG: available indexes for IndexScanRegexp(p1_c3_c1): p1_c3_c1_val2
7466 LOG: available indexes for IndexScanRegexp(p1_c3_c2): p1_c3_c2_val2
7469 IndexScanRegexp(p1 p1_.*val2.*)
7475 --------------------------------------------------
7477 -> Index Scan using p1_val2 on p1
7478 Index Cond: (val = 1)
7479 -> Index Scan using p1_c1_val2 on p1_c1
7480 Index Cond: (val = 1)
7481 -> Index Scan using p1_c2_val2 on p1_c2
7482 Index Cond: (val = 1)
7483 -> Index Scan using p1_c3_val2 on p1_c3
7484 Index Cond: (val = 1)
7485 -> Index Scan using p1_c4_val2 on p1_c4
7486 Index Cond: (val = 1)
7487 -> Index Scan using p1_c1_c1_val2 on p1_c1_c1
7488 Index Cond: (val = 1)
7489 -> Index Scan using p1_c1_c2_val2 on p1_c1_c2
7490 Index Cond: (val = 1)
7491 -> Index Scan using p1_c3_c1_val2 on p1_c3_c1
7492 Index Cond: (val = 1)
7493 -> Index Scan using p1_c3_c2_val2 on p1_c3_c2
7494 Index Cond: (val = 1)
7497 /*+ IndexScanRegexp(p1 p1[^_].*)*/
7498 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7499 LOG: available indexes for IndexScanRegexp(p1):
7500 LOG: available indexes for IndexScanRegexp(p1_c1):
7501 LOG: available indexes for IndexScanRegexp(p1_c2):
7502 LOG: available indexes for IndexScanRegexp(p1_c3):
7503 LOG: available indexes for IndexScanRegexp(p1_c4):
7504 LOG: available indexes for IndexScanRegexp(p1_c1_c1):
7505 LOG: available indexes for IndexScanRegexp(p1_c1_c2):
7506 LOG: available indexes for IndexScanRegexp(p1_c3_c1):
7507 LOG: available indexes for IndexScanRegexp(p1_c3_c2):
7510 IndexScanRegexp(p1 p1[^_].*)
7516 ----------------------------
7520 -> Seq Scan on p1_c1
7522 -> Seq Scan on p1_c2
7524 -> Seq Scan on p1_c3
7526 -> Seq Scan on p1_c4
7528 -> Seq Scan on p1_c1_c1
7530 -> Seq Scan on p1_c1_c2
7532 -> Seq Scan on p1_c3_c1
7534 -> Seq Scan on p1_c3_c2
7538 /*+ IndexScan(p1 p1_.*val2.*)*/
7539 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7540 LOG: available indexes for IndexScan(p1):
7541 LOG: available indexes for IndexScan(p1_c1):
7542 LOG: available indexes for IndexScan(p1_c2):
7543 LOG: available indexes for IndexScan(p1_c3):
7544 LOG: available indexes for IndexScan(p1_c4):
7545 LOG: available indexes for IndexScan(p1_c1_c1):
7546 LOG: available indexes for IndexScan(p1_c1_c2):
7547 LOG: available indexes for IndexScan(p1_c3_c1):
7548 LOG: available indexes for IndexScan(p1_c3_c2):
7551 IndexScan(p1 p1_.*val2.*)
7557 ----------------------------
7561 -> Seq Scan on p1_c1
7563 -> Seq Scan on p1_c2
7565 -> Seq Scan on p1_c3
7567 -> Seq Scan on p1_c4
7569 -> Seq Scan on p1_c1_c1
7571 -> Seq Scan on p1_c1_c2
7573 -> Seq Scan on p1_c3_c1
7575 -> Seq Scan on p1_c3_c2
7579 /*+ IndexOnlyScanRegexp(p1 p1_.*[^0-9]$)*/
7580 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7581 LOG: available indexes for IndexOnlyScanRegexp(p1): p1_pkey
7582 LOG: available indexes for IndexOnlyScanRegexp(p1_c1): p1_c1_pkey
7583 LOG: available indexes for IndexOnlyScanRegexp(p1_c2): p1_c2_pkey
7584 LOG: available indexes for IndexOnlyScanRegexp(p1_c3): p1_c3_pkey
7585 LOG: available indexes for IndexOnlyScanRegexp(p1_c4): p1_c4_pkey
7586 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c1): p1_c1_c1_pkey
7587 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c2): p1_c1_c2_pkey
7588 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c1): p1_c3_c1_pkey
7589 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c2): p1_c3_c2_pkey
7592 IndexOnlyScanRegexp(p1 p1_.*[^0-9]$)
7598 ----------------------------
7602 -> Seq Scan on p1_c1
7604 -> Seq Scan on p1_c2
7606 -> Seq Scan on p1_c3
7608 -> Seq Scan on p1_c4
7610 -> Seq Scan on p1_c1_c1
7612 -> Seq Scan on p1_c1_c2
7614 -> Seq Scan on p1_c3_c1
7616 -> Seq Scan on p1_c3_c2
7620 /*+ IndexOnlyScanRegexp(p1 p1_.*val2.*)*/
7621 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7622 LOG: available indexes for IndexOnlyScanRegexp(p1): p1_val2
7623 LOG: available indexes for IndexOnlyScanRegexp(p1_c1): p1_c1_val2
7624 LOG: available indexes for IndexOnlyScanRegexp(p1_c2): p1_c2_val2
7625 LOG: available indexes for IndexOnlyScanRegexp(p1_c3): p1_c3_val2
7626 LOG: available indexes for IndexOnlyScanRegexp(p1_c4): p1_c4_val2
7627 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c1): p1_c1_c1_val2
7628 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c2): p1_c1_c2_val2
7629 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c1): p1_c3_c1_val2
7630 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c2): p1_c3_c2_val2
7633 IndexOnlyScanRegexp(p1 p1_.*val2.*)
7639 -------------------------------------------------------
7641 -> Index Only Scan using p1_val2 on p1
7642 Index Cond: (val = 1)
7643 -> Index Only Scan using p1_c1_val2 on p1_c1
7644 Index Cond: (val = 1)
7645 -> Index Only Scan using p1_c2_val2 on p1_c2
7646 Index Cond: (val = 1)
7647 -> Index Only Scan using p1_c3_val2 on p1_c3
7648 Index Cond: (val = 1)
7649 -> Index Only Scan using p1_c4_val2 on p1_c4
7650 Index Cond: (val = 1)
7651 -> Index Only Scan using p1_c1_c1_val2 on p1_c1_c1
7652 Index Cond: (val = 1)
7653 -> Index Only Scan using p1_c1_c2_val2 on p1_c1_c2
7654 Index Cond: (val = 1)
7655 -> Index Only Scan using p1_c3_c1_val2 on p1_c3_c1
7656 Index Cond: (val = 1)
7657 -> Index Only Scan using p1_c3_c2_val2 on p1_c3_c2
7658 Index Cond: (val = 1)
7661 /*+ IndexOnlyScanRegexp(p1 p1[^_].*)*/
7662 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7663 LOG: available indexes for IndexOnlyScanRegexp(p1):
7664 LOG: available indexes for IndexOnlyScanRegexp(p1_c1):
7665 LOG: available indexes for IndexOnlyScanRegexp(p1_c2):
7666 LOG: available indexes for IndexOnlyScanRegexp(p1_c3):
7667 LOG: available indexes for IndexOnlyScanRegexp(p1_c4):
7668 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c1):
7669 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c2):
7670 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c1):
7671 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c2):
7674 IndexOnlyScanRegexp(p1 p1[^_].*)
7680 ----------------------------
7684 -> Seq Scan on p1_c1
7686 -> Seq Scan on p1_c2
7688 -> Seq Scan on p1_c3
7690 -> Seq Scan on p1_c4
7692 -> Seq Scan on p1_c1_c1
7694 -> Seq Scan on p1_c1_c2
7696 -> Seq Scan on p1_c3_c1
7698 -> Seq Scan on p1_c3_c2
7702 /*+ IndexOnlyScan(p1 p1_.*val2.*)*/
7703 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7704 LOG: available indexes for IndexOnlyScan(p1):
7705 LOG: available indexes for IndexOnlyScan(p1_c1):
7706 LOG: available indexes for IndexOnlyScan(p1_c2):
7707 LOG: available indexes for IndexOnlyScan(p1_c3):
7708 LOG: available indexes for IndexOnlyScan(p1_c4):
7709 LOG: available indexes for IndexOnlyScan(p1_c1_c1):
7710 LOG: available indexes for IndexOnlyScan(p1_c1_c2):
7711 LOG: available indexes for IndexOnlyScan(p1_c3_c1):
7712 LOG: available indexes for IndexOnlyScan(p1_c3_c2):
7715 IndexOnlyScan(p1 p1_.*val2.*)
7721 ----------------------------
7725 -> Seq Scan on p1_c1
7727 -> Seq Scan on p1_c2
7729 -> Seq Scan on p1_c3
7731 -> Seq Scan on p1_c4
7733 -> Seq Scan on p1_c1_c1
7735 -> Seq Scan on p1_c1_c2
7737 -> Seq Scan on p1_c3_c1
7739 -> Seq Scan on p1_c3_c2
7743 /*+ BitmapScanRegexp(p1 p1_.*[^0-9]$)*/
7744 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7745 LOG: available indexes for BitmapScanRegexp(p1): p1_pkey
7746 LOG: available indexes for BitmapScanRegexp(p1_c1): p1_c1_pkey
7747 LOG: available indexes for BitmapScanRegexp(p1_c2): p1_c2_pkey
7748 LOG: available indexes for BitmapScanRegexp(p1_c3): p1_c3_pkey
7749 LOG: available indexes for BitmapScanRegexp(p1_c4): p1_c4_pkey
7750 LOG: available indexes for BitmapScanRegexp(p1_c1_c1): p1_c1_c1_pkey
7751 LOG: available indexes for BitmapScanRegexp(p1_c1_c2): p1_c1_c2_pkey
7752 LOG: available indexes for BitmapScanRegexp(p1_c3_c1): p1_c3_c1_pkey
7753 LOG: available indexes for BitmapScanRegexp(p1_c3_c2): p1_c3_c2_pkey
7756 BitmapScanRegexp(p1 p1_.*[^0-9]$)
7762 ----------------------------
7766 -> Seq Scan on p1_c1
7768 -> Seq Scan on p1_c2
7770 -> Seq Scan on p1_c3
7772 -> Seq Scan on p1_c4
7774 -> Seq Scan on p1_c1_c1
7776 -> Seq Scan on p1_c1_c2
7778 -> Seq Scan on p1_c3_c1
7780 -> Seq Scan on p1_c3_c2
7784 /*+ BitmapScanRegexp(p1 p1_.*val2.*)*/
7785 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7786 LOG: available indexes for BitmapScanRegexp(p1): p1_val2
7787 LOG: available indexes for BitmapScanRegexp(p1_c1): p1_c1_val2
7788 LOG: available indexes for BitmapScanRegexp(p1_c2): p1_c2_val2
7789 LOG: available indexes for BitmapScanRegexp(p1_c3): p1_c3_val2
7790 LOG: available indexes for BitmapScanRegexp(p1_c4): p1_c4_val2
7791 LOG: available indexes for BitmapScanRegexp(p1_c1_c1): p1_c1_c1_val2
7792 LOG: available indexes for BitmapScanRegexp(p1_c1_c2): p1_c1_c2_val2
7793 LOG: available indexes for BitmapScanRegexp(p1_c3_c1): p1_c3_c1_val2
7794 LOG: available indexes for BitmapScanRegexp(p1_c3_c2): p1_c3_c2_val2
7797 BitmapScanRegexp(p1 p1_.*val2.*)
7803 ------------------------------------------------
7805 -> Bitmap Heap Scan on p1
7806 Recheck Cond: (val = 1)
7807 -> Bitmap Index Scan on p1_val2
7808 Index Cond: (val = 1)
7809 -> Bitmap Heap Scan on p1_c1
7810 Recheck Cond: (val = 1)
7811 -> Bitmap Index Scan on p1_c1_val2
7812 Index Cond: (val = 1)
7813 -> Bitmap Heap Scan on p1_c2
7814 Recheck Cond: (val = 1)
7815 -> Bitmap Index Scan on p1_c2_val2
7816 Index Cond: (val = 1)
7817 -> Bitmap Heap Scan on p1_c3
7818 Recheck Cond: (val = 1)
7819 -> Bitmap Index Scan on p1_c3_val2
7820 Index Cond: (val = 1)
7821 -> Bitmap Heap Scan on p1_c4
7822 Recheck Cond: (val = 1)
7823 -> Bitmap Index Scan on p1_c4_val2
7824 Index Cond: (val = 1)
7825 -> Bitmap Heap Scan on p1_c1_c1
7826 Recheck Cond: (val = 1)
7827 -> Bitmap Index Scan on p1_c1_c1_val2
7828 Index Cond: (val = 1)
7829 -> Bitmap Heap Scan on p1_c1_c2
7830 Recheck Cond: (val = 1)
7831 -> Bitmap Index Scan on p1_c1_c2_val2
7832 Index Cond: (val = 1)
7833 -> Bitmap Heap Scan on p1_c3_c1
7834 Recheck Cond: (val = 1)
7835 -> Bitmap Index Scan on p1_c3_c1_val2
7836 Index Cond: (val = 1)
7837 -> Bitmap Heap Scan on p1_c3_c2
7838 Recheck Cond: (val = 1)
7839 -> Bitmap Index Scan on p1_c3_c2_val2
7840 Index Cond: (val = 1)
7843 /*+ BitmapScanRegexp(p1 p1[^_].*)*/
7844 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7845 LOG: available indexes for BitmapScanRegexp(p1):
7846 LOG: available indexes for BitmapScanRegexp(p1_c1):
7847 LOG: available indexes for BitmapScanRegexp(p1_c2):
7848 LOG: available indexes for BitmapScanRegexp(p1_c3):
7849 LOG: available indexes for BitmapScanRegexp(p1_c4):
7850 LOG: available indexes for BitmapScanRegexp(p1_c1_c1):
7851 LOG: available indexes for BitmapScanRegexp(p1_c1_c2):
7852 LOG: available indexes for BitmapScanRegexp(p1_c3_c1):
7853 LOG: available indexes for BitmapScanRegexp(p1_c3_c2):
7856 BitmapScanRegexp(p1 p1[^_].*)
7862 ----------------------------
7866 -> Seq Scan on p1_c1
7868 -> Seq Scan on p1_c2
7870 -> Seq Scan on p1_c3
7872 -> Seq Scan on p1_c4
7874 -> Seq Scan on p1_c1_c1
7876 -> Seq Scan on p1_c1_c2
7878 -> Seq Scan on p1_c3_c1
7880 -> Seq Scan on p1_c3_c2
7884 /*+ BitmapScan(p1 p1_.*val2.*)*/
7885 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7886 LOG: available indexes for BitmapScan(p1):
7887 LOG: available indexes for BitmapScan(p1_c1):
7888 LOG: available indexes for BitmapScan(p1_c2):
7889 LOG: available indexes for BitmapScan(p1_c3):
7890 LOG: available indexes for BitmapScan(p1_c4):
7891 LOG: available indexes for BitmapScan(p1_c1_c1):
7892 LOG: available indexes for BitmapScan(p1_c1_c2):
7893 LOG: available indexes for BitmapScan(p1_c3_c1):
7894 LOG: available indexes for BitmapScan(p1_c3_c2):
7897 BitmapScan(p1 p1_.*val2.*)
7903 ----------------------------
7907 -> Seq Scan on p1_c1
7909 -> Seq Scan on p1_c2
7911 -> Seq Scan on p1_c3
7913 -> Seq Scan on p1_c4
7915 -> Seq Scan on p1_c1_c1
7917 -> Seq Scan on p1_c1_c2
7919 -> Seq Scan on p1_c3_c1
7921 -> Seq Scan on p1_c3_c2
7925 -- search from hint table
7926 INSERT INTO hint_plan.hints (norm_query_string, application_name, hints) VALUES ('EXPLAIN (COSTS false) SELECT * FROM t1 WHERE t1.id = ?;', '', 'SeqScan(t1)');
7927 INSERT INTO hint_plan.hints (norm_query_string, application_name, hints) VALUES ('EXPLAIN (COSTS false) SELECT id FROM t1 WHERE t1.id = ?;', '', 'IndexScan(t1)');
7928 INSERT INTO hint_plan.hints (norm_query_string, application_name, hints) VALUES ('EXPLAIN SELECT * FROM t1 WHERE t1.id = ?;', '', 'BitmapScan(t1)');
7929 SELECT * FROM hint_plan.hints ORDER BY id;
7930 id | norm_query_string | application_name | hints
7931 ----+----------------------------------------------------------+------------------+----------------
7932 1 | EXPLAIN (COSTS false) SELECT * FROM t1 WHERE t1.id = ?; | | SeqScan(t1)
7933 2 | EXPLAIN (COSTS false) SELECT id FROM t1 WHERE t1.id = ?; | | IndexScan(t1)
7934 3 | EXPLAIN SELECT * FROM t1 WHERE t1.id = ?; | | BitmapScan(t1)
7937 SET pg_hint_plan.enable_hint_table = on;
7938 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE t1.id = 1;
7947 --------------------
7952 SET pg_hint_plan.enable_hint_table = off;
7953 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE t1.id = 1;
7955 --------------------------------
7956 Index Scan using t1_pkey on t1
7957 Index Cond: (id = 1)
7960 TRUNCATE hint_plan.hints;
7961 VACUUM ANALYZE hint_plan.hints;
7963 EXPLAIN (COSTS false) SELECT id FROM t1 WHERE t1.id = 1;
7965 -------------------------------------
7966 Index Only Scan using t1_pkey on t1
7967 Index Cond: (id = 1)
7970 DO LANGUAGE plpgsql $$
7974 SELECT /*+SeqScan(t1)*/ t1.id INTO id FROM t1 WHERE t1.id = 1;
7985 CONTEXT: SQL statement "SELECT /*+SeqScan(t1)*/ t1.id FROM t1 WHERE t1.id = 1"
7986 PL/pgSQL function inline_code_block line 5 at SQL statement
7987 DROP EXTENSION pg_hint_plan;