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 -----------------------------------------------------------------------------
3025 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3026 -> Seq Scan on p1_c1 p1
3027 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3028 -> Seq Scan on p1_c2 p1
3029 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3030 -> Seq Scan on p1_c3 p1
3031 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3032 -> Seq Scan on p1_c4 p1
3033 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3034 -> Seq Scan on p1_c1_c1 p1
3035 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3036 -> Seq Scan on p1_c1_c2 p1
3037 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3038 -> Seq Scan on p1_c3_c1 p1
3039 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3040 -> Seq Scan on p1_c3_c2 p1
3041 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3044 SET constraint_exclusion TO on;
3045 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3047 -----------------------------------------------------------------------------
3051 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3052 -> Seq Scan on p1_c1 p1
3053 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3054 -> Seq Scan on p1_c1_c1 p1
3055 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3056 -> Seq Scan on p1_c1_c2 p1
3057 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3060 SET constraint_exclusion TO off;
3062 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3071 -----------------------------------------------------------------------------
3075 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3076 -> Seq Scan on p1_c1 p1
3077 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3078 -> Seq Scan on p1_c2 p1
3079 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3080 -> Seq Scan on p1_c3 p1
3081 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3082 -> Seq Scan on p1_c4 p1
3083 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3084 -> Seq Scan on p1_c1_c1 p1
3085 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3086 -> Seq Scan on p1_c1_c2 p1
3087 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3088 -> Seq Scan on p1_c3_c1 p1
3089 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3090 -> Seq Scan on p1_c3_c2 p1
3091 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3095 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3104 -----------------------------------------------------------
3107 -> Index Scan using p1_pkey on p1
3108 Index Cond: ((id >= 50) AND (id <= 51))
3109 Filter: (ctid = '(1,1)'::tid)
3110 -> Index Scan using p1_c1_pkey on p1_c1 p1
3111 Index Cond: ((id >= 50) AND (id <= 51))
3112 Filter: (ctid = '(1,1)'::tid)
3113 -> Index Scan using p1_c2_pkey on p1_c2 p1
3114 Index Cond: ((id >= 50) AND (id <= 51))
3115 Filter: (ctid = '(1,1)'::tid)
3116 -> Index Scan using p1_c3_pkey on p1_c3 p1
3117 Index Cond: ((id >= 50) AND (id <= 51))
3118 Filter: (ctid = '(1,1)'::tid)
3119 -> Index Scan using p1_c4_pkey on p1_c4 p1
3120 Index Cond: ((id >= 50) AND (id <= 51))
3121 Filter: (ctid = '(1,1)'::tid)
3122 -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 p1
3123 Index Cond: ((id >= 50) AND (id <= 51))
3124 Filter: (ctid = '(1,1)'::tid)
3125 -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 p1
3126 Index Cond: ((id >= 50) AND (id <= 51))
3127 Filter: (ctid = '(1,1)'::tid)
3128 -> Index Scan using p1_c3_c1_pkey on p1_c3_c1 p1
3129 Index Cond: ((id >= 50) AND (id <= 51))
3130 Filter: (ctid = '(1,1)'::tid)
3131 -> Index Scan using p1_c3_c2_pkey on p1_c3_c2 p1
3132 Index Cond: ((id >= 50) AND (id <= 51))
3133 Filter: (ctid = '(1,1)'::tid)
3137 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3146 -------------------------------------------------------------
3149 -> Bitmap Heap Scan on p1
3150 Recheck Cond: ((id >= 50) AND (id <= 51))
3151 Filter: (ctid = '(1,1)'::tid)
3152 -> Bitmap Index Scan on p1_pkey
3153 Index Cond: ((id >= 50) AND (id <= 51))
3154 -> Bitmap Heap Scan on p1_c1 p1
3155 Recheck Cond: ((id >= 50) AND (id <= 51))
3156 Filter: (ctid = '(1,1)'::tid)
3157 -> Bitmap Index Scan on p1_c1_pkey
3158 Index Cond: ((id >= 50) AND (id <= 51))
3159 -> Bitmap Heap Scan on p1_c2 p1
3160 Recheck Cond: ((id >= 50) AND (id <= 51))
3161 Filter: (ctid = '(1,1)'::tid)
3162 -> Bitmap Index Scan on p1_c2_pkey
3163 Index Cond: ((id >= 50) AND (id <= 51))
3164 -> Bitmap Heap Scan on p1_c3 p1
3165 Recheck Cond: ((id >= 50) AND (id <= 51))
3166 Filter: (ctid = '(1,1)'::tid)
3167 -> Bitmap Index Scan on p1_c3_pkey
3168 Index Cond: ((id >= 50) AND (id <= 51))
3169 -> Bitmap Heap Scan on p1_c4 p1
3170 Recheck Cond: ((id >= 50) AND (id <= 51))
3171 Filter: (ctid = '(1,1)'::tid)
3172 -> Bitmap Index Scan on p1_c4_pkey
3173 Index Cond: ((id >= 50) AND (id <= 51))
3174 -> Bitmap Heap Scan on p1_c1_c1 p1
3175 Recheck Cond: ((id >= 50) AND (id <= 51))
3176 Filter: (ctid = '(1,1)'::tid)
3177 -> Bitmap Index Scan on p1_c1_c1_pkey
3178 Index Cond: ((id >= 50) AND (id <= 51))
3179 -> Bitmap Heap Scan on p1_c1_c2 p1
3180 Recheck Cond: ((id >= 50) AND (id <= 51))
3181 Filter: (ctid = '(1,1)'::tid)
3182 -> Bitmap Index Scan on p1_c1_c2_pkey
3183 Index Cond: ((id >= 50) AND (id <= 51))
3184 -> Bitmap Heap Scan on p1_c3_c1 p1
3185 Recheck Cond: ((id >= 50) AND (id <= 51))
3186 Filter: (ctid = '(1,1)'::tid)
3187 -> Bitmap Index Scan on p1_c3_c1_pkey
3188 Index Cond: ((id >= 50) AND (id <= 51))
3189 -> Bitmap Heap Scan on p1_c3_c2 p1
3190 Recheck Cond: ((id >= 50) AND (id <= 51))
3191 Filter: (ctid = '(1,1)'::tid)
3192 -> Bitmap Index Scan on p1_c3_c2_pkey
3193 Index Cond: ((id >= 50) AND (id <= 51))
3197 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3206 ---------------------------------------------------
3210 TID Cond: (ctid = '(1,1)'::tid)
3211 Filter: ((id >= 50) AND (id <= 51))
3212 -> Tid Scan on p1_c1 p1
3213 TID Cond: (ctid = '(1,1)'::tid)
3214 Filter: ((id >= 50) AND (id <= 51))
3215 -> Tid Scan on p1_c2 p1
3216 TID Cond: (ctid = '(1,1)'::tid)
3217 Filter: ((id >= 50) AND (id <= 51))
3218 -> Tid Scan on p1_c3 p1
3219 TID Cond: (ctid = '(1,1)'::tid)
3220 Filter: ((id >= 50) AND (id <= 51))
3221 -> Tid Scan on p1_c4 p1
3222 TID Cond: (ctid = '(1,1)'::tid)
3223 Filter: ((id >= 50) AND (id <= 51))
3224 -> Tid Scan on p1_c1_c1 p1
3225 TID Cond: (ctid = '(1,1)'::tid)
3226 Filter: ((id >= 50) AND (id <= 51))
3227 -> Tid Scan on p1_c1_c2 p1
3228 TID Cond: (ctid = '(1,1)'::tid)
3229 Filter: ((id >= 50) AND (id <= 51))
3230 -> Tid Scan on p1_c3_c1 p1
3231 TID Cond: (ctid = '(1,1)'::tid)
3232 Filter: ((id >= 50) AND (id <= 51))
3233 -> Tid Scan on p1_c3_c2 p1
3234 TID Cond: (ctid = '(1,1)'::tid)
3235 Filter: ((id >= 50) AND (id <= 51))
3238 SET constraint_exclusion TO on;
3240 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3249 -----------------------------------------------------------------------------
3253 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3254 -> Seq Scan on p1_c1 p1
3255 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3256 -> Seq Scan on p1_c1_c1 p1
3257 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3258 -> Seq Scan on p1_c1_c2 p1
3259 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3263 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3272 -----------------------------------------------------------
3275 -> Index Scan using p1_pkey on p1
3276 Index Cond: ((id >= 50) AND (id <= 51))
3277 Filter: (ctid = '(1,1)'::tid)
3278 -> Index Scan using p1_c1_pkey on p1_c1 p1
3279 Index Cond: ((id >= 50) AND (id <= 51))
3280 Filter: (ctid = '(1,1)'::tid)
3281 -> Index Scan using p1_c1_c1_pkey on p1_c1_c1 p1
3282 Index Cond: ((id >= 50) AND (id <= 51))
3283 Filter: (ctid = '(1,1)'::tid)
3284 -> Index Scan using p1_c1_c2_pkey on p1_c1_c2 p1
3285 Index Cond: ((id >= 50) AND (id <= 51))
3286 Filter: (ctid = '(1,1)'::tid)
3290 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3299 -------------------------------------------------------------
3302 -> Bitmap Heap Scan on p1
3303 Recheck Cond: ((id >= 50) AND (id <= 51))
3304 Filter: (ctid = '(1,1)'::tid)
3305 -> Bitmap Index Scan on p1_pkey
3306 Index Cond: ((id >= 50) AND (id <= 51))
3307 -> Bitmap Heap Scan on p1_c1 p1
3308 Recheck Cond: ((id >= 50) AND (id <= 51))
3309 Filter: (ctid = '(1,1)'::tid)
3310 -> Bitmap Index Scan on p1_c1_pkey
3311 Index Cond: ((id >= 50) AND (id <= 51))
3312 -> Bitmap Heap Scan on p1_c1_c1 p1
3313 Recheck Cond: ((id >= 50) AND (id <= 51))
3314 Filter: (ctid = '(1,1)'::tid)
3315 -> Bitmap Index Scan on p1_c1_c1_pkey
3316 Index Cond: ((id >= 50) AND (id <= 51))
3317 -> Bitmap Heap Scan on p1_c1_c2 p1
3318 Recheck Cond: ((id >= 50) AND (id <= 51))
3319 Filter: (ctid = '(1,1)'::tid)
3320 -> Bitmap Index Scan on p1_c1_c2_pkey
3321 Index Cond: ((id >= 50) AND (id <= 51))
3325 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3334 ---------------------------------------------------
3338 TID Cond: (ctid = '(1,1)'::tid)
3339 Filter: ((id >= 50) AND (id <= 51))
3340 -> Tid Scan on p1_c1 p1
3341 TID Cond: (ctid = '(1,1)'::tid)
3342 Filter: ((id >= 50) AND (id <= 51))
3343 -> Tid Scan on p1_c1_c1 p1
3344 TID Cond: (ctid = '(1,1)'::tid)
3345 Filter: ((id >= 50) AND (id <= 51))
3346 -> Tid Scan on p1_c1_c2 p1
3347 TID Cond: (ctid = '(1,1)'::tid)
3348 Filter: ((id >= 50) AND (id <= 51))
3351 SET constraint_exclusion TO off;
3352 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;
3354 -----------------------------------------------------------------------------------
3356 Merge Cond: (public.p1.id = t1.id)
3358 Sort Key: public.p1.id
3361 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3362 -> Seq Scan on p1_c1 p1
3363 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3364 -> Seq Scan on p1_c2 p1
3365 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3366 -> Seq Scan on p1_c3 p1
3367 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3368 -> Seq Scan on p1_c4 p1
3369 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3370 -> Seq Scan on p1_c1_c1 p1
3371 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3372 -> Seq Scan on p1_c1_c2 p1
3373 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3374 -> Seq Scan on p1_c3_c1 p1
3375 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3376 -> Seq Scan on p1_c3_c2 p1
3377 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3378 -> Index Scan using t1_pkey on t1
3379 Index Cond: (id < 10)
3382 SET constraint_exclusion TO on;
3383 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;
3385 -----------------------------------------------------------------------------------
3387 Merge Cond: (public.p1.id = t1.id)
3389 Sort Key: public.p1.id
3392 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3393 -> Seq Scan on p1_c1 p1
3394 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3395 -> Seq Scan on p1_c1_c1 p1
3396 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3397 -> Seq Scan on p1_c1_c2 p1
3398 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3399 -> Index Scan using t1_pkey on t1
3400 Index Cond: (id < 10)
3403 SET constraint_exclusion TO off;
3405 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;
3414 -----------------------------------------------------------------------------------
3416 Merge Cond: (public.p1.id = t1.id)
3418 Sort Key: public.p1.id
3421 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3422 -> Seq Scan on p1_c1 p1
3423 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3424 -> Seq Scan on p1_c2 p1
3425 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3426 -> Seq Scan on p1_c3 p1
3427 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3428 -> Seq Scan on p1_c4 p1
3429 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3430 -> Seq Scan on p1_c1_c1 p1
3431 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3432 -> Seq Scan on p1_c1_c2 p1
3433 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3434 -> Seq Scan on p1_c3_c1 p1
3435 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3436 -> Seq Scan on p1_c3_c2 p1
3437 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3438 -> Index Scan using t1_pkey on t1
3439 Index Cond: (id < 10)
3443 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;
3452 -----------------------------------------------------------------------------------
3454 Merge Cond: (public.p1.id = t1.id)
3456 Sort Key: public.p1.id
3459 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3460 -> Seq Scan on p1_c1 p1
3461 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3462 -> Seq Scan on p1_c2 p1
3463 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3464 -> Seq Scan on p1_c3 p1
3465 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3466 -> Seq Scan on p1_c4 p1
3467 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3468 -> Seq Scan on p1_c1_c1 p1
3469 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3470 -> Seq Scan on p1_c1_c2 p1
3471 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3472 -> Seq Scan on p1_c3_c1 p1
3473 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3474 -> Seq Scan on p1_c3_c2 p1
3475 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3476 -> Index Scan using t1_pkey on t1
3477 Index Cond: (id < 10)
3481 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;
3490 -----------------------------------------------------------------------------------
3492 Merge Cond: (public.p1.id = t1.id)
3494 Sort Key: public.p1.id
3497 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3498 -> Seq Scan on p1_c1 p1
3499 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3500 -> Seq Scan on p1_c2 p1
3501 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3502 -> Seq Scan on p1_c3 p1
3503 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3504 -> Seq Scan on p1_c4 p1
3505 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3506 -> Seq Scan on p1_c1_c1 p1
3507 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3508 -> Seq Scan on p1_c1_c2 p1
3509 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3510 -> Seq Scan on p1_c3_c1 p1
3511 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3512 -> Seq Scan on p1_c3_c2 p1
3513 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3514 -> Index Scan using t1_pkey on t1
3515 Index Cond: (id < 10)
3519 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;
3528 -----------------------------------------------------------------------------------
3530 Merge Cond: (public.p1.id = t1.id)
3532 Sort Key: public.p1.id
3535 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3536 -> Seq Scan on p1_c1 p1
3537 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3538 -> Seq Scan on p1_c2 p1
3539 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3540 -> Seq Scan on p1_c3 p1
3541 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3542 -> Seq Scan on p1_c4 p1
3543 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3544 -> Seq Scan on p1_c1_c1 p1
3545 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3546 -> Seq Scan on p1_c1_c2 p1
3547 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3548 -> Seq Scan on p1_c3_c1 p1
3549 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3550 -> Seq Scan on p1_c3_c2 p1
3551 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3552 -> Index Scan using t1_pkey on t1
3553 Index Cond: (id < 10)
3556 /*+NestLoop(p1 t1)*/
3557 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;
3566 -----------------------------------------------------------------------------
3568 Join Filter: (public.p1.id = t1.id)
3571 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3572 -> Seq Scan on p1_c1 p1
3573 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3574 -> Seq Scan on p1_c2 p1
3575 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3576 -> Seq Scan on p1_c3 p1
3577 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3578 -> Seq Scan on p1_c4 p1
3579 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3580 -> Seq Scan on p1_c1_c1 p1
3581 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3582 -> Seq Scan on p1_c1_c2 p1
3583 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3584 -> Seq Scan on p1_c3_c1 p1
3585 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3586 -> Seq Scan on p1_c3_c2 p1
3587 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3589 -> Index Scan using t1_pkey on t1
3590 Index Cond: (id < 10)
3593 /*+MergeJoin(p1 t1)*/
3594 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;
3603 -----------------------------------------------------------------------------------
3605 Merge Cond: (public.p1.id = t1.id)
3607 Sort Key: public.p1.id
3610 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3611 -> Seq Scan on p1_c1 p1
3612 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3613 -> Seq Scan on p1_c2 p1
3614 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3615 -> Seq Scan on p1_c3 p1
3616 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3617 -> Seq Scan on p1_c4 p1
3618 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3619 -> Seq Scan on p1_c1_c1 p1
3620 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3621 -> Seq Scan on p1_c1_c2 p1
3622 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3623 -> Seq Scan on p1_c3_c1 p1
3624 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3625 -> Seq Scan on p1_c3_c2 p1
3626 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3627 -> Index Scan using t1_pkey on t1
3628 Index Cond: (id < 10)
3631 /*+HashJoin(p1 t1)*/
3632 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;
3641 -----------------------------------------------------------------------------
3643 Hash Cond: (public.p1.id = t1.id)
3646 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3647 -> Seq Scan on p1_c1 p1
3648 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3649 -> Seq Scan on p1_c2 p1
3650 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3651 -> Seq Scan on p1_c3 p1
3652 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3653 -> Seq Scan on p1_c4 p1
3654 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3655 -> Seq Scan on p1_c1_c1 p1
3656 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3657 -> Seq Scan on p1_c1_c2 p1
3658 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3659 -> Seq Scan on p1_c3_c1 p1
3660 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3661 -> Seq Scan on p1_c3_c2 p1
3662 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3664 -> Index Scan using t1_pkey on t1
3665 Index Cond: (id < 10)
3668 SET constraint_exclusion TO on;
3670 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;
3679 -----------------------------------------------------------------------------------
3681 Merge Cond: (public.p1.id = t1.id)
3683 Sort Key: public.p1.id
3686 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3687 -> Seq Scan on p1_c1 p1
3688 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3689 -> Seq Scan on p1_c1_c1 p1
3690 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3691 -> Seq Scan on p1_c1_c2 p1
3692 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3693 -> Index Scan using t1_pkey on t1
3694 Index Cond: (id < 10)
3698 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;
3707 -----------------------------------------------------------------------------------
3709 Merge Cond: (public.p1.id = t1.id)
3711 Sort Key: public.p1.id
3714 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3715 -> Seq Scan on p1_c1 p1
3716 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3717 -> Seq Scan on p1_c1_c1 p1
3718 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3719 -> Seq Scan on p1_c1_c2 p1
3720 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3721 -> Index Scan using t1_pkey on t1
3722 Index Cond: (id < 10)
3726 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;
3735 -----------------------------------------------------------------------------------
3737 Merge Cond: (public.p1.id = t1.id)
3739 Sort Key: public.p1.id
3742 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3743 -> Seq Scan on p1_c1 p1
3744 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3745 -> Seq Scan on p1_c1_c1 p1
3746 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3747 -> Seq Scan on p1_c1_c2 p1
3748 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3749 -> Index Scan using t1_pkey on t1
3750 Index Cond: (id < 10)
3754 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;
3763 -----------------------------------------------------------------------------------
3765 Merge Cond: (public.p1.id = t1.id)
3767 Sort Key: public.p1.id
3770 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3771 -> Seq Scan on p1_c1 p1
3772 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3773 -> Seq Scan on p1_c1_c1 p1
3774 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3775 -> Seq Scan on p1_c1_c2 p1
3776 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3777 -> Index Scan using t1_pkey on t1
3778 Index Cond: (id < 10)
3781 /*+NestLoop(p1 t1)*/
3782 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;
3791 -----------------------------------------------------------------------------------
3793 Join Filter: (public.p1.id = t1.id)
3794 -> Index Scan using t1_pkey on t1
3795 Index Cond: (id < 10)
3799 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3800 -> Seq Scan on p1_c1 p1
3801 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3802 -> Seq Scan on p1_c1_c1 p1
3803 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3804 -> Seq Scan on p1_c1_c2 p1
3805 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3808 /*+MergeJoin(p1 t1)*/
3809 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;
3818 -----------------------------------------------------------------------------------
3820 Merge Cond: (public.p1.id = t1.id)
3822 Sort Key: public.p1.id
3825 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3826 -> Seq Scan on p1_c1 p1
3827 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3828 -> Seq Scan on p1_c1_c1 p1
3829 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3830 -> Seq Scan on p1_c1_c2 p1
3831 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3832 -> Index Scan using t1_pkey on t1
3833 Index Cond: (id < 10)
3836 /*+HashJoin(p1 t1)*/
3837 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;
3846 -----------------------------------------------------------------------------------
3848 Hash Cond: (t1.id = public.p1.id)
3849 -> Index Scan using t1_pkey on t1
3850 Index Cond: (id < 10)
3854 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3855 -> Seq Scan on p1_c1 p1
3856 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3857 -> Seq Scan on p1_c1_c1 p1
3858 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3859 -> Seq Scan on p1_c1_c2 p1
3860 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3863 SET constraint_exclusion TO off;
3864 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3866 -----------------------------------------------------------------
3868 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3871 SET constraint_exclusion TO on;
3872 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3874 -----------------------------------------------------------------
3876 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3879 SET constraint_exclusion TO off;
3881 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3890 -----------------------------------------------------------------
3892 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3896 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3905 -------------------------------------------
3906 Index Scan using p1_pkey on p1
3907 Index Cond: ((id >= 50) AND (id <= 51))
3908 Filter: (ctid = '(1,1)'::tid)
3912 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3921 -------------------------------------------------
3922 Bitmap Heap Scan on p1
3923 Recheck Cond: ((id >= 50) AND (id <= 51))
3924 Filter: (ctid = '(1,1)'::tid)
3925 -> Bitmap Index Scan on p1_pkey
3926 Index Cond: ((id >= 50) AND (id <= 51))
3930 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3939 ---------------------------------------
3941 TID Cond: (ctid = '(1,1)'::tid)
3942 Filter: ((id >= 50) AND (id <= 51))
3945 /*+NestLoop(p1 t1)*/
3946 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;
3955 -----------------------------------------------------------------------
3958 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3959 -> Index Scan using t1_pkey on t1
3960 Index Cond: ((id = p1.id) AND (id < 10))
3963 /*+MergeJoin(p1 t1)*/
3964 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;
3973 -----------------------------------------------------------------------------
3975 Merge Cond: (p1.id = t1.id)
3979 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3980 -> Index Scan using t1_pkey on t1
3981 Index Cond: (id < 10)
3984 /*+HashJoin(p1 t1)*/
3985 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;
3994 -----------------------------------------------------------------------------
3996 Hash Cond: (t1.id = p1.id)
3997 -> Index Scan using t1_pkey on t1
3998 Index Cond: (id < 10)
4001 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4004 SET constraint_exclusion TO on;
4006 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
4015 -----------------------------------------------------------------
4017 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4021 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
4030 -------------------------------------------
4031 Index Scan using p1_pkey on p1
4032 Index Cond: ((id >= 50) AND (id <= 51))
4033 Filter: (ctid = '(1,1)'::tid)
4037 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
4046 -------------------------------------------------
4047 Bitmap Heap Scan on p1
4048 Recheck Cond: ((id >= 50) AND (id <= 51))
4049 Filter: (ctid = '(1,1)'::tid)
4050 -> Bitmap Index Scan on p1_pkey
4051 Index Cond: ((id >= 50) AND (id <= 51))
4055 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
4064 ---------------------------------------
4066 TID Cond: (ctid = '(1,1)'::tid)
4067 Filter: ((id >= 50) AND (id <= 51))
4070 /*+NestLoop(p1 t1)*/
4071 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;
4080 -----------------------------------------------------------------------
4083 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4084 -> Index Scan using t1_pkey on t1
4085 Index Cond: ((id = p1.id) AND (id < 10))
4088 /*+MergeJoin(p1 t1)*/
4089 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;
4098 -----------------------------------------------------------------------------
4100 Merge Cond: (p1.id = t1.id)
4104 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4105 -> Index Scan using t1_pkey on t1
4106 Index Cond: (id < 10)
4109 /*+HashJoin(p1 t1)*/
4110 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;
4119 -----------------------------------------------------------------------------
4121 Hash Cond: (t1.id = p1.id)
4122 -> Index Scan using t1_pkey on t1
4123 Index Cond: (id < 10)
4126 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4129 SET constraint_exclusion TO off;
4130 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;
4132 -----------------------------------------------------------------------
4135 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4136 -> Index Scan using t1_pkey on t1
4137 Index Cond: ((id = p1.id) AND (id < 10))
4140 SET constraint_exclusion TO on;
4141 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;
4143 -----------------------------------------------------------------------
4146 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4147 -> Index Scan using t1_pkey on t1
4148 Index Cond: ((id = p1.id) AND (id < 10))
4151 SET constraint_exclusion TO off;
4153 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;
4162 -----------------------------------------------------------------------
4165 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4166 -> Index Scan using t1_pkey on t1
4167 Index Cond: ((id = p1.id) AND (id < 10))
4171 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;
4180 --------------------------------------------------
4182 -> Index Scan using p1_pkey on p1
4183 Index Cond: ((id >= 50) AND (id <= 51))
4184 Filter: (ctid = '(1,1)'::tid)
4185 -> Index Scan using t1_pkey on t1
4186 Index Cond: ((id = p1.id) AND (id < 10))
4190 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;
4199 -------------------------------------------------------
4201 -> Bitmap Heap Scan on p1
4202 Recheck Cond: ((id >= 50) AND (id <= 51))
4203 Filter: (ctid = '(1,1)'::tid)
4204 -> Bitmap Index Scan on p1_pkey
4205 Index Cond: ((id >= 50) AND (id <= 51))
4206 -> Index Scan using t1_pkey on t1
4207 Index Cond: ((id = p1.id) AND (id < 10))
4211 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;
4220 --------------------------------------------------
4223 TID Cond: (ctid = '(1,1)'::tid)
4224 Filter: ((id >= 50) AND (id <= 51))
4225 -> Index Scan using t1_pkey on t1
4226 Index Cond: ((id = p1.id) AND (id < 10))
4229 SET constraint_exclusion TO on;
4231 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;
4240 -----------------------------------------------------------------------
4243 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4244 -> Index Scan using t1_pkey on t1
4245 Index Cond: ((id = p1.id) AND (id < 10))
4249 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;
4258 --------------------------------------------------
4260 -> Index Scan using p1_pkey on p1
4261 Index Cond: ((id >= 50) AND (id <= 51))
4262 Filter: (ctid = '(1,1)'::tid)
4263 -> Index Scan using t1_pkey on t1
4264 Index Cond: ((id = p1.id) AND (id < 10))
4268 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;
4277 -------------------------------------------------------
4279 -> Bitmap Heap Scan on p1
4280 Recheck Cond: ((id >= 50) AND (id <= 51))
4281 Filter: (ctid = '(1,1)'::tid)
4282 -> Bitmap Index Scan on p1_pkey
4283 Index Cond: ((id >= 50) AND (id <= 51))
4284 -> Index Scan using t1_pkey on t1
4285 Index Cond: ((id = p1.id) AND (id < 10))
4289 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;
4298 --------------------------------------------------
4301 TID Cond: (ctid = '(1,1)'::tid)
4302 Filter: ((id >= 50) AND (id <= 51))
4303 -> Index Scan using t1_pkey on t1
4304 Index Cond: ((id = p1.id) AND (id < 10))
4308 /*+SeqScan("""t1 ) ")IndexScan("t 2 """)HashJoin("""t1 ) "T3"t 2 """)Leading("""t1 ) "T3"t 2 """)Set(application_name"a a a"" a A")*/
4309 EXPLAIN (COSTS false) SELECT * FROM t1 """t1 ) ", t2 "t 2 """, t3 "T3" WHERE """t1 ) ".id = "t 2 """.id AND """t1 ) ".id = "T3".id;
4314 HashJoin("""t1 ) " T3 "t 2 """)
4315 Leading("""t1 ) " T3 "t 2 """)
4316 Set(application_name "a a a"" a A")
4322 ---------------------------------------------------------
4324 Hash Cond: ("t 2 """.id = """t1 ) ".id)
4325 -> Index Scan using t2_pkey on t2 "t 2 """
4328 Hash Cond: ("""t1 ) ".id = "T3".id)
4329 -> Seq Scan on t1 """t1 ) "
4331 -> Seq Scan on t3 "T3"
4334 -- duplicate hint test
4335 /*+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)*/
4336 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
4337 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)"
4338 DETAIL: Conflict scan method hint.
4339 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)"
4340 DETAIL: Conflict scan method hint.
4341 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)"
4342 DETAIL: Conflict scan method hint.
4343 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)"
4344 DETAIL: Conflict scan method hint.
4345 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)"
4346 DETAIL: Conflict scan method hint.
4347 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)"
4348 DETAIL: Conflict scan method hint.
4349 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)"
4350 DETAIL: Conflict join method hint.
4351 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)"
4352 DETAIL: Conflict join method hint.
4353 INFO: hint syntax error at or near "Set(enable_seqscan off)Set(enable_mergejoin on)Set(enable_seqscan on)"
4354 DETAIL: Conflict set hint.
4355 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)"
4356 DETAIL: Conflict leading hint.
4363 Set(enable_mergejoin on)
4364 Set(enable_seqscan on)
4376 Set(enable_seqscan off)
4380 -----------------------------------------------
4382 Merge Cond: (t1.id = t2.id)
4386 TID Cond: (ctid = '(1,1)'::tid)
4390 TID Cond: (ctid = '(1,1)'::tid)
4393 -- sub query Leading hint test
4394 SET from_collapse_limit TO 100;
4395 SET geqo_threshold TO 100;
4396 EXPLAIN (COSTS false)
4398 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
4401 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
4402 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4403 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
4404 ) 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 = (
4405 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
4408 ------------------------------------------------------------------------------
4413 Merge Cond: (t1_5.id = t3_5.id)
4415 Merge Cond: (t1_5.id = t2_5.id)
4416 -> Index Only Scan using t1_pkey on t1 t1_5
4417 -> Index Only Scan using t2_pkey on t2 t2_5
4420 -> Seq Scan on t3 t3_5
4421 InitPlan 2 (returns $1)
4424 Merge Cond: (t1_2.id = t3_2.id)
4426 Merge Cond: (t1_2.id = t2_2.id)
4427 -> Index Only Scan using t1_pkey on t1 t1_2
4428 -> Index Only Scan using t2_pkey on t2 t2_2
4431 -> Seq Scan on t3 t3_2
4432 InitPlan 3 (returns $2)
4435 Merge Cond: (t1_4.id = t3_4.id)
4437 Merge Cond: (t1_4.id = t2_4.id)
4438 -> Index Only Scan using t1_pkey on t1 t1_4
4439 -> Index Only Scan using t2_pkey on t2 t2_4
4442 -> Seq Scan on t3 t3_4
4448 -> Index Only Scan using t1_pkey on t1 t1_1
4449 Index Cond: (id = $2)
4450 -> Index Only Scan using t2_pkey on t2 t2_1
4451 Index Cond: (id = $2)
4452 -> Seq Scan on t3 t3_1
4454 -> Index Only Scan using t1_pkey on t1 t1_3
4455 Index Cond: (id = $2)
4456 -> Index Only Scan using t2_pkey on t2 t2_3
4457 Index Cond: (id = $2)
4458 -> Seq Scan on t3 t3_3
4464 /*+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)*/
4465 EXPLAIN (COSTS false)
4467 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
4470 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
4471 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4472 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
4473 ) 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 = (
4474 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
4480 MergeJoin(t1_3 t3_3)
4488 ------------------------------------------------------------------------------
4493 Merge Cond: (t1_5.id = t3_5.id)
4495 -> Index Only Scan using t2_pkey on t2 t2_5
4496 -> Index Only Scan using t1_pkey on t1 t1_5
4497 Index Cond: (id = t2_5.id)
4500 -> Seq Scan on t3 t3_5
4501 InitPlan 2 (returns $3)
4504 Merge Cond: (t1_2.id = t3_2.id)
4506 -> Index Only Scan using t2_pkey on t2 t2_2
4507 -> Index Only Scan using t1_pkey on t1 t1_2
4508 Index Cond: (id = t2_2.id)
4511 -> Seq Scan on t3 t3_2
4512 InitPlan 3 (returns $5)
4515 Merge Cond: (t1_4.id = t3_4.id)
4517 -> Index Only Scan using t2_pkey on t2 t2_4
4518 -> Index Only Scan using t1_pkey on t1 t1_4
4519 Index Cond: (id = t2_4.id)
4522 -> Seq Scan on t3 t3_4
4528 -> Index Only Scan using t1_pkey on t1 t1_1
4529 Index Cond: (id = $5)
4530 -> Index Only Scan using t2_pkey on t2 t2_1
4531 Index Cond: (id = $5)
4532 -> Seq Scan on t3 t3_1
4534 -> Index Only Scan using t1_pkey on t1 t1_3
4535 Index Cond: (id = $5)
4536 -> Index Only Scan using t2_pkey on t2 t2_3
4537 Index Cond: (id = $5)
4538 -> Seq Scan on t3 t3_3
4544 /*+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)*/
4545 EXPLAIN (COSTS false)
4547 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
4550 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
4551 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4552 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
4553 ) 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 = (
4554 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
4560 MergeJoin(t1_3 t3_3)
4564 Leading(a t1_1 t1_2 t1_4 t1_5)
4569 ------------------------------------------------------------------------------
4574 Merge Cond: (t1_5.id = t3_5.id)
4576 -> Index Only Scan using t2_pkey on t2 t2_5
4577 -> Index Only Scan using t1_pkey on t1 t1_5
4578 Index Cond: (id = t2_5.id)
4581 -> Seq Scan on t3 t3_5
4582 InitPlan 2 (returns $3)
4585 Merge Cond: (t1_2.id = t3_2.id)
4587 -> Index Only Scan using t2_pkey on t2 t2_2
4588 -> Index Only Scan using t1_pkey on t1 t1_2
4589 Index Cond: (id = t2_2.id)
4592 -> Seq Scan on t3 t3_2
4593 InitPlan 3 (returns $5)
4596 Merge Cond: (t1_4.id = t3_4.id)
4598 -> Index Only Scan using t2_pkey on t2 t2_4
4599 -> Index Only Scan using t1_pkey on t1 t1_4
4600 Index Cond: (id = t2_4.id)
4603 -> Seq Scan on t3 t3_4
4609 -> Index Only Scan using t1_pkey on t1 t1_1
4610 Index Cond: (id = $5)
4611 -> Index Only Scan using t2_pkey on t2 t2_1
4612 Index Cond: (id = $5)
4613 -> Seq Scan on t3 t3_1
4615 -> Index Only Scan using t1_pkey on t1 t1_3
4616 Index Cond: (id = $5)
4617 -> Index Only Scan using t2_pkey on t2 t2_3
4618 Index Cond: (id = $5)
4619 -> Seq Scan on t3 t3_3
4625 /*+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)*/
4626 EXPLAIN (COSTS false)
4628 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
4631 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
4632 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4633 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
4634 ) 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 = (
4635 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
4641 MergeJoin(t1_3 t3_3)
4645 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)
4650 ------------------------------------------------------------------------------
4655 Merge Cond: (t1_5.id = t3_5.id)
4657 -> Index Only Scan using t2_pkey on t2 t2_5
4658 -> Index Only Scan using t1_pkey on t1 t1_5
4659 Index Cond: (id = t2_5.id)
4662 -> Seq Scan on t3 t3_5
4663 InitPlan 2 (returns $3)
4666 Merge Cond: (t1_2.id = t3_2.id)
4668 -> Index Only Scan using t2_pkey on t2 t2_2
4669 -> Index Only Scan using t1_pkey on t1 t1_2
4670 Index Cond: (id = t2_2.id)
4673 -> Seq Scan on t3 t3_2
4674 InitPlan 3 (returns $5)
4677 Merge Cond: (t1_4.id = t3_4.id)
4679 -> Index Only Scan using t2_pkey on t2 t2_4
4680 -> Index Only Scan using t1_pkey on t1 t1_4
4681 Index Cond: (id = t2_4.id)
4684 -> Seq Scan on t3 t3_4
4690 -> Index Only Scan using t1_pkey on t1 t1_1
4691 Index Cond: (id = $5)
4692 -> Index Only Scan using t2_pkey on t2 t2_1
4693 Index Cond: (id = $5)
4694 -> Seq Scan on t3 t3_1
4696 -> Index Only Scan using t1_pkey on t1 t1_3
4697 Index Cond: (id = $5)
4698 -> Index Only Scan using t2_pkey on t2 t2_3
4699 Index Cond: (id = $5)
4700 -> Seq Scan on t3 t3_3
4706 /*+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)*/
4707 EXPLAIN (COSTS false)
4709 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
4712 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
4713 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4714 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
4715 ) 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 = (
4716 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
4720 Leading(t3_5 t2_5 t1_5)
4721 Leading(t3_2 t2_2 t1_2)
4722 Leading(t3_4 t2_4 t1_4)
4723 Leading(c1_1 t3_3 t2_3 t1_3 t3_1 t2_1 t1_1)
4727 MergeJoin(t1_3 t3_3)
4734 ------------------------------------------------------------------------
4739 Merge Cond: (t2_5.id = t1_5.id)
4741 Merge Cond: (t2_5.id = t3_5.id)
4742 -> Index Only Scan using t2_pkey on t2 t2_5
4745 -> Seq Scan on t3 t3_5
4746 -> Index Only Scan using t1_pkey on t1 t1_5
4747 InitPlan 2 (returns $1)
4750 Merge Cond: (t2_2.id = t1_2.id)
4752 Merge Cond: (t2_2.id = t3_2.id)
4753 -> Index Only Scan using t2_pkey on t2 t2_2
4756 -> Seq Scan on t3 t3_2
4757 -> Index Only Scan using t1_pkey on t1 t1_2
4758 InitPlan 3 (returns $2)
4761 Merge Cond: (t2_4.id = t1_4.id)
4763 Merge Cond: (t2_4.id = t3_4.id)
4764 -> Index Only Scan using t2_pkey on t2 t2_4
4767 -> Seq Scan on t3 t3_4
4768 -> Index Only Scan using t1_pkey on t1 t1_4
4774 -> Seq Scan on t3 t3_3
4778 -> Index Only Scan using t2_pkey on t2 t2_3
4779 Index Cond: (id = $2)
4780 -> Index Only Scan using t1_pkey on t1 t1_3
4781 Index Cond: (id = $2)
4782 -> Seq Scan on t3 t3_1
4784 -> Index Only Scan using t2_pkey on t2 t2_1
4785 Index Cond: (id = $2)
4786 -> Index Only Scan using t1_pkey on t1 t1_1
4787 Index Cond: (id = $2)
4790 SET from_collapse_limit TO 1;
4791 EXPLAIN (COSTS false)
4793 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
4796 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
4797 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4798 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
4799 ) 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 = (
4800 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
4803 --------------------------------------------------------------------
4808 Merge Cond: (t1_5.id = t3_5.id)
4810 Merge Cond: (t1_5.id = t2_5.id)
4811 -> Index Only Scan using t1_pkey on t1 t1_5
4812 -> Index Only Scan using t2_pkey on t2 t2_5
4815 -> Seq Scan on t3 t3_5
4816 InitPlan 2 (returns $1)
4819 Merge Cond: (t1_2.id = t3_2.id)
4821 Merge Cond: (t1_2.id = t2_2.id)
4822 -> Index Only Scan using t1_pkey on t1 t1_2
4823 -> Index Only Scan using t2_pkey on t2 t2_2
4826 -> Seq Scan on t3 t3_2
4827 InitPlan 3 (returns $2)
4830 Merge Cond: (t1_4.id = t3_4.id)
4832 Merge Cond: (t1_4.id = t2_4.id)
4833 -> Index Only Scan using t1_pkey on t1 t1_4
4834 -> Index Only Scan using t2_pkey on t2 t2_4
4837 -> Seq Scan on t3 t3_4
4841 -> Index Only Scan using t1_pkey on t1 t1_1
4842 Index Cond: (id = $2)
4843 -> Index Only Scan using t2_pkey on t2 t2_1
4844 Index Cond: (id = $2)
4845 -> Seq Scan on t3 t3_1
4849 -> Index Only Scan using t1_pkey on t1 t1_3
4850 Index Cond: (id = $2)
4851 -> Index Only Scan using t2_pkey on t2 t2_3
4852 Index Cond: (id = $2)
4853 -> Seq Scan on t3 t3_3
4859 /*+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)*/
4860 EXPLAIN (COSTS false)
4862 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
4865 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
4866 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4867 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
4868 ) 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 = (
4869 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
4875 MergeJoin(t1_3 t3_3)
4883 --------------------------------------------------------------------
4888 Merge Cond: (t1_5.id = t3_5.id)
4890 -> Index Only Scan using t2_pkey on t2 t2_5
4891 -> Index Only Scan using t1_pkey on t1 t1_5
4892 Index Cond: (id = t2_5.id)
4895 -> Seq Scan on t3 t3_5
4896 InitPlan 2 (returns $3)
4899 Merge Cond: (t1_2.id = t3_2.id)
4901 -> Index Only Scan using t2_pkey on t2 t2_2
4902 -> Index Only Scan using t1_pkey on t1 t1_2
4903 Index Cond: (id = t2_2.id)
4906 -> Seq Scan on t3 t3_2
4907 InitPlan 3 (returns $5)
4910 Merge Cond: (t1_4.id = t3_4.id)
4912 -> Index Only Scan using t2_pkey on t2 t2_4
4913 -> Index Only Scan using t1_pkey on t1 t1_4
4914 Index Cond: (id = t2_4.id)
4917 -> Seq Scan on t3 t3_4
4921 -> Index Only Scan using t1_pkey on t1 t1_1
4922 Index Cond: (id = $5)
4923 -> Index Only Scan using t2_pkey on t2 t2_1
4924 Index Cond: (id = $5)
4925 -> Seq Scan on t3 t3_1
4929 -> Index Only Scan using t1_pkey on t1 t1_3
4930 Index Cond: (id = $5)
4931 -> Index Only Scan using t2_pkey on t2 t2_3
4932 Index Cond: (id = $5)
4933 -> Seq Scan on t3 t3_3
4939 /*+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)*/
4940 EXPLAIN (COSTS false)
4942 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
4945 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
4946 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4947 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
4948 ) 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 = (
4949 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
4955 MergeJoin(t1_3 t3_3)
4959 Leading(a t1_1 t1_2 t1_4 t1_5)
4964 --------------------------------------------------------------------
4969 Merge Cond: (t1_5.id = t3_5.id)
4971 -> Index Only Scan using t2_pkey on t2 t2_5
4972 -> Index Only Scan using t1_pkey on t1 t1_5
4973 Index Cond: (id = t2_5.id)
4976 -> Seq Scan on t3 t3_5
4977 InitPlan 2 (returns $3)
4980 Merge Cond: (t1_2.id = t3_2.id)
4982 -> Index Only Scan using t2_pkey on t2 t2_2
4983 -> Index Only Scan using t1_pkey on t1 t1_2
4984 Index Cond: (id = t2_2.id)
4987 -> Seq Scan on t3 t3_2
4988 InitPlan 3 (returns $5)
4991 Merge Cond: (t1_4.id = t3_4.id)
4993 -> Index Only Scan using t2_pkey on t2 t2_4
4994 -> Index Only Scan using t1_pkey on t1 t1_4
4995 Index Cond: (id = t2_4.id)
4998 -> Seq Scan on t3 t3_4
5002 -> Index Only Scan using t1_pkey on t1 t1_1
5003 Index Cond: (id = $5)
5004 -> Index Only Scan using t2_pkey on t2 t2_1
5005 Index Cond: (id = $5)
5006 -> Seq Scan on t3 t3_1
5010 -> Index Only Scan using t1_pkey on t1 t1_3
5011 Index Cond: (id = $5)
5012 -> Index Only Scan using t2_pkey on t2 t2_3
5013 Index Cond: (id = $5)
5014 -> Seq Scan on t3 t3_3
5020 /*+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)*/
5021 EXPLAIN (COSTS false)
5023 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
5026 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
5027 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
5028 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
5029 ) 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 = (
5030 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
5036 MergeJoin(t1_3 t3_3)
5040 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)
5045 --------------------------------------------------------------------
5050 Merge Cond: (t1_5.id = t3_5.id)
5052 -> Index Only Scan using t2_pkey on t2 t2_5
5053 -> Index Only Scan using t1_pkey on t1 t1_5
5054 Index Cond: (id = t2_5.id)
5057 -> Seq Scan on t3 t3_5
5058 InitPlan 2 (returns $3)
5061 Merge Cond: (t1_2.id = t3_2.id)
5063 -> Index Only Scan using t2_pkey on t2 t2_2
5064 -> Index Only Scan using t1_pkey on t1 t1_2
5065 Index Cond: (id = t2_2.id)
5068 -> Seq Scan on t3 t3_2
5069 InitPlan 3 (returns $5)
5072 Merge Cond: (t1_4.id = t3_4.id)
5074 -> Index Only Scan using t2_pkey on t2 t2_4
5075 -> Index Only Scan using t1_pkey on t1 t1_4
5076 Index Cond: (id = t2_4.id)
5079 -> Seq Scan on t3 t3_4
5083 -> Index Only Scan using t1_pkey on t1 t1_1
5084 Index Cond: (id = $5)
5085 -> Index Only Scan using t2_pkey on t2 t2_1
5086 Index Cond: (id = $5)
5087 -> Seq Scan on t3 t3_1
5091 -> Index Only Scan using t1_pkey on t1 t1_3
5092 Index Cond: (id = $5)
5093 -> Index Only Scan using t2_pkey on t2 t2_3
5094 Index Cond: (id = $5)
5095 -> Seq Scan on t3 t3_3
5101 /*+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)*/
5102 EXPLAIN (COSTS false)
5104 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
5107 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
5108 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
5109 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
5110 ) 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 = (
5111 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
5115 MergeJoin(t1_3 t3_3)
5116 Leading(t3_5 t2_5 t1_5)
5117 Leading(t3_2 t2_2 t1_2)
5118 Leading(t3_4 t2_4 t1_4)
5119 Leading(c1_1 t3_3 t2_3 t1_3 t3_1 t2_1 t1_1)
5129 ------------------------------------------------------------------------------
5134 Merge Cond: (t2_5.id = t1_5.id)
5136 Merge Cond: (t2_5.id = t3_5.id)
5137 -> Index Only Scan using t2_pkey on t2 t2_5
5140 -> Seq Scan on t3 t3_5
5141 -> Index Only Scan using t1_pkey on t1 t1_5
5142 InitPlan 2 (returns $1)
5145 Merge Cond: (t2_2.id = t1_2.id)
5147 Merge Cond: (t2_2.id = t3_2.id)
5148 -> Index Only Scan using t2_pkey on t2 t2_2
5151 -> Seq Scan on t3 t3_2
5152 -> Index Only Scan using t1_pkey on t1 t1_2
5153 InitPlan 3 (returns $2)
5156 Merge Cond: (t2_4.id = t1_4.id)
5158 Merge Cond: (t2_4.id = t3_4.id)
5159 -> Index Only Scan using t2_pkey on t2 t2_4
5162 -> Seq Scan on t3 t3_4
5163 -> Index Only Scan using t1_pkey on t1 t1_4
5169 -> Index Only Scan using t1_pkey on t1 t1_3
5170 Index Cond: (id = $2)
5171 -> Index Only Scan using t2_pkey on t2 t2_3
5172 Index Cond: (id = $2)
5173 -> Seq Scan on t3 t3_3
5177 -> Seq Scan on t3 t3_1
5179 -> Index Only Scan using t2_pkey on t2 t2_1
5180 Index Cond: (id = $2)
5181 -> Index Only Scan using t1_pkey on t1 t1_1
5182 Index Cond: (id = $2)
5186 EXPLAIN (COSTS false) SELECT * FROM t1, s0.t1, t2 WHERE public.t1.id = s0.t1.id AND public.t1.id = t2.id;
5188 -----------------------------------------------
5190 Merge Cond: (public.t1.id = t2.id)
5192 Merge Cond: (public.t1.id = s0.t1.id)
5193 -> Index Scan using t1_pkey on t1
5194 -> Index Scan using t1_pkey on t1
5195 -> Index Scan using t2_pkey on t2
5198 /*+NestLoop(t1 t2)*/
5199 EXPLAIN (COSTS false) SELECT * FROM t1, s0.t1, t2 WHERE public.t1.id = s0.t1.id AND public.t1.id = t2.id;
5200 INFO: hint syntax error at or near "NestLoop(t1 t2)"
5201 DETAIL: Relation name "t1" is ambiguous.
5210 -----------------------------------------------
5212 Merge Cond: (public.t1.id = t2.id)
5214 Merge Cond: (public.t1.id = s0.t1.id)
5215 -> Index Scan using t1_pkey on t1
5216 -> Index Scan using t1_pkey on t1
5217 -> Index Scan using t2_pkey on t2
5220 /*+Leading(t1 t2 t1)*/
5221 EXPLAIN (COSTS false) SELECT * FROM t1, s0.t1, t2 WHERE public.t1.id = s0.t1.id AND public.t1.id = t2.id;
5222 INFO: hint syntax error at or near "Leading(t1 t2 t1)"
5223 DETAIL: Relation name "t1" is ambiguous.
5232 -----------------------------------------------
5234 Merge Cond: (public.t1.id = t2.id)
5236 Merge Cond: (public.t1.id = s0.t1.id)
5237 -> Index Scan using t1_pkey on t1
5238 -> Index Scan using t1_pkey on t1
5239 -> Index Scan using t2_pkey on t2
5242 -- identifier length test
5243 EXPLAIN (COSTS false) SELECT * FROM t1 "123456789012345678901234567890123456789012345678901234567890123" JOIN t2 ON ("123456789012345678901234567890123456789012345678901234567890123".id = t2.id) JOIN t3 ON (t2.id = t3.id);
5245 --------------------------------------------------------------------------------------------------------------
5247 Merge Cond: ("123456789012345678901234567890123456789012345678901234567890123".id = t3.id)
5249 Merge Cond: ("123456789012345678901234567890123456789012345678901234567890123".id = t2.id)
5250 -> Index Scan using t1_pkey on t1 "123456789012345678901234567890123456789012345678901234567890123"
5251 -> Index Scan using t2_pkey on t2
5258 Leading(123456789012345678901234567890123456789012345678901234567890123 t2 t3)
5259 SeqScan(123456789012345678901234567890123456789012345678901234567890123)
5260 MergeJoin(123456789012345678901234567890123456789012345678901234567890123 t2)
5261 Set(123456789012345678901234567890123456789012345678901234567890123 1)
5263 EXPLAIN (COSTS false) SELECT * FROM t1 "123456789012345678901234567890123456789012345678901234567890123" JOIN t2 ON ("123456789012345678901234567890123456789012345678901234567890123".id = t2.id) JOIN t3 ON (t2.id = t3.id);
5264 INFO: unrecognized configuration parameter "123456789012345678901234567890123456789012345678901234567890123"
5267 SeqScan(123456789012345678901234567890123456789012345678901234567890123)
5268 MergeJoin(123456789012345678901234567890123456789012345678901234567890123 t2)
5269 Leading(123456789012345678901234567890123456789012345678901234567890123 t2 t3)
5273 Set(123456789012345678901234567890123456789012345678901234567890123 1)
5276 ----------------------------------------------------------------------------------------------------
5278 Merge Cond: ("123456789012345678901234567890123456789012345678901234567890123".id = t3.id)
5280 Merge Cond: (t2.id = "123456789012345678901234567890123456789012345678901234567890123".id)
5281 -> Index Scan using t2_pkey on t2
5283 Sort Key: "123456789012345678901234567890123456789012345678901234567890123".id
5284 -> Seq Scan on t1 "123456789012345678901234567890123456789012345678901234567890123"
5291 Leading(1234567890123456789012345678901234567890123456789012345678901234 t2 t3)
5292 SeqScan(1234567890123456789012345678901234567890123456789012345678901234)
5293 MergeJoin(1234567890123456789012345678901234567890123456789012345678901234 t2)
5294 Set(1234567890123456789012345678901234567890123456789012345678901234 1)
5295 Set(cursor_tuple_fraction 0.1234567890123456789012345678901234567890123456789012345678901234)
5297 EXPLAIN (COSTS false) SELECT * FROM t1 "1234567890123456789012345678901234567890123456789012345678901234" JOIN t2 ON ("1234567890123456789012345678901234567890123456789012345678901234".id = t2.id) JOIN t3 ON (t2.id = t3.id);
5298 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5299 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5300 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5301 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5302 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5303 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5304 INFO: unrecognized configuration parameter "123456789012345678901234567890123456789012345678901234567890123"
5307 SeqScan(123456789012345678901234567890123456789012345678901234567890123)
5308 MergeJoin(123456789012345678901234567890123456789012345678901234567890123 t2)
5309 Leading(123456789012345678901234567890123456789012345678901234567890123 t2 t3)
5310 Set(cursor_tuple_fraction 0.1234567890123456789012345678901234567890123456789012345678901234)
5314 Set(123456789012345678901234567890123456789012345678901234567890123 1)
5317 ----------------------------------------------------------------------------------------------------
5319 Merge Cond: ("123456789012345678901234567890123456789012345678901234567890123".id = t3.id)
5321 Merge Cond: (t2.id = "123456789012345678901234567890123456789012345678901234567890123".id)
5322 -> Index Scan using t2_pkey on t2
5324 Sort Key: "123456789012345678901234567890123456789012345678901234567890123".id
5325 -> Seq Scan on t1 "123456789012345678901234567890123456789012345678901234567890123"
5331 SET "123456789012345678901234567890123456789012345678901234567890123" TO 1;
5332 ERROR: unrecognized configuration parameter "123456789012345678901234567890123456789012345678901234567890123"
5333 SET "1234567890123456789012345678901234567890123456789012345678901234" TO 1;
5334 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5335 ERROR: unrecognized configuration parameter "123456789012345678901234567890123456789012345678901234567890123"
5336 SET cursor_tuple_fraction TO 1234567890123456789012345678901234567890123456789012345678901234;
5337 ERROR: 1.23457e+63 is outside the valid range for parameter "cursor_tuple_fraction" (0 .. 1)
5339 /*+ Set(enable_seqscan 100)Set(seq_page_cost on)*/
5340 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
5341 INFO: parameter "enable_seqscan" requires a Boolean value
5342 INFO: parameter "seq_page_cost" requires a numeric value
5348 Set(enable_seqscan 100)
5349 Set(seq_page_cost on)
5352 --------------------------------------
5354 Merge Cond: (t1.id = t2.id)
5355 -> Index Scan using t1_pkey on t1
5356 -> Index Scan using t2_pkey on t2
5359 -- debug log of candidate index to use IndexScan
5360 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5362 ----------------------------------------------------------------------------------------
5363 Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
5364 Index Cond: (id = 1)
5367 /*+IndexScan(t5 t5_id2)*/
5368 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5369 LOG: available indexes for IndexScan(t5): t5_id2
5372 IndexScan(t5 t5_id2)
5378 -------------------------------
5379 Index Scan using t5_id2 on t5
5380 Index Cond: (id = 1)
5383 /*+IndexScan(t5 no_exist)*/
5384 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5385 LOG: available indexes for IndexScan(t5):
5388 IndexScan(t5 no_exist)
5394 --------------------
5399 /*+IndexScan(t5 t5_id1 t5_id2)*/
5400 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5401 LOG: available indexes for IndexScan(t5): t5_id2 t5_id1
5404 IndexScan(t5 t5_id1 t5_id2)
5410 -------------------------------
5411 Index Scan using t5_id2 on t5
5412 Index Cond: (id = 1)
5415 /*+IndexScan(t5 no_exist t5_id2)*/
5416 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5417 LOG: available indexes for IndexScan(t5): t5_id2
5420 IndexScan(t5 no_exist t5_id2)
5426 -------------------------------
5427 Index Scan using t5_id2 on t5
5428 Index Cond: (id = 1)
5431 /*+IndexScan(t5 no_exist5 no_exist2)*/
5432 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5433 LOG: available indexes for IndexScan(t5):
5436 IndexScan(t5 no_exist5 no_exist2)
5442 --------------------
5448 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5450 --------------------------------------------------------
5452 Hash Cond: (t3.val = t2.val)
5456 Hash Cond: (t2.id = t1.id)
5459 -> Index Scan using t1_pkey on t1
5460 Index Cond: (id < 10)
5464 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5465 INFO: hint syntax error at or near "Leading((t1))"
5466 DETAIL: Leading hint requires two sets of relations when parentheses nests.
5475 --------------------------------------------------------
5477 Hash Cond: (t3.val = t2.val)
5481 Hash Cond: (t2.id = t1.id)
5484 -> Index Scan using t1_pkey on t1
5485 Index Cond: (id < 10)
5488 /*+Leading((t1 t2))*/
5489 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5498 --------------------------------------------
5500 Join Filter: (t2.val = t3.val)
5502 Hash Cond: (t1.id = t2.id)
5503 -> Index Scan using t1_pkey on t1
5504 Index Cond: (id < 10)
5510 /*+Leading((t1 t2 t3))*/
5511 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5512 INFO: hint syntax error at or near "Leading((t1 t2 t3))"
5513 DETAIL: Leading hint requires two sets of relations when parentheses nests.
5522 --------------------------------------------------------
5524 Hash Cond: (t3.val = t2.val)
5528 Hash Cond: (t2.id = t1.id)
5531 -> Index Scan using t1_pkey on t1
5532 Index Cond: (id < 10)
5535 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.id < 10;
5537 --------------------------------------------
5539 Hash Cond: (t2.id = t1.id)
5542 -> Index Scan using t1_pkey on t1
5543 Index Cond: (id < 10)
5546 /*+Leading((t1 t2))*/
5547 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.id < 10;
5556 --------------------------------------
5558 Hash Cond: (t1.id = t2.id)
5559 -> Index Scan using t1_pkey on t1
5560 Index Cond: (id < 10)
5565 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5567 --------------------------------------------------------
5569 Hash Cond: (t3.val = t2.val)
5573 Hash Cond: (t2.id = t1.id)
5576 -> Index Scan using t1_pkey on t1
5577 Index Cond: (id < 10)
5580 /*+Leading(((t1 t2) t3))*/
5581 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5584 Leading(((t1 t2) t3))
5590 --------------------------------------------
5592 Join Filter: (t2.val = t3.val)
5594 Hash Cond: (t1.id = t2.id)
5595 -> Index Scan using t1_pkey on t1
5596 Index Cond: (id < 10)
5602 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;
5604 --------------------------------------------------------
5607 Merge Cond: (t3.id = t4.id)
5609 Join Filter: (t1.val = t3.val)
5610 -> Index Scan using t3_pkey on t3
5612 -> Index Scan using t1_pkey on t1
5613 Index Cond: (id < 10)
5617 -> Index Scan using t2_pkey on t2
5618 Index Cond: (id = t1.id)
5621 /*+Leading((((t1 t2) t3) t4))*/
5622 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;
5625 Leading((((t1 t2) t3) t4))
5631 --------------------------------------------------
5634 Join Filter: (t1.val = t3.val)
5636 Hash Cond: (t1.id = t2.id)
5637 -> Index Scan using t1_pkey on t1
5638 Index Cond: (id < 10)
5642 -> Index Scan using t4_pkey on t4
5643 Index Cond: (id = t3.id)
5646 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5648 --------------------------------------------------------
5650 Hash Cond: (t3.val = t2.val)
5654 Hash Cond: (t2.id = t1.id)
5657 -> Index Scan using t1_pkey on t1
5658 Index Cond: (id < 10)
5661 /*+Leading(((t1 t2) t3))*/
5662 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5665 Leading(((t1 t2) t3))
5671 --------------------------------------------
5673 Join Filter: (t2.val = t3.val)
5675 Hash Cond: (t1.id = t2.id)
5676 -> Index Scan using t1_pkey on t1
5677 Index Cond: (id < 10)
5683 /*+Leading((t1 (t2 t3)))*/
5684 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5687 Leading((t1 (t2 t3)))
5693 --------------------------------------------
5695 Hash Cond: (t1.id = t2.id)
5696 -> Index Scan using t1_pkey on t1
5697 Index Cond: (id < 10)
5700 Hash Cond: (t2.val = t3.val)
5706 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;
5708 --------------------------------------------------------
5711 Merge Cond: (t3.id = t4.id)
5713 Join Filter: (t1.val = t3.val)
5714 -> Index Scan using t3_pkey on t3
5716 -> Index Scan using t1_pkey on t1
5717 Index Cond: (id < 10)
5721 -> Index Scan using t2_pkey on t2
5722 Index Cond: (id = t1.id)
5725 /*+Leading(((t1 t2) (t3 t4)))*/
5726 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;
5729 Leading(((t1 t2) (t3 t4)))
5735 --------------------------------------------
5737 Join Filter: (t1.val = t3.val)
5739 Hash Cond: (t1.id = t2.id)
5740 -> Index Scan using t1_pkey on t1
5741 Index Cond: (id < 10)
5745 Merge Cond: (t3.id = t4.id)
5746 -> Index Scan using t3_pkey on t3
5752 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);
5754 --------------------------------------------------------------------
5756 Hash Cond: (t2.val = t3.val)
5757 InitPlan 1 (returns $1)
5762 -> Index Scan using t2_val on t2 t2_2
5763 Index Cond: (val > 100)
5764 -> Index Only Scan using t1_pkey on t1 t1_2
5765 Index Cond: (id = t2_2.id)
5767 Merge Cond: (t1.id = t2.id)
5768 -> Index Scan using t1_pkey on t1
5769 Index Cond: (id < $1)
5770 -> Index Scan using t2_pkey on t2
5775 /*+Leading(((t1 t2) t3)) Leading(((t3 t1) t2))*/
5776 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);
5777 INFO: hint syntax error at or near "Leading(((t1 t2) t3)) Leading(((t3 t1) t2))"
5778 DETAIL: Conflict leading hint.
5781 Leading(((t3 t1) t2))
5784 Leading(((t1 t2) t3))
5788 --------------------------------------------------------------------
5790 Hash Cond: (t1.id = t2.id)
5791 InitPlan 1 (returns $1)
5796 -> Index Scan using t2_val on t2 t2_2
5797 Index Cond: (val > 100)
5798 -> Index Only Scan using t1_pkey on t1 t1_2
5799 Index Cond: (id = t2_2.id)
5801 Hash Cond: (t3.val = t1.val)
5804 -> Index Scan using t1_pkey on t1
5805 Index Cond: (id < $1)
5810 /*+Leading(((t1 t2) t3)) Leading((t1_2 t2_2))*/
5811 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);
5814 Leading(((t1 t2) t3))
5815 Leading((t1_2 t2_2))
5821 --------------------------------------------------------------
5823 Hash Cond: (t2.val = t3.val)
5824 InitPlan 1 (returns $0)
5827 Merge Cond: (t1_2.id = t2_2.id)
5828 -> Index Only Scan using t1_pkey on t1 t1_2
5831 -> Index Scan using t2_val on t2 t2_2
5832 Index Cond: (val > 100)
5834 Merge Cond: (t1.id = t2.id)
5835 -> Index Scan using t1_pkey on t1
5836 Index Cond: (id < $0)
5837 -> Index Scan using t2_pkey on t2
5842 /*+Leading(((((t1 t2) t3) t1_2) t2_2))*/
5843 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);
5847 Leading(((((t1 t2) t3) t1_2) t2_2))
5852 --------------------------------------------------------------------
5854 Hash Cond: (t2.val = t3.val)
5855 InitPlan 1 (returns $1)
5860 -> Index Scan using t2_val on t2 t2_2
5861 Index Cond: (val > 100)
5862 -> Index Only Scan using t1_pkey on t1 t1_2
5863 Index Cond: (id = t2_2.id)
5865 Merge Cond: (t1.id = t2.id)
5866 -> Index Scan using t1_pkey on t1
5867 Index Cond: (id < $1)
5868 -> Index Scan using t2_pkey on t2
5873 -- Specified outer/inner leading hint and join method hint at the same time
5874 /*+Leading(((t1 t2) t3))*/
5875 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5878 Leading(((t1 t2) t3))
5884 --------------------------------------------
5886 Join Filter: (t2.val = t3.val)
5888 Hash Cond: (t1.id = t2.id)
5889 -> Index Scan using t1_pkey on t1
5890 Index Cond: (id < 10)
5896 /*+Leading(((t1 t2) t3)) MergeJoin(t1 t2)*/
5897 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5901 Leading(((t1 t2) t3))
5907 --------------------------------------------
5909 Join Filter: (t2.val = t3.val)
5911 Merge Cond: (t1.id = t2.id)
5912 -> Index Scan using t1_pkey on t1
5913 Index Cond: (id < 10)
5914 -> Index Scan using t2_pkey on t2
5918 /*+Leading(((t1 t2) t3)) MergeJoin(t1 t2 t3)*/
5919 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5923 Leading(((t1 t2) t3))
5929 --------------------------------------------------
5931 Merge Cond: (t2.val = t3.val)
5935 Hash Cond: (t1.id = t2.id)
5936 -> Index Scan using t1_pkey on t1
5937 Index Cond: (id < 10)
5945 /*+Leading(((t1 t2) t3)) MergeJoin(t1 t3)*/
5946 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5949 Leading(((t1 t2) t3))
5956 --------------------------------------------
5958 Join Filter: (t2.val = t3.val)
5960 Hash Cond: (t1.id = t2.id)
5961 -> Index Scan using t1_pkey on t1
5962 Index Cond: (id < 10)
5968 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;
5970 --------------------------------------------------------
5973 Merge Cond: (t3.id = t4.id)
5975 Join Filter: (t1.val = t3.val)
5976 -> Index Scan using t3_pkey on t3
5978 -> Index Scan using t1_pkey on t1
5979 Index Cond: (id < 10)
5983 -> Index Scan using t2_pkey on t2
5984 Index Cond: (id = t1.id)
5987 /*+Leading(((t1 t2) t3)) MergeJoin(t3 t4)*/
5988 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;
5991 Leading(((t1 t2) t3))
5998 --------------------------------------------------
6001 Join Filter: (t1.val = t3.val)
6003 Hash Cond: (t1.id = t2.id)
6004 -> Index Scan using t1_pkey on t1
6005 Index Cond: (id < 10)
6009 -> Index Scan using t4_pkey on t4
6010 Index Cond: (id = t3.id)
6013 /*+Leading(((t1 t2) t3)) MergeJoin(t1 t2 t3 t4)*/
6014 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;
6017 MergeJoin(t1 t2 t3 t4)
6018 Leading(((t1 t2) t3))
6024 --------------------------------------------------------
6026 Merge Cond: (t3.id = t4.id)
6030 Join Filter: (t1.val = t3.val)
6032 Hash Cond: (t1.id = t2.id)
6033 -> Index Scan using t1_pkey on t1
6034 Index Cond: (id < 10)
6043 /*+ Leading ( ( t1 ( t2 t3 ) ) ) */
6044 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6047 Leading((t1 (t2 t3)))
6053 --------------------------------------------
6055 Hash Cond: (t1.id = t2.id)
6056 -> Index Scan using t1_pkey on t1
6057 Index Cond: (id < 10)
6060 Hash Cond: (t2.val = t3.val)
6066 /*+Leading((t1(t2 t3)))*/
6067 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6070 Leading((t1 (t2 t3)))
6076 --------------------------------------------
6078 Hash Cond: (t1.id = t2.id)
6079 -> Index Scan using t1_pkey on t1
6080 Index Cond: (id < 10)
6083 Hash Cond: (t2.val = t3.val)
6089 /*+Leading(("t1(t2" "t3)"))*/
6090 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6094 Leading(("t1(t2" "t3)"))
6099 --------------------------------------------------------
6101 Hash Cond: (t3.val = t2.val)
6105 Hash Cond: (t2.id = t1.id)
6108 -> Index Scan using t1_pkey on t1
6109 Index Cond: (id < 10)
6112 /*+ Leading ( ( ( t1 t2 ) t3 ) ) */
6113 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6116 Leading(((t1 t2) t3))
6122 --------------------------------------------
6124 Join Filter: (t2.val = t3.val)
6126 Hash Cond: (t1.id = t2.id)
6127 -> Index Scan using t1_pkey on t1
6128 Index Cond: (id < 10)
6134 /*+Leading(((t1 t2)t3))*/
6135 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6138 Leading(((t1 t2) t3))
6144 --------------------------------------------
6146 Join Filter: (t2.val = t3.val)
6148 Hash Cond: (t1.id = t2.id)
6149 -> Index Scan using t1_pkey on t1
6150 Index Cond: (id < 10)
6156 /*+Leading(("(t1" "t2)t3"))*/
6157 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6161 Leading(("(t1" "t2)t3"))
6166 --------------------------------------------------------
6168 Hash Cond: (t3.val = t2.val)
6172 Hash Cond: (t2.id = t1.id)
6175 -> Index Scan using t1_pkey on t1
6176 Index Cond: (id < 10)
6179 /*+Leading((t1(t2(t3(t4 t5)))))*/
6180 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;
6183 Leading((t1 (t2 (t3 (t4 t5)))))
6189 ----------------------------------------------------------------------------------------------------------------------------------
6191 Merge Cond: (t1.id = t2.id)
6192 -> Index Scan using t1_pkey on t1
6195 Merge Cond: (t2.id = t3.id)
6196 -> Index Scan using t2_pkey on t2
6199 Merge Cond: (t3.id = t4.id)
6200 -> Index Scan using t3_pkey on t3
6203 Merge Cond: (t4.id = t5.id)
6204 -> Index Scan using t4_pkey on t4
6205 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6208 /*+Leading((t5(t4(t3(t2 t1)))))*/
6209 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;
6212 Leading((t5 (t4 (t3 (t2 t1)))))
6218 --------------------------------------------------------------------------
6220 Hash Cond: (t5.id = t1.id)
6224 Merge Cond: (t4.id = t1.id)
6230 Merge Cond: (t3.id = t1.id)
6236 Merge Cond: (t2.id = t1.id)
6237 -> Index Scan using t2_pkey on t2
6238 -> Index Scan using t1_pkey on t1
6241 /*+Leading(((((t1 t2)t3)t4)t5))*/
6242 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;
6245 Leading(((((t1 t2) t3) t4) t5))
6251 ----------------------------------------------------------------------------------------------
6254 Merge Cond: (t1.id = t4.id)
6256 Merge Cond: (t1.id = t3.id)
6258 Merge Cond: (t1.id = t2.id)
6259 -> Index Scan using t1_pkey on t1
6260 -> Index Scan using t2_pkey on t2
6261 -> Index Scan using t3_pkey on t3
6265 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6266 Index Cond: (id = t1.id)
6269 /*+Leading(((((t5 t4)t3)t2)t1))*/
6270 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;
6273 Leading(((((t5 t4) t3) t2) t1))
6279 ----------------------------------------------------------------------------------------------------------------
6281 Join Filter: (t2.id = t1.id)
6283 Join Filter: (t3.id = t2.id)
6285 Merge Cond: (t4.id = t3.id)
6287 Merge Cond: (t5.id = t4.id)
6288 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6292 -> Index Scan using t3_pkey on t3
6293 -> Index Scan using t2_pkey on t2
6294 Index Cond: (id = t5.id)
6295 -> Index Scan using t1_pkey on t1
6296 Index Cond: (id = t5.id)
6299 /*+Leading(((t1 t2)(t3(t4 t5))))*/
6300 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;
6303 Leading(((t1 t2) (t3 (t4 t5))))
6309 ----------------------------------------------------------------------------------------------------------------------
6311 Merge Cond: (t1.id = t3.id)
6313 Merge Cond: (t1.id = t2.id)
6314 -> Index Scan using t1_pkey on t1
6315 -> Index Scan using t2_pkey on t2
6318 Merge Cond: (t3.id = t4.id)
6319 -> Index Scan using t3_pkey on t3
6322 Merge Cond: (t4.id = t5.id)
6323 -> Index Scan using t4_pkey on t4
6324 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6327 /*+Leading(((t5 t4)(t3(t2 t1))))*/
6328 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;
6331 Leading(((t5 t4) (t3 (t2 t1))))
6337 ----------------------------------------------------------------------------------------------------
6339 Merge Cond: (t4.id = t1.id)
6341 Merge Cond: (t5.id = t4.id)
6342 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6348 Merge Cond: (t3.id = t1.id)
6349 -> Index Scan using t3_pkey on t3
6352 Merge Cond: (t2.id = t1.id)
6353 -> Index Scan using t2_pkey on t2
6354 -> Index Scan using t1_pkey on t1
6357 /*+Leading((((t1 t2)t3)(t4 t5)))*/
6358 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;
6361 Leading((((t1 t2) t3) (t4 t5)))
6367 ----------------------------------------------------------------------------------------------------------
6369 Merge Cond: (t1.id = t4.id)
6371 Merge Cond: (t1.id = t3.id)
6373 Merge Cond: (t1.id = t2.id)
6374 -> Index Scan using t1_pkey on t1
6375 -> Index Scan using t2_pkey on t2
6376 -> Index Scan using t3_pkey on t3
6379 Merge Cond: (t4.id = t5.id)
6380 -> Index Scan using t4_pkey on t4
6381 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6384 /*+Leading((((t5 t4)t3)(t2 t1)))*/
6385 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;
6388 Leading((((t5 t4) t3) (t2 t1)))
6394 ----------------------------------------------------------------------------------------------------------
6396 Merge Cond: (t3.id = t1.id)
6398 Merge Cond: (t4.id = t3.id)
6400 Merge Cond: (t5.id = t4.id)
6401 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6405 -> Index Scan using t3_pkey on t3
6408 Merge Cond: (t2.id = t1.id)
6409 -> Index Scan using t2_pkey on t2
6410 -> Index Scan using t1_pkey on t1
6413 -- inherite table test to specify the index's name
6414 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6416 -----------------------------------------------------------------------------
6420 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6421 -> Seq Scan on p2_c1 p2
6422 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6423 -> Tid Scan on p2_c1_c1 p2
6424 TID Cond: (ctid = '(1,1)'::tid)
6425 Filter: ((id >= 50) AND (id <= 51))
6426 -> Tid Scan on p2_c1_c2 p2
6427 TID Cond: (ctid = '(1,1)'::tid)
6428 Filter: ((id >= 50) AND (id <= 51))
6431 /*+IndexScan(p2 p2_pkey)*/
6432 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6433 LOG: available indexes for IndexScan(p2): p2_pkey
6434 LOG: available indexes for IndexScan(p2_c1): p2_c1_pkey
6435 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6436 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6437 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6438 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6439 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6440 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6441 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6444 IndexScan(p2 p2_pkey)
6450 -----------------------------------------------------------
6453 -> Index Scan using p2_pkey on p2
6454 Index Cond: ((id >= 50) AND (id <= 51))
6455 Filter: (ctid = '(1,1)'::tid)
6456 -> Index Scan using p2_c1_pkey on p2_c1 p2
6457 Index Cond: ((id >= 50) AND (id <= 51))
6458 Filter: (ctid = '(1,1)'::tid)
6459 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2
6460 Index Cond: ((id >= 50) AND (id <= 51))
6461 Filter: (ctid = '(1,1)'::tid)
6462 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2
6463 Index Cond: ((id >= 50) AND (id <= 51))
6464 Filter: (ctid = '(1,1)'::tid)
6467 /*+IndexScan(p2 p2_id_val_idx)*/
6468 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6469 LOG: available indexes for IndexScan(p2): p2_id_val_idx
6470 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx
6471 LOG: available indexes for IndexScan(p2_c2): p2_c2_id_val_idx
6472 LOG: available indexes for IndexScan(p2_c3): p2_c3_id_val_idx
6473 LOG: available indexes for IndexScan(p2_c4): p2_c4_id_val_idx
6474 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_id_val_idx
6475 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_id_val_idx
6476 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_id_val_idx
6477 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_id_val_idx
6480 IndexScan(p2 p2_id_val_idx)
6486 -----------------------------------------------------------------
6489 -> Index Scan using p2_id_val_idx on p2
6490 Index Cond: ((id >= 50) AND (id <= 51))
6491 Filter: (ctid = '(1,1)'::tid)
6492 -> Index Scan using p2_c1_id_val_idx on p2_c1 p2
6493 Index Cond: ((id >= 50) AND (id <= 51))
6494 Filter: (ctid = '(1,1)'::tid)
6495 -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1 p2
6496 Index Cond: ((id >= 50) AND (id <= 51))
6497 Filter: (ctid = '(1,1)'::tid)
6498 -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2 p2
6499 Index Cond: ((id >= 50) AND (id <= 51))
6500 Filter: (ctid = '(1,1)'::tid)
6503 /*+IndexScan(p2 p2_val_id_idx)*/
6504 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6505 LOG: available indexes for IndexScan(p2): p2_val_id_idx
6506 LOG: available indexes for IndexScan(p2_c1): p2_c1_val_id_idx
6507 LOG: available indexes for IndexScan(p2_c2): p2_c2_val_id_idx
6508 LOG: available indexes for IndexScan(p2_c3): p2_c3_val_id_idx
6509 LOG: available indexes for IndexScan(p2_c4):
6510 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_val_id_idx
6511 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_val_id_idx
6512 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_val_id_idx
6513 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_val_id_idx
6516 IndexScan(p2 p2_val_id_idx)
6522 -----------------------------------------------------------------
6525 -> Index Scan using p2_val_id_idx on p2
6526 Index Cond: ((id >= 50) AND (id <= 51))
6527 Filter: (ctid = '(1,1)'::tid)
6528 -> Index Scan using p2_c1_val_id_idx on p2_c1 p2
6529 Index Cond: ((id >= 50) AND (id <= 51))
6530 Filter: (ctid = '(1,1)'::tid)
6531 -> Index Scan using p2_c1_c1_val_id_idx on p2_c1_c1 p2
6532 Index Cond: ((id >= 50) AND (id <= 51))
6533 Filter: (ctid = '(1,1)'::tid)
6534 -> Index Scan using p2_c1_c2_val_id_idx on p2_c1_c2 p2
6535 Index Cond: ((id >= 50) AND (id <= 51))
6536 Filter: (ctid = '(1,1)'::tid)
6539 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
6541 -----------------------------------------------------------------------------------------------
6545 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6546 -> Seq Scan on p2_c1 p2
6547 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6548 -> Seq Scan on p2_c2 p2
6549 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6550 -> Seq Scan on p2_c3 p2
6551 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6552 -> Tid Scan on p2_c4 p2
6553 TID Cond: (ctid = '(1,1)'::tid)
6554 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6555 -> Tid Scan on p2_c1_c1 p2
6556 TID Cond: (ctid = '(1,1)'::tid)
6557 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6558 -> Tid Scan on p2_c1_c2 p2
6559 TID Cond: (ctid = '(1,1)'::tid)
6560 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6561 -> Tid Scan on p2_c3_c1 p2
6562 TID Cond: (ctid = '(1,1)'::tid)
6563 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6564 -> Tid Scan on p2_c3_c2 p2
6565 TID Cond: (ctid = '(1,1)'::tid)
6566 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6569 /*+IndexScan(p2 p2_val)*/
6570 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
6571 LOG: available indexes for IndexScan(p2):
6572 LOG: available indexes for IndexScan(p2_c1):
6573 LOG: available indexes for IndexScan(p2_c2):
6574 LOG: available indexes for IndexScan(p2_c3):
6575 LOG: available indexes for IndexScan(p2_c4):
6576 LOG: available indexes for IndexScan(p2_c1_c1):
6577 LOG: available indexes for IndexScan(p2_c1_c2):
6578 LOG: available indexes for IndexScan(p2_c3_c1):
6579 LOG: available indexes for IndexScan(p2_c3_c2):
6582 IndexScan(p2 p2_val)
6588 -----------------------------------------------------------------------------------------------
6592 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6593 -> Seq Scan on p2_c1 p2
6594 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6595 -> Seq Scan on p2_c2 p2
6596 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6597 -> Seq Scan on p2_c3 p2
6598 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6599 -> Tid Scan on p2_c4 p2
6600 TID Cond: (ctid = '(1,1)'::tid)
6601 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6602 -> Tid Scan on p2_c1_c1 p2
6603 TID Cond: (ctid = '(1,1)'::tid)
6604 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6605 -> Tid Scan on p2_c1_c2 p2
6606 TID Cond: (ctid = '(1,1)'::tid)
6607 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6608 -> Tid Scan on p2_c3_c1 p2
6609 TID Cond: (ctid = '(1,1)'::tid)
6610 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6611 -> Tid Scan on p2_c3_c2 p2
6612 TID Cond: (ctid = '(1,1)'::tid)
6613 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6616 /*+IndexScan(p2 p2_pkey)*/
6617 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6618 LOG: available indexes for IndexScan(p2): p2_pkey
6619 LOG: available indexes for IndexScan(p2_c1): p2_c1_pkey
6620 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6621 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6622 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6623 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6624 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6625 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6626 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6629 IndexScan(p2 p2_pkey)
6635 -----------------------------------------------------------
6638 -> Index Scan using p2_pkey on p2
6639 Index Cond: ((id >= 50) AND (id <= 51))
6640 Filter: (ctid = '(1,1)'::tid)
6641 -> Index Scan using p2_c1_pkey on p2_c1 p2
6642 Index Cond: ((id >= 50) AND (id <= 51))
6643 Filter: (ctid = '(1,1)'::tid)
6644 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2
6645 Index Cond: ((id >= 50) AND (id <= 51))
6646 Filter: (ctid = '(1,1)'::tid)
6647 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2
6648 Index Cond: ((id >= 50) AND (id <= 51))
6649 Filter: (ctid = '(1,1)'::tid)
6652 /*+IndexScan(p2 p2_id2_val)*/
6653 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6654 LOG: available indexes for IndexScan(p2): p2_id2_val
6655 LOG: available indexes for IndexScan(p2_c1): p2_c1_id2_val
6656 LOG: available indexes for IndexScan(p2_c2): p2_c2_id2_val
6657 LOG: available indexes for IndexScan(p2_c3):
6658 LOG: available indexes for IndexScan(p2_c4):
6659 LOG: available indexes for IndexScan(p2_c1_c1):
6660 LOG: available indexes for IndexScan(p2_c1_c2):
6661 LOG: available indexes for IndexScan(p2_c3_c1):
6662 LOG: available indexes for IndexScan(p2_c3_c2):
6665 IndexScan(p2 p2_id2_val)
6671 --------------------------------------------------------
6674 -> Index Scan using p2_id2_val on p2
6675 Index Cond: ((id >= 50) AND (id <= 51))
6676 Filter: (ctid = '(1,1)'::tid)
6677 -> Index Scan using p2_c1_id2_val on p2_c1 p2
6678 Index Cond: ((id >= 50) AND (id <= 51))
6679 Filter: (ctid = '(1,1)'::tid)
6680 -> Tid Scan on p2_c1_c1 p2
6681 TID Cond: (ctid = '(1,1)'::tid)
6682 Filter: ((id >= 50) AND (id <= 51))
6683 -> Tid Scan on p2_c1_c2 p2
6684 TID Cond: (ctid = '(1,1)'::tid)
6685 Filter: ((id >= 50) AND (id <= 51))
6688 /*+IndexScan(p2 p2_val2_id)*/
6689 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6690 LOG: available indexes for IndexScan(p2): p2_val2_id
6691 LOG: available indexes for IndexScan(p2_c1):
6692 LOG: available indexes for IndexScan(p2_c2):
6693 LOG: available indexes for IndexScan(p2_c3):
6694 LOG: available indexes for IndexScan(p2_c4):
6695 LOG: available indexes for IndexScan(p2_c1_c1):
6696 LOG: available indexes for IndexScan(p2_c1_c2):
6697 LOG: available indexes for IndexScan(p2_c3_c1):
6698 LOG: available indexes for IndexScan(p2_c3_c2):
6701 IndexScan(p2 p2_val2_id)
6707 -----------------------------------------------------------------------------
6710 -> Index Scan using p2_val2_id on p2
6711 Index Cond: ((id >= 50) AND (id <= 51))
6712 Filter: (ctid = '(1,1)'::tid)
6713 -> Seq Scan on p2_c1 p2
6714 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6715 -> Tid Scan on p2_c1_c1 p2
6716 TID Cond: (ctid = '(1,1)'::tid)
6717 Filter: ((id >= 50) AND (id <= 51))
6718 -> Tid Scan on p2_c1_c2 p2
6719 TID Cond: (ctid = '(1,1)'::tid)
6720 Filter: ((id >= 50) AND (id <= 51))
6723 /*+IndexScan(p2 p2_pkey)*/
6724 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6725 LOG: available indexes for IndexScan(p2): p2_pkey
6726 LOG: available indexes for IndexScan(p2_c1): p2_c1_pkey
6727 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6728 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6729 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6730 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6731 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6732 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6733 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6736 IndexScan(p2 p2_pkey)
6742 -----------------------------------------------------------
6745 -> Index Scan using p2_pkey on p2
6746 Index Cond: ((id >= 50) AND (id <= 51))
6747 Filter: (ctid = '(1,1)'::tid)
6748 -> Index Scan using p2_c1_pkey on p2_c1 p2
6749 Index Cond: ((id >= 50) AND (id <= 51))
6750 Filter: (ctid = '(1,1)'::tid)
6751 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2
6752 Index Cond: ((id >= 50) AND (id <= 51))
6753 Filter: (ctid = '(1,1)'::tid)
6754 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2
6755 Index Cond: ((id >= 50) AND (id <= 51))
6756 Filter: (ctid = '(1,1)'::tid)
6759 /*+IndexScan(p2 p2_c1_id_val_idx)*/
6760 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6761 LOG: available indexes for IndexScan(p2):
6762 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx
6763 LOG: available indexes for IndexScan(p2_c2):
6764 LOG: available indexes for IndexScan(p2_c3):
6765 LOG: available indexes for IndexScan(p2_c4):
6766 LOG: available indexes for IndexScan(p2_c1_c1):
6767 LOG: available indexes for IndexScan(p2_c1_c2):
6768 LOG: available indexes for IndexScan(p2_c3_c1):
6769 LOG: available indexes for IndexScan(p2_c3_c2):
6772 IndexScan(p2 p2_c1_id_val_idx)
6778 -----------------------------------------------------------------------------
6782 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6783 -> Index Scan using p2_c1_id_val_idx on p2_c1 p2
6784 Index Cond: ((id >= 50) AND (id <= 51))
6785 Filter: (ctid = '(1,1)'::tid)
6786 -> Tid Scan on p2_c1_c1 p2
6787 TID Cond: (ctid = '(1,1)'::tid)
6788 Filter: ((id >= 50) AND (id <= 51))
6789 -> Tid Scan on p2_c1_c2 p2
6790 TID Cond: (ctid = '(1,1)'::tid)
6791 Filter: ((id >= 50) AND (id <= 51))
6794 /*+IndexScan(p2 no_exist)*/
6795 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6796 LOG: available indexes for IndexScan(p2):
6797 LOG: available indexes for IndexScan(p2_c1):
6798 LOG: available indexes for IndexScan(p2_c2):
6799 LOG: available indexes for IndexScan(p2_c3):
6800 LOG: available indexes for IndexScan(p2_c4):
6801 LOG: available indexes for IndexScan(p2_c1_c1):
6802 LOG: available indexes for IndexScan(p2_c1_c2):
6803 LOG: available indexes for IndexScan(p2_c3_c1):
6804 LOG: available indexes for IndexScan(p2_c3_c2):
6807 IndexScan(p2 no_exist)
6813 -----------------------------------------------------------------------------
6817 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6818 -> Seq Scan on p2_c1 p2
6819 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6820 -> Tid Scan on p2_c1_c1 p2
6821 TID Cond: (ctid = '(1,1)'::tid)
6822 Filter: ((id >= 50) AND (id <= 51))
6823 -> Tid Scan on p2_c1_c2 p2
6824 TID Cond: (ctid = '(1,1)'::tid)
6825 Filter: ((id >= 50) AND (id <= 51))
6828 /*+IndexScan(p2 p2_pkey p2_c1_id_val_idx)*/
6829 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6830 LOG: available indexes for IndexScan(p2): p2_pkey
6831 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx p2_c1_pkey
6832 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6833 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6834 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6835 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6836 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6837 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6838 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6841 IndexScan(p2 p2_pkey p2_c1_id_val_idx)
6847 -----------------------------------------------------------
6850 -> Index Scan using p2_pkey on p2
6851 Index Cond: ((id >= 50) AND (id <= 51))
6852 Filter: (ctid = '(1,1)'::tid)
6853 -> Index Scan using p2_c1_id_val_idx on p2_c1 p2
6854 Index Cond: ((id >= 50) AND (id <= 51))
6855 Filter: (ctid = '(1,1)'::tid)
6856 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2
6857 Index Cond: ((id >= 50) AND (id <= 51))
6858 Filter: (ctid = '(1,1)'::tid)
6859 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2
6860 Index Cond: ((id >= 50) AND (id <= 51))
6861 Filter: (ctid = '(1,1)'::tid)
6864 /*+IndexScan(p2 p2_pkey no_exist)*/
6865 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6866 LOG: available indexes for IndexScan(p2): p2_pkey
6867 LOG: available indexes for IndexScan(p2_c1): p2_c1_pkey
6868 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6869 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6870 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6871 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6872 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6873 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6874 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6877 IndexScan(p2 p2_pkey no_exist)
6883 -----------------------------------------------------------
6886 -> Index Scan using p2_pkey on p2
6887 Index Cond: ((id >= 50) AND (id <= 51))
6888 Filter: (ctid = '(1,1)'::tid)
6889 -> Index Scan using p2_c1_pkey on p2_c1 p2
6890 Index Cond: ((id >= 50) AND (id <= 51))
6891 Filter: (ctid = '(1,1)'::tid)
6892 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2
6893 Index Cond: ((id >= 50) AND (id <= 51))
6894 Filter: (ctid = '(1,1)'::tid)
6895 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2
6896 Index Cond: ((id >= 50) AND (id <= 51))
6897 Filter: (ctid = '(1,1)'::tid)
6900 /*+IndexScan(p2 p2_c1_id_val_idx no_exist)*/
6901 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6902 LOG: available indexes for IndexScan(p2):
6903 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx
6904 LOG: available indexes for IndexScan(p2_c2):
6905 LOG: available indexes for IndexScan(p2_c3):
6906 LOG: available indexes for IndexScan(p2_c4):
6907 LOG: available indexes for IndexScan(p2_c1_c1):
6908 LOG: available indexes for IndexScan(p2_c1_c2):
6909 LOG: available indexes for IndexScan(p2_c3_c1):
6910 LOG: available indexes for IndexScan(p2_c3_c2):
6913 IndexScan(p2 p2_c1_id_val_idx no_exist)
6919 -----------------------------------------------------------------------------
6923 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6924 -> Index Scan using p2_c1_id_val_idx on p2_c1 p2
6925 Index Cond: ((id >= 50) AND (id <= 51))
6926 Filter: (ctid = '(1,1)'::tid)
6927 -> Tid Scan on p2_c1_c1 p2
6928 TID Cond: (ctid = '(1,1)'::tid)
6929 Filter: ((id >= 50) AND (id <= 51))
6930 -> Tid Scan on p2_c1_c2 p2
6931 TID Cond: (ctid = '(1,1)'::tid)
6932 Filter: ((id >= 50) AND (id <= 51))
6935 /*+IndexScan(p2 p2_pkey p2_c1_id_val_idx no_exist)*/
6936 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6937 LOG: available indexes for IndexScan(p2): p2_pkey
6938 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx p2_c1_pkey
6939 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6940 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6941 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6942 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6943 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6944 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6945 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6948 IndexScan(p2 p2_pkey p2_c1_id_val_idx no_exist)
6954 -----------------------------------------------------------
6957 -> Index Scan using p2_pkey on p2
6958 Index Cond: ((id >= 50) AND (id <= 51))
6959 Filter: (ctid = '(1,1)'::tid)
6960 -> Index Scan using p2_c1_id_val_idx on p2_c1 p2
6961 Index Cond: ((id >= 50) AND (id <= 51))
6962 Filter: (ctid = '(1,1)'::tid)
6963 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1 p2
6964 Index Cond: ((id >= 50) AND (id <= 51))
6965 Filter: (ctid = '(1,1)'::tid)
6966 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2 p2
6967 Index Cond: ((id >= 50) AND (id <= 51))
6968 Filter: (ctid = '(1,1)'::tid)
6971 /*+IndexScan(p2 p2_val_idx)*/
6972 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
6973 LOG: available indexes for IndexScan(p2): p2_val_idx
6974 LOG: available indexes for IndexScan(p2_c1): p2_c1_val_idx
6975 LOG: available indexes for IndexScan(p2_c2): p2_c2_val_idx
6976 LOG: available indexes for IndexScan(p2_c3): p2_c3_val_idx
6977 LOG: available indexes for IndexScan(p2_c4): p2_c4_val_idx
6978 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_val_idx
6979 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_val_idx
6980 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_val_idx
6981 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_val_idx
6984 IndexScan(p2 p2_val_idx)
6990 -------------------------------------------------------------------------
6993 -> Index Scan using p2_val_idx on p2
6994 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6995 Filter: (ctid = '(1,1)'::tid)
6996 -> Index Scan using p2_c1_val_idx on p2_c1 p2
6997 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6998 Filter: (ctid = '(1,1)'::tid)
6999 -> Index Scan using p2_c2_val_idx on p2_c2 p2
7000 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7001 Filter: (ctid = '(1,1)'::tid)
7002 -> Index Scan using p2_c3_val_idx on p2_c3 p2
7003 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7004 Filter: (ctid = '(1,1)'::tid)
7005 -> Index Scan using p2_c4_val_idx on p2_c4 p2
7006 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7007 Filter: (ctid = '(1,1)'::tid)
7008 -> Index Scan using p2_c1_c1_val_idx on p2_c1_c1 p2
7009 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7010 Filter: (ctid = '(1,1)'::tid)
7011 -> Index Scan using p2_c1_c2_val_idx on p2_c1_c2 p2
7012 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7013 Filter: (ctid = '(1,1)'::tid)
7014 -> Index Scan using p2_c3_c1_val_idx on p2_c3_c1 p2
7015 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7016 Filter: (ctid = '(1,1)'::tid)
7017 -> Index Scan using p2_c3_c2_val_idx on p2_c3_c2 p2
7018 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7019 Filter: (ctid = '(1,1)'::tid)
7022 /*+IndexScan(p2 p2_expr)*/
7023 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
7024 LOG: available indexes for IndexScan(p2): p2_expr
7025 LOG: available indexes for IndexScan(p2_c1): p2_c1_expr_idx
7026 LOG: available indexes for IndexScan(p2_c2): p2_c2_expr_idx
7027 LOG: available indexes for IndexScan(p2_c3): p2_c3_expr_idx
7028 LOG: available indexes for IndexScan(p2_c4): p2_c4_expr_idx
7029 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_expr_idx
7030 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_expr_idx
7031 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_expr_idx
7032 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_expr_idx
7035 IndexScan(p2 p2_expr)
7041 -----------------------------------------------------------------------------------------------
7045 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7046 -> Seq Scan on p2_c1 p2
7047 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7048 -> Seq Scan on p2_c2 p2
7049 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7050 -> Seq Scan on p2_c3 p2
7051 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7052 -> Tid Scan on p2_c4 p2
7053 TID Cond: (ctid = '(1,1)'::tid)
7054 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7055 -> Tid Scan on p2_c1_c1 p2
7056 TID Cond: (ctid = '(1,1)'::tid)
7057 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7058 -> Tid Scan on p2_c1_c2 p2
7059 TID Cond: (ctid = '(1,1)'::tid)
7060 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7061 -> Tid Scan on p2_c3_c1 p2
7062 TID Cond: (ctid = '(1,1)'::tid)
7063 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7064 -> Tid Scan on p2_c3_c2 p2
7065 TID Cond: (ctid = '(1,1)'::tid)
7066 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7069 /*+IndexScan(p2 p2_val_idx6)*/
7070 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
7071 LOG: available indexes for IndexScan(p2): p2_val_idx6
7072 LOG: available indexes for IndexScan(p2_c1): p2_c1_val_idx6
7073 LOG: available indexes for IndexScan(p2_c2): p2_c2_val_idx6
7074 LOG: available indexes for IndexScan(p2_c3): p2_c3_val_idx6
7075 LOG: available indexes for IndexScan(p2_c4): p2_c4_val_idx6
7076 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_val_idx6
7077 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_val_idx6
7078 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_val_idx6
7079 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_val_idx6
7082 IndexScan(p2 p2_val_idx6)
7088 -----------------------------------------------------------------------------------------------
7092 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7093 -> Seq Scan on p2_c1 p2
7094 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7095 -> Seq Scan on p2_c2 p2
7096 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7097 -> Seq Scan on p2_c3 p2
7098 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7099 -> Tid Scan on p2_c4 p2
7100 TID Cond: (ctid = '(1,1)'::tid)
7101 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7102 -> Tid Scan on p2_c1_c1 p2
7103 TID Cond: (ctid = '(1,1)'::tid)
7104 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7105 -> Tid Scan on p2_c1_c2 p2
7106 TID Cond: (ctid = '(1,1)'::tid)
7107 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7108 -> Tid Scan on p2_c3_c1 p2
7109 TID Cond: (ctid = '(1,1)'::tid)
7110 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7111 -> Tid Scan on p2_c3_c2 p2
7112 TID Cond: (ctid = '(1,1)'::tid)
7113 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7116 /*+IndexScan(p2 p2_val_idx p2_val_idx6)*/
7117 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
7118 LOG: available indexes for IndexScan(p2): p2_val_idx6 p2_val_idx
7119 LOG: available indexes for IndexScan(p2_c1): p2_c1_val_idx6 p2_c1_val_idx
7120 LOG: available indexes for IndexScan(p2_c2): p2_c2_val_idx6 p2_c2_val_idx
7121 LOG: available indexes for IndexScan(p2_c3): p2_c3_val_idx6 p2_c3_val_idx
7122 LOG: available indexes for IndexScan(p2_c4): p2_c4_val_idx6 p2_c4_val_idx
7123 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_val_idx6 p2_c1_c1_val_idx
7124 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_val_idx6 p2_c1_c2_val_idx
7125 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_val_idx6 p2_c3_c1_val_idx
7126 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_val_idx6 p2_c3_c2_val_idx
7129 IndexScan(p2 p2_val_idx p2_val_idx6)
7135 -------------------------------------------------------------------------
7138 -> Index Scan using p2_val_idx on p2
7139 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7140 Filter: (ctid = '(1,1)'::tid)
7141 -> Index Scan using p2_c1_val_idx on p2_c1 p2
7142 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7143 Filter: (ctid = '(1,1)'::tid)
7144 -> Index Scan using p2_c2_val_idx on p2_c2 p2
7145 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7146 Filter: (ctid = '(1,1)'::tid)
7147 -> Index Scan using p2_c3_val_idx on p2_c3 p2
7148 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7149 Filter: (ctid = '(1,1)'::tid)
7150 -> Index Scan using p2_c4_val_idx on p2_c4 p2
7151 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7152 Filter: (ctid = '(1,1)'::tid)
7153 -> Index Scan using p2_c1_c1_val_idx on p2_c1_c1 p2
7154 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7155 Filter: (ctid = '(1,1)'::tid)
7156 -> Index Scan using p2_c1_c2_val_idx on p2_c1_c2 p2
7157 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7158 Filter: (ctid = '(1,1)'::tid)
7159 -> Index Scan using p2_c3_c1_val_idx on p2_c3_c1 p2
7160 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7161 Filter: (ctid = '(1,1)'::tid)
7162 -> Index Scan using p2_c3_c2_val_idx on p2_c3_c2 p2
7163 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7164 Filter: (ctid = '(1,1)'::tid)
7167 -- regular expression
7169 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7171 ---------------------------------------------------------------------------------------------
7172 Index Only Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
7173 Index Cond: (id = 1)
7176 /*+ IndexScanRegexp(t5 t5_[^i].*)*/
7177 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7178 LOG: available indexes for IndexScanRegexp(t5): t5_val t5_pkey
7181 IndexScanRegexp(t5 t5_[^i].*)
7187 --------------------------------
7188 Index Scan using t5_pkey on t5
7189 Index Cond: (id = 1)
7192 /*+ IndexScanRegexp(t5 t5_id[0-9].*)*/
7193 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7194 LOG: available indexes for IndexScanRegexp(t5): t5_id3 t5_id2 t5_id1
7197 IndexScanRegexp(t5 t5_id[0-9].*)
7203 -------------------------------
7204 Index Scan using t5_id3 on t5
7205 Index Cond: (id = 1)
7208 /*+ IndexScanRegexp(t5 t5[^_].*)*/
7209 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7210 LOG: available indexes for IndexScanRegexp(t5):
7213 IndexScanRegexp(t5 t5[^_].*)
7219 --------------------
7224 /*+ IndexScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)*/
7225 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7226 LOG: available indexes for IndexScanRegexp(t5):
7229 IndexScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)
7235 --------------------
7240 /*+ IndexScan(t5 t5_id[0-9].*)*/
7241 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7242 LOG: available indexes for IndexScan(t5):
7245 IndexScan(t5 t5_id[0-9].*)
7251 --------------------
7256 /*+ IndexOnlyScanRegexp(t5 t5_[^i].*)*/
7257 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7258 LOG: available indexes for IndexOnlyScanRegexp(t5): t5_val t5_pkey
7261 IndexOnlyScanRegexp(t5 t5_[^i].*)
7267 -------------------------------------
7268 Index Only Scan using t5_pkey on t5
7269 Index Cond: (id = 1)
7272 /*+ IndexOnlyScanRegexp(t5 t5_id[0-9].*)*/
7273 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7274 LOG: available indexes for IndexOnlyScanRegexp(t5): t5_id3 t5_id2 t5_id1
7277 IndexOnlyScanRegexp(t5 t5_id[0-9].*)
7283 ------------------------------------
7284 Index Only Scan using t5_id3 on t5
7285 Index Cond: (id = 1)
7288 /*+ IndexOnlyScanRegexp(t5 t5[^_].*)*/
7289 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7290 LOG: available indexes for IndexOnlyScanRegexp(t5):
7293 IndexOnlyScanRegexp(t5 t5[^_].*)
7299 --------------------
7304 /*+ IndexOnlyScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)*/
7305 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7306 LOG: available indexes for IndexOnlyScanRegexp(t5):
7309 IndexOnlyScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)
7315 --------------------
7320 /*+ IndexOnlyScan(t5 t5_id[0-9].*)*/
7321 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7322 LOG: available indexes for IndexOnlyScan(t5):
7325 IndexOnlyScan(t5 t5_id[0-9].*)
7331 --------------------
7336 /*+ BitmapScanRegexp(t5 t5_[^i].*)*/
7337 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7338 LOG: available indexes for BitmapScanRegexp(t5): t5_val t5_pkey
7341 BitmapScanRegexp(t5 t5_[^i].*)
7347 ------------------------------------
7348 Bitmap Heap Scan on t5
7349 Recheck Cond: (id = 1)
7350 -> Bitmap Index Scan on t5_pkey
7351 Index Cond: (id = 1)
7354 /*+ BitmapScanRegexp(t5 t5_id[0-9].*)*/
7355 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7356 LOG: available indexes for BitmapScanRegexp(t5): t5_id3 t5_id2 t5_id1
7359 BitmapScanRegexp(t5 t5_id[0-9].*)
7365 -----------------------------------
7366 Bitmap Heap Scan on t5
7367 Recheck Cond: (id = 1)
7368 -> Bitmap Index Scan on t5_id3
7369 Index Cond: (id = 1)
7372 /*+ BitmapScanRegexp(t5 t5[^_].*)*/
7373 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7374 LOG: available indexes for BitmapScanRegexp(t5):
7377 BitmapScanRegexp(t5 t5[^_].*)
7383 --------------------
7388 /*+ BitmapScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)*/
7389 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7390 LOG: available indexes for BitmapScanRegexp(t5):
7393 BitmapScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)
7399 --------------------
7404 /*+ BitmapScan(t5 t5_id[0-9].*)*/
7405 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7406 LOG: available indexes for BitmapScan(t5):
7409 BitmapScan(t5 t5_id[0-9].*)
7415 --------------------
7421 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7423 -------------------------------------
7428 -> Seq Scan on p1_c1 p1
7430 -> Seq Scan on p1_c2 p1
7432 -> Seq Scan on p1_c3 p1
7434 -> Seq Scan on p1_c4 p1
7436 -> Seq Scan on p1_c1_c1 p1
7438 -> Seq Scan on p1_c1_c2 p1
7440 -> Seq Scan on p1_c3_c1 p1
7442 -> Seq Scan on p1_c3_c2 p1
7446 /*+ IndexScanRegexp(p1 p1_.*[^0-9]$)*/
7447 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7448 LOG: available indexes for IndexScanRegexp(p1): p1_pkey
7449 LOG: available indexes for IndexScanRegexp(p1_c1): p1_c1_pkey
7450 LOG: available indexes for IndexScanRegexp(p1_c2): p1_c2_pkey
7451 LOG: available indexes for IndexScanRegexp(p1_c3): p1_c3_pkey
7452 LOG: available indexes for IndexScanRegexp(p1_c4): p1_c4_pkey
7453 LOG: available indexes for IndexScanRegexp(p1_c1_c1): p1_c1_c1_pkey
7454 LOG: available indexes for IndexScanRegexp(p1_c1_c2): p1_c1_c2_pkey
7455 LOG: available indexes for IndexScanRegexp(p1_c3_c1): p1_c3_c1_pkey
7456 LOG: available indexes for IndexScanRegexp(p1_c3_c2): p1_c3_c2_pkey
7459 IndexScanRegexp(p1 p1_.*[^0-9]$)
7465 -------------------------------------
7470 -> Seq Scan on p1_c1 p1
7472 -> Seq Scan on p1_c2 p1
7474 -> Seq Scan on p1_c3 p1
7476 -> Seq Scan on p1_c4 p1
7478 -> Seq Scan on p1_c1_c1 p1
7480 -> Seq Scan on p1_c1_c2 p1
7482 -> Seq Scan on p1_c3_c1 p1
7484 -> Seq Scan on p1_c3_c2 p1
7488 /*+ IndexScanRegexp(p1 p1_.*val2.*)*/
7489 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7490 LOG: available indexes for IndexScanRegexp(p1): p1_val2
7491 LOG: available indexes for IndexScanRegexp(p1_c1): p1_c1_val2
7492 LOG: available indexes for IndexScanRegexp(p1_c2): p1_c2_val2
7493 LOG: available indexes for IndexScanRegexp(p1_c3): p1_c3_val2
7494 LOG: available indexes for IndexScanRegexp(p1_c4): p1_c4_val2
7495 LOG: available indexes for IndexScanRegexp(p1_c1_c1): p1_c1_c1_val2
7496 LOG: available indexes for IndexScanRegexp(p1_c1_c2): p1_c1_c2_val2
7497 LOG: available indexes for IndexScanRegexp(p1_c3_c1): p1_c3_c1_val2
7498 LOG: available indexes for IndexScanRegexp(p1_c3_c2): p1_c3_c2_val2
7501 IndexScanRegexp(p1 p1_.*val2.*)
7507 -----------------------------------------------------------
7510 -> Index Scan using p1_val2 on p1
7511 Index Cond: (val = 1)
7512 -> Index Scan using p1_c1_val2 on p1_c1 p1
7513 Index Cond: (val = 1)
7514 -> Index Scan using p1_c2_val2 on p1_c2 p1
7515 Index Cond: (val = 1)
7516 -> Index Scan using p1_c3_val2 on p1_c3 p1
7517 Index Cond: (val = 1)
7518 -> Index Scan using p1_c4_val2 on p1_c4 p1
7519 Index Cond: (val = 1)
7520 -> Index Scan using p1_c1_c1_val2 on p1_c1_c1 p1
7521 Index Cond: (val = 1)
7522 -> Index Scan using p1_c1_c2_val2 on p1_c1_c2 p1
7523 Index Cond: (val = 1)
7524 -> Index Scan using p1_c3_c1_val2 on p1_c3_c1 p1
7525 Index Cond: (val = 1)
7526 -> Index Scan using p1_c3_c2_val2 on p1_c3_c2 p1
7527 Index Cond: (val = 1)
7530 /*+ IndexScanRegexp(p1 p1[^_].*)*/
7531 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7532 LOG: available indexes for IndexScanRegexp(p1):
7533 LOG: available indexes for IndexScanRegexp(p1_c1):
7534 LOG: available indexes for IndexScanRegexp(p1_c2):
7535 LOG: available indexes for IndexScanRegexp(p1_c3):
7536 LOG: available indexes for IndexScanRegexp(p1_c4):
7537 LOG: available indexes for IndexScanRegexp(p1_c1_c1):
7538 LOG: available indexes for IndexScanRegexp(p1_c1_c2):
7539 LOG: available indexes for IndexScanRegexp(p1_c3_c1):
7540 LOG: available indexes for IndexScanRegexp(p1_c3_c2):
7543 IndexScanRegexp(p1 p1[^_].*)
7549 -------------------------------------
7554 -> Seq Scan on p1_c1 p1
7556 -> Seq Scan on p1_c2 p1
7558 -> Seq Scan on p1_c3 p1
7560 -> Seq Scan on p1_c4 p1
7562 -> Seq Scan on p1_c1_c1 p1
7564 -> Seq Scan on p1_c1_c2 p1
7566 -> Seq Scan on p1_c3_c1 p1
7568 -> Seq Scan on p1_c3_c2 p1
7572 /*+ IndexScan(p1 p1_.*val2.*)*/
7573 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7574 LOG: available indexes for IndexScan(p1):
7575 LOG: available indexes for IndexScan(p1_c1):
7576 LOG: available indexes for IndexScan(p1_c2):
7577 LOG: available indexes for IndexScan(p1_c3):
7578 LOG: available indexes for IndexScan(p1_c4):
7579 LOG: available indexes for IndexScan(p1_c1_c1):
7580 LOG: available indexes for IndexScan(p1_c1_c2):
7581 LOG: available indexes for IndexScan(p1_c3_c1):
7582 LOG: available indexes for IndexScan(p1_c3_c2):
7585 IndexScan(p1 p1_.*val2.*)
7591 -------------------------------------
7596 -> Seq Scan on p1_c1 p1
7598 -> Seq Scan on p1_c2 p1
7600 -> Seq Scan on p1_c3 p1
7602 -> Seq Scan on p1_c4 p1
7604 -> Seq Scan on p1_c1_c1 p1
7606 -> Seq Scan on p1_c1_c2 p1
7608 -> Seq Scan on p1_c3_c1 p1
7610 -> Seq Scan on p1_c3_c2 p1
7614 /*+ IndexOnlyScanRegexp(p1 p1_.*[^0-9]$)*/
7615 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7616 LOG: available indexes for IndexOnlyScanRegexp(p1): p1_pkey
7617 LOG: available indexes for IndexOnlyScanRegexp(p1_c1): p1_c1_pkey
7618 LOG: available indexes for IndexOnlyScanRegexp(p1_c2): p1_c2_pkey
7619 LOG: available indexes for IndexOnlyScanRegexp(p1_c3): p1_c3_pkey
7620 LOG: available indexes for IndexOnlyScanRegexp(p1_c4): p1_c4_pkey
7621 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c1): p1_c1_c1_pkey
7622 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c2): p1_c1_c2_pkey
7623 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c1): p1_c3_c1_pkey
7624 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c2): p1_c3_c2_pkey
7627 IndexOnlyScanRegexp(p1 p1_.*[^0-9]$)
7633 -------------------------------------
7638 -> Seq Scan on p1_c1 p1
7640 -> Seq Scan on p1_c2 p1
7642 -> Seq Scan on p1_c3 p1
7644 -> Seq Scan on p1_c4 p1
7646 -> Seq Scan on p1_c1_c1 p1
7648 -> Seq Scan on p1_c1_c2 p1
7650 -> Seq Scan on p1_c3_c1 p1
7652 -> Seq Scan on p1_c3_c2 p1
7656 /*+ IndexOnlyScanRegexp(p1 p1_.*val2.*)*/
7657 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7658 LOG: available indexes for IndexOnlyScanRegexp(p1): p1_val2
7659 LOG: available indexes for IndexOnlyScanRegexp(p1_c1): p1_c1_val2
7660 LOG: available indexes for IndexOnlyScanRegexp(p1_c2): p1_c2_val2
7661 LOG: available indexes for IndexOnlyScanRegexp(p1_c3): p1_c3_val2
7662 LOG: available indexes for IndexOnlyScanRegexp(p1_c4): p1_c4_val2
7663 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c1): p1_c1_c1_val2
7664 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c2): p1_c1_c2_val2
7665 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c1): p1_c3_c1_val2
7666 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c2): p1_c3_c2_val2
7669 IndexOnlyScanRegexp(p1 p1_.*val2.*)
7675 ----------------------------------------------------------------
7678 -> Index Only Scan using p1_val2 on p1
7679 Index Cond: (val = 1)
7680 -> Index Only Scan using p1_c1_val2 on p1_c1 p1
7681 Index Cond: (val = 1)
7682 -> Index Only Scan using p1_c2_val2 on p1_c2 p1
7683 Index Cond: (val = 1)
7684 -> Index Only Scan using p1_c3_val2 on p1_c3 p1
7685 Index Cond: (val = 1)
7686 -> Index Only Scan using p1_c4_val2 on p1_c4 p1
7687 Index Cond: (val = 1)
7688 -> Index Only Scan using p1_c1_c1_val2 on p1_c1_c1 p1
7689 Index Cond: (val = 1)
7690 -> Index Only Scan using p1_c1_c2_val2 on p1_c1_c2 p1
7691 Index Cond: (val = 1)
7692 -> Index Only Scan using p1_c3_c1_val2 on p1_c3_c1 p1
7693 Index Cond: (val = 1)
7694 -> Index Only Scan using p1_c3_c2_val2 on p1_c3_c2 p1
7695 Index Cond: (val = 1)
7698 /*+ IndexOnlyScanRegexp(p1 p1[^_].*)*/
7699 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7700 LOG: available indexes for IndexOnlyScanRegexp(p1):
7701 LOG: available indexes for IndexOnlyScanRegexp(p1_c1):
7702 LOG: available indexes for IndexOnlyScanRegexp(p1_c2):
7703 LOG: available indexes for IndexOnlyScanRegexp(p1_c3):
7704 LOG: available indexes for IndexOnlyScanRegexp(p1_c4):
7705 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c1):
7706 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c2):
7707 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c1):
7708 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c2):
7711 IndexOnlyScanRegexp(p1 p1[^_].*)
7717 -------------------------------------
7722 -> Seq Scan on p1_c1 p1
7724 -> Seq Scan on p1_c2 p1
7726 -> Seq Scan on p1_c3 p1
7728 -> Seq Scan on p1_c4 p1
7730 -> Seq Scan on p1_c1_c1 p1
7732 -> Seq Scan on p1_c1_c2 p1
7734 -> Seq Scan on p1_c3_c1 p1
7736 -> Seq Scan on p1_c3_c2 p1
7740 /*+ IndexOnlyScan(p1 p1_.*val2.*)*/
7741 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7742 LOG: available indexes for IndexOnlyScan(p1):
7743 LOG: available indexes for IndexOnlyScan(p1_c1):
7744 LOG: available indexes for IndexOnlyScan(p1_c2):
7745 LOG: available indexes for IndexOnlyScan(p1_c3):
7746 LOG: available indexes for IndexOnlyScan(p1_c4):
7747 LOG: available indexes for IndexOnlyScan(p1_c1_c1):
7748 LOG: available indexes for IndexOnlyScan(p1_c1_c2):
7749 LOG: available indexes for IndexOnlyScan(p1_c3_c1):
7750 LOG: available indexes for IndexOnlyScan(p1_c3_c2):
7753 IndexOnlyScan(p1 p1_.*val2.*)
7759 -------------------------------------
7764 -> Seq Scan on p1_c1 p1
7766 -> Seq Scan on p1_c2 p1
7768 -> Seq Scan on p1_c3 p1
7770 -> Seq Scan on p1_c4 p1
7772 -> Seq Scan on p1_c1_c1 p1
7774 -> Seq Scan on p1_c1_c2 p1
7776 -> Seq Scan on p1_c3_c1 p1
7778 -> Seq Scan on p1_c3_c2 p1
7782 /*+ BitmapScanRegexp(p1 p1_.*[^0-9]$)*/
7783 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7784 LOG: available indexes for BitmapScanRegexp(p1): p1_pkey
7785 LOG: available indexes for BitmapScanRegexp(p1_c1): p1_c1_pkey
7786 LOG: available indexes for BitmapScanRegexp(p1_c2): p1_c2_pkey
7787 LOG: available indexes for BitmapScanRegexp(p1_c3): p1_c3_pkey
7788 LOG: available indexes for BitmapScanRegexp(p1_c4): p1_c4_pkey
7789 LOG: available indexes for BitmapScanRegexp(p1_c1_c1): p1_c1_c1_pkey
7790 LOG: available indexes for BitmapScanRegexp(p1_c1_c2): p1_c1_c2_pkey
7791 LOG: available indexes for BitmapScanRegexp(p1_c3_c1): p1_c3_c1_pkey
7792 LOG: available indexes for BitmapScanRegexp(p1_c3_c2): p1_c3_c2_pkey
7795 BitmapScanRegexp(p1 p1_.*[^0-9]$)
7801 -------------------------------------
7806 -> Seq Scan on p1_c1 p1
7808 -> Seq Scan on p1_c2 p1
7810 -> Seq Scan on p1_c3 p1
7812 -> Seq Scan on p1_c4 p1
7814 -> Seq Scan on p1_c1_c1 p1
7816 -> Seq Scan on p1_c1_c2 p1
7818 -> Seq Scan on p1_c3_c1 p1
7820 -> Seq Scan on p1_c3_c2 p1
7824 /*+ BitmapScanRegexp(p1 p1_.*val2.*)*/
7825 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7826 LOG: available indexes for BitmapScanRegexp(p1): p1_val2
7827 LOG: available indexes for BitmapScanRegexp(p1_c1): p1_c1_val2
7828 LOG: available indexes for BitmapScanRegexp(p1_c2): p1_c2_val2
7829 LOG: available indexes for BitmapScanRegexp(p1_c3): p1_c3_val2
7830 LOG: available indexes for BitmapScanRegexp(p1_c4): p1_c4_val2
7831 LOG: available indexes for BitmapScanRegexp(p1_c1_c1): p1_c1_c1_val2
7832 LOG: available indexes for BitmapScanRegexp(p1_c1_c2): p1_c1_c2_val2
7833 LOG: available indexes for BitmapScanRegexp(p1_c3_c1): p1_c3_c1_val2
7834 LOG: available indexes for BitmapScanRegexp(p1_c3_c2): p1_c3_c2_val2
7837 BitmapScanRegexp(p1 p1_.*val2.*)
7843 ------------------------------------------------------
7846 -> Bitmap Heap Scan on p1
7847 Recheck Cond: (val = 1)
7848 -> Bitmap Index Scan on p1_val2
7849 Index Cond: (val = 1)
7850 -> Bitmap Heap Scan on p1_c1 p1
7851 Recheck Cond: (val = 1)
7852 -> Bitmap Index Scan on p1_c1_val2
7853 Index Cond: (val = 1)
7854 -> Bitmap Heap Scan on p1_c2 p1
7855 Recheck Cond: (val = 1)
7856 -> Bitmap Index Scan on p1_c2_val2
7857 Index Cond: (val = 1)
7858 -> Bitmap Heap Scan on p1_c3 p1
7859 Recheck Cond: (val = 1)
7860 -> Bitmap Index Scan on p1_c3_val2
7861 Index Cond: (val = 1)
7862 -> Bitmap Heap Scan on p1_c4 p1
7863 Recheck Cond: (val = 1)
7864 -> Bitmap Index Scan on p1_c4_val2
7865 Index Cond: (val = 1)
7866 -> Bitmap Heap Scan on p1_c1_c1 p1
7867 Recheck Cond: (val = 1)
7868 -> Bitmap Index Scan on p1_c1_c1_val2
7869 Index Cond: (val = 1)
7870 -> Bitmap Heap Scan on p1_c1_c2 p1
7871 Recheck Cond: (val = 1)
7872 -> Bitmap Index Scan on p1_c1_c2_val2
7873 Index Cond: (val = 1)
7874 -> Bitmap Heap Scan on p1_c3_c1 p1
7875 Recheck Cond: (val = 1)
7876 -> Bitmap Index Scan on p1_c3_c1_val2
7877 Index Cond: (val = 1)
7878 -> Bitmap Heap Scan on p1_c3_c2 p1
7879 Recheck Cond: (val = 1)
7880 -> Bitmap Index Scan on p1_c3_c2_val2
7881 Index Cond: (val = 1)
7884 /*+ BitmapScanRegexp(p1 p1[^_].*)*/
7885 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7886 LOG: available indexes for BitmapScanRegexp(p1):
7887 LOG: available indexes for BitmapScanRegexp(p1_c1):
7888 LOG: available indexes for BitmapScanRegexp(p1_c2):
7889 LOG: available indexes for BitmapScanRegexp(p1_c3):
7890 LOG: available indexes for BitmapScanRegexp(p1_c4):
7891 LOG: available indexes for BitmapScanRegexp(p1_c1_c1):
7892 LOG: available indexes for BitmapScanRegexp(p1_c1_c2):
7893 LOG: available indexes for BitmapScanRegexp(p1_c3_c1):
7894 LOG: available indexes for BitmapScanRegexp(p1_c3_c2):
7897 BitmapScanRegexp(p1 p1[^_].*)
7903 -------------------------------------
7908 -> Seq Scan on p1_c1 p1
7910 -> Seq Scan on p1_c2 p1
7912 -> Seq Scan on p1_c3 p1
7914 -> Seq Scan on p1_c4 p1
7916 -> Seq Scan on p1_c1_c1 p1
7918 -> Seq Scan on p1_c1_c2 p1
7920 -> Seq Scan on p1_c3_c1 p1
7922 -> Seq Scan on p1_c3_c2 p1
7926 /*+ BitmapScan(p1 p1_.*val2.*)*/
7927 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7928 LOG: available indexes for BitmapScan(p1):
7929 LOG: available indexes for BitmapScan(p1_c1):
7930 LOG: available indexes for BitmapScan(p1_c2):
7931 LOG: available indexes for BitmapScan(p1_c3):
7932 LOG: available indexes for BitmapScan(p1_c4):
7933 LOG: available indexes for BitmapScan(p1_c1_c1):
7934 LOG: available indexes for BitmapScan(p1_c1_c2):
7935 LOG: available indexes for BitmapScan(p1_c3_c1):
7936 LOG: available indexes for BitmapScan(p1_c3_c2):
7939 BitmapScan(p1 p1_.*val2.*)
7945 -------------------------------------
7950 -> Seq Scan on p1_c1 p1
7952 -> Seq Scan on p1_c2 p1
7954 -> Seq Scan on p1_c3 p1
7956 -> Seq Scan on p1_c4 p1
7958 -> Seq Scan on p1_c1_c1 p1
7960 -> Seq Scan on p1_c1_c2 p1
7962 -> Seq Scan on p1_c3_c1 p1
7964 -> Seq Scan on p1_c3_c2 p1
7968 -- search from hint table
7969 INSERT INTO hint_plan.hints (norm_query_string, application_name, hints) VALUES ('EXPLAIN (COSTS false) SELECT * FROM t1 WHERE t1.id = ?;', '', 'SeqScan(t1)');
7970 INSERT INTO hint_plan.hints (norm_query_string, application_name, hints) VALUES ('EXPLAIN (COSTS false) SELECT id FROM t1 WHERE t1.id = ?;', '', 'IndexScan(t1)');
7971 INSERT INTO hint_plan.hints (norm_query_string, application_name, hints) VALUES ('EXPLAIN SELECT * FROM t1 WHERE t1.id = ?;', '', 'BitmapScan(t1)');
7972 SELECT * FROM hint_plan.hints ORDER BY id;
7973 id | norm_query_string | application_name | hints
7974 ----+----------------------------------------------------------+------------------+----------------
7975 1 | EXPLAIN (COSTS false) SELECT * FROM t1 WHERE t1.id = ?; | | SeqScan(t1)
7976 2 | EXPLAIN (COSTS false) SELECT id FROM t1 WHERE t1.id = ?; | | IndexScan(t1)
7977 3 | EXPLAIN SELECT * FROM t1 WHERE t1.id = ?; | | BitmapScan(t1)
7980 SET pg_hint_plan.enable_hint_table = on;
7981 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE t1.id = 1;
7990 --------------------
7995 SET pg_hint_plan.enable_hint_table = off;
7996 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE t1.id = 1;
7998 --------------------------------
7999 Index Scan using t1_pkey on t1
8000 Index Cond: (id = 1)
8003 TRUNCATE hint_plan.hints;
8004 VACUUM ANALYZE hint_plan.hints;
8006 EXPLAIN (COSTS false) SELECT id FROM t1 WHERE t1.id = 1;
8008 -------------------------------------
8009 Index Only Scan using t1_pkey on t1
8010 Index Cond: (id = 1)
8013 DO LANGUAGE plpgsql $$
8017 SELECT /*+SeqScan(t1)*/ t1.id INTO id FROM t1 WHERE t1.id = 1;
8028 CONTEXT: SQL statement "SELECT /*+SeqScan(t1)*/ t1.id FROM t1 WHERE t1.id = 1"
8029 PL/pgSQL function inline_code_block line 5 at SQL statement
8030 DROP EXTENSION pg_hint_plan;