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 Hash Cond: (t1.id = t2.id)
218 -> Index Scan using t1_pkey on t1
220 -> Index Scan using t2_pkey on t2
223 /*+Set(work_mem "1M")*/
224 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
225 INFO: invalid value for parameter "work_mem": "1M"
226 HINT: Valid units for this parameter are "kB", "MB", and "GB".
235 --------------------------------------
237 Merge Cond: (t1.id = t2.id)
238 -> Index Scan using t1_pkey on t1
239 -> Index Scan using t2_pkey on t2
242 /*+Set(work_mem "1MB")*/
243 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
252 --------------------------------------
254 Merge Cond: (t1.id = t2.id)
255 -> Index Scan using t1_pkey on t1
256 -> Index Scan using t2_pkey on t2
259 /*+Set(work_mem TO "1MB")*/
260 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
261 INFO: hint syntax error at or near "Set(work_mem TO "1MB")"
262 DETAIL: Set hint requires name and value of GUC parameter.
271 --------------------------------------
273 Merge Cond: (t1.id = t2.id)
274 -> Index Scan using t1_pkey on t1
275 -> Index Scan using t2_pkey on t2
279 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
280 INFO: hint syntax error at or near ""
281 DETAIL: SeqScan hint accepts only one relation.
290 --------------------------------------
292 Merge Cond: (t1.id = t2.id)
293 -> Index Scan using t1_pkey on t1
294 -> Index Scan using t2_pkey on t2
298 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
307 ------------------------------
309 Hash Cond: (t1.id = t2.id)
315 /*+SeqScan(t1)IndexScan(t2)*/
316 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
326 --------------------------------------------
328 Hash Cond: (t1.id = t2.id)
331 -> Index Scan using t2_pkey on t2
335 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
344 ------------------------------------------
347 -> Bitmap Heap Scan on t2
348 Recheck Cond: (id = t1.id)
349 -> Bitmap Index Scan on t2_pkey
350 Index Cond: (id = t1.id)
353 /*+BitmapScan(t2)NoSeqScan(t1)*/
354 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
364 ------------------------------------------
366 -> Index Scan using t1_pkey on t1
367 -> Bitmap Heap Scan on t2
368 Recheck Cond: (id = t1.id)
369 -> Bitmap Index Scan on t2_pkey
370 Index Cond: (id = t1.id)
374 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
383 ------------------------------
385 Hash Cond: (t1.id = t2.id)
391 /*+NoBitmapScan(t1)*/
392 EXPLAIN (COSTS false) SELECT * FROM t1, t4 WHERE t1.val < 10;
401 ----------------------------
410 EXPLAIN (COSTS false) SELECT * FROM t3, t4 WHERE t3.id = t4.id AND t4.ctid = '(1,1)';
419 -----------------------------------------------
421 Merge Cond: (t3.id = t4.id)
422 -> Index Scan using t3_pkey on t3
426 TID Cond: (ctid = '(1,1)'::tid)
430 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)';
439 ---------------------------------------
442 Filter: (ctid = '(1,1)'::tid)
443 -> Index Scan using t2_pkey on t2
444 Index Cond: (id = t1.id)
448 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
457 ------------------------------
459 Hash Cond: (t1.id = t2.id)
466 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
475 --------------------------------------
478 -> Index Scan using t1_pkey on t1
479 Index Cond: (id = t2.id)
482 /*+NoMergeJoin(t1 t2)*/
483 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
492 ------------------------------
494 Hash Cond: (t1.id = t2.id)
500 /*+MergeJoin(t1 t3)*/
501 EXPLAIN (COSTS false) SELECT * FROM t1, t3 WHERE t1.val = t3.val;
510 -------------------------------------
512 Merge Cond: (t1.val = t3.val)
513 -> Index Scan using t1_val on t1
520 EXPLAIN (COSTS false) SELECT * FROM t1, t3 WHERE t1.val = t3.val;
529 -------------------------------------
532 -> Index Scan using t1_val on t1
533 Index Cond: (val = t3.val)
536 /*+NoHashJoin(t1 t3)*/
537 EXPLAIN (COSTS false) SELECT * FROM t1, t3 WHERE t1.val = t3.val;
546 -------------------------------------
549 -> Index Scan using t1_val on t1
550 Index Cond: (val = t3.val)
553 /*+MergeJoin(t4 t1 t2 t3)*/
554 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
557 MergeJoin(t1 t2 t3 t4)
563 --------------------------------------------------
565 Merge Cond: (t1.id = t3.id)
567 Merge Cond: (t1.id = t2.id)
568 -> Index Scan using t1_pkey on t1
569 -> Index Scan using t2_pkey on t2
572 Merge Cond: (t3.id = t4.id)
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 = t3.id)
645 Merge Cond: (t1.id = t2.id)
646 -> Index Scan using t1_pkey on t1
647 -> Index Scan using t2_pkey on t2
650 Merge Cond: (t3.id = t4.id)
651 -> Index Scan using t3_pkey on t3
658 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
659 INFO: hint syntax error at or near ""
660 DETAIL: Closing parenthesis is necessary.
662 --------------------------------------------------
665 Merge Cond: (t1.id = t4.id)
667 Merge Cond: (t1.id = t2.id)
668 -> Index Scan using t1_pkey on t1
669 -> Index Scan using t2_pkey on t2
673 -> Index Scan using t3_pkey on t3
674 Index Cond: (id = t1.id)
678 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
679 INFO: hint syntax error at or near "Leading( )"
680 DETAIL: Leading hint requires at least two relations.
689 --------------------------------------------------
692 Merge Cond: (t1.id = t4.id)
694 Merge Cond: (t1.id = t2.id)
695 -> Index Scan using t1_pkey on t1
696 -> Index Scan using t2_pkey on t2
700 -> Index Scan using t3_pkey on t3
701 Index Cond: (id = t1.id)
705 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
706 INFO: hint syntax error at or near "Leading( t3 )"
707 DETAIL: Leading hint requires at least two relations.
716 --------------------------------------------------
719 Merge Cond: (t1.id = t4.id)
721 Merge Cond: (t1.id = t2.id)
722 -> Index Scan using t1_pkey on t1
723 -> Index Scan using t2_pkey on t2
727 -> Index Scan using t3_pkey on t3
728 Index Cond: (id = t1.id)
731 /*+Leading( t3 t4 )*/
732 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
741 --------------------------------------------------
745 Merge Cond: (t3.id = t4.id)
746 -> Index Scan using t3_pkey on t3
750 -> Index Scan using t2_pkey on t2
751 Index Cond: (id = t3.id)
752 -> Index Scan using t1_pkey on t1
753 Index Cond: (id = t2.id)
756 /*+Leading(t3 t4 t1)*/
757 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
766 --------------------------------------------------
769 Merge Cond: (t3.id = t1.id)
771 Merge Cond: (t3.id = t4.id)
772 -> Index Scan using t3_pkey on t3
776 -> Index Scan using t1_pkey on t1
777 -> Index Scan using t2_pkey on t2
778 Index Cond: (id = t1.id)
781 /*+Leading(t3 t4 t1 t2)*/
782 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
791 --------------------------------------------------
794 Merge Cond: (t3.id = t1.id)
796 Merge Cond: (t3.id = t4.id)
797 -> Index Scan using t3_pkey on t3
801 -> Index Scan using t1_pkey on t1
802 -> Index Scan using t2_pkey on t2
803 Index Cond: (id = t1.id)
806 /*+Leading(t3 t4 t1 t2 t1)*/
807 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
808 INFO: hint syntax error at or near "Leading(t3 t4 t1 t2 t1)"
809 DETAIL: Relation name "t1" is duplicated.
815 Leading(t3 t4 t1 t2 t1)
818 --------------------------------------------------
821 Merge Cond: (t1.id = t4.id)
823 Merge Cond: (t1.id = t2.id)
824 -> Index Scan using t1_pkey on t1
825 -> Index Scan using t2_pkey on t2
829 -> Index Scan using t3_pkey on t3
830 Index Cond: (id = t1.id)
833 /*+Leading(t3 t4 t4)*/
834 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
835 INFO: hint syntax error at or near "Leading(t3 t4 t4)"
836 DETAIL: Relation name "t4" is duplicated.
845 --------------------------------------------------
848 Merge Cond: (t1.id = t4.id)
850 Merge Cond: (t1.id = t2.id)
851 -> Index Scan using t1_pkey on t1
852 -> Index Scan using t2_pkey on t2
856 -> Index Scan using t3_pkey on t3
857 Index Cond: (id = t1.id)
860 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
862 -----------------------------------------------
864 -> Values Scan on "*VALUES*"
865 -> Index Scan using t1_pkey on t1
866 Index Cond: (id = "*VALUES*".column1)
870 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
879 -----------------------------------------------
881 -> Values Scan on "*VALUES*"
882 -> Index Scan using t1_pkey on t1
883 Index Cond: (id = "*VALUES*".column1)
886 /*+HashJoin(t1 *VALUES*)*/
887 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
890 HashJoin(*VALUES* t1)
896 -------------------------------------------
898 Hash Cond: (t1.id = "*VALUES*".column1)
901 -> Values Scan on "*VALUES*"
904 /*+HashJoin(t1 *VALUES*) IndexScan(t1) IndexScan(*VALUES*)*/
905 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
909 HashJoin(*VALUES* t1)
916 -------------------------------------------
918 Hash Cond: (t1.id = "*VALUES*".column1)
919 -> Index Scan using t1_pkey on t1
921 -> Values Scan on "*VALUES*"
924 -- single table scan hint test
925 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);
927 ------------------------------------------------------------------------
928 Index Only Scan using t1_pkey on t1
929 Index Cond: (id = $3)
930 InitPlan 2 (returns $1)
932 InitPlan 1 (returns $0)
934 -> Index Only Scan Backward using t1_pkey on t1 v_1
935 Index Cond: ((id IS NOT NULL) AND (id < 10))
936 InitPlan 4 (returns $3)
938 InitPlan 3 (returns $2)
940 -> Index Only Scan Backward using t1_pkey on t1 v_2
941 Index Cond: ((id IS NOT NULL) AND (id < 10))
945 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);
954 ------------------------------------------------------------------------
955 Index Only Scan using t1_pkey on t1
956 Index Cond: (id = $2)
957 InitPlan 1 (returns $0)
959 -> Bitmap Heap Scan on t1 v_1
960 Recheck Cond: (id < 10)
961 -> Bitmap Index Scan on t1_pkey
962 Index Cond: (id < 10)
963 InitPlan 3 (returns $2)
965 InitPlan 2 (returns $1)
967 -> Index Only Scan Backward using t1_pkey on t1 v_2
968 Index Cond: ((id IS NOT NULL) AND (id < 10))
972 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);
981 ------------------------------------------------------------------------
982 Index Only Scan using t1_pkey on t1
983 Index Cond: (id = $2)
984 InitPlan 2 (returns $1)
986 InitPlan 1 (returns $0)
988 -> Index Only Scan Backward using t1_pkey on t1 v_1
989 Index Cond: ((id IS NOT NULL) AND (id < 10))
990 InitPlan 3 (returns $2)
992 -> Bitmap Heap Scan on t1 v_2
993 Recheck Cond: (id < 10)
994 -> Bitmap Index Scan on t1_pkey
995 Index Cond: (id < 10)
999 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);
1008 ------------------------------------------------------------------------
1009 Bitmap Heap Scan on t1
1010 Recheck Cond: (id = $3)
1011 InitPlan 2 (returns $1)
1013 InitPlan 1 (returns $0)
1015 -> Index Only Scan Backward using t1_pkey on t1 v_1
1016 Index Cond: ((id IS NOT NULL) AND (id < 10))
1017 InitPlan 4 (returns $3)
1019 InitPlan 3 (returns $2)
1021 -> Index Only Scan Backward using t1_pkey on t1 v_2
1022 Index Cond: ((id IS NOT NULL) AND (id < 10))
1023 -> Bitmap Index Scan on t1_pkey
1024 Index Cond: (id = $3)
1027 /*+BitmapScan(v_1)BitmapScan(v_2)*/
1028 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);
1038 --------------------------------------------------
1039 Index Only Scan using t1_pkey on t1
1040 Index Cond: (id = $1)
1041 InitPlan 1 (returns $0)
1043 -> Bitmap Heap Scan on t1 v_1
1044 Recheck Cond: (id < 10)
1045 -> Bitmap Index Scan on t1_pkey
1046 Index Cond: (id < 10)
1047 InitPlan 2 (returns $1)
1049 -> Bitmap Heap Scan on t1 v_2
1050 Recheck Cond: (id < 10)
1051 -> Bitmap Index Scan on t1_pkey
1052 Index Cond: (id < 10)
1055 /*+BitmapScan(v_1)BitmapScan(t1)*/
1056 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);
1066 ------------------------------------------------------------------------
1067 Bitmap Heap Scan on t1
1068 Recheck Cond: (id = $2)
1069 InitPlan 1 (returns $0)
1071 -> Bitmap Heap Scan on t1 v_1
1072 Recheck Cond: (id < 10)
1073 -> Bitmap Index Scan on t1_pkey
1074 Index Cond: (id < 10)
1075 InitPlan 3 (returns $2)
1077 InitPlan 2 (returns $1)
1079 -> Index Only Scan Backward using t1_pkey on t1 v_2
1080 Index Cond: ((id IS NOT NULL) AND (id < 10))
1081 -> Bitmap Index Scan on t1_pkey
1082 Index Cond: (id = $2)
1085 /*+BitmapScan(v_2)BitmapScan(t1)*/
1086 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);
1096 ------------------------------------------------------------------------
1097 Bitmap Heap Scan on t1
1098 Recheck Cond: (id = $2)
1099 InitPlan 2 (returns $1)
1101 InitPlan 1 (returns $0)
1103 -> Index Only Scan Backward using t1_pkey on t1 v_1
1104 Index Cond: ((id IS NOT NULL) AND (id < 10))
1105 InitPlan 3 (returns $2)
1107 -> Bitmap Heap Scan on t1 v_2
1108 Recheck Cond: (id < 10)
1109 -> Bitmap Index Scan on t1_pkey
1110 Index Cond: (id < 10)
1111 -> Bitmap Index Scan on t1_pkey
1112 Index Cond: (id = $2)
1115 /*+BitmapScan(v_1)BitmapScan(v_2)BitmapScan(t1)*/
1116 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);
1127 --------------------------------------------------
1128 Bitmap Heap Scan on t1
1129 Recheck Cond: (id = $1)
1130 InitPlan 1 (returns $0)
1132 -> Bitmap Heap Scan on t1 v_1
1133 Recheck Cond: (id < 10)
1134 -> Bitmap Index Scan on t1_pkey
1135 Index Cond: (id < 10)
1136 InitPlan 2 (returns $1)
1138 -> Bitmap Heap Scan on t1 v_2
1139 Recheck Cond: (id < 10)
1140 -> Bitmap Index Scan on t1_pkey
1141 Index Cond: (id < 10)
1142 -> Bitmap Index Scan on t1_pkey
1143 Index Cond: (id = $1)
1146 -- full scan hint pattern test
1147 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1149 -----------------------------------
1151 TID Cond: (ctid = '(1,1)'::tid)
1156 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1165 -------------------------------------------------
1167 Filter: ((id < 10) AND (ctid = '(1,1)'::tid))
1171 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1180 ---------------------------------
1181 Index Scan using t1_pkey on t1
1182 Index Cond: (id < 10)
1183 Filter: (ctid = '(1,1)'::tid)
1187 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1196 ------------------------------------
1197 Bitmap Heap Scan on t1
1198 Recheck Cond: (id < 10)
1199 Filter: (ctid = '(1,1)'::tid)
1200 -> Bitmap Index Scan on t1_pkey
1201 Index Cond: (id < 10)
1205 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1214 -----------------------------------
1216 TID Cond: (ctid = '(1,1)'::tid)
1221 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1230 -----------------------------------
1232 TID Cond: (ctid = '(1,1)'::tid)
1236 /*+NoIndexScan(t1)*/
1237 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1246 -----------------------------------
1248 TID Cond: (ctid = '(1,1)'::tid)
1252 /*+NoBitmapScan(t1)*/
1253 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1262 -----------------------------------
1264 TID Cond: (ctid = '(1,1)'::tid)
1269 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1278 ---------------------------------
1279 Index Scan using t1_pkey on t1
1280 Index Cond: (id < 10)
1281 Filter: (ctid = '(1,1)'::tid)
1284 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1286 -----------------------------------------
1288 Join Filter: (t1.id = t2.id)
1290 TID Cond: (ctid = '(1,1)'::tid)
1292 TID Cond: (ctid = '(1,1)'::tid)
1296 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1305 -----------------------------------------
1307 Join Filter: (t1.id = t2.id)
1309 Filter: (ctid = '(1,1)'::tid)
1311 TID Cond: (ctid = '(1,1)'::tid)
1315 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1324 -----------------------------------------
1326 Join Filter: (t1.id = t2.id)
1328 TID Cond: (ctid = '(1,1)'::tid)
1330 Filter: (ctid = '(1,1)'::tid)
1333 /*+SeqScan(t1) SeqScan(t2)*/
1334 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1344 ---------------------------------------
1346 Join Filter: (t1.id = t2.id)
1348 Filter: (ctid = '(1,1)'::tid)
1350 Filter: (ctid = '(1,1)'::tid)
1353 /*+SeqScan(t1) IndexScan(t2)*/
1354 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1364 ---------------------------------------
1367 Filter: (ctid = '(1,1)'::tid)
1368 -> Index Scan using t2_pkey on t2
1369 Index Cond: (id = t1.id)
1370 Filter: (ctid = '(1,1)'::tid)
1373 /*+SeqScan(t1) BitmapScan(t2)*/
1374 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1384 ------------------------------------------
1387 Filter: (ctid = '(1,1)'::tid)
1388 -> Bitmap Heap Scan on t2
1389 Recheck Cond: (id = t1.id)
1390 Filter: (ctid = '(1,1)'::tid)
1391 -> Bitmap Index Scan on t2_pkey
1392 Index Cond: (id = t1.id)
1395 /*+SeqScan(t1) TidScan(t2)*/
1396 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1406 -----------------------------------------
1408 Join Filter: (t1.id = t2.id)
1410 Filter: (ctid = '(1,1)'::tid)
1412 TID Cond: (ctid = '(1,1)'::tid)
1415 /*+SeqScan(t1) NoSeqScan(t2)*/
1416 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1426 -----------------------------------------
1428 Join Filter: (t1.id = t2.id)
1430 Filter: (ctid = '(1,1)'::tid)
1432 TID Cond: (ctid = '(1,1)'::tid)
1435 /*+SeqScan(t1) NoIndexScan(t2)*/
1436 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1446 -----------------------------------------
1448 Join Filter: (t1.id = t2.id)
1450 Filter: (ctid = '(1,1)'::tid)
1452 TID Cond: (ctid = '(1,1)'::tid)
1455 /*+SeqScan(t1) NoBitmapScan(t2)*/
1456 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1466 -----------------------------------------
1468 Join Filter: (t1.id = t2.id)
1470 Filter: (ctid = '(1,1)'::tid)
1472 TID Cond: (ctid = '(1,1)'::tid)
1475 /*+SeqScan(t1) NoTidScan(t2)*/
1476 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1486 ---------------------------------------
1489 Filter: (ctid = '(1,1)'::tid)
1490 -> Index Scan using t2_pkey on t2
1491 Index Cond: (id = t1.id)
1492 Filter: (ctid = '(1,1)'::tid)
1496 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1505 -----------------------------------------
1508 TID Cond: (ctid = '(1,1)'::tid)
1509 -> Index Scan using t1_pkey on t1
1510 Index Cond: (id = t2.id)
1511 Filter: (ctid = '(1,1)'::tid)
1515 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1524 -----------------------------------------
1527 TID Cond: (ctid = '(1,1)'::tid)
1528 -> Index Scan using t2_pkey on t2
1529 Index Cond: (id = t1.id)
1530 Filter: (ctid = '(1,1)'::tid)
1533 /*+IndexScan(t1) SeqScan(t2)*/
1534 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1544 ---------------------------------------
1547 Filter: (ctid = '(1,1)'::tid)
1548 -> Index Scan using t1_pkey on t1
1549 Index Cond: (id = t2.id)
1550 Filter: (ctid = '(1,1)'::tid)
1553 /*+IndexScan(t1) IndexScan(t2)*/
1554 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1564 ---------------------------------------
1566 -> Index Scan using t2_pkey on t2
1567 Filter: (ctid = '(1,1)'::tid)
1568 -> Index Scan using t1_pkey on t1
1569 Index Cond: (id = t2.id)
1570 Filter: (ctid = '(1,1)'::tid)
1573 /*+IndexScan(t1) BitmapScan(t2)*/
1574 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1584 ------------------------------------------
1586 -> Index Scan using t1_pkey on t1
1587 Filter: (ctid = '(1,1)'::tid)
1588 -> Bitmap Heap Scan on t2
1589 Recheck Cond: (id = t1.id)
1590 Filter: (ctid = '(1,1)'::tid)
1591 -> Bitmap Index Scan on t2_pkey
1592 Index Cond: (id = t1.id)
1595 /*+IndexScan(t1) TidScan(t2)*/
1596 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1606 -----------------------------------------
1609 TID Cond: (ctid = '(1,1)'::tid)
1610 -> Index Scan using t1_pkey on t1
1611 Index Cond: (id = t2.id)
1612 Filter: (ctid = '(1,1)'::tid)
1615 /*+IndexScan(t1) NoSeqScan(t2)*/
1616 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1626 -----------------------------------------
1629 TID Cond: (ctid = '(1,1)'::tid)
1630 -> Index Scan using t1_pkey on t1
1631 Index Cond: (id = t2.id)
1632 Filter: (ctid = '(1,1)'::tid)
1635 /*+IndexScan(t1) NoIndexScan(t2)*/
1636 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1646 -----------------------------------------
1649 TID Cond: (ctid = '(1,1)'::tid)
1650 -> Index Scan using t1_pkey on t1
1651 Index Cond: (id = t2.id)
1652 Filter: (ctid = '(1,1)'::tid)
1655 /*+IndexScan(t1) NoBitmapScan(t2)*/
1656 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1666 -----------------------------------------
1669 TID Cond: (ctid = '(1,1)'::tid)
1670 -> Index Scan using t1_pkey on t1
1671 Index Cond: (id = t2.id)
1672 Filter: (ctid = '(1,1)'::tid)
1675 /*+IndexScan(t1) NoTidScan(t2)*/
1676 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1686 ---------------------------------------
1689 Filter: (ctid = '(1,1)'::tid)
1690 -> Index Scan using t1_pkey on t1
1691 Index Cond: (id = t2.id)
1692 Filter: (ctid = '(1,1)'::tid)
1696 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1705 ------------------------------------------
1708 TID Cond: (ctid = '(1,1)'::tid)
1709 -> Bitmap Heap Scan on t1
1710 Recheck Cond: (id = t2.id)
1711 Filter: (ctid = '(1,1)'::tid)
1712 -> Bitmap Index Scan on t1_pkey
1713 Index Cond: (id = t2.id)
1717 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1726 ------------------------------------------
1729 TID Cond: (ctid = '(1,1)'::tid)
1730 -> Bitmap Heap Scan on t2
1731 Recheck Cond: (id = t1.id)
1732 Filter: (ctid = '(1,1)'::tid)
1733 -> Bitmap Index Scan on t2_pkey
1734 Index Cond: (id = t1.id)
1738 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1747 ------------------------------------------
1750 TID Cond: (ctid = '(1,1)'::tid)
1751 -> Bitmap Heap Scan on t2
1752 Recheck Cond: (id = t1.id)
1753 Filter: (ctid = '(1,1)'::tid)
1754 -> Bitmap Index Scan on t2_pkey
1755 Index Cond: (id = t1.id)
1758 /*+BitmapScan(t1) SeqScan(t2)*/
1759 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1769 ------------------------------------------
1772 Filter: (ctid = '(1,1)'::tid)
1773 -> Bitmap Heap Scan on t1
1774 Recheck Cond: (id = t2.id)
1775 Filter: (ctid = '(1,1)'::tid)
1776 -> Bitmap Index Scan on t1_pkey
1777 Index Cond: (id = t2.id)
1780 /*+BitmapScan(t1) IndexScan(t2)*/
1781 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1791 ------------------------------------------
1793 -> Index Scan using t2_pkey on t2
1794 Filter: (ctid = '(1,1)'::tid)
1795 -> Bitmap Heap Scan on t1
1796 Recheck Cond: (id = t2.id)
1797 Filter: (ctid = '(1,1)'::tid)
1798 -> Bitmap Index Scan on t1_pkey
1799 Index Cond: (id = t2.id)
1802 /*+BitmapScan(t1) BitmapScan(t2)*/
1803 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1813 ------------------------------------------
1815 -> Index Scan using t2_pkey on t2
1816 Filter: (ctid = '(1,1)'::tid)
1817 -> Bitmap Heap Scan on t1
1818 Recheck Cond: (id = t2.id)
1819 Filter: (ctid = '(1,1)'::tid)
1820 -> Bitmap Index Scan on t1_pkey
1821 Index Cond: (id = t2.id)
1824 /*+BitmapScan(t1) TidScan(t2)*/
1825 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1835 ------------------------------------------
1838 TID Cond: (ctid = '(1,1)'::tid)
1839 -> Bitmap Heap Scan on t1
1840 Recheck Cond: (id = t2.id)
1841 Filter: (ctid = '(1,1)'::tid)
1842 -> Bitmap Index Scan on t1_pkey
1843 Index Cond: (id = t2.id)
1846 /*+BitmapScan(t1) NoSeqScan(t2)*/
1847 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1857 ------------------------------------------
1860 TID Cond: (ctid = '(1,1)'::tid)
1861 -> Bitmap Heap Scan on t1
1862 Recheck Cond: (id = t2.id)
1863 Filter: (ctid = '(1,1)'::tid)
1864 -> Bitmap Index Scan on t1_pkey
1865 Index Cond: (id = t2.id)
1868 /*+BitmapScan(t1) NoIndexScan(t2)*/
1869 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1879 ------------------------------------------
1882 TID Cond: (ctid = '(1,1)'::tid)
1883 -> Bitmap Heap Scan on t1
1884 Recheck Cond: (id = t2.id)
1885 Filter: (ctid = '(1,1)'::tid)
1886 -> Bitmap Index Scan on t1_pkey
1887 Index Cond: (id = t2.id)
1890 /*+BitmapScan(t1) NoBitmapScan(t2)*/
1891 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1901 ------------------------------------------
1904 TID Cond: (ctid = '(1,1)'::tid)
1905 -> Bitmap Heap Scan on t1
1906 Recheck Cond: (id = t2.id)
1907 Filter: (ctid = '(1,1)'::tid)
1908 -> Bitmap Index Scan on t1_pkey
1909 Index Cond: (id = t2.id)
1912 /*+BitmapScan(t1) NoTidScan(t2)*/
1913 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1923 ------------------------------------------
1926 Filter: (ctid = '(1,1)'::tid)
1927 -> Bitmap Heap Scan on t1
1928 Recheck Cond: (id = t2.id)
1929 Filter: (ctid = '(1,1)'::tid)
1930 -> Bitmap Index Scan on t1_pkey
1931 Index Cond: (id = t2.id)
1935 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1944 -----------------------------------------
1946 Join Filter: (t1.id = t2.id)
1948 TID Cond: (ctid = '(1,1)'::tid)
1950 TID Cond: (ctid = '(1,1)'::tid)
1954 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1963 -----------------------------------------
1965 Join Filter: (t1.id = t2.id)
1967 TID Cond: (ctid = '(1,1)'::tid)
1969 TID Cond: (ctid = '(1,1)'::tid)
1972 /*+TidScan(t1) SeqScan(t2)*/
1973 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1983 -----------------------------------------
1985 Join Filter: (t1.id = t2.id)
1987 TID Cond: (ctid = '(1,1)'::tid)
1989 Filter: (ctid = '(1,1)'::tid)
1992 /*+TidScan(t1) IndexScan(t2)*/
1993 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2003 -----------------------------------------
2006 TID Cond: (ctid = '(1,1)'::tid)
2007 -> Index Scan using t2_pkey on t2
2008 Index Cond: (id = t1.id)
2009 Filter: (ctid = '(1,1)'::tid)
2012 /*+TidScan(t1) BitmapScan(t2)*/
2013 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2023 ------------------------------------------
2026 TID Cond: (ctid = '(1,1)'::tid)
2027 -> Bitmap Heap Scan on t2
2028 Recheck Cond: (id = t1.id)
2029 Filter: (ctid = '(1,1)'::tid)
2030 -> Bitmap Index Scan on t2_pkey
2031 Index Cond: (id = t1.id)
2034 /*+TidScan(t1) TidScan(t2)*/
2035 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2045 -----------------------------------------
2047 Join Filter: (t1.id = t2.id)
2049 TID Cond: (ctid = '(1,1)'::tid)
2051 TID Cond: (ctid = '(1,1)'::tid)
2054 /*+TidScan(t1) NoSeqScan(t2)*/
2055 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2065 -----------------------------------------
2067 Join Filter: (t1.id = t2.id)
2069 TID Cond: (ctid = '(1,1)'::tid)
2071 TID Cond: (ctid = '(1,1)'::tid)
2074 /*+TidScan(t1) NoIndexScan(t2)*/
2075 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2085 -----------------------------------------
2087 Join Filter: (t1.id = t2.id)
2089 TID Cond: (ctid = '(1,1)'::tid)
2091 TID Cond: (ctid = '(1,1)'::tid)
2094 /*+TidScan(t1) NoBitmapScan(t2)*/
2095 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2105 -----------------------------------------
2107 Join Filter: (t1.id = t2.id)
2109 TID Cond: (ctid = '(1,1)'::tid)
2111 TID Cond: (ctid = '(1,1)'::tid)
2114 /*+TidScan(t1) NoTidScan(t2)*/
2115 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2125 -----------------------------------------
2128 TID Cond: (ctid = '(1,1)'::tid)
2129 -> Index Scan using t2_pkey on t2
2130 Index Cond: (id = t1.id)
2131 Filter: (ctid = '(1,1)'::tid)
2135 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2144 -----------------------------------------
2146 Join Filter: (t1.id = t2.id)
2148 TID Cond: (ctid = '(1,1)'::tid)
2150 TID Cond: (ctid = '(1,1)'::tid)
2154 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2163 -----------------------------------------
2165 Join Filter: (t1.id = t2.id)
2167 TID Cond: (ctid = '(1,1)'::tid)
2169 TID Cond: (ctid = '(1,1)'::tid)
2172 /*+NoSeqScan(t1) SeqScan(t2)*/
2173 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2183 -----------------------------------------
2185 Join Filter: (t1.id = t2.id)
2187 TID Cond: (ctid = '(1,1)'::tid)
2189 Filter: (ctid = '(1,1)'::tid)
2192 /*+NoSeqScan(t1) IndexScan(t2)*/
2193 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2203 -----------------------------------------
2206 TID Cond: (ctid = '(1,1)'::tid)
2207 -> Index Scan using t2_pkey on t2
2208 Index Cond: (id = t1.id)
2209 Filter: (ctid = '(1,1)'::tid)
2212 /*+NoSeqScan(t1) BitmapScan(t2)*/
2213 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2223 ------------------------------------------
2226 TID Cond: (ctid = '(1,1)'::tid)
2227 -> Bitmap Heap Scan on t2
2228 Recheck Cond: (id = t1.id)
2229 Filter: (ctid = '(1,1)'::tid)
2230 -> Bitmap Index Scan on t2_pkey
2231 Index Cond: (id = t1.id)
2234 /*+NoSeqScan(t1) TidScan(t2)*/
2235 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2245 -----------------------------------------
2247 Join Filter: (t1.id = t2.id)
2249 TID Cond: (ctid = '(1,1)'::tid)
2251 TID Cond: (ctid = '(1,1)'::tid)
2254 /*+NoSeqScan(t1) NoSeqScan(t2)*/
2255 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2265 -----------------------------------------
2267 Join Filter: (t1.id = t2.id)
2269 TID Cond: (ctid = '(1,1)'::tid)
2271 TID Cond: (ctid = '(1,1)'::tid)
2274 /*+NoSeqScan(t1) NoIndexScan(t2)*/
2275 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2285 -----------------------------------------
2287 Join Filter: (t1.id = t2.id)
2289 TID Cond: (ctid = '(1,1)'::tid)
2291 TID Cond: (ctid = '(1,1)'::tid)
2294 /*+NoSeqScan(t1) NoBitmapScan(t2)*/
2295 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2305 -----------------------------------------
2307 Join Filter: (t1.id = t2.id)
2309 TID Cond: (ctid = '(1,1)'::tid)
2311 TID Cond: (ctid = '(1,1)'::tid)
2314 /*+NoSeqScan(t1) NoTidScan(t2)*/
2315 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2325 -----------------------------------------
2328 TID Cond: (ctid = '(1,1)'::tid)
2329 -> Index Scan using t2_pkey on t2
2330 Index Cond: (id = t1.id)
2331 Filter: (ctid = '(1,1)'::tid)
2334 /*+NoIndexScan(t1)*/
2335 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2344 -----------------------------------------
2346 Join Filter: (t1.id = t2.id)
2348 TID Cond: (ctid = '(1,1)'::tid)
2350 TID Cond: (ctid = '(1,1)'::tid)
2353 /*+NoIndexScan(t2)*/
2354 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2363 -----------------------------------------
2365 Join Filter: (t1.id = t2.id)
2367 TID Cond: (ctid = '(1,1)'::tid)
2369 TID Cond: (ctid = '(1,1)'::tid)
2372 /*+NoIndexScan(t1) SeqScan(t2)*/
2373 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2383 -----------------------------------------
2385 Join Filter: (t1.id = t2.id)
2387 TID Cond: (ctid = '(1,1)'::tid)
2389 Filter: (ctid = '(1,1)'::tid)
2392 /*+NoIndexScan(t1) IndexScan(t2)*/
2393 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2403 -----------------------------------------
2406 TID Cond: (ctid = '(1,1)'::tid)
2407 -> Index Scan using t2_pkey on t2
2408 Index Cond: (id = t1.id)
2409 Filter: (ctid = '(1,1)'::tid)
2412 /*+NoIndexScan(t1) BitmapScan(t2)*/
2413 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2423 ------------------------------------------
2426 TID Cond: (ctid = '(1,1)'::tid)
2427 -> Bitmap Heap Scan on t2
2428 Recheck Cond: (id = t1.id)
2429 Filter: (ctid = '(1,1)'::tid)
2430 -> Bitmap Index Scan on t2_pkey
2431 Index Cond: (id = t1.id)
2434 /*+NoIndexScan(t1) TidScan(t2)*/
2435 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2445 -----------------------------------------
2447 Join Filter: (t1.id = t2.id)
2449 TID Cond: (ctid = '(1,1)'::tid)
2451 TID Cond: (ctid = '(1,1)'::tid)
2454 /*+NoIndexScan(t1) NoSeqScan(t2)*/
2455 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2465 -----------------------------------------
2467 Join Filter: (t1.id = t2.id)
2469 TID Cond: (ctid = '(1,1)'::tid)
2471 TID Cond: (ctid = '(1,1)'::tid)
2474 /*+NoIndexScan(t1) NoIndexScan(t2)*/
2475 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2485 -----------------------------------------
2487 Join Filter: (t1.id = t2.id)
2489 TID Cond: (ctid = '(1,1)'::tid)
2491 TID Cond: (ctid = '(1,1)'::tid)
2494 /*+NoIndexScan(t1) NoBitmapScan(t2)*/
2495 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2505 -----------------------------------------
2507 Join Filter: (t1.id = t2.id)
2509 TID Cond: (ctid = '(1,1)'::tid)
2511 TID Cond: (ctid = '(1,1)'::tid)
2514 /*+NoIndexScan(t1) NoTidScan(t2)*/
2515 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2525 -----------------------------------------
2528 TID Cond: (ctid = '(1,1)'::tid)
2529 -> Index Scan using t2_pkey on t2
2530 Index Cond: (id = t1.id)
2531 Filter: (ctid = '(1,1)'::tid)
2534 /*+NoBitmapScan(t1)*/
2535 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2544 -----------------------------------------
2546 Join Filter: (t1.id = t2.id)
2548 TID Cond: (ctid = '(1,1)'::tid)
2550 TID Cond: (ctid = '(1,1)'::tid)
2553 /*+NoBitmapScan(t2)*/
2554 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2563 -----------------------------------------
2565 Join Filter: (t1.id = t2.id)
2567 TID Cond: (ctid = '(1,1)'::tid)
2569 TID Cond: (ctid = '(1,1)'::tid)
2572 /*+NoBitmapScan(t1) SeqScan(t2)*/
2573 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2583 -----------------------------------------
2585 Join Filter: (t1.id = t2.id)
2587 TID Cond: (ctid = '(1,1)'::tid)
2589 Filter: (ctid = '(1,1)'::tid)
2592 /*+NoBitmapScan(t1) IndexScan(t2)*/
2593 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2603 -----------------------------------------
2606 TID Cond: (ctid = '(1,1)'::tid)
2607 -> Index Scan using t2_pkey on t2
2608 Index Cond: (id = t1.id)
2609 Filter: (ctid = '(1,1)'::tid)
2612 /*+NoBitmapScan(t1) BitmapScan(t2)*/
2613 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2623 ------------------------------------------
2626 TID Cond: (ctid = '(1,1)'::tid)
2627 -> Bitmap Heap Scan on t2
2628 Recheck Cond: (id = t1.id)
2629 Filter: (ctid = '(1,1)'::tid)
2630 -> Bitmap Index Scan on t2_pkey
2631 Index Cond: (id = t1.id)
2634 /*+NoBitmapScan(t1) TidScan(t2)*/
2635 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2645 -----------------------------------------
2647 Join Filter: (t1.id = t2.id)
2649 TID Cond: (ctid = '(1,1)'::tid)
2651 TID Cond: (ctid = '(1,1)'::tid)
2654 /*+NoBitmapScan(t1) NoSeqScan(t2)*/
2655 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2665 -----------------------------------------
2667 Join Filter: (t1.id = t2.id)
2669 TID Cond: (ctid = '(1,1)'::tid)
2671 TID Cond: (ctid = '(1,1)'::tid)
2674 /*+NoBitmapScan(t1) NoIndexScan(t2)*/
2675 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2685 -----------------------------------------
2687 Join Filter: (t1.id = t2.id)
2689 TID Cond: (ctid = '(1,1)'::tid)
2691 TID Cond: (ctid = '(1,1)'::tid)
2694 /*+NoBitmapScan(t1) NoBitmapScan(t2)*/
2695 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2705 -----------------------------------------
2707 Join Filter: (t1.id = t2.id)
2709 TID Cond: (ctid = '(1,1)'::tid)
2711 TID Cond: (ctid = '(1,1)'::tid)
2714 /*+NoBitmapScan(t1) NoTidScan(t2)*/
2715 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2725 -----------------------------------------
2728 TID Cond: (ctid = '(1,1)'::tid)
2729 -> Index Scan using t2_pkey on t2
2730 Index Cond: (id = t1.id)
2731 Filter: (ctid = '(1,1)'::tid)
2735 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2744 -----------------------------------------
2747 TID Cond: (ctid = '(1,1)'::tid)
2748 -> Index Scan using t1_pkey on t1
2749 Index Cond: (id = t2.id)
2750 Filter: (ctid = '(1,1)'::tid)
2754 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2763 -----------------------------------------
2766 TID Cond: (ctid = '(1,1)'::tid)
2767 -> Index Scan using t2_pkey on t2
2768 Index Cond: (id = t1.id)
2769 Filter: (ctid = '(1,1)'::tid)
2772 /*+NoTidScan(t1) SeqScan(t2)*/
2773 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2783 ---------------------------------------
2786 Filter: (ctid = '(1,1)'::tid)
2787 -> Index Scan using t1_pkey on t1
2788 Index Cond: (id = t2.id)
2789 Filter: (ctid = '(1,1)'::tid)
2792 /*+NoTidScan(t1) IndexScan(t2)*/
2793 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2803 ---------------------------------------
2805 -> Index Scan using t2_pkey on t2
2806 Filter: (ctid = '(1,1)'::tid)
2807 -> Index Scan using t1_pkey on t1
2808 Index Cond: (id = t2.id)
2809 Filter: (ctid = '(1,1)'::tid)
2812 /*+NoTidScan(t1) BitmapScan(t2)*/
2813 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2823 ------------------------------------------
2826 Filter: (ctid = '(1,1)'::tid)
2827 -> Bitmap Heap Scan on t2
2828 Recheck Cond: (id = t1.id)
2829 Filter: (ctid = '(1,1)'::tid)
2830 -> Bitmap Index Scan on t2_pkey
2831 Index Cond: (id = t1.id)
2834 /*+NoTidScan(t1) TidScan(t2)*/
2835 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2845 -----------------------------------------
2848 TID Cond: (ctid = '(1,1)'::tid)
2849 -> Index Scan using t1_pkey on t1
2850 Index Cond: (id = t2.id)
2851 Filter: (ctid = '(1,1)'::tid)
2854 /*+NoTidScan(t1) NoSeqScan(t2)*/
2855 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2865 -----------------------------------------
2868 TID Cond: (ctid = '(1,1)'::tid)
2869 -> Index Scan using t1_pkey on t1
2870 Index Cond: (id = t2.id)
2871 Filter: (ctid = '(1,1)'::tid)
2874 /*+NoTidScan(t1) NoIndexScan(t2)*/
2875 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2885 -----------------------------------------
2888 TID Cond: (ctid = '(1,1)'::tid)
2889 -> Index Scan using t1_pkey on t1
2890 Index Cond: (id = t2.id)
2891 Filter: (ctid = '(1,1)'::tid)
2894 /*+NoTidScan(t1) NoBitmapScan(t2)*/
2895 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2905 -----------------------------------------
2908 TID Cond: (ctid = '(1,1)'::tid)
2909 -> Index Scan using t1_pkey on t1
2910 Index Cond: (id = t2.id)
2911 Filter: (ctid = '(1,1)'::tid)
2914 /*+NoTidScan(t1) NoTidScan(t2)*/
2915 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2925 ---------------------------------------
2928 Filter: (ctid = '(1,1)'::tid)
2929 -> Index Scan using t1_pkey on t1
2930 Index Cond: (id = t2.id)
2931 Filter: (ctid = '(1,1)'::tid)
2935 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;
2937 -----------------------------------------
2939 Join Filter: (t1.id = t2.id)
2941 TID Cond: (ctid = '(1,1)'::tid)
2944 TID Cond: (ctid = '(1,1)'::tid)
2948 /*+BitmapScan(t1) BitmapScan(t2)*/
2949 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;
2959 --------------------------------------------------------
2961 -> Bitmap Heap Scan on t2
2962 Recheck Cond: (id < 10)
2963 Filter: (ctid = '(1,1)'::tid)
2964 -> Bitmap Index Scan on t2_pkey
2965 Index Cond: (id < 10)
2966 -> Bitmap Heap Scan on t1
2967 Recheck Cond: ((id = t2.id) AND (id < 10))
2968 Filter: (ctid = '(1,1)'::tid)
2969 -> Bitmap Index Scan on t1_pkey
2970 Index Cond: ((id = t2.id) AND (id < 10))
2974 EXPLAIN (COSTS false) SELECT * FROM t1 FULL OUTER JOIN t2 ON (t1.id = t2.id);
2976 ------------------------------
2978 Hash Cond: (t1.id = t2.id)
2984 /*+MergeJoin(t1 t2)*/
2985 EXPLAIN (COSTS false) SELECT * FROM t1 FULL OUTER JOIN t2 ON (t1.id = t2.id);
2994 --------------------------------------
2996 Merge Cond: (t1.id = t2.id)
2997 -> Index Scan using t1_pkey on t1
2998 -> Index Scan using t2_pkey on t2
3001 /*+NestLoop(t1 t2)*/
3002 EXPLAIN (COSTS false) SELECT * FROM t1 FULL OUTER JOIN t2 ON (t1.id = t2.id);
3011 ------------------------------
3013 Hash Cond: (t1.id = t2.id)
3019 -- inherite table test
3020 SET constraint_exclusion TO off;
3021 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3023 -----------------------------------------------------------------------
3026 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3027 -> Seq Scan on p1_c1
3028 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3029 -> Seq Scan on p1_c2
3030 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3031 -> Seq Scan on p1_c3
3032 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3033 -> Seq Scan on p1_c4
3034 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3035 -> Seq Scan on p1_c1_c1
3036 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3037 -> Seq Scan on p1_c1_c2
3038 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3039 -> Seq Scan on p1_c3_c1
3040 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3041 -> Seq Scan on p1_c3_c2
3042 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3045 SET constraint_exclusion TO on;
3046 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3048 -----------------------------------------------------------------------
3051 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3052 -> Seq Scan on p1_c1
3053 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3054 -> Seq Scan on p1_c1_c1
3055 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3056 -> Seq Scan on p1_c1_c2
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 -----------------------------------------------------------------------
3074 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3075 -> Seq Scan on p1_c1
3076 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3077 -> Seq Scan on p1_c2
3078 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3079 -> Seq Scan on p1_c3
3080 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3081 -> Seq Scan on p1_c4
3082 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3083 -> Seq Scan on p1_c1_c1
3084 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3085 -> Seq Scan on p1_c1_c2
3086 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3087 -> Seq Scan on p1_c3_c1
3088 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3089 -> Seq Scan on p1_c3_c2
3090 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3094 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3103 --------------------------------------------------
3105 -> Index Scan using p1_pkey on p1
3106 Index Cond: ((id >= 50) AND (id <= 51))
3107 Filter: (ctid = '(1,1)'::tid)
3108 -> Index Scan using p1_c1_pkey on p1_c1
3109 Index Cond: ((id >= 50) AND (id <= 51))
3110 Filter: (ctid = '(1,1)'::tid)
3111 -> Index Scan using p1_c2_pkey on p1_c2
3112 Index Cond: ((id >= 50) AND (id <= 51))
3113 Filter: (ctid = '(1,1)'::tid)
3114 -> Index Scan using p1_c3_pkey on p1_c3
3115 Index Cond: ((id >= 50) AND (id <= 51))
3116 Filter: (ctid = '(1,1)'::tid)
3117 -> Index Scan using p1_c4_pkey on p1_c4
3118 Index Cond: ((id >= 50) AND (id <= 51))
3119 Filter: (ctid = '(1,1)'::tid)
3120 -> Index Scan using p1_c1_c1_pkey on p1_c1_c1
3121 Index Cond: ((id >= 50) AND (id <= 51))
3122 Filter: (ctid = '(1,1)'::tid)
3123 -> Index Scan using p1_c1_c2_pkey on p1_c1_c2
3124 Index Cond: ((id >= 50) AND (id <= 51))
3125 Filter: (ctid = '(1,1)'::tid)
3126 -> Index Scan using p1_c3_c1_pkey on p1_c3_c1
3127 Index Cond: ((id >= 50) AND (id <= 51))
3128 Filter: (ctid = '(1,1)'::tid)
3129 -> Index Scan using p1_c3_c2_pkey on p1_c3_c2
3130 Index Cond: ((id >= 50) AND (id <= 51))
3131 Filter: (ctid = '(1,1)'::tid)
3135 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3144 -------------------------------------------------------
3146 -> Bitmap Heap Scan on p1
3147 Recheck Cond: ((id >= 50) AND (id <= 51))
3148 Filter: (ctid = '(1,1)'::tid)
3149 -> Bitmap Index Scan on p1_pkey
3150 Index Cond: ((id >= 50) AND (id <= 51))
3151 -> Bitmap Heap Scan on p1_c1
3152 Recheck Cond: ((id >= 50) AND (id <= 51))
3153 Filter: (ctid = '(1,1)'::tid)
3154 -> Bitmap Index Scan on p1_c1_pkey
3155 Index Cond: ((id >= 50) AND (id <= 51))
3156 -> Bitmap Heap Scan on p1_c2
3157 Recheck Cond: ((id >= 50) AND (id <= 51))
3158 Filter: (ctid = '(1,1)'::tid)
3159 -> Bitmap Index Scan on p1_c2_pkey
3160 Index Cond: ((id >= 50) AND (id <= 51))
3161 -> Bitmap Heap Scan on p1_c3
3162 Recheck Cond: ((id >= 50) AND (id <= 51))
3163 Filter: (ctid = '(1,1)'::tid)
3164 -> Bitmap Index Scan on p1_c3_pkey
3165 Index Cond: ((id >= 50) AND (id <= 51))
3166 -> Bitmap Heap Scan on p1_c4
3167 Recheck Cond: ((id >= 50) AND (id <= 51))
3168 Filter: (ctid = '(1,1)'::tid)
3169 -> Bitmap Index Scan on p1_c4_pkey
3170 Index Cond: ((id >= 50) AND (id <= 51))
3171 -> Bitmap Heap Scan on p1_c1_c1
3172 Recheck Cond: ((id >= 50) AND (id <= 51))
3173 Filter: (ctid = '(1,1)'::tid)
3174 -> Bitmap Index Scan on p1_c1_c1_pkey
3175 Index Cond: ((id >= 50) AND (id <= 51))
3176 -> Bitmap Heap Scan on p1_c1_c2
3177 Recheck Cond: ((id >= 50) AND (id <= 51))
3178 Filter: (ctid = '(1,1)'::tid)
3179 -> Bitmap Index Scan on p1_c1_c2_pkey
3180 Index Cond: ((id >= 50) AND (id <= 51))
3181 -> Bitmap Heap Scan on p1_c3_c1
3182 Recheck Cond: ((id >= 50) AND (id <= 51))
3183 Filter: (ctid = '(1,1)'::tid)
3184 -> Bitmap Index Scan on p1_c3_c1_pkey
3185 Index Cond: ((id >= 50) AND (id <= 51))
3186 -> Bitmap Heap Scan on p1_c3_c2
3187 Recheck Cond: ((id >= 50) AND (id <= 51))
3188 Filter: (ctid = '(1,1)'::tid)
3189 -> Bitmap Index Scan on p1_c3_c2_pkey
3190 Index Cond: ((id >= 50) AND (id <= 51))
3194 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3203 ---------------------------------------------
3206 TID Cond: (ctid = '(1,1)'::tid)
3207 Filter: ((id >= 50) AND (id <= 51))
3208 -> Tid Scan on p1_c1
3209 TID Cond: (ctid = '(1,1)'::tid)
3210 Filter: ((id >= 50) AND (id <= 51))
3211 -> Tid Scan on p1_c2
3212 TID Cond: (ctid = '(1,1)'::tid)
3213 Filter: ((id >= 50) AND (id <= 51))
3214 -> Tid Scan on p1_c3
3215 TID Cond: (ctid = '(1,1)'::tid)
3216 Filter: ((id >= 50) AND (id <= 51))
3217 -> Tid Scan on p1_c4
3218 TID Cond: (ctid = '(1,1)'::tid)
3219 Filter: ((id >= 50) AND (id <= 51))
3220 -> Tid Scan on p1_c1_c1
3221 TID Cond: (ctid = '(1,1)'::tid)
3222 Filter: ((id >= 50) AND (id <= 51))
3223 -> Tid Scan on p1_c1_c2
3224 TID Cond: (ctid = '(1,1)'::tid)
3225 Filter: ((id >= 50) AND (id <= 51))
3226 -> Tid Scan on p1_c3_c1
3227 TID Cond: (ctid = '(1,1)'::tid)
3228 Filter: ((id >= 50) AND (id <= 51))
3229 -> Tid Scan on p1_c3_c2
3230 TID Cond: (ctid = '(1,1)'::tid)
3231 Filter: ((id >= 50) AND (id <= 51))
3234 SET constraint_exclusion TO on;
3236 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3245 -----------------------------------------------------------------------
3248 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3249 -> Seq Scan on p1_c1
3250 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3251 -> Seq Scan on p1_c1_c1
3252 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3253 -> Seq Scan on p1_c1_c2
3254 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3258 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3267 --------------------------------------------------
3269 -> Index Scan using p1_pkey on p1
3270 Index Cond: ((id >= 50) AND (id <= 51))
3271 Filter: (ctid = '(1,1)'::tid)
3272 -> Index Scan using p1_c1_pkey on p1_c1
3273 Index Cond: ((id >= 50) AND (id <= 51))
3274 Filter: (ctid = '(1,1)'::tid)
3275 -> Index Scan using p1_c1_c1_pkey on p1_c1_c1
3276 Index Cond: ((id >= 50) AND (id <= 51))
3277 Filter: (ctid = '(1,1)'::tid)
3278 -> Index Scan using p1_c1_c2_pkey on p1_c1_c2
3279 Index Cond: ((id >= 50) AND (id <= 51))
3280 Filter: (ctid = '(1,1)'::tid)
3284 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3293 -------------------------------------------------------
3295 -> Bitmap Heap Scan on p1
3296 Recheck Cond: ((id >= 50) AND (id <= 51))
3297 Filter: (ctid = '(1,1)'::tid)
3298 -> Bitmap Index Scan on p1_pkey
3299 Index Cond: ((id >= 50) AND (id <= 51))
3300 -> Bitmap Heap Scan on p1_c1
3301 Recheck Cond: ((id >= 50) AND (id <= 51))
3302 Filter: (ctid = '(1,1)'::tid)
3303 -> Bitmap Index Scan on p1_c1_pkey
3304 Index Cond: ((id >= 50) AND (id <= 51))
3305 -> Bitmap Heap Scan on p1_c1_c1
3306 Recheck Cond: ((id >= 50) AND (id <= 51))
3307 Filter: (ctid = '(1,1)'::tid)
3308 -> Bitmap Index Scan on p1_c1_c1_pkey
3309 Index Cond: ((id >= 50) AND (id <= 51))
3310 -> Bitmap Heap Scan on p1_c1_c2
3311 Recheck Cond: ((id >= 50) AND (id <= 51))
3312 Filter: (ctid = '(1,1)'::tid)
3313 -> Bitmap Index Scan on p1_c1_c2_pkey
3314 Index Cond: ((id >= 50) AND (id <= 51))
3318 EXPLAIN (COSTS false) SELECT * FROM p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3327 ---------------------------------------------
3330 TID Cond: (ctid = '(1,1)'::tid)
3331 Filter: ((id >= 50) AND (id <= 51))
3332 -> Tid Scan on p1_c1
3333 TID Cond: (ctid = '(1,1)'::tid)
3334 Filter: ((id >= 50) AND (id <= 51))
3335 -> Tid Scan on p1_c1_c1
3336 TID Cond: (ctid = '(1,1)'::tid)
3337 Filter: ((id >= 50) AND (id <= 51))
3338 -> Tid Scan on p1_c1_c2
3339 TID Cond: (ctid = '(1,1)'::tid)
3340 Filter: ((id >= 50) AND (id <= 51))
3343 SET constraint_exclusion TO off;
3344 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;
3346 -----------------------------------------------------------------------------------
3348 Merge Cond: (p1.id = t1.id)
3353 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3354 -> Seq Scan on p1_c1
3355 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3356 -> Seq Scan on p1_c2
3357 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3358 -> Seq Scan on p1_c3
3359 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3360 -> Seq Scan on p1_c4
3361 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3362 -> Seq Scan on p1_c1_c1
3363 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3364 -> Seq Scan on p1_c1_c2
3365 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3366 -> Seq Scan on p1_c3_c1
3367 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3368 -> Seq Scan on p1_c3_c2
3369 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3370 -> Index Scan using t1_pkey on t1
3371 Index Cond: (id < 10)
3374 SET constraint_exclusion TO on;
3375 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;
3377 -----------------------------------------------------------------------------------
3379 Merge Cond: (p1.id = t1.id)
3384 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3385 -> Seq Scan on p1_c1
3386 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3387 -> Seq Scan on p1_c1_c1
3388 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3389 -> Seq Scan on p1_c1_c2
3390 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3391 -> Index Scan using t1_pkey on t1
3392 Index Cond: (id < 10)
3395 SET constraint_exclusion TO off;
3397 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;
3406 -----------------------------------------------------------------------------------
3408 Merge Cond: (p1.id = t1.id)
3413 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3414 -> Seq Scan on p1_c1
3415 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3416 -> Seq Scan on p1_c2
3417 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3418 -> Seq Scan on p1_c3
3419 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3420 -> Seq Scan on p1_c4
3421 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3422 -> Seq Scan on p1_c1_c1
3423 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3424 -> Seq Scan on p1_c1_c2
3425 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3426 -> Seq Scan on p1_c3_c1
3427 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3428 -> Seq Scan on p1_c3_c2
3429 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3430 -> Index Scan using t1_pkey on t1
3431 Index Cond: (id < 10)
3435 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;
3444 -----------------------------------------------------------------------------------
3446 Merge Cond: (p1.id = t1.id)
3451 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3452 -> Seq Scan on p1_c1
3453 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3454 -> Seq Scan on p1_c2
3455 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3456 -> Seq Scan on p1_c3
3457 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3458 -> Seq Scan on p1_c4
3459 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3460 -> Seq Scan on p1_c1_c1
3461 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3462 -> Seq Scan on p1_c1_c2
3463 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3464 -> Seq Scan on p1_c3_c1
3465 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3466 -> Seq Scan on p1_c3_c2
3467 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3468 -> Index Scan using t1_pkey on t1
3469 Index Cond: (id < 10)
3473 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;
3482 -----------------------------------------------------------------------------------
3484 Merge Cond: (p1.id = t1.id)
3489 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3490 -> Seq Scan on p1_c1
3491 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3492 -> Seq Scan on p1_c2
3493 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3494 -> Seq Scan on p1_c3
3495 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3496 -> Seq Scan on p1_c4
3497 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3498 -> Seq Scan on p1_c1_c1
3499 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3500 -> Seq Scan on p1_c1_c2
3501 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3502 -> Seq Scan on p1_c3_c1
3503 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3504 -> Seq Scan on p1_c3_c2
3505 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3506 -> Index Scan using t1_pkey on t1
3507 Index Cond: (id < 10)
3511 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;
3520 -----------------------------------------------------------------------------------
3522 Merge Cond: (p1.id = t1.id)
3527 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3528 -> Seq Scan on p1_c1
3529 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3530 -> Seq Scan on p1_c2
3531 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3532 -> Seq Scan on p1_c3
3533 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3534 -> Seq Scan on p1_c4
3535 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3536 -> Seq Scan on p1_c1_c1
3537 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3538 -> Seq Scan on p1_c1_c2
3539 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3540 -> Seq Scan on p1_c3_c1
3541 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3542 -> Seq Scan on p1_c3_c2
3543 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3544 -> Index Scan using t1_pkey on t1
3545 Index Cond: (id < 10)
3548 /*+NestLoop(p1 t1)*/
3549 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;
3558 -----------------------------------------------------------------------------
3560 Join Filter: (p1.id = t1.id)
3563 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3564 -> Seq Scan on p1_c1
3565 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3566 -> Seq Scan on p1_c2
3567 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3568 -> Seq Scan on p1_c3
3569 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3570 -> Seq Scan on p1_c4
3571 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3572 -> Seq Scan on p1_c1_c1
3573 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3574 -> Seq Scan on p1_c1_c2
3575 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3576 -> Seq Scan on p1_c3_c1
3577 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3578 -> Seq Scan on p1_c3_c2
3579 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3581 -> Index Scan using t1_pkey on t1
3582 Index Cond: (id < 10)
3585 /*+MergeJoin(p1 t1)*/
3586 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;
3595 -----------------------------------------------------------------------------------
3597 Merge Cond: (p1.id = t1.id)
3602 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3603 -> Seq Scan on p1_c1
3604 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3605 -> Seq Scan on p1_c2
3606 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3607 -> Seq Scan on p1_c3
3608 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3609 -> Seq Scan on p1_c4
3610 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3611 -> Seq Scan on p1_c1_c1
3612 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3613 -> Seq Scan on p1_c1_c2
3614 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3615 -> Seq Scan on p1_c3_c1
3616 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3617 -> Seq Scan on p1_c3_c2
3618 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3619 -> Index Scan using t1_pkey on t1
3620 Index Cond: (id < 10)
3623 /*+HashJoin(p1 t1)*/
3624 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;
3633 -----------------------------------------------------------------------------
3635 Hash Cond: (p1.id = t1.id)
3638 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3639 -> Seq Scan on p1_c1
3640 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3641 -> Seq Scan on p1_c2
3642 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3643 -> Seq Scan on p1_c3
3644 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3645 -> Seq Scan on p1_c4
3646 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3647 -> Seq Scan on p1_c1_c1
3648 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3649 -> Seq Scan on p1_c1_c2
3650 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3651 -> Seq Scan on p1_c3_c1
3652 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3653 -> Seq Scan on p1_c3_c2
3654 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3656 -> Index Scan using t1_pkey on t1
3657 Index Cond: (id < 10)
3660 SET constraint_exclusion TO on;
3662 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;
3671 -----------------------------------------------------------------------------------
3673 Merge Cond: (p1.id = t1.id)
3678 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3679 -> Seq Scan on p1_c1
3680 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3681 -> Seq Scan on p1_c1_c1
3682 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3683 -> Seq Scan on p1_c1_c2
3684 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3685 -> Index Scan using t1_pkey on t1
3686 Index Cond: (id < 10)
3690 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;
3699 -----------------------------------------------------------------------------------
3701 Merge Cond: (p1.id = t1.id)
3706 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3707 -> Seq Scan on p1_c1
3708 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3709 -> Seq Scan on p1_c1_c1
3710 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3711 -> Seq Scan on p1_c1_c2
3712 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3713 -> Index Scan using t1_pkey on t1
3714 Index Cond: (id < 10)
3718 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;
3727 -----------------------------------------------------------------------------------
3729 Merge Cond: (p1.id = t1.id)
3734 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3735 -> Seq Scan on p1_c1
3736 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3737 -> Seq Scan on p1_c1_c1
3738 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3739 -> Seq Scan on p1_c1_c2
3740 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3741 -> Index Scan using t1_pkey on t1
3742 Index Cond: (id < 10)
3746 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;
3755 -----------------------------------------------------------------------------------
3757 Merge Cond: (p1.id = t1.id)
3762 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3763 -> Seq Scan on p1_c1
3764 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3765 -> Seq Scan on p1_c1_c1
3766 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3767 -> Seq Scan on p1_c1_c2
3768 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3769 -> Index Scan using t1_pkey on t1
3770 Index Cond: (id < 10)
3773 /*+NestLoop(p1 t1)*/
3774 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;
3783 -----------------------------------------------------------------------------------
3785 Join Filter: (p1.id = t1.id)
3786 -> Index Scan using t1_pkey on t1
3787 Index Cond: (id < 10)
3791 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3792 -> Seq Scan on p1_c1
3793 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3794 -> Seq Scan on p1_c1_c1
3795 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3796 -> Seq Scan on p1_c1_c2
3797 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3800 /*+MergeJoin(p1 t1)*/
3801 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;
3810 -----------------------------------------------------------------------------------
3812 Merge Cond: (p1.id = t1.id)
3817 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3818 -> Seq Scan on p1_c1
3819 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3820 -> Seq Scan on p1_c1_c1
3821 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3822 -> Seq Scan on p1_c1_c2
3823 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3824 -> Index Scan using t1_pkey on t1
3825 Index Cond: (id < 10)
3828 /*+HashJoin(p1 t1)*/
3829 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;
3838 -----------------------------------------------------------------------------------
3840 Hash Cond: (t1.id = p1.id)
3841 -> Index Scan using t1_pkey on t1
3842 Index Cond: (id < 10)
3846 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3847 -> Seq Scan on p1_c1
3848 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3849 -> Seq Scan on p1_c1_c1
3850 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3851 -> Seq Scan on p1_c1_c2
3852 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3855 SET constraint_exclusion TO off;
3856 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3858 -----------------------------------------------------------------
3860 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3863 SET constraint_exclusion TO on;
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 off;
3873 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3882 -----------------------------------------------------------------
3884 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3888 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3897 -------------------------------------------
3898 Index Scan using p1_pkey on p1
3899 Index Cond: ((id >= 50) AND (id <= 51))
3900 Filter: (ctid = '(1,1)'::tid)
3904 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3913 -------------------------------------------------
3914 Bitmap Heap Scan on p1
3915 Recheck Cond: ((id >= 50) AND (id <= 51))
3916 Filter: (ctid = '(1,1)'::tid)
3917 -> Bitmap Index Scan on p1_pkey
3918 Index Cond: ((id >= 50) AND (id <= 51))
3922 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
3931 ---------------------------------------
3933 TID Cond: (ctid = '(1,1)'::tid)
3934 Filter: ((id >= 50) AND (id <= 51))
3937 /*+NestLoop(p1 t1)*/
3938 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;
3947 -----------------------------------------------------------------------
3950 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3951 -> Index Scan using t1_pkey on t1
3952 Index Cond: ((id = p1.id) AND (id < 10))
3955 /*+MergeJoin(p1 t1)*/
3956 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;
3965 -----------------------------------------------------------------------------
3967 Merge Cond: (p1.id = t1.id)
3971 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3972 -> Index Scan using t1_pkey on t1
3973 Index Cond: (id < 10)
3976 /*+HashJoin(p1 t1)*/
3977 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;
3986 -----------------------------------------------------------------------------
3988 Hash Cond: (t1.id = p1.id)
3989 -> Index Scan using t1_pkey on t1
3990 Index Cond: (id < 10)
3993 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
3996 SET constraint_exclusion TO on;
3998 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
4007 -----------------------------------------------------------------
4009 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4013 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
4022 -------------------------------------------
4023 Index Scan using p1_pkey on p1
4024 Index Cond: ((id >= 50) AND (id <= 51))
4025 Filter: (ctid = '(1,1)'::tid)
4029 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
4038 -------------------------------------------------
4039 Bitmap Heap Scan on p1
4040 Recheck Cond: ((id >= 50) AND (id <= 51))
4041 Filter: (ctid = '(1,1)'::tid)
4042 -> Bitmap Index Scan on p1_pkey
4043 Index Cond: ((id >= 50) AND (id <= 51))
4047 EXPLAIN (COSTS false) SELECT * FROM ONLY p1 WHERE id >= 50 AND id <= 51 AND p1.ctid = '(1,1)';
4056 ---------------------------------------
4058 TID Cond: (ctid = '(1,1)'::tid)
4059 Filter: ((id >= 50) AND (id <= 51))
4062 /*+NestLoop(p1 t1)*/
4063 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;
4072 -----------------------------------------------------------------------
4075 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4076 -> Index Scan using t1_pkey on t1
4077 Index Cond: ((id = p1.id) AND (id < 10))
4080 /*+MergeJoin(p1 t1)*/
4081 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;
4090 -----------------------------------------------------------------------------
4092 Merge Cond: (p1.id = t1.id)
4096 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4097 -> Index Scan using t1_pkey on t1
4098 Index Cond: (id < 10)
4101 /*+HashJoin(p1 t1)*/
4102 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;
4111 -----------------------------------------------------------------------------
4113 Hash Cond: (t1.id = p1.id)
4114 -> Index Scan using t1_pkey on t1
4115 Index Cond: (id < 10)
4118 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4121 SET constraint_exclusion TO off;
4122 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;
4124 -----------------------------------------------------------------------
4127 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4128 -> Index Scan using t1_pkey on t1
4129 Index Cond: ((id = p1.id) AND (id < 10))
4132 SET constraint_exclusion TO on;
4133 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;
4135 -----------------------------------------------------------------------
4138 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4139 -> Index Scan using t1_pkey on t1
4140 Index Cond: ((id = p1.id) AND (id < 10))
4143 SET constraint_exclusion TO off;
4145 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;
4154 -----------------------------------------------------------------------
4157 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4158 -> Index Scan using t1_pkey on t1
4159 Index Cond: ((id = p1.id) AND (id < 10))
4163 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;
4172 --------------------------------------------------
4174 -> Index Scan using p1_pkey on p1
4175 Index Cond: ((id >= 50) AND (id <= 51))
4176 Filter: (ctid = '(1,1)'::tid)
4177 -> Index Scan using t1_pkey on t1
4178 Index Cond: ((id = p1.id) AND (id < 10))
4182 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;
4191 -------------------------------------------------------
4193 -> Bitmap Heap Scan on p1
4194 Recheck Cond: ((id >= 50) AND (id <= 51))
4195 Filter: (ctid = '(1,1)'::tid)
4196 -> Bitmap Index Scan on p1_pkey
4197 Index Cond: ((id >= 50) AND (id <= 51))
4198 -> Index Scan using t1_pkey on t1
4199 Index Cond: ((id = p1.id) AND (id < 10))
4203 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;
4212 --------------------------------------------------
4215 TID Cond: (ctid = '(1,1)'::tid)
4216 Filter: ((id >= 50) AND (id <= 51))
4217 -> Index Scan using t1_pkey on t1
4218 Index Cond: ((id = p1.id) AND (id < 10))
4221 SET constraint_exclusion TO on;
4223 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;
4232 -----------------------------------------------------------------------
4235 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
4236 -> Index Scan using t1_pkey on t1
4237 Index Cond: ((id = p1.id) AND (id < 10))
4241 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;
4250 --------------------------------------------------
4252 -> Index Scan using p1_pkey on p1
4253 Index Cond: ((id >= 50) AND (id <= 51))
4254 Filter: (ctid = '(1,1)'::tid)
4255 -> Index Scan using t1_pkey on t1
4256 Index Cond: ((id = p1.id) AND (id < 10))
4260 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;
4269 -------------------------------------------------------
4271 -> Bitmap Heap Scan on p1
4272 Recheck Cond: ((id >= 50) AND (id <= 51))
4273 Filter: (ctid = '(1,1)'::tid)
4274 -> Bitmap Index Scan on p1_pkey
4275 Index Cond: ((id >= 50) AND (id <= 51))
4276 -> Index Scan using t1_pkey on t1
4277 Index Cond: ((id = p1.id) AND (id < 10))
4281 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;
4290 --------------------------------------------------
4293 TID Cond: (ctid = '(1,1)'::tid)
4294 Filter: ((id >= 50) AND (id <= 51))
4295 -> Index Scan using t1_pkey on t1
4296 Index Cond: ((id = p1.id) AND (id < 10))
4300 /*+SeqScan("""t1 ) ")IndexScan("t 2 """)HashJoin("""t1 ) "T3"t 2 """)Leading("""t1 ) "T3"t 2 """)Set(application_name"a a a"" a A")*/
4301 EXPLAIN (COSTS false) SELECT * FROM t1 """t1 ) ", t2 "t 2 """, t3 "T3" WHERE """t1 ) ".id = "t 2 """.id AND """t1 ) ".id = "T3".id;
4306 HashJoin("""t1 ) " T3 "t 2 """)
4307 Leading("""t1 ) " T3 "t 2 """)
4308 Set(application_name "a a a"" a A")
4314 ---------------------------------------------------------
4316 Hash Cond: ("t 2 """.id = """t1 ) ".id)
4317 -> Index Scan using t2_pkey on t2 "t 2 """
4320 Hash Cond: ("""t1 ) ".id = "T3".id)
4321 -> Seq Scan on t1 """t1 ) "
4323 -> Seq Scan on t3 "T3"
4326 -- duplicate hint test
4327 /*+SeqScan(t1)SeqScan(t2)IndexScan(t1)IndexScan(t2)BitmapScan(t1)BitmapScan(t2)TidScan(t1)TidScan(t2)HashJoin(t1 t2)NestLoop(t2 t1)MergeJoin(t1 t2)Leading(t1 t2)Leading(t2 t1)Set(enable_seqscan off)Set(enable_mergejoin on)Set(enable_seqscan on)*/
4328 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
4329 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)"
4330 DETAIL: Conflict scan method hint.
4331 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)"
4332 DETAIL: Conflict scan method hint.
4333 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)"
4334 DETAIL: Conflict scan method hint.
4335 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)"
4336 DETAIL: Conflict scan method hint.
4337 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)"
4338 DETAIL: Conflict scan method hint.
4339 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)"
4340 DETAIL: Conflict scan method hint.
4341 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)"
4342 DETAIL: Conflict join method hint.
4343 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)"
4344 DETAIL: Conflict join method hint.
4345 INFO: hint syntax error at or near "Set(enable_seqscan off)Set(enable_mergejoin on)Set(enable_seqscan on)"
4346 DETAIL: Conflict set hint.
4347 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)"
4348 DETAIL: Conflict leading hint.
4355 Set(enable_mergejoin on)
4356 Set(enable_seqscan on)
4368 Set(enable_seqscan off)
4372 -----------------------------------------------
4374 Merge Cond: (t1.id = t2.id)
4378 TID Cond: (ctid = '(1,1)'::tid)
4382 TID Cond: (ctid = '(1,1)'::tid)
4385 -- sub query Leading hint test
4386 SET from_collapse_limit TO 100;
4387 SET geqo_threshold TO 100;
4388 EXPLAIN (COSTS false)
4390 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
4393 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
4394 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4395 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
4396 ) 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 = (
4397 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
4400 ------------------------------------------------------------------------------
4405 Merge Cond: (t1_5.id = t3_5.id)
4407 Merge Cond: (t1_5.id = t2_5.id)
4408 -> Index Only Scan using t1_pkey on t1 t1_5
4409 -> Index Only Scan using t2_pkey on t2 t2_5
4412 -> Seq Scan on t3 t3_5
4413 InitPlan 2 (returns $1)
4416 Merge Cond: (t1_2.id = t3_2.id)
4418 Merge Cond: (t1_2.id = t2_2.id)
4419 -> Index Only Scan using t1_pkey on t1 t1_2
4420 -> Index Only Scan using t2_pkey on t2 t2_2
4423 -> Seq Scan on t3 t3_2
4424 InitPlan 3 (returns $2)
4427 Merge Cond: (t1_4.id = t3_4.id)
4429 Merge Cond: (t1_4.id = t2_4.id)
4430 -> Index Only Scan using t1_pkey on t1 t1_4
4431 -> Index Only Scan using t2_pkey on t2 t2_4
4434 -> Seq Scan on t3 t3_4
4440 -> Index Only Scan using t1_pkey on t1 t1_1
4441 Index Cond: (id = $2)
4442 -> Index Only Scan using t2_pkey on t2 t2_1
4443 Index Cond: (id = $2)
4444 -> Seq Scan on t3 t3_1
4446 -> Index Only Scan using t1_pkey on t1 t1_3
4447 Index Cond: (id = $2)
4448 -> Index Only Scan using t2_pkey on t2 t2_3
4449 Index Cond: (id = $2)
4450 -> Seq Scan on t3 t3_3
4456 /*+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)*/
4457 EXPLAIN (COSTS false)
4459 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
4462 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
4463 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4464 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
4465 ) 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 = (
4466 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
4472 MergeJoin(t1_3 t3_3)
4480 ------------------------------------------------------------------------------
4485 Merge Cond: (t1_5.id = t3_5.id)
4487 -> Index Only Scan using t2_pkey on t2 t2_5
4488 -> Index Only Scan using t1_pkey on t1 t1_5
4489 Index Cond: (id = t2_5.id)
4492 -> Seq Scan on t3 t3_5
4493 InitPlan 2 (returns $3)
4496 Merge Cond: (t1_2.id = t3_2.id)
4498 -> Index Only Scan using t2_pkey on t2 t2_2
4499 -> Index Only Scan using t1_pkey on t1 t1_2
4500 Index Cond: (id = t2_2.id)
4503 -> Seq Scan on t3 t3_2
4504 InitPlan 3 (returns $5)
4507 Merge Cond: (t1_4.id = t3_4.id)
4509 -> Index Only Scan using t2_pkey on t2 t2_4
4510 -> Index Only Scan using t1_pkey on t1 t1_4
4511 Index Cond: (id = t2_4.id)
4514 -> Seq Scan on t3 t3_4
4520 -> Index Only Scan using t1_pkey on t1 t1_1
4521 Index Cond: (id = $5)
4522 -> Index Only Scan using t2_pkey on t2 t2_1
4523 Index Cond: (id = $5)
4524 -> Seq Scan on t3 t3_1
4526 -> Index Only Scan using t1_pkey on t1 t1_3
4527 Index Cond: (id = $5)
4528 -> Index Only Scan using t2_pkey on t2 t2_3
4529 Index Cond: (id = $5)
4530 -> Seq Scan on t3 t3_3
4536 /*+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)*/
4537 EXPLAIN (COSTS false)
4539 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
4542 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
4543 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4544 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
4545 ) 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 = (
4546 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
4552 MergeJoin(t1_3 t3_3)
4556 Leading(a t1_1 t1_2 t1_4 t1_5)
4561 ------------------------------------------------------------------------------
4566 Merge Cond: (t1_5.id = t3_5.id)
4568 -> Index Only Scan using t2_pkey on t2 t2_5
4569 -> Index Only Scan using t1_pkey on t1 t1_5
4570 Index Cond: (id = t2_5.id)
4573 -> Seq Scan on t3 t3_5
4574 InitPlan 2 (returns $3)
4577 Merge Cond: (t1_2.id = t3_2.id)
4579 -> Index Only Scan using t2_pkey on t2 t2_2
4580 -> Index Only Scan using t1_pkey on t1 t1_2
4581 Index Cond: (id = t2_2.id)
4584 -> Seq Scan on t3 t3_2
4585 InitPlan 3 (returns $5)
4588 Merge Cond: (t1_4.id = t3_4.id)
4590 -> Index Only Scan using t2_pkey on t2 t2_4
4591 -> Index Only Scan using t1_pkey on t1 t1_4
4592 Index Cond: (id = t2_4.id)
4595 -> Seq Scan on t3 t3_4
4601 -> Index Only Scan using t1_pkey on t1 t1_1
4602 Index Cond: (id = $5)
4603 -> Index Only Scan using t2_pkey on t2 t2_1
4604 Index Cond: (id = $5)
4605 -> Seq Scan on t3 t3_1
4607 -> Index Only Scan using t1_pkey on t1 t1_3
4608 Index Cond: (id = $5)
4609 -> Index Only Scan using t2_pkey on t2 t2_3
4610 Index Cond: (id = $5)
4611 -> Seq Scan on t3 t3_3
4617 /*+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)*/
4618 EXPLAIN (COSTS false)
4620 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
4623 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
4624 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4625 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
4626 ) 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 = (
4627 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
4633 MergeJoin(t1_3 t3_3)
4637 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)
4642 ------------------------------------------------------------------------------
4647 Merge Cond: (t1_5.id = t3_5.id)
4649 -> Index Only Scan using t2_pkey on t2 t2_5
4650 -> Index Only Scan using t1_pkey on t1 t1_5
4651 Index Cond: (id = t2_5.id)
4654 -> Seq Scan on t3 t3_5
4655 InitPlan 2 (returns $3)
4658 Merge Cond: (t1_2.id = t3_2.id)
4660 -> Index Only Scan using t2_pkey on t2 t2_2
4661 -> Index Only Scan using t1_pkey on t1 t1_2
4662 Index Cond: (id = t2_2.id)
4665 -> Seq Scan on t3 t3_2
4666 InitPlan 3 (returns $5)
4669 Merge Cond: (t1_4.id = t3_4.id)
4671 -> Index Only Scan using t2_pkey on t2 t2_4
4672 -> Index Only Scan using t1_pkey on t1 t1_4
4673 Index Cond: (id = t2_4.id)
4676 -> Seq Scan on t3 t3_4
4682 -> Index Only Scan using t1_pkey on t1 t1_1
4683 Index Cond: (id = $5)
4684 -> Index Only Scan using t2_pkey on t2 t2_1
4685 Index Cond: (id = $5)
4686 -> Seq Scan on t3 t3_1
4688 -> Index Only Scan using t1_pkey on t1 t1_3
4689 Index Cond: (id = $5)
4690 -> Index Only Scan using t2_pkey on t2 t2_3
4691 Index Cond: (id = $5)
4692 -> Seq Scan on t3 t3_3
4698 /*+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)*/
4699 EXPLAIN (COSTS false)
4701 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
4704 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
4705 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4706 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
4707 ) 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 = (
4708 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
4712 Leading(t3_5 t2_5 t1_5)
4713 Leading(t3_2 t2_2 t1_2)
4714 Leading(t3_4 t2_4 t1_4)
4715 Leading(c1_1 t3_3 t2_3 t1_3 t3_1 t2_1 t1_1)
4719 MergeJoin(t1_3 t3_3)
4726 ------------------------------------------------------------------------
4731 Merge Cond: (t2_5.id = t1_5.id)
4733 Merge Cond: (t2_5.id = t3_5.id)
4734 -> Index Only Scan using t2_pkey on t2 t2_5
4737 -> Seq Scan on t3 t3_5
4738 -> Index Only Scan using t1_pkey on t1 t1_5
4739 InitPlan 2 (returns $1)
4742 Merge Cond: (t2_2.id = t1_2.id)
4744 Merge Cond: (t2_2.id = t3_2.id)
4745 -> Index Only Scan using t2_pkey on t2 t2_2
4748 -> Seq Scan on t3 t3_2
4749 -> Index Only Scan using t1_pkey on t1 t1_2
4750 InitPlan 3 (returns $2)
4753 Merge Cond: (t2_4.id = t1_4.id)
4755 Merge Cond: (t2_4.id = t3_4.id)
4756 -> Index Only Scan using t2_pkey on t2 t2_4
4759 -> Seq Scan on t3 t3_4
4760 -> Index Only Scan using t1_pkey on t1 t1_4
4766 -> Seq Scan on t3 t3_3
4770 -> Index Only Scan using t2_pkey on t2 t2_3
4771 Index Cond: (id = $2)
4772 -> Index Only Scan using t1_pkey on t1 t1_3
4773 Index Cond: (id = $2)
4774 -> Seq Scan on t3 t3_1
4776 -> Index Only Scan using t2_pkey on t2 t2_1
4777 Index Cond: (id = $2)
4778 -> Index Only Scan using t1_pkey on t1 t1_1
4779 Index Cond: (id = $2)
4782 SET from_collapse_limit TO 1;
4783 EXPLAIN (COSTS false)
4785 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
4788 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
4789 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4790 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
4791 ) 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 = (
4792 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
4795 --------------------------------------------------------------------
4800 Merge Cond: (t1_5.id = t3_5.id)
4802 Merge Cond: (t1_5.id = t2_5.id)
4803 -> Index Only Scan using t1_pkey on t1 t1_5
4804 -> Index Only Scan using t2_pkey on t2 t2_5
4807 -> Seq Scan on t3 t3_5
4808 InitPlan 2 (returns $1)
4811 Merge Cond: (t1_2.id = t3_2.id)
4813 Merge Cond: (t1_2.id = t2_2.id)
4814 -> Index Only Scan using t1_pkey on t1 t1_2
4815 -> Index Only Scan using t2_pkey on t2 t2_2
4818 -> Seq Scan on t3 t3_2
4819 InitPlan 3 (returns $2)
4822 Merge Cond: (t1_4.id = t3_4.id)
4824 Merge Cond: (t1_4.id = t2_4.id)
4825 -> Index Only Scan using t1_pkey on t1 t1_4
4826 -> Index Only Scan using t2_pkey on t2 t2_4
4829 -> Seq Scan on t3 t3_4
4833 -> Index Only Scan using t1_pkey on t1 t1_1
4834 Index Cond: (id = $2)
4835 -> Index Only Scan using t2_pkey on t2 t2_1
4836 Index Cond: (id = $2)
4837 -> Seq Scan on t3 t3_1
4841 -> Index Only Scan using t1_pkey on t1 t1_3
4842 Index Cond: (id = $2)
4843 -> Index Only Scan using t2_pkey on t2 t2_3
4844 Index Cond: (id = $2)
4845 -> Seq Scan on t3 t3_3
4851 /*+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)*/
4852 EXPLAIN (COSTS false)
4854 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
4857 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
4858 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4859 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
4860 ) 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 = (
4861 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
4867 MergeJoin(t1_3 t3_3)
4875 --------------------------------------------------------------------
4880 Merge Cond: (t1_5.id = t3_5.id)
4882 -> Index Only Scan using t2_pkey on t2 t2_5
4883 -> Index Only Scan using t1_pkey on t1 t1_5
4884 Index Cond: (id = t2_5.id)
4887 -> Seq Scan on t3 t3_5
4888 InitPlan 2 (returns $3)
4891 Merge Cond: (t1_2.id = t3_2.id)
4893 -> Index Only Scan using t2_pkey on t2 t2_2
4894 -> Index Only Scan using t1_pkey on t1 t1_2
4895 Index Cond: (id = t2_2.id)
4898 -> Seq Scan on t3 t3_2
4899 InitPlan 3 (returns $5)
4902 Merge Cond: (t1_4.id = t3_4.id)
4904 -> Index Only Scan using t2_pkey on t2 t2_4
4905 -> Index Only Scan using t1_pkey on t1 t1_4
4906 Index Cond: (id = t2_4.id)
4909 -> Seq Scan on t3 t3_4
4913 -> Index Only Scan using t1_pkey on t1 t1_1
4914 Index Cond: (id = $5)
4915 -> Index Only Scan using t2_pkey on t2 t2_1
4916 Index Cond: (id = $5)
4917 -> Seq Scan on t3 t3_1
4921 -> Index Only Scan using t1_pkey on t1 t1_3
4922 Index Cond: (id = $5)
4923 -> Index Only Scan using t2_pkey on t2 t2_3
4924 Index Cond: (id = $5)
4925 -> Seq Scan on t3 t3_3
4931 /*+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)*/
4932 EXPLAIN (COSTS false)
4934 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
4937 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
4938 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
4939 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
4940 ) 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 = (
4941 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
4947 MergeJoin(t1_3 t3_3)
4951 Leading(a t1_1 t1_2 t1_4 t1_5)
4956 --------------------------------------------------------------------
4961 Merge Cond: (t1_5.id = t3_5.id)
4963 -> Index Only Scan using t2_pkey on t2 t2_5
4964 -> Index Only Scan using t1_pkey on t1 t1_5
4965 Index Cond: (id = t2_5.id)
4968 -> Seq Scan on t3 t3_5
4969 InitPlan 2 (returns $3)
4972 Merge Cond: (t1_2.id = t3_2.id)
4974 -> Index Only Scan using t2_pkey on t2 t2_2
4975 -> Index Only Scan using t1_pkey on t1 t1_2
4976 Index Cond: (id = t2_2.id)
4979 -> Seq Scan on t3 t3_2
4980 InitPlan 3 (returns $5)
4983 Merge Cond: (t1_4.id = t3_4.id)
4985 -> Index Only Scan using t2_pkey on t2 t2_4
4986 -> Index Only Scan using t1_pkey on t1 t1_4
4987 Index Cond: (id = t2_4.id)
4990 -> Seq Scan on t3 t3_4
4994 -> Index Only Scan using t1_pkey on t1 t1_1
4995 Index Cond: (id = $5)
4996 -> Index Only Scan using t2_pkey on t2 t2_1
4997 Index Cond: (id = $5)
4998 -> Seq Scan on t3 t3_1
5002 -> Index Only Scan using t1_pkey on t1 t1_3
5003 Index Cond: (id = $5)
5004 -> Index Only Scan using t2_pkey on t2 t2_3
5005 Index Cond: (id = $5)
5006 -> Seq Scan on t3 t3_3
5012 /*+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)*/
5013 EXPLAIN (COSTS false)
5015 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
5018 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
5019 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
5020 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
5021 ) 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 = (
5022 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
5028 MergeJoin(t1_3 t3_3)
5032 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)
5037 --------------------------------------------------------------------
5042 Merge Cond: (t1_5.id = t3_5.id)
5044 -> Index Only Scan using t2_pkey on t2 t2_5
5045 -> Index Only Scan using t1_pkey on t1 t1_5
5046 Index Cond: (id = t2_5.id)
5049 -> Seq Scan on t3 t3_5
5050 InitPlan 2 (returns $3)
5053 Merge Cond: (t1_2.id = t3_2.id)
5055 -> Index Only Scan using t2_pkey on t2 t2_2
5056 -> Index Only Scan using t1_pkey on t1 t1_2
5057 Index Cond: (id = t2_2.id)
5060 -> Seq Scan on t3 t3_2
5061 InitPlan 3 (returns $5)
5064 Merge Cond: (t1_4.id = t3_4.id)
5066 -> Index Only Scan using t2_pkey on t2 t2_4
5067 -> Index Only Scan using t1_pkey on t1 t1_4
5068 Index Cond: (id = t2_4.id)
5071 -> Seq Scan on t3 t3_4
5075 -> Index Only Scan using t1_pkey on t1 t1_1
5076 Index Cond: (id = $5)
5077 -> Index Only Scan using t2_pkey on t2 t2_1
5078 Index Cond: (id = $5)
5079 -> Seq Scan on t3 t3_1
5083 -> Index Only Scan using t1_pkey on t1 t1_3
5084 Index Cond: (id = $5)
5085 -> Index Only Scan using t2_pkey on t2 t2_3
5086 Index Cond: (id = $5)
5087 -> Seq Scan on t3 t3_3
5093 /*+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)*/
5094 EXPLAIN (COSTS false)
5096 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
5099 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
5100 ) FROM t1 t1_1, t2 t2_1, t3 t3_1, (
5101 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
5102 ) 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 = (
5103 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
5107 MergeJoin(t1_3 t3_3)
5108 Leading(t3_5 t2_5 t1_5)
5109 Leading(t3_2 t2_2 t1_2)
5110 Leading(t3_4 t2_4 t1_4)
5111 Leading(c1_1 t3_3 t2_3 t1_3 t3_1 t2_1 t1_1)
5121 ------------------------------------------------------------------------------
5126 Merge Cond: (t2_5.id = t1_5.id)
5128 Merge Cond: (t2_5.id = t3_5.id)
5129 -> Index Only Scan using t2_pkey on t2 t2_5
5132 -> Seq Scan on t3 t3_5
5133 -> Index Only Scan using t1_pkey on t1 t1_5
5134 InitPlan 2 (returns $1)
5137 Merge Cond: (t2_2.id = t1_2.id)
5139 Merge Cond: (t2_2.id = t3_2.id)
5140 -> Index Only Scan using t2_pkey on t2 t2_2
5143 -> Seq Scan on t3 t3_2
5144 -> Index Only Scan using t1_pkey on t1 t1_2
5145 InitPlan 3 (returns $2)
5148 Merge Cond: (t2_4.id = t1_4.id)
5150 Merge Cond: (t2_4.id = t3_4.id)
5151 -> Index Only Scan using t2_pkey on t2 t2_4
5154 -> Seq Scan on t3 t3_4
5155 -> Index Only Scan using t1_pkey on t1 t1_4
5161 -> Index Only Scan using t1_pkey on t1 t1_3
5162 Index Cond: (id = $2)
5163 -> Index Only Scan using t2_pkey on t2 t2_3
5164 Index Cond: (id = $2)
5165 -> Seq Scan on t3 t3_3
5169 -> Seq Scan on t3 t3_1
5171 -> Index Only Scan using t2_pkey on t2 t2_1
5172 Index Cond: (id = $2)
5173 -> Index Only Scan using t1_pkey on t1 t1_1
5174 Index Cond: (id = $2)
5178 EXPLAIN (COSTS false) SELECT * FROM t1, s0.t1, t2 WHERE public.t1.id = s0.t1.id AND public.t1.id = t2.id;
5180 -------------------------------------------------
5182 Merge Cond: (t1.id = t2.id)
5184 Merge Cond: (t1.id = t1_1.id)
5185 -> Index Scan using t1_pkey on t1
5186 -> Index Scan using t1_pkey on t1 t1_1
5187 -> Index Scan using t2_pkey on t2
5190 /*+NestLoop(t1 t2)*/
5191 EXPLAIN (COSTS false) SELECT * FROM t1, s0.t1, t2 WHERE public.t1.id = s0.t1.id AND public.t1.id = t2.id;
5192 INFO: hint syntax error at or near "NestLoop(t1 t2)"
5193 DETAIL: Relation name "t1" is ambiguous.
5202 -------------------------------------------------
5204 Merge Cond: (t1.id = t2.id)
5206 Merge Cond: (t1.id = t1_1.id)
5207 -> Index Scan using t1_pkey on t1
5208 -> Index Scan using t1_pkey on t1 t1_1
5209 -> Index Scan using t2_pkey on t2
5212 /*+Leading(t1 t2 t1)*/
5213 EXPLAIN (COSTS false) SELECT * FROM t1, s0.t1, t2 WHERE public.t1.id = s0.t1.id AND public.t1.id = t2.id;
5214 INFO: hint syntax error at or near "Leading(t1 t2 t1)"
5215 DETAIL: Relation name "t1" is ambiguous.
5224 -------------------------------------------------
5226 Merge Cond: (t1.id = t2.id)
5228 Merge Cond: (t1.id = t1_1.id)
5229 -> Index Scan using t1_pkey on t1
5230 -> Index Scan using t1_pkey on t1 t1_1
5231 -> Index Scan using t2_pkey on t2
5234 -- identifier length test
5235 EXPLAIN (COSTS false) SELECT * FROM t1 "123456789012345678901234567890123456789012345678901234567890123" JOIN t2 ON ("123456789012345678901234567890123456789012345678901234567890123".id = t2.id) JOIN t3 ON (t2.id = t3.id);
5237 --------------------------------------------------------------------------------------------------------------
5239 Merge Cond: ("123456789012345678901234567890123456789012345678901234567890123".id = t3.id)
5241 Merge Cond: ("123456789012345678901234567890123456789012345678901234567890123".id = t2.id)
5242 -> Index Scan using t1_pkey on t1 "123456789012345678901234567890123456789012345678901234567890123"
5243 -> Index Scan using t2_pkey on t2
5250 Leading(123456789012345678901234567890123456789012345678901234567890123 t2 t3)
5251 SeqScan(123456789012345678901234567890123456789012345678901234567890123)
5252 MergeJoin(123456789012345678901234567890123456789012345678901234567890123 t2)
5253 Set(123456789012345678901234567890123456789012345678901234567890123 1)
5255 EXPLAIN (COSTS false) SELECT * FROM t1 "123456789012345678901234567890123456789012345678901234567890123" JOIN t2 ON ("123456789012345678901234567890123456789012345678901234567890123".id = t2.id) JOIN t3 ON (t2.id = t3.id);
5256 INFO: unrecognized configuration parameter "123456789012345678901234567890123456789012345678901234567890123"
5259 SeqScan(123456789012345678901234567890123456789012345678901234567890123)
5260 MergeJoin(123456789012345678901234567890123456789012345678901234567890123 t2)
5261 Leading(123456789012345678901234567890123456789012345678901234567890123 t2 t3)
5265 Set(123456789012345678901234567890123456789012345678901234567890123 1)
5268 ----------------------------------------------------------------------------------------------------
5270 Merge Cond: ("123456789012345678901234567890123456789012345678901234567890123".id = t3.id)
5272 Merge Cond: (t2.id = "123456789012345678901234567890123456789012345678901234567890123".id)
5273 -> Index Scan using t2_pkey on t2
5275 Sort Key: "123456789012345678901234567890123456789012345678901234567890123".id
5276 -> Seq Scan on t1 "123456789012345678901234567890123456789012345678901234567890123"
5283 Leading(1234567890123456789012345678901234567890123456789012345678901234 t2 t3)
5284 SeqScan(1234567890123456789012345678901234567890123456789012345678901234)
5285 MergeJoin(1234567890123456789012345678901234567890123456789012345678901234 t2)
5286 Set(1234567890123456789012345678901234567890123456789012345678901234 1)
5287 Set(cursor_tuple_fraction 0.1234567890123456789012345678901234567890123456789012345678901234)
5289 EXPLAIN (COSTS false) SELECT * FROM t1 "1234567890123456789012345678901234567890123456789012345678901234" JOIN t2 ON ("1234567890123456789012345678901234567890123456789012345678901234".id = t2.id) JOIN t3 ON (t2.id = t3.id);
5290 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5291 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5292 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5293 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5294 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5295 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5296 INFO: unrecognized configuration parameter "123456789012345678901234567890123456789012345678901234567890123"
5299 SeqScan(123456789012345678901234567890123456789012345678901234567890123)
5300 MergeJoin(123456789012345678901234567890123456789012345678901234567890123 t2)
5301 Leading(123456789012345678901234567890123456789012345678901234567890123 t2 t3)
5302 Set(cursor_tuple_fraction 0.1234567890123456789012345678901234567890123456789012345678901234)
5306 Set(123456789012345678901234567890123456789012345678901234567890123 1)
5309 ----------------------------------------------------------------------------------------------------
5311 Merge Cond: ("123456789012345678901234567890123456789012345678901234567890123".id = t3.id)
5313 Merge Cond: (t2.id = "123456789012345678901234567890123456789012345678901234567890123".id)
5314 -> Index Scan using t2_pkey on t2
5316 Sort Key: "123456789012345678901234567890123456789012345678901234567890123".id
5317 -> Seq Scan on t1 "123456789012345678901234567890123456789012345678901234567890123"
5323 SET "123456789012345678901234567890123456789012345678901234567890123" TO 1;
5324 ERROR: unrecognized configuration parameter "123456789012345678901234567890123456789012345678901234567890123"
5325 SET "1234567890123456789012345678901234567890123456789012345678901234" TO 1;
5326 NOTICE: identifier "1234567890123456789012345678901234567890123456789012345678901234" will be truncated to "123456789012345678901234567890123456789012345678901234567890123"
5327 ERROR: unrecognized configuration parameter "123456789012345678901234567890123456789012345678901234567890123"
5328 SET cursor_tuple_fraction TO 1234567890123456789012345678901234567890123456789012345678901234;
5329 ERROR: 1.23457e+63 is outside the valid range for parameter "cursor_tuple_fraction" (0 .. 1)
5331 /*+ Set(enable_seqscan 100)Set(seq_page_cost on)*/
5332 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
5333 INFO: parameter "enable_seqscan" requires a Boolean value
5334 INFO: parameter "seq_page_cost" requires a numeric value
5340 Set(enable_seqscan 100)
5341 Set(seq_page_cost on)
5344 --------------------------------------
5346 Merge Cond: (t1.id = t2.id)
5347 -> Index Scan using t1_pkey on t1
5348 -> Index Scan using t2_pkey on t2
5351 -- debug log of candidate index to use IndexScan
5352 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5354 ----------------------------------------------------------------------------------------
5355 Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
5356 Index Cond: (id = 1)
5359 /*+IndexScan(t5 t5_id2)*/
5360 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5361 LOG: available indexes for IndexScan(t5): t5_id2
5364 IndexScan(t5 t5_id2)
5370 -------------------------------
5371 Index Scan using t5_id2 on t5
5372 Index Cond: (id = 1)
5375 /*+IndexScan(t5 no_exist)*/
5376 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5377 LOG: available indexes for IndexScan(t5):
5380 IndexScan(t5 no_exist)
5386 --------------------
5391 /*+IndexScan(t5 t5_id1 t5_id2)*/
5392 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5393 LOG: available indexes for IndexScan(t5): t5_id2 t5_id1
5396 IndexScan(t5 t5_id1 t5_id2)
5402 -------------------------------
5403 Index Scan using t5_id2 on t5
5404 Index Cond: (id = 1)
5407 /*+IndexScan(t5 no_exist t5_id2)*/
5408 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5409 LOG: available indexes for IndexScan(t5): t5_id2
5412 IndexScan(t5 no_exist t5_id2)
5418 -------------------------------
5419 Index Scan using t5_id2 on t5
5420 Index Cond: (id = 1)
5423 /*+IndexScan(t5 no_exist5 no_exist2)*/
5424 EXPLAIN (COSTS false) SELECT * FROM t5 WHERE t5.id = 1;
5425 LOG: available indexes for IndexScan(t5):
5428 IndexScan(t5 no_exist5 no_exist2)
5434 --------------------
5440 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5442 --------------------------------------------------------
5444 Hash Cond: (t3.val = t2.val)
5448 Hash Cond: (t2.id = t1.id)
5451 -> Index Scan using t1_pkey on t1
5452 Index Cond: (id < 10)
5456 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5457 INFO: hint syntax error at or near "Leading((t1))"
5458 DETAIL: Leading hint requires two sets of relations when parentheses nests.
5467 --------------------------------------------------------
5469 Hash Cond: (t3.val = t2.val)
5473 Hash Cond: (t2.id = t1.id)
5476 -> Index Scan using t1_pkey on t1
5477 Index Cond: (id < 10)
5480 /*+Leading((t1 t2))*/
5481 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5490 --------------------------------------------
5492 Join Filter: (t2.val = t3.val)
5494 Hash Cond: (t1.id = t2.id)
5495 -> Index Scan using t1_pkey on t1
5496 Index Cond: (id < 10)
5502 /*+Leading((t1 t2 t3))*/
5503 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5504 INFO: hint syntax error at or near "Leading((t1 t2 t3))"
5505 DETAIL: Leading hint requires two sets of relations when parentheses nests.
5514 --------------------------------------------------------
5516 Hash Cond: (t3.val = t2.val)
5520 Hash Cond: (t2.id = t1.id)
5523 -> Index Scan using t1_pkey on t1
5524 Index Cond: (id < 10)
5527 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.id < 10;
5529 --------------------------------------------
5531 Hash Cond: (t2.id = t1.id)
5534 -> Index Scan using t1_pkey on t1
5535 Index Cond: (id < 10)
5538 /*+Leading((t1 t2))*/
5539 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.id < 10;
5548 --------------------------------------
5550 Hash Cond: (t1.id = t2.id)
5551 -> Index Scan using t1_pkey on t1
5552 Index Cond: (id < 10)
5557 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5559 --------------------------------------------------------
5561 Hash Cond: (t3.val = t2.val)
5565 Hash Cond: (t2.id = t1.id)
5568 -> Index Scan using t1_pkey on t1
5569 Index Cond: (id < 10)
5572 /*+Leading(((t1 t2) t3))*/
5573 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5576 Leading(((t1 t2) t3))
5582 --------------------------------------------
5584 Join Filter: (t2.val = t3.val)
5586 Hash Cond: (t1.id = t2.id)
5587 -> Index Scan using t1_pkey on t1
5588 Index Cond: (id < 10)
5594 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;
5596 --------------------------------------------------------
5599 Merge Cond: (t3.id = t4.id)
5601 Join Filter: (t1.val = t3.val)
5602 -> Index Scan using t3_pkey on t3
5604 -> Index Scan using t1_pkey on t1
5605 Index Cond: (id < 10)
5609 -> Index Scan using t2_pkey on t2
5610 Index Cond: (id = t1.id)
5613 /*+Leading((((t1 t2) t3) t4))*/
5614 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;
5617 Leading((((t1 t2) t3) t4))
5623 --------------------------------------------------
5626 Join Filter: (t1.val = t3.val)
5628 Hash Cond: (t1.id = t2.id)
5629 -> Index Scan using t1_pkey on t1
5630 Index Cond: (id < 10)
5634 -> Index Scan using t4_pkey on t4
5635 Index Cond: (id = t3.id)
5638 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5640 --------------------------------------------------------
5642 Hash Cond: (t3.val = t2.val)
5646 Hash Cond: (t2.id = t1.id)
5649 -> Index Scan using t1_pkey on t1
5650 Index Cond: (id < 10)
5653 /*+Leading(((t1 t2) t3))*/
5654 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5657 Leading(((t1 t2) t3))
5663 --------------------------------------------
5665 Join Filter: (t2.val = t3.val)
5667 Hash Cond: (t1.id = t2.id)
5668 -> Index Scan using t1_pkey on t1
5669 Index Cond: (id < 10)
5675 /*+Leading((t1 (t2 t3)))*/
5676 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5679 Leading((t1 (t2 t3)))
5685 --------------------------------------------
5687 Hash Cond: (t1.id = t2.id)
5688 -> Index Scan using t1_pkey on t1
5689 Index Cond: (id < 10)
5692 Hash Cond: (t2.val = t3.val)
5698 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;
5700 --------------------------------------------------------
5703 Merge Cond: (t3.id = t4.id)
5705 Join Filter: (t1.val = t3.val)
5706 -> Index Scan using t3_pkey on t3
5708 -> Index Scan using t1_pkey on t1
5709 Index Cond: (id < 10)
5713 -> Index Scan using t2_pkey on t2
5714 Index Cond: (id = t1.id)
5717 /*+Leading(((t1 t2) (t3 t4)))*/
5718 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;
5721 Leading(((t1 t2) (t3 t4)))
5727 --------------------------------------------
5729 Join Filter: (t1.val = t3.val)
5731 Hash Cond: (t1.id = t2.id)
5732 -> Index Scan using t1_pkey on t1
5733 Index Cond: (id < 10)
5737 Merge Cond: (t3.id = t4.id)
5738 -> Index Scan using t3_pkey on t3
5744 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);
5746 --------------------------------------------------------------------
5748 Hash Cond: (t2.val = t3.val)
5749 InitPlan 1 (returns $1)
5754 -> Index Scan using t2_val on t2 t2_2
5755 Index Cond: (val > 100)
5756 -> Index Only Scan using t1_pkey on t1 t1_2
5757 Index Cond: (id = t2_2.id)
5759 Merge Cond: (t1.id = t2.id)
5760 -> Index Scan using t1_pkey on t1
5761 Index Cond: (id < $1)
5762 -> Index Scan using t2_pkey on t2
5767 /*+Leading(((t1 t2) t3)) Leading(((t3 t1) t2))*/
5768 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);
5769 INFO: hint syntax error at or near "Leading(((t1 t2) t3)) Leading(((t3 t1) t2))"
5770 DETAIL: Conflict leading hint.
5773 Leading(((t3 t1) t2))
5776 Leading(((t1 t2) t3))
5780 --------------------------------------------------------------------
5782 Hash Cond: (t1.id = t2.id)
5783 InitPlan 1 (returns $1)
5788 -> Index Scan using t2_val on t2 t2_2
5789 Index Cond: (val > 100)
5790 -> Index Only Scan using t1_pkey on t1 t1_2
5791 Index Cond: (id = t2_2.id)
5793 Hash Cond: (t3.val = t1.val)
5796 -> Index Scan using t1_pkey on t1
5797 Index Cond: (id < $1)
5802 /*+Leading(((t1 t2) t3)) Leading((t1_2 t2_2))*/
5803 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);
5806 Leading(((t1 t2) t3))
5807 Leading((t1_2 t2_2))
5813 --------------------------------------------------------------
5815 Hash Cond: (t2.val = t3.val)
5816 InitPlan 1 (returns $0)
5819 Merge Cond: (t1_2.id = t2_2.id)
5820 -> Index Only Scan using t1_pkey on t1 t1_2
5823 -> Index Scan using t2_val on t2 t2_2
5824 Index Cond: (val > 100)
5826 Merge Cond: (t1.id = t2.id)
5827 -> Index Scan using t1_pkey on t1
5828 Index Cond: (id < $0)
5829 -> Index Scan using t2_pkey on t2
5834 /*+Leading(((((t1 t2) t3) t1_2) t2_2))*/
5835 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);
5839 Leading(((((t1 t2) t3) t1_2) t2_2))
5844 --------------------------------------------------------------------
5846 Hash Cond: (t2.val = t3.val)
5847 InitPlan 1 (returns $1)
5852 -> Index Scan using t2_val on t2 t2_2
5853 Index Cond: (val > 100)
5854 -> Index Only Scan using t1_pkey on t1 t1_2
5855 Index Cond: (id = t2_2.id)
5857 Merge Cond: (t1.id = t2.id)
5858 -> Index Scan using t1_pkey on t1
5859 Index Cond: (id < $1)
5860 -> Index Scan using t2_pkey on t2
5865 -- Specified outer/inner leading hint and join method hint at the same time
5866 /*+Leading(((t1 t2) t3))*/
5867 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5870 Leading(((t1 t2) t3))
5876 --------------------------------------------
5878 Join Filter: (t2.val = t3.val)
5880 Hash Cond: (t1.id = t2.id)
5881 -> Index Scan using t1_pkey on t1
5882 Index Cond: (id < 10)
5888 /*+Leading(((t1 t2) t3)) MergeJoin(t1 t2)*/
5889 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5893 Leading(((t1 t2) t3))
5899 --------------------------------------------
5901 Join Filter: (t2.val = t3.val)
5903 Merge Cond: (t1.id = t2.id)
5904 -> Index Scan using t1_pkey on t1
5905 Index Cond: (id < 10)
5906 -> Index Scan using t2_pkey on t2
5910 /*+Leading(((t1 t2) t3)) MergeJoin(t1 t2 t3)*/
5911 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5915 Leading(((t1 t2) t3))
5921 --------------------------------------------------
5923 Merge Cond: (t2.val = t3.val)
5927 Hash Cond: (t1.id = t2.id)
5928 -> Index Scan using t1_pkey on t1
5929 Index Cond: (id < 10)
5937 /*+Leading(((t1 t2) t3)) MergeJoin(t1 t3)*/
5938 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
5941 Leading(((t1 t2) t3))
5948 --------------------------------------------
5950 Join Filter: (t2.val = t3.val)
5952 Hash Cond: (t1.id = t2.id)
5953 -> Index Scan using t1_pkey on t1
5954 Index Cond: (id < 10)
5960 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;
5962 --------------------------------------------------------
5965 Merge Cond: (t3.id = t4.id)
5967 Join Filter: (t1.val = t3.val)
5968 -> Index Scan using t3_pkey on t3
5970 -> Index Scan using t1_pkey on t1
5971 Index Cond: (id < 10)
5975 -> Index Scan using t2_pkey on t2
5976 Index Cond: (id = t1.id)
5979 /*+Leading(((t1 t2) t3)) MergeJoin(t3 t4)*/
5980 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;
5983 Leading(((t1 t2) t3))
5990 --------------------------------------------------
5992 Join Filter: (t3.id = t4.id)
5994 Join Filter: (t1.val = t3.val)
5996 Hash Cond: (t1.id = t2.id)
5997 -> Index Scan using t1_pkey on t1
5998 Index Cond: (id < 10)
6005 /*+Leading(((t1 t2) t3)) MergeJoin(t1 t2 t3 t4)*/
6006 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;
6009 MergeJoin(t1 t2 t3 t4)
6010 Leading(((t1 t2) t3))
6016 --------------------------------------------------------
6018 Merge Cond: (t3.id = t4.id)
6022 Join Filter: (t1.val = t3.val)
6024 Hash Cond: (t1.id = t2.id)
6025 -> Index Scan using t1_pkey on t1
6026 Index Cond: (id < 10)
6035 /*+ Leading ( ( t1 ( t2 t3 ) ) ) */
6036 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6039 Leading((t1 (t2 t3)))
6045 --------------------------------------------
6047 Hash Cond: (t1.id = t2.id)
6048 -> Index Scan using t1_pkey on t1
6049 Index Cond: (id < 10)
6052 Hash Cond: (t2.val = t3.val)
6058 /*+Leading((t1(t2 t3)))*/
6059 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6062 Leading((t1 (t2 t3)))
6068 --------------------------------------------
6070 Hash Cond: (t1.id = t2.id)
6071 -> Index Scan using t1_pkey on t1
6072 Index Cond: (id < 10)
6075 Hash Cond: (t2.val = t3.val)
6081 /*+Leading(("t1(t2" "t3)"))*/
6082 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6086 Leading(("t1(t2" "t3)"))
6091 --------------------------------------------------------
6093 Hash Cond: (t3.val = t2.val)
6097 Hash Cond: (t2.id = t1.id)
6100 -> Index Scan using t1_pkey on t1
6101 Index Cond: (id < 10)
6104 /*+ Leading ( ( ( t1 t2 ) t3 ) ) */
6105 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6108 Leading(((t1 t2) t3))
6114 --------------------------------------------
6116 Join Filter: (t2.val = t3.val)
6118 Hash Cond: (t1.id = t2.id)
6119 -> Index Scan using t1_pkey on t1
6120 Index Cond: (id < 10)
6126 /*+Leading(((t1 t2)t3))*/
6127 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6130 Leading(((t1 t2) t3))
6136 --------------------------------------------
6138 Join Filter: (t2.val = t3.val)
6140 Hash Cond: (t1.id = t2.id)
6141 -> Index Scan using t1_pkey on t1
6142 Index Cond: (id < 10)
6148 /*+Leading(("(t1" "t2)t3"))*/
6149 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3 WHERE t1.id = t2.id AND t2.val = t3.val AND t1.id < 10;
6153 Leading(("(t1" "t2)t3"))
6158 --------------------------------------------------------
6160 Hash Cond: (t3.val = t2.val)
6164 Hash Cond: (t2.id = t1.id)
6167 -> Index Scan using t1_pkey on t1
6168 Index Cond: (id < 10)
6171 /*+Leading((t1(t2(t3(t4 t5)))))*/
6172 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;
6175 Leading((t1 (t2 (t3 (t4 t5)))))
6181 ----------------------------------------------------------------------------------------------------------------------------------
6183 Merge Cond: (t1.id = t2.id)
6184 -> Index Scan using t1_pkey on t1
6187 Merge Cond: (t2.id = t3.id)
6188 -> Index Scan using t2_pkey on t2
6191 Merge Cond: (t3.id = t4.id)
6192 -> Index Scan using t3_pkey on t3
6195 Merge Cond: (t4.id = t5.id)
6196 -> Index Scan using t4_pkey on t4
6197 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6200 /*+Leading((t5(t4(t3(t2 t1)))))*/
6201 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;
6204 Leading((t5 (t4 (t3 (t2 t1)))))
6210 --------------------------------------------------------------------------
6212 Hash Cond: (t5.id = t1.id)
6216 Merge Cond: (t4.id = t1.id)
6222 Merge Cond: (t3.id = t1.id)
6228 Merge Cond: (t2.id = t1.id)
6229 -> Index Scan using t2_pkey on t2
6230 -> Index Scan using t1_pkey on t1
6233 /*+Leading(((((t1 t2)t3)t4)t5))*/
6234 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;
6237 Leading(((((t1 t2) t3) t4) t5))
6243 ----------------------------------------------------------------------------------------------
6246 Merge Cond: (t1.id = t4.id)
6248 Merge Cond: (t1.id = t3.id)
6250 Merge Cond: (t1.id = t2.id)
6251 -> Index Scan using t1_pkey on t1
6252 -> Index Scan using t2_pkey on t2
6259 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6260 Index Cond: (id = t1.id)
6263 /*+Leading(((((t5 t4)t3)t2)t1))*/
6264 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;
6267 Leading(((((t5 t4) t3) t2) t1))
6273 ----------------------------------------------------------------------------------------------------------------
6275 Join Filter: (t2.id = t1.id)
6277 Join Filter: (t3.id = t2.id)
6279 Merge Cond: (t4.id = t3.id)
6281 Merge Cond: (t5.id = t4.id)
6282 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6286 -> Index Scan using t3_pkey on t3
6287 -> Index Scan using t2_pkey on t2
6288 Index Cond: (id = t5.id)
6289 -> Index Scan using t1_pkey on t1
6290 Index Cond: (id = t5.id)
6293 /*+Leading(((t1 t2)(t3(t4 t5))))*/
6294 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;
6297 Leading(((t1 t2) (t3 (t4 t5))))
6303 ----------------------------------------------------------------------------------------------------------------------
6305 Merge Cond: (t1.id = t3.id)
6307 Merge Cond: (t1.id = t2.id)
6308 -> Index Scan using t1_pkey on t1
6309 -> Index Scan using t2_pkey on t2
6312 Merge Cond: (t3.id = t4.id)
6313 -> Index Scan using t3_pkey on t3
6316 Merge Cond: (t4.id = t5.id)
6317 -> Index Scan using t4_pkey on t4
6318 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6321 /*+Leading(((t5 t4)(t3(t2 t1))))*/
6322 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;
6325 Leading(((t5 t4) (t3 (t2 t1))))
6331 ----------------------------------------------------------------------------------------------------
6333 Merge Cond: (t4.id = t1.id)
6335 Merge Cond: (t5.id = t4.id)
6336 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6342 Merge Cond: (t3.id = t1.id)
6348 Merge Cond: (t2.id = t1.id)
6349 -> Index Scan using t2_pkey on t2
6350 -> Index Scan using t1_pkey on t1
6353 /*+Leading((((t1 t2)t3)(t4 t5)))*/
6354 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;
6357 Leading((((t1 t2) t3) (t4 t5)))
6363 ----------------------------------------------------------------------------------------------------------
6365 Merge Cond: (t1.id = t4.id)
6367 Merge Cond: (t1.id = t3.id)
6369 Merge Cond: (t1.id = t2.id)
6370 -> Index Scan using t1_pkey on t1
6371 -> Index Scan using t2_pkey on t2
6377 Merge Cond: (t4.id = t5.id)
6378 -> Index Scan using t4_pkey on t4
6379 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6382 /*+Leading((((t5 t4)t3)(t2 t1)))*/
6383 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;
6386 Leading((((t5 t4) t3) (t2 t1)))
6392 ----------------------------------------------------------------------------------------------------------
6394 Merge Cond: (t3.id = t1.id)
6396 Merge Cond: (t4.id = t3.id)
6398 Merge Cond: (t5.id = t4.id)
6399 -> Index Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
6403 -> Index Scan using t3_pkey on t3
6406 Merge Cond: (t2.id = t1.id)
6407 -> Index Scan using t2_pkey on t2
6408 -> Index Scan using t1_pkey on t1
6411 -- inherite table test to specify the index's name
6412 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6414 -----------------------------------------------------------------------
6417 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6418 -> Seq Scan on p2_c1
6419 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6420 -> Tid Scan on p2_c1_c1
6421 TID Cond: (ctid = '(1,1)'::tid)
6422 Filter: ((id >= 50) AND (id <= 51))
6423 -> Tid Scan on p2_c1_c2
6424 TID Cond: (ctid = '(1,1)'::tid)
6425 Filter: ((id >= 50) AND (id <= 51))
6428 /*+IndexScan(p2 p2_pkey)*/
6429 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6430 LOG: available indexes for IndexScan(p2): p2_pkey
6431 LOG: available indexes for IndexScan(p2_c1): p2_c1_pkey
6432 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6433 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6434 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6435 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6436 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6437 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6438 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6441 IndexScan(p2 p2_pkey)
6447 --------------------------------------------------
6449 -> Index Scan using p2_pkey on p2
6450 Index Cond: ((id >= 50) AND (id <= 51))
6451 Filter: (ctid = '(1,1)'::tid)
6452 -> Index Scan using p2_c1_pkey on p2_c1
6453 Index Cond: ((id >= 50) AND (id <= 51))
6454 Filter: (ctid = '(1,1)'::tid)
6455 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1
6456 Index Cond: ((id >= 50) AND (id <= 51))
6457 Filter: (ctid = '(1,1)'::tid)
6458 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2
6459 Index Cond: ((id >= 50) AND (id <= 51))
6460 Filter: (ctid = '(1,1)'::tid)
6463 /*+IndexScan(p2 p2_id_val_idx)*/
6464 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6465 LOG: available indexes for IndexScan(p2): p2_id_val_idx
6466 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx
6467 LOG: available indexes for IndexScan(p2_c2): p2_c2_id_val_idx
6468 LOG: available indexes for IndexScan(p2_c3): p2_c3_id_val_idx
6469 LOG: available indexes for IndexScan(p2_c4): p2_c4_id_val_idx
6470 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_id_val_idx
6471 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_id_val_idx
6472 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_id_val_idx
6473 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_id_val_idx
6476 IndexScan(p2 p2_id_val_idx)
6482 --------------------------------------------------------
6484 -> Index Scan using p2_id_val_idx on p2
6485 Index Cond: ((id >= 50) AND (id <= 51))
6486 Filter: (ctid = '(1,1)'::tid)
6487 -> Index Scan using p2_c1_id_val_idx on p2_c1
6488 Index Cond: ((id >= 50) AND (id <= 51))
6489 Filter: (ctid = '(1,1)'::tid)
6490 -> Index Scan using p2_c1_c1_id_val_idx on p2_c1_c1
6491 Index Cond: ((id >= 50) AND (id <= 51))
6492 Filter: (ctid = '(1,1)'::tid)
6493 -> Index Scan using p2_c1_c2_id_val_idx on p2_c1_c2
6494 Index Cond: ((id >= 50) AND (id <= 51))
6495 Filter: (ctid = '(1,1)'::tid)
6498 /*+IndexScan(p2 p2_val_id_idx)*/
6499 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6500 LOG: available indexes for IndexScan(p2): p2_val_id_idx
6501 LOG: available indexes for IndexScan(p2_c1): p2_c1_val_id_idx
6502 LOG: available indexes for IndexScan(p2_c2): p2_c2_val_id_idx
6503 LOG: available indexes for IndexScan(p2_c3): p2_c3_val_id_idx
6504 LOG: available indexes for IndexScan(p2_c4):
6505 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_val_id_idx
6506 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_val_id_idx
6507 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_val_id_idx
6508 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_val_id_idx
6511 IndexScan(p2 p2_val_id_idx)
6517 --------------------------------------------------------
6519 -> Index Scan using p2_val_id_idx on p2
6520 Index Cond: ((id >= 50) AND (id <= 51))
6521 Filter: (ctid = '(1,1)'::tid)
6522 -> Index Scan using p2_c1_val_id_idx on p2_c1
6523 Index Cond: ((id >= 50) AND (id <= 51))
6524 Filter: (ctid = '(1,1)'::tid)
6525 -> Index Scan using p2_c1_c1_val_id_idx on p2_c1_c1
6526 Index Cond: ((id >= 50) AND (id <= 51))
6527 Filter: (ctid = '(1,1)'::tid)
6528 -> Index Scan using p2_c1_c2_val_id_idx on p2_c1_c2
6529 Index Cond: ((id >= 50) AND (id <= 51))
6530 Filter: (ctid = '(1,1)'::tid)
6533 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
6535 -----------------------------------------------------------------------------------------
6538 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6539 -> Seq Scan on p2_c1
6540 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6541 -> Seq Scan on p2_c2
6542 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6543 -> Seq Scan on p2_c3
6544 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6545 -> Tid Scan on p2_c4
6546 TID Cond: (ctid = '(1,1)'::tid)
6547 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6548 -> Tid Scan on p2_c1_c1
6549 TID Cond: (ctid = '(1,1)'::tid)
6550 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6551 -> Tid Scan on p2_c1_c2
6552 TID Cond: (ctid = '(1,1)'::tid)
6553 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6554 -> Tid Scan on p2_c3_c1
6555 TID Cond: (ctid = '(1,1)'::tid)
6556 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6557 -> Tid Scan on p2_c3_c2
6558 TID Cond: (ctid = '(1,1)'::tid)
6559 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6562 /*+IndexScan(p2 p2_val)*/
6563 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
6564 LOG: available indexes for IndexScan(p2):
6565 LOG: available indexes for IndexScan(p2_c1):
6566 LOG: available indexes for IndexScan(p2_c2):
6567 LOG: available indexes for IndexScan(p2_c3):
6568 LOG: available indexes for IndexScan(p2_c4):
6569 LOG: available indexes for IndexScan(p2_c1_c1):
6570 LOG: available indexes for IndexScan(p2_c1_c2):
6571 LOG: available indexes for IndexScan(p2_c3_c1):
6572 LOG: available indexes for IndexScan(p2_c3_c2):
6575 IndexScan(p2 p2_val)
6581 -----------------------------------------------------------------------------------------
6584 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6585 -> Seq Scan on p2_c1
6586 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6587 -> Seq Scan on p2_c2
6588 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6589 -> Seq Scan on p2_c3
6590 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
6591 -> Tid Scan on p2_c4
6592 TID Cond: (ctid = '(1,1)'::tid)
6593 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6594 -> Tid Scan on p2_c1_c1
6595 TID Cond: (ctid = '(1,1)'::tid)
6596 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6597 -> Tid Scan on p2_c1_c2
6598 TID Cond: (ctid = '(1,1)'::tid)
6599 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6600 -> Tid Scan on p2_c3_c1
6601 TID Cond: (ctid = '(1,1)'::tid)
6602 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6603 -> Tid Scan on p2_c3_c2
6604 TID Cond: (ctid = '(1,1)'::tid)
6605 Filter: ((val >= '50'::text) AND (val <= '51'::text))
6608 /*+IndexScan(p2 p2_pkey)*/
6609 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6610 LOG: available indexes for IndexScan(p2): p2_pkey
6611 LOG: available indexes for IndexScan(p2_c1): p2_c1_pkey
6612 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6613 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6614 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6615 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6616 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6617 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6618 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6621 IndexScan(p2 p2_pkey)
6627 --------------------------------------------------
6629 -> Index Scan using p2_pkey on p2
6630 Index Cond: ((id >= 50) AND (id <= 51))
6631 Filter: (ctid = '(1,1)'::tid)
6632 -> Index Scan using p2_c1_pkey on p2_c1
6633 Index Cond: ((id >= 50) AND (id <= 51))
6634 Filter: (ctid = '(1,1)'::tid)
6635 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1
6636 Index Cond: ((id >= 50) AND (id <= 51))
6637 Filter: (ctid = '(1,1)'::tid)
6638 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2
6639 Index Cond: ((id >= 50) AND (id <= 51))
6640 Filter: (ctid = '(1,1)'::tid)
6643 /*+IndexScan(p2 p2_id2_val)*/
6644 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6645 LOG: available indexes for IndexScan(p2): p2_id2_val
6646 LOG: available indexes for IndexScan(p2_c1): p2_c1_id2_val
6647 LOG: available indexes for IndexScan(p2_c2): p2_c2_id2_val
6648 LOG: available indexes for IndexScan(p2_c3):
6649 LOG: available indexes for IndexScan(p2_c4):
6650 LOG: available indexes for IndexScan(p2_c1_c1):
6651 LOG: available indexes for IndexScan(p2_c1_c2):
6652 LOG: available indexes for IndexScan(p2_c3_c1):
6653 LOG: available indexes for IndexScan(p2_c3_c2):
6656 IndexScan(p2 p2_id2_val)
6662 -------------------------------------------------
6664 -> Index Scan using p2_id2_val on p2
6665 Index Cond: ((id >= 50) AND (id <= 51))
6666 Filter: (ctid = '(1,1)'::tid)
6667 -> Index Scan using p2_c1_id2_val on p2_c1
6668 Index Cond: ((id >= 50) AND (id <= 51))
6669 Filter: (ctid = '(1,1)'::tid)
6670 -> Tid Scan on p2_c1_c1
6671 TID Cond: (ctid = '(1,1)'::tid)
6672 Filter: ((id >= 50) AND (id <= 51))
6673 -> Tid Scan on p2_c1_c2
6674 TID Cond: (ctid = '(1,1)'::tid)
6675 Filter: ((id >= 50) AND (id <= 51))
6678 /*+IndexScan(p2 p2_val2_id)*/
6679 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6680 LOG: available indexes for IndexScan(p2): p2_val2_id
6681 LOG: available indexes for IndexScan(p2_c1):
6682 LOG: available indexes for IndexScan(p2_c2):
6683 LOG: available indexes for IndexScan(p2_c3):
6684 LOG: available indexes for IndexScan(p2_c4):
6685 LOG: available indexes for IndexScan(p2_c1_c1):
6686 LOG: available indexes for IndexScan(p2_c1_c2):
6687 LOG: available indexes for IndexScan(p2_c3_c1):
6688 LOG: available indexes for IndexScan(p2_c3_c2):
6691 IndexScan(p2 p2_val2_id)
6697 -----------------------------------------------------------------------
6699 -> Index Scan using p2_val2_id on p2
6700 Index Cond: ((id >= 50) AND (id <= 51))
6701 Filter: (ctid = '(1,1)'::tid)
6702 -> Seq Scan on p2_c1
6703 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6704 -> Tid Scan on p2_c1_c1
6705 TID Cond: (ctid = '(1,1)'::tid)
6706 Filter: ((id >= 50) AND (id <= 51))
6707 -> Tid Scan on p2_c1_c2
6708 TID Cond: (ctid = '(1,1)'::tid)
6709 Filter: ((id >= 50) AND (id <= 51))
6712 /*+IndexScan(p2 p2_pkey)*/
6713 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6714 LOG: available indexes for IndexScan(p2): p2_pkey
6715 LOG: available indexes for IndexScan(p2_c1): p2_c1_pkey
6716 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6717 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6718 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6719 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6720 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6721 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6722 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6725 IndexScan(p2 p2_pkey)
6731 --------------------------------------------------
6733 -> Index Scan using p2_pkey on p2
6734 Index Cond: ((id >= 50) AND (id <= 51))
6735 Filter: (ctid = '(1,1)'::tid)
6736 -> Index Scan using p2_c1_pkey on p2_c1
6737 Index Cond: ((id >= 50) AND (id <= 51))
6738 Filter: (ctid = '(1,1)'::tid)
6739 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1
6740 Index Cond: ((id >= 50) AND (id <= 51))
6741 Filter: (ctid = '(1,1)'::tid)
6742 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2
6743 Index Cond: ((id >= 50) AND (id <= 51))
6744 Filter: (ctid = '(1,1)'::tid)
6747 /*+IndexScan(p2 p2_c1_id_val_idx)*/
6748 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6749 LOG: available indexes for IndexScan(p2):
6750 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx
6751 LOG: available indexes for IndexScan(p2_c2):
6752 LOG: available indexes for IndexScan(p2_c3):
6753 LOG: available indexes for IndexScan(p2_c4):
6754 LOG: available indexes for IndexScan(p2_c1_c1):
6755 LOG: available indexes for IndexScan(p2_c1_c2):
6756 LOG: available indexes for IndexScan(p2_c3_c1):
6757 LOG: available indexes for IndexScan(p2_c3_c2):
6760 IndexScan(p2 p2_c1_id_val_idx)
6766 -----------------------------------------------------------------------
6769 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6770 -> Index Scan using p2_c1_id_val_idx on p2_c1
6771 Index Cond: ((id >= 50) AND (id <= 51))
6772 Filter: (ctid = '(1,1)'::tid)
6773 -> Tid Scan on p2_c1_c1
6774 TID Cond: (ctid = '(1,1)'::tid)
6775 Filter: ((id >= 50) AND (id <= 51))
6776 -> Tid Scan on p2_c1_c2
6777 TID Cond: (ctid = '(1,1)'::tid)
6778 Filter: ((id >= 50) AND (id <= 51))
6781 /*+IndexScan(p2 no_exist)*/
6782 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6783 LOG: available indexes for IndexScan(p2):
6784 LOG: available indexes for IndexScan(p2_c1):
6785 LOG: available indexes for IndexScan(p2_c2):
6786 LOG: available indexes for IndexScan(p2_c3):
6787 LOG: available indexes for IndexScan(p2_c4):
6788 LOG: available indexes for IndexScan(p2_c1_c1):
6789 LOG: available indexes for IndexScan(p2_c1_c2):
6790 LOG: available indexes for IndexScan(p2_c3_c1):
6791 LOG: available indexes for IndexScan(p2_c3_c2):
6794 IndexScan(p2 no_exist)
6800 -----------------------------------------------------------------------
6803 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6804 -> Seq Scan on p2_c1
6805 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6806 -> Tid Scan on p2_c1_c1
6807 TID Cond: (ctid = '(1,1)'::tid)
6808 Filter: ((id >= 50) AND (id <= 51))
6809 -> Tid Scan on p2_c1_c2
6810 TID Cond: (ctid = '(1,1)'::tid)
6811 Filter: ((id >= 50) AND (id <= 51))
6814 /*+IndexScan(p2 p2_pkey p2_c1_id_val_idx)*/
6815 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6816 LOG: available indexes for IndexScan(p2): p2_pkey
6817 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx p2_c1_pkey
6818 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6819 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6820 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6821 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6822 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6823 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6824 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6827 IndexScan(p2 p2_pkey p2_c1_id_val_idx)
6833 --------------------------------------------------
6835 -> Index Scan using p2_pkey on p2
6836 Index Cond: ((id >= 50) AND (id <= 51))
6837 Filter: (ctid = '(1,1)'::tid)
6838 -> Index Scan using p2_c1_id_val_idx on p2_c1
6839 Index Cond: ((id >= 50) AND (id <= 51))
6840 Filter: (ctid = '(1,1)'::tid)
6841 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1
6842 Index Cond: ((id >= 50) AND (id <= 51))
6843 Filter: (ctid = '(1,1)'::tid)
6844 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2
6845 Index Cond: ((id >= 50) AND (id <= 51))
6846 Filter: (ctid = '(1,1)'::tid)
6849 /*+IndexScan(p2 p2_pkey no_exist)*/
6850 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6851 LOG: available indexes for IndexScan(p2): p2_pkey
6852 LOG: available indexes for IndexScan(p2_c1): p2_c1_pkey
6853 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6854 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6855 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6856 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6857 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6858 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6859 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6862 IndexScan(p2 p2_pkey no_exist)
6868 --------------------------------------------------
6870 -> Index Scan using p2_pkey on p2
6871 Index Cond: ((id >= 50) AND (id <= 51))
6872 Filter: (ctid = '(1,1)'::tid)
6873 -> Index Scan using p2_c1_pkey on p2_c1
6874 Index Cond: ((id >= 50) AND (id <= 51))
6875 Filter: (ctid = '(1,1)'::tid)
6876 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1
6877 Index Cond: ((id >= 50) AND (id <= 51))
6878 Filter: (ctid = '(1,1)'::tid)
6879 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2
6880 Index Cond: ((id >= 50) AND (id <= 51))
6881 Filter: (ctid = '(1,1)'::tid)
6884 /*+IndexScan(p2 p2_c1_id_val_idx no_exist)*/
6885 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6886 LOG: available indexes for IndexScan(p2):
6887 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx
6888 LOG: available indexes for IndexScan(p2_c2):
6889 LOG: available indexes for IndexScan(p2_c3):
6890 LOG: available indexes for IndexScan(p2_c4):
6891 LOG: available indexes for IndexScan(p2_c1_c1):
6892 LOG: available indexes for IndexScan(p2_c1_c2):
6893 LOG: available indexes for IndexScan(p2_c3_c1):
6894 LOG: available indexes for IndexScan(p2_c3_c2):
6897 IndexScan(p2 p2_c1_id_val_idx no_exist)
6903 -----------------------------------------------------------------------
6906 Filter: ((id >= 50) AND (id <= 51) AND (ctid = '(1,1)'::tid))
6907 -> Index Scan using p2_c1_id_val_idx on p2_c1
6908 Index Cond: ((id >= 50) AND (id <= 51))
6909 Filter: (ctid = '(1,1)'::tid)
6910 -> Tid Scan on p2_c1_c1
6911 TID Cond: (ctid = '(1,1)'::tid)
6912 Filter: ((id >= 50) AND (id <= 51))
6913 -> Tid Scan on p2_c1_c2
6914 TID Cond: (ctid = '(1,1)'::tid)
6915 Filter: ((id >= 50) AND (id <= 51))
6918 /*+IndexScan(p2 p2_pkey p2_c1_id_val_idx no_exist)*/
6919 EXPLAIN (COSTS false) SELECT * FROM p2 WHERE id >= 50 AND id <= 51 AND p2.ctid = '(1,1)';
6920 LOG: available indexes for IndexScan(p2): p2_pkey
6921 LOG: available indexes for IndexScan(p2_c1): p2_c1_id_val_idx p2_c1_pkey
6922 LOG: available indexes for IndexScan(p2_c2): p2_c2_pkey
6923 LOG: available indexes for IndexScan(p2_c3): p2_c3_pkey
6924 LOG: available indexes for IndexScan(p2_c4): p2_c4_pkey
6925 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_pkey
6926 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_pkey
6927 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_pkey
6928 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_pkey
6931 IndexScan(p2 p2_pkey p2_c1_id_val_idx no_exist)
6937 --------------------------------------------------
6939 -> Index Scan using p2_pkey on p2
6940 Index Cond: ((id >= 50) AND (id <= 51))
6941 Filter: (ctid = '(1,1)'::tid)
6942 -> Index Scan using p2_c1_id_val_idx on p2_c1
6943 Index Cond: ((id >= 50) AND (id <= 51))
6944 Filter: (ctid = '(1,1)'::tid)
6945 -> Index Scan using p2_c1_c1_pkey on p2_c1_c1
6946 Index Cond: ((id >= 50) AND (id <= 51))
6947 Filter: (ctid = '(1,1)'::tid)
6948 -> Index Scan using p2_c1_c2_pkey on p2_c1_c2
6949 Index Cond: ((id >= 50) AND (id <= 51))
6950 Filter: (ctid = '(1,1)'::tid)
6953 /*+IndexScan(p2 p2_val_idx)*/
6954 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
6955 LOG: available indexes for IndexScan(p2): p2_val_idx
6956 LOG: available indexes for IndexScan(p2_c1): p2_c1_val_idx
6957 LOG: available indexes for IndexScan(p2_c2): p2_c2_val_idx
6958 LOG: available indexes for IndexScan(p2_c3): p2_c3_val_idx
6959 LOG: available indexes for IndexScan(p2_c4): p2_c4_val_idx
6960 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_val_idx
6961 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_val_idx
6962 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_val_idx
6963 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_val_idx
6966 IndexScan(p2 p2_val_idx)
6972 -------------------------------------------------------------------
6974 -> Index Scan using p2_val_idx on p2
6975 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6976 Filter: (ctid = '(1,1)'::tid)
6977 -> Index Scan using p2_c1_val_idx on p2_c1
6978 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6979 Filter: (ctid = '(1,1)'::tid)
6980 -> Index Scan using p2_c2_val_idx on p2_c2
6981 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6982 Filter: (ctid = '(1,1)'::tid)
6983 -> Index Scan using p2_c3_val_idx on p2_c3
6984 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6985 Filter: (ctid = '(1,1)'::tid)
6986 -> Index Scan using p2_c4_val_idx on p2_c4
6987 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6988 Filter: (ctid = '(1,1)'::tid)
6989 -> Index Scan using p2_c1_c1_val_idx on p2_c1_c1
6990 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6991 Filter: (ctid = '(1,1)'::tid)
6992 -> Index Scan using p2_c1_c2_val_idx on p2_c1_c2
6993 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6994 Filter: (ctid = '(1,1)'::tid)
6995 -> Index Scan using p2_c3_c1_val_idx on p2_c3_c1
6996 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
6997 Filter: (ctid = '(1,1)'::tid)
6998 -> Index Scan using p2_c3_c2_val_idx on p2_c3_c2
6999 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7000 Filter: (ctid = '(1,1)'::tid)
7003 /*+IndexScan(p2 p2_expr)*/
7004 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
7005 LOG: available indexes for IndexScan(p2): p2_expr
7006 LOG: available indexes for IndexScan(p2_c1): p2_c1_expr_idx
7007 LOG: available indexes for IndexScan(p2_c2): p2_c2_expr_idx
7008 LOG: available indexes for IndexScan(p2_c3): p2_c3_expr_idx
7009 LOG: available indexes for IndexScan(p2_c4): p2_c4_expr_idx
7010 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_expr_idx
7011 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_expr_idx
7012 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_expr_idx
7013 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_expr_idx
7016 IndexScan(p2 p2_expr)
7022 -----------------------------------------------------------------------------------------
7025 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7026 -> Seq Scan on p2_c1
7027 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7028 -> Seq Scan on p2_c2
7029 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7030 -> Seq Scan on p2_c3
7031 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7032 -> Tid Scan on p2_c4
7033 TID Cond: (ctid = '(1,1)'::tid)
7034 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7035 -> Tid Scan on p2_c1_c1
7036 TID Cond: (ctid = '(1,1)'::tid)
7037 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7038 -> Tid Scan on p2_c1_c2
7039 TID Cond: (ctid = '(1,1)'::tid)
7040 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7041 -> Tid Scan on p2_c3_c1
7042 TID Cond: (ctid = '(1,1)'::tid)
7043 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7044 -> Tid Scan on p2_c3_c2
7045 TID Cond: (ctid = '(1,1)'::tid)
7046 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7049 /*+IndexScan(p2 p2_val_idx6)*/
7050 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
7051 LOG: available indexes for IndexScan(p2): p2_val_idx6
7052 LOG: available indexes for IndexScan(p2_c1): p2_c1_val_idx6
7053 LOG: available indexes for IndexScan(p2_c2): p2_c2_val_idx6
7054 LOG: available indexes for IndexScan(p2_c3): p2_c3_val_idx6
7055 LOG: available indexes for IndexScan(p2_c4): p2_c4_val_idx6
7056 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_val_idx6
7057 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_val_idx6
7058 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_val_idx6
7059 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_val_idx6
7062 IndexScan(p2 p2_val_idx6)
7068 -----------------------------------------------------------------------------------------
7071 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7072 -> Seq Scan on p2_c1
7073 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7074 -> Seq Scan on p2_c2
7075 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7076 -> Seq Scan on p2_c3
7077 Filter: ((val >= '50'::text) AND (val <= '51'::text) AND (ctid = '(1,1)'::tid))
7078 -> Tid Scan on p2_c4
7079 TID Cond: (ctid = '(1,1)'::tid)
7080 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7081 -> Tid Scan on p2_c1_c1
7082 TID Cond: (ctid = '(1,1)'::tid)
7083 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7084 -> Tid Scan on p2_c1_c2
7085 TID Cond: (ctid = '(1,1)'::tid)
7086 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7087 -> Tid Scan on p2_c3_c1
7088 TID Cond: (ctid = '(1,1)'::tid)
7089 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7090 -> Tid Scan on p2_c3_c2
7091 TID Cond: (ctid = '(1,1)'::tid)
7092 Filter: ((val >= '50'::text) AND (val <= '51'::text))
7095 /*+IndexScan(p2 p2_val_idx p2_val_idx6)*/
7096 EXPLAIN (COSTS false) SELECT val FROM p2 WHERE val >= '50' AND val <= '51' AND p2.ctid = '(1,1)';
7097 LOG: available indexes for IndexScan(p2): p2_val_idx6 p2_val_idx
7098 LOG: available indexes for IndexScan(p2_c1): p2_c1_val_idx6 p2_c1_val_idx
7099 LOG: available indexes for IndexScan(p2_c2): p2_c2_val_idx6 p2_c2_val_idx
7100 LOG: available indexes for IndexScan(p2_c3): p2_c3_val_idx6 p2_c3_val_idx
7101 LOG: available indexes for IndexScan(p2_c4): p2_c4_val_idx6 p2_c4_val_idx
7102 LOG: available indexes for IndexScan(p2_c1_c1): p2_c1_c1_val_idx6 p2_c1_c1_val_idx
7103 LOG: available indexes for IndexScan(p2_c1_c2): p2_c1_c2_val_idx6 p2_c1_c2_val_idx
7104 LOG: available indexes for IndexScan(p2_c3_c1): p2_c3_c1_val_idx6 p2_c3_c1_val_idx
7105 LOG: available indexes for IndexScan(p2_c3_c2): p2_c3_c2_val_idx6 p2_c3_c2_val_idx
7108 IndexScan(p2 p2_val_idx p2_val_idx6)
7114 -------------------------------------------------------------------
7116 -> Index Scan using p2_val_idx on p2
7117 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7118 Filter: (ctid = '(1,1)'::tid)
7119 -> Index Scan using p2_c1_val_idx on p2_c1
7120 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7121 Filter: (ctid = '(1,1)'::tid)
7122 -> Index Scan using p2_c2_val_idx on p2_c2
7123 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7124 Filter: (ctid = '(1,1)'::tid)
7125 -> Index Scan using p2_c3_val_idx on p2_c3
7126 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7127 Filter: (ctid = '(1,1)'::tid)
7128 -> Index Scan using p2_c4_val_idx on p2_c4
7129 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7130 Filter: (ctid = '(1,1)'::tid)
7131 -> Index Scan using p2_c1_c1_val_idx on p2_c1_c1
7132 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7133 Filter: (ctid = '(1,1)'::tid)
7134 -> Index Scan using p2_c1_c2_val_idx on p2_c1_c2
7135 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7136 Filter: (ctid = '(1,1)'::tid)
7137 -> Index Scan using p2_c3_c1_val_idx on p2_c3_c1
7138 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7139 Filter: (ctid = '(1,1)'::tid)
7140 -> Index Scan using p2_c3_c2_val_idx on p2_c3_c2
7141 Index Cond: ((val >= '50'::text) AND (val <= '51'::text))
7142 Filter: (ctid = '(1,1)'::tid)
7145 -- regular expression
7147 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7149 ---------------------------------------------------------------------------------------------
7150 Index Only Scan using t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa on t5
7151 Index Cond: (id = 1)
7154 /*+ IndexScanRegexp(t5 t5_[^i].*)*/
7155 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7156 LOG: available indexes for IndexScanRegexp(t5): t5_val t5_pkey
7159 IndexScanRegexp(t5 t5_[^i].*)
7165 --------------------------------
7166 Index Scan using t5_pkey on t5
7167 Index Cond: (id = 1)
7170 /*+ IndexScanRegexp(t5 t5_id[0-9].*)*/
7171 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7172 LOG: available indexes for IndexScanRegexp(t5): t5_id3 t5_id2 t5_id1
7175 IndexScanRegexp(t5 t5_id[0-9].*)
7181 -------------------------------
7182 Index Scan using t5_id3 on t5
7183 Index Cond: (id = 1)
7186 /*+ IndexScanRegexp(t5 t5[^_].*)*/
7187 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7188 LOG: available indexes for IndexScanRegexp(t5):
7191 IndexScanRegexp(t5 t5[^_].*)
7197 --------------------
7202 /*+ IndexScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)*/
7203 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7204 LOG: available indexes for IndexScanRegexp(t5):
7207 IndexScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)
7213 --------------------
7218 /*+ IndexScan(t5 t5_id[0-9].*)*/
7219 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7220 LOG: available indexes for IndexScan(t5):
7223 IndexScan(t5 t5_id[0-9].*)
7229 --------------------
7234 /*+ IndexOnlyScanRegexp(t5 t5_[^i].*)*/
7235 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7236 LOG: available indexes for IndexOnlyScanRegexp(t5): t5_val t5_pkey
7239 IndexOnlyScanRegexp(t5 t5_[^i].*)
7245 -------------------------------------
7246 Index Only Scan using t5_pkey on t5
7247 Index Cond: (id = 1)
7250 /*+ IndexOnlyScanRegexp(t5 t5_id[0-9].*)*/
7251 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7252 LOG: available indexes for IndexOnlyScanRegexp(t5): t5_id3 t5_id2 t5_id1
7255 IndexOnlyScanRegexp(t5 t5_id[0-9].*)
7261 ------------------------------------
7262 Index Only Scan using t5_id3 on t5
7263 Index Cond: (id = 1)
7266 /*+ IndexOnlyScanRegexp(t5 t5[^_].*)*/
7267 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7268 LOG: available indexes for IndexOnlyScanRegexp(t5):
7271 IndexOnlyScanRegexp(t5 t5[^_].*)
7277 --------------------
7282 /*+ IndexOnlyScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)*/
7283 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7284 LOG: available indexes for IndexOnlyScanRegexp(t5):
7287 IndexOnlyScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)
7293 --------------------
7298 /*+ IndexOnlyScan(t5 t5_id[0-9].*)*/
7299 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7300 LOG: available indexes for IndexOnlyScan(t5):
7303 IndexOnlyScan(t5 t5_id[0-9].*)
7309 --------------------
7314 /*+ BitmapScanRegexp(t5 t5_[^i].*)*/
7315 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7316 LOG: available indexes for BitmapScanRegexp(t5): t5_val t5_pkey
7319 BitmapScanRegexp(t5 t5_[^i].*)
7325 ------------------------------------
7326 Bitmap Heap Scan on t5
7327 Recheck Cond: (id = 1)
7328 -> Bitmap Index Scan on t5_pkey
7329 Index Cond: (id = 1)
7332 /*+ BitmapScanRegexp(t5 t5_id[0-9].*)*/
7333 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7334 LOG: available indexes for BitmapScanRegexp(t5): t5_id3 t5_id2 t5_id1
7337 BitmapScanRegexp(t5 t5_id[0-9].*)
7343 -----------------------------------
7344 Bitmap Heap Scan on t5
7345 Recheck Cond: (id = 1)
7346 -> Bitmap Index Scan on t5_id3
7347 Index Cond: (id = 1)
7350 /*+ BitmapScanRegexp(t5 t5[^_].*)*/
7351 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7352 LOG: available indexes for BitmapScanRegexp(t5):
7355 BitmapScanRegexp(t5 t5[^_].*)
7361 --------------------
7366 /*+ BitmapScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)*/
7367 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7368 LOG: available indexes for BitmapScanRegexp(t5):
7371 BitmapScanRegexp(t5 ^.*t5_idaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab)
7377 --------------------
7382 /*+ BitmapScan(t5 t5_id[0-9].*)*/
7383 EXPLAIN (COSTS false) SELECT id FROM t5 WHERE id = 1;
7384 LOG: available indexes for BitmapScan(t5):
7387 BitmapScan(t5 t5_id[0-9].*)
7393 --------------------
7399 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7401 ----------------------------
7405 -> Seq Scan on p1_c1
7407 -> Seq Scan on p1_c2
7409 -> Seq Scan on p1_c3
7411 -> Seq Scan on p1_c4
7413 -> Seq Scan on p1_c1_c1
7415 -> Seq Scan on p1_c1_c2
7417 -> Seq Scan on p1_c3_c1
7419 -> Seq Scan on p1_c3_c2
7423 /*+ IndexScanRegexp(p1 p1_.*[^0-9]$)*/
7424 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7425 LOG: available indexes for IndexScanRegexp(p1): p1_pkey
7426 LOG: available indexes for IndexScanRegexp(p1_c1): p1_c1_pkey
7427 LOG: available indexes for IndexScanRegexp(p1_c2): p1_c2_pkey
7428 LOG: available indexes for IndexScanRegexp(p1_c3): p1_c3_pkey
7429 LOG: available indexes for IndexScanRegexp(p1_c4): p1_c4_pkey
7430 LOG: available indexes for IndexScanRegexp(p1_c1_c1): p1_c1_c1_pkey
7431 LOG: available indexes for IndexScanRegexp(p1_c1_c2): p1_c1_c2_pkey
7432 LOG: available indexes for IndexScanRegexp(p1_c3_c1): p1_c3_c1_pkey
7433 LOG: available indexes for IndexScanRegexp(p1_c3_c2): p1_c3_c2_pkey
7436 IndexScanRegexp(p1 p1_.*[^0-9]$)
7442 ----------------------------
7446 -> Seq Scan on p1_c1
7448 -> Seq Scan on p1_c2
7450 -> Seq Scan on p1_c3
7452 -> Seq Scan on p1_c4
7454 -> Seq Scan on p1_c1_c1
7456 -> Seq Scan on p1_c1_c2
7458 -> Seq Scan on p1_c3_c1
7460 -> Seq Scan on p1_c3_c2
7464 /*+ IndexScanRegexp(p1 p1_.*val2.*)*/
7465 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7466 LOG: available indexes for IndexScanRegexp(p1): p1_val2
7467 LOG: available indexes for IndexScanRegexp(p1_c1): p1_c1_val2
7468 LOG: available indexes for IndexScanRegexp(p1_c2): p1_c2_val2
7469 LOG: available indexes for IndexScanRegexp(p1_c3): p1_c3_val2
7470 LOG: available indexes for IndexScanRegexp(p1_c4): p1_c4_val2
7471 LOG: available indexes for IndexScanRegexp(p1_c1_c1): p1_c1_c1_val2
7472 LOG: available indexes for IndexScanRegexp(p1_c1_c2): p1_c1_c2_val2
7473 LOG: available indexes for IndexScanRegexp(p1_c3_c1): p1_c3_c1_val2
7474 LOG: available indexes for IndexScanRegexp(p1_c3_c2): p1_c3_c2_val2
7477 IndexScanRegexp(p1 p1_.*val2.*)
7483 --------------------------------------------------
7485 -> Index Scan using p1_val2 on p1
7486 Index Cond: (val = 1)
7487 -> Index Scan using p1_c1_val2 on p1_c1
7488 Index Cond: (val = 1)
7489 -> Index Scan using p1_c2_val2 on p1_c2
7490 Index Cond: (val = 1)
7491 -> Index Scan using p1_c3_val2 on p1_c3
7492 Index Cond: (val = 1)
7493 -> Index Scan using p1_c4_val2 on p1_c4
7494 Index Cond: (val = 1)
7495 -> Index Scan using p1_c1_c1_val2 on p1_c1_c1
7496 Index Cond: (val = 1)
7497 -> Index Scan using p1_c1_c2_val2 on p1_c1_c2
7498 Index Cond: (val = 1)
7499 -> Index Scan using p1_c3_c1_val2 on p1_c3_c1
7500 Index Cond: (val = 1)
7501 -> Index Scan using p1_c3_c2_val2 on p1_c3_c2
7502 Index Cond: (val = 1)
7505 /*+ IndexScanRegexp(p1 p1[^_].*)*/
7506 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7507 LOG: available indexes for IndexScanRegexp(p1):
7508 LOG: available indexes for IndexScanRegexp(p1_c1):
7509 LOG: available indexes for IndexScanRegexp(p1_c2):
7510 LOG: available indexes for IndexScanRegexp(p1_c3):
7511 LOG: available indexes for IndexScanRegexp(p1_c4):
7512 LOG: available indexes for IndexScanRegexp(p1_c1_c1):
7513 LOG: available indexes for IndexScanRegexp(p1_c1_c2):
7514 LOG: available indexes for IndexScanRegexp(p1_c3_c1):
7515 LOG: available indexes for IndexScanRegexp(p1_c3_c2):
7518 IndexScanRegexp(p1 p1[^_].*)
7524 ----------------------------
7528 -> Seq Scan on p1_c1
7530 -> Seq Scan on p1_c2
7532 -> Seq Scan on p1_c3
7534 -> Seq Scan on p1_c4
7536 -> Seq Scan on p1_c1_c1
7538 -> Seq Scan on p1_c1_c2
7540 -> Seq Scan on p1_c3_c1
7542 -> Seq Scan on p1_c3_c2
7546 /*+ IndexScan(p1 p1_.*val2.*)*/
7547 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7548 LOG: available indexes for IndexScan(p1):
7549 LOG: available indexes for IndexScan(p1_c1):
7550 LOG: available indexes for IndexScan(p1_c2):
7551 LOG: available indexes for IndexScan(p1_c3):
7552 LOG: available indexes for IndexScan(p1_c4):
7553 LOG: available indexes for IndexScan(p1_c1_c1):
7554 LOG: available indexes for IndexScan(p1_c1_c2):
7555 LOG: available indexes for IndexScan(p1_c3_c1):
7556 LOG: available indexes for IndexScan(p1_c3_c2):
7559 IndexScan(p1 p1_.*val2.*)
7565 ----------------------------
7569 -> Seq Scan on p1_c1
7571 -> Seq Scan on p1_c2
7573 -> Seq Scan on p1_c3
7575 -> Seq Scan on p1_c4
7577 -> Seq Scan on p1_c1_c1
7579 -> Seq Scan on p1_c1_c2
7581 -> Seq Scan on p1_c3_c1
7583 -> Seq Scan on p1_c3_c2
7587 /*+ IndexOnlyScanRegexp(p1 p1_.*[^0-9]$)*/
7588 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7589 LOG: available indexes for IndexOnlyScanRegexp(p1): p1_pkey
7590 LOG: available indexes for IndexOnlyScanRegexp(p1_c1): p1_c1_pkey
7591 LOG: available indexes for IndexOnlyScanRegexp(p1_c2): p1_c2_pkey
7592 LOG: available indexes for IndexOnlyScanRegexp(p1_c3): p1_c3_pkey
7593 LOG: available indexes for IndexOnlyScanRegexp(p1_c4): p1_c4_pkey
7594 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c1): p1_c1_c1_pkey
7595 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c2): p1_c1_c2_pkey
7596 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c1): p1_c3_c1_pkey
7597 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c2): p1_c3_c2_pkey
7600 IndexOnlyScanRegexp(p1 p1_.*[^0-9]$)
7606 ----------------------------
7610 -> Seq Scan on p1_c1
7612 -> Seq Scan on p1_c2
7614 -> Seq Scan on p1_c3
7616 -> Seq Scan on p1_c4
7618 -> Seq Scan on p1_c1_c1
7620 -> Seq Scan on p1_c1_c2
7622 -> Seq Scan on p1_c3_c1
7624 -> Seq Scan on p1_c3_c2
7628 /*+ IndexOnlyScanRegexp(p1 p1_.*val2.*)*/
7629 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7630 LOG: available indexes for IndexOnlyScanRegexp(p1): p1_val2
7631 LOG: available indexes for IndexOnlyScanRegexp(p1_c1): p1_c1_val2
7632 LOG: available indexes for IndexOnlyScanRegexp(p1_c2): p1_c2_val2
7633 LOG: available indexes for IndexOnlyScanRegexp(p1_c3): p1_c3_val2
7634 LOG: available indexes for IndexOnlyScanRegexp(p1_c4): p1_c4_val2
7635 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c1): p1_c1_c1_val2
7636 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c2): p1_c1_c2_val2
7637 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c1): p1_c3_c1_val2
7638 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c2): p1_c3_c2_val2
7641 IndexOnlyScanRegexp(p1 p1_.*val2.*)
7647 -------------------------------------------------------
7649 -> Index Only Scan using p1_val2 on p1
7650 Index Cond: (val = 1)
7651 -> Index Only Scan using p1_c1_val2 on p1_c1
7652 Index Cond: (val = 1)
7653 -> Index Only Scan using p1_c2_val2 on p1_c2
7654 Index Cond: (val = 1)
7655 -> Index Only Scan using p1_c3_val2 on p1_c3
7656 Index Cond: (val = 1)
7657 -> Index Only Scan using p1_c4_val2 on p1_c4
7658 Index Cond: (val = 1)
7659 -> Index Only Scan using p1_c1_c1_val2 on p1_c1_c1
7660 Index Cond: (val = 1)
7661 -> Index Only Scan using p1_c1_c2_val2 on p1_c1_c2
7662 Index Cond: (val = 1)
7663 -> Index Only Scan using p1_c3_c1_val2 on p1_c3_c1
7664 Index Cond: (val = 1)
7665 -> Index Only Scan using p1_c3_c2_val2 on p1_c3_c2
7666 Index Cond: (val = 1)
7669 /*+ IndexOnlyScanRegexp(p1 p1[^_].*)*/
7670 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7671 LOG: available indexes for IndexOnlyScanRegexp(p1):
7672 LOG: available indexes for IndexOnlyScanRegexp(p1_c1):
7673 LOG: available indexes for IndexOnlyScanRegexp(p1_c2):
7674 LOG: available indexes for IndexOnlyScanRegexp(p1_c3):
7675 LOG: available indexes for IndexOnlyScanRegexp(p1_c4):
7676 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c1):
7677 LOG: available indexes for IndexOnlyScanRegexp(p1_c1_c2):
7678 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c1):
7679 LOG: available indexes for IndexOnlyScanRegexp(p1_c3_c2):
7682 IndexOnlyScanRegexp(p1 p1[^_].*)
7688 ----------------------------
7692 -> Seq Scan on p1_c1
7694 -> Seq Scan on p1_c2
7696 -> Seq Scan on p1_c3
7698 -> Seq Scan on p1_c4
7700 -> Seq Scan on p1_c1_c1
7702 -> Seq Scan on p1_c1_c2
7704 -> Seq Scan on p1_c3_c1
7706 -> Seq Scan on p1_c3_c2
7710 /*+ IndexOnlyScan(p1 p1_.*val2.*)*/
7711 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7712 LOG: available indexes for IndexOnlyScan(p1):
7713 LOG: available indexes for IndexOnlyScan(p1_c1):
7714 LOG: available indexes for IndexOnlyScan(p1_c2):
7715 LOG: available indexes for IndexOnlyScan(p1_c3):
7716 LOG: available indexes for IndexOnlyScan(p1_c4):
7717 LOG: available indexes for IndexOnlyScan(p1_c1_c1):
7718 LOG: available indexes for IndexOnlyScan(p1_c1_c2):
7719 LOG: available indexes for IndexOnlyScan(p1_c3_c1):
7720 LOG: available indexes for IndexOnlyScan(p1_c3_c2):
7723 IndexOnlyScan(p1 p1_.*val2.*)
7729 ----------------------------
7733 -> Seq Scan on p1_c1
7735 -> Seq Scan on p1_c2
7737 -> Seq Scan on p1_c3
7739 -> Seq Scan on p1_c4
7741 -> Seq Scan on p1_c1_c1
7743 -> Seq Scan on p1_c1_c2
7745 -> Seq Scan on p1_c3_c1
7747 -> Seq Scan on p1_c3_c2
7751 /*+ BitmapScanRegexp(p1 p1_.*[^0-9]$)*/
7752 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7753 LOG: available indexes for BitmapScanRegexp(p1): p1_pkey
7754 LOG: available indexes for BitmapScanRegexp(p1_c1): p1_c1_pkey
7755 LOG: available indexes for BitmapScanRegexp(p1_c2): p1_c2_pkey
7756 LOG: available indexes for BitmapScanRegexp(p1_c3): p1_c3_pkey
7757 LOG: available indexes for BitmapScanRegexp(p1_c4): p1_c4_pkey
7758 LOG: available indexes for BitmapScanRegexp(p1_c1_c1): p1_c1_c1_pkey
7759 LOG: available indexes for BitmapScanRegexp(p1_c1_c2): p1_c1_c2_pkey
7760 LOG: available indexes for BitmapScanRegexp(p1_c3_c1): p1_c3_c1_pkey
7761 LOG: available indexes for BitmapScanRegexp(p1_c3_c2): p1_c3_c2_pkey
7764 BitmapScanRegexp(p1 p1_.*[^0-9]$)
7770 ----------------------------
7774 -> Seq Scan on p1_c1
7776 -> Seq Scan on p1_c2
7778 -> Seq Scan on p1_c3
7780 -> Seq Scan on p1_c4
7782 -> Seq Scan on p1_c1_c1
7784 -> Seq Scan on p1_c1_c2
7786 -> Seq Scan on p1_c3_c1
7788 -> Seq Scan on p1_c3_c2
7792 /*+ BitmapScanRegexp(p1 p1_.*val2.*)*/
7793 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7794 LOG: available indexes for BitmapScanRegexp(p1): p1_val2
7795 LOG: available indexes for BitmapScanRegexp(p1_c1): p1_c1_val2
7796 LOG: available indexes for BitmapScanRegexp(p1_c2): p1_c2_val2
7797 LOG: available indexes for BitmapScanRegexp(p1_c3): p1_c3_val2
7798 LOG: available indexes for BitmapScanRegexp(p1_c4): p1_c4_val2
7799 LOG: available indexes for BitmapScanRegexp(p1_c1_c1): p1_c1_c1_val2
7800 LOG: available indexes for BitmapScanRegexp(p1_c1_c2): p1_c1_c2_val2
7801 LOG: available indexes for BitmapScanRegexp(p1_c3_c1): p1_c3_c1_val2
7802 LOG: available indexes for BitmapScanRegexp(p1_c3_c2): p1_c3_c2_val2
7805 BitmapScanRegexp(p1 p1_.*val2.*)
7811 ------------------------------------------------
7813 -> Bitmap Heap Scan on p1
7814 Recheck Cond: (val = 1)
7815 -> Bitmap Index Scan on p1_val2
7816 Index Cond: (val = 1)
7817 -> Bitmap Heap Scan on p1_c1
7818 Recheck Cond: (val = 1)
7819 -> Bitmap Index Scan on p1_c1_val2
7820 Index Cond: (val = 1)
7821 -> Bitmap Heap Scan on p1_c2
7822 Recheck Cond: (val = 1)
7823 -> Bitmap Index Scan on p1_c2_val2
7824 Index Cond: (val = 1)
7825 -> Bitmap Heap Scan on p1_c3
7826 Recheck Cond: (val = 1)
7827 -> Bitmap Index Scan on p1_c3_val2
7828 Index Cond: (val = 1)
7829 -> Bitmap Heap Scan on p1_c4
7830 Recheck Cond: (val = 1)
7831 -> Bitmap Index Scan on p1_c4_val2
7832 Index Cond: (val = 1)
7833 -> Bitmap Heap Scan on p1_c1_c1
7834 Recheck Cond: (val = 1)
7835 -> Bitmap Index Scan on p1_c1_c1_val2
7836 Index Cond: (val = 1)
7837 -> Bitmap Heap Scan on p1_c1_c2
7838 Recheck Cond: (val = 1)
7839 -> Bitmap Index Scan on p1_c1_c2_val2
7840 Index Cond: (val = 1)
7841 -> Bitmap Heap Scan on p1_c3_c1
7842 Recheck Cond: (val = 1)
7843 -> Bitmap Index Scan on p1_c3_c1_val2
7844 Index Cond: (val = 1)
7845 -> Bitmap Heap Scan on p1_c3_c2
7846 Recheck Cond: (val = 1)
7847 -> Bitmap Index Scan on p1_c3_c2_val2
7848 Index Cond: (val = 1)
7851 /*+ BitmapScanRegexp(p1 p1[^_].*)*/
7852 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7853 LOG: available indexes for BitmapScanRegexp(p1):
7854 LOG: available indexes for BitmapScanRegexp(p1_c1):
7855 LOG: available indexes for BitmapScanRegexp(p1_c2):
7856 LOG: available indexes for BitmapScanRegexp(p1_c3):
7857 LOG: available indexes for BitmapScanRegexp(p1_c4):
7858 LOG: available indexes for BitmapScanRegexp(p1_c1_c1):
7859 LOG: available indexes for BitmapScanRegexp(p1_c1_c2):
7860 LOG: available indexes for BitmapScanRegexp(p1_c3_c1):
7861 LOG: available indexes for BitmapScanRegexp(p1_c3_c2):
7864 BitmapScanRegexp(p1 p1[^_].*)
7870 ----------------------------
7874 -> Seq Scan on p1_c1
7876 -> Seq Scan on p1_c2
7878 -> Seq Scan on p1_c3
7880 -> Seq Scan on p1_c4
7882 -> Seq Scan on p1_c1_c1
7884 -> Seq Scan on p1_c1_c2
7886 -> Seq Scan on p1_c3_c1
7888 -> Seq Scan on p1_c3_c2
7892 /*+ BitmapScan(p1 p1_.*val2.*)*/
7893 EXPLAIN (COSTS false) SELECT val FROM p1 WHERE val = 1;
7894 LOG: available indexes for BitmapScan(p1):
7895 LOG: available indexes for BitmapScan(p1_c1):
7896 LOG: available indexes for BitmapScan(p1_c2):
7897 LOG: available indexes for BitmapScan(p1_c3):
7898 LOG: available indexes for BitmapScan(p1_c4):
7899 LOG: available indexes for BitmapScan(p1_c1_c1):
7900 LOG: available indexes for BitmapScan(p1_c1_c2):
7901 LOG: available indexes for BitmapScan(p1_c3_c1):
7902 LOG: available indexes for BitmapScan(p1_c3_c2):
7905 BitmapScan(p1 p1_.*val2.*)
7911 ----------------------------
7915 -> Seq Scan on p1_c1
7917 -> Seq Scan on p1_c2
7919 -> Seq Scan on p1_c3
7921 -> Seq Scan on p1_c4
7923 -> Seq Scan on p1_c1_c1
7925 -> Seq Scan on p1_c1_c2
7927 -> Seq Scan on p1_c3_c1
7929 -> Seq Scan on p1_c3_c2
7933 -- search from hint table
7934 INSERT INTO hint_plan.hints (norm_query_string, application_name, hints) VALUES ('EXPLAIN (COSTS false) SELECT * FROM t1 WHERE t1.id = ?;', '', 'SeqScan(t1)');
7935 INSERT INTO hint_plan.hints (norm_query_string, application_name, hints) VALUES ('EXPLAIN (COSTS false) SELECT id FROM t1 WHERE t1.id = ?;', '', 'IndexScan(t1)');
7936 INSERT INTO hint_plan.hints (norm_query_string, application_name, hints) VALUES ('EXPLAIN SELECT * FROM t1 WHERE t1.id = ?;', '', 'BitmapScan(t1)');
7937 SELECT * FROM hint_plan.hints ORDER BY id;
7938 id | norm_query_string | application_name | hints
7939 ----+----------------------------------------------------------+------------------+----------------
7940 1 | EXPLAIN (COSTS false) SELECT * FROM t1 WHERE t1.id = ?; | | SeqScan(t1)
7941 2 | EXPLAIN (COSTS false) SELECT id FROM t1 WHERE t1.id = ?; | | IndexScan(t1)
7942 3 | EXPLAIN SELECT * FROM t1 WHERE t1.id = ?; | | BitmapScan(t1)
7945 SET pg_hint_plan.enable_hint_table = on;
7946 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE t1.id = 1;
7955 --------------------
7960 SET pg_hint_plan.enable_hint_table = off;
7961 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE t1.id = 1;
7963 --------------------------------
7964 Index Scan using t1_pkey on t1
7965 Index Cond: (id = 1)
7968 TRUNCATE hint_plan.hints;
7969 VACUUM ANALYZE hint_plan.hints;
7971 EXPLAIN (COSTS false) SELECT id FROM t1 WHERE t1.id = 1;
7973 -------------------------------------
7974 Index Only Scan using t1_pkey on t1
7975 Index Cond: (id = 1)
7978 DO LANGUAGE plpgsql $$
7982 SELECT /*+SeqScan(t1)*/ t1.id INTO id FROM t1 WHERE t1.id = 1;
7993 CONTEXT: SQL statement "SELECT /*+SeqScan(t1)*/ t1.id FROM t1 WHERE t1.id = 1"
7994 PL/pgSQL function inline_code_block line 5 at SQL statement
7995 DROP EXTENSION pg_hint_plan;
8000 EXPLAIN SELECT * FROM t1 JOIN t2 ON (t1.id = t2.id);
8002 ------------------------------------------------------------------------------
8003 Merge Join (cost=0.56..90.36 rows=1000 width=16)
8004 Merge Cond: (t1.id = t2.id)
8005 -> Index Scan using t1_pkey on t1 (cost=0.29..318.29 rows=10000 width=8)
8006 -> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8)
8009 /*+ Rows(t1 t2 #99) */
8010 EXPLAIN SELECT * FROM t1 JOIN t2 ON (t1.id = t2.id);
8019 ------------------------------------------------------------------------------
8020 Merge Join (cost=0.56..90.36 rows=99 width=16)
8021 Merge Cond: (t1.id = t2.id)
8022 -> Index Scan using t1_pkey on t1 (cost=0.29..318.29 rows=10000 width=8)
8023 -> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8)
8026 /*+ Rows(t1 t2 +99) */
8027 EXPLAIN SELECT * FROM t1 JOIN t2 ON (t1.id = t2.id);
8036 ------------------------------------------------------------------------------
8037 Merge Join (cost=0.56..90.36 rows=1099 width=16)
8038 Merge Cond: (t1.id = t2.id)
8039 -> Index Scan using t1_pkey on t1 (cost=0.29..318.29 rows=10000 width=8)
8040 -> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8)
8043 /*+ Rows(t1 t2 -99) */
8044 EXPLAIN SELECT * FROM t1 JOIN t2 ON (t1.id = t2.id);
8053 ------------------------------------------------------------------------------
8054 Merge Join (cost=0.56..90.36 rows=901 width=16)
8055 Merge Cond: (t1.id = t2.id)
8056 -> Index Scan using t1_pkey on t1 (cost=0.29..318.29 rows=10000 width=8)
8057 -> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8)
8060 /*+ Rows(t1 t2 *99) */
8061 EXPLAIN SELECT * FROM t1 JOIN t2 ON (t1.id = t2.id);
8070 ------------------------------------------------------------------------------
8071 Merge Join (cost=0.56..90.36 rows=99000 width=16)
8072 Merge Cond: (t1.id = t2.id)
8073 -> Index Scan using t1_pkey on t1 (cost=0.29..318.29 rows=10000 width=8)
8074 -> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8)
8077 /*+ Rows(t1 t2 *0.01) */
8078 EXPLAIN SELECT * FROM t1 JOIN t2 ON (t1.id = t2.id);
8087 ------------------------------------------------------------------------------
8088 Merge Join (cost=0.56..90.36 rows=10 width=16)
8089 Merge Cond: (t1.id = t2.id)
8090 -> Index Scan using t1_pkey on t1 (cost=0.29..318.29 rows=10000 width=8)
8091 -> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8)
8094 /*+ Rows(t1 t2 #aa) */
8095 EXPLAIN SELECT * FROM t1 JOIN t2 ON (t1.id = t2.id); -- ERROR
8096 INFO: hint syntax error at or near "aa"
8097 DETAIL: Rows hint requires valid number as rows estimation.
8106 ------------------------------------------------------------------------------
8107 Merge Join (cost=0.56..90.36 rows=1000 width=16)
8108 Merge Cond: (t1.id = t2.id)
8109 -> Index Scan using t1_pkey on t1 (cost=0.29..318.29 rows=10000 width=8)
8110 -> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8)
8113 /*+ Rows(t1 t2 /99) */
8114 EXPLAIN SELECT * FROM t1 JOIN t2 ON (t1.id = t2.id); -- ERROR
8115 INFO: hint syntax error at or near "/99"
8116 DETAIL: unrecognized rows value type notation.
8125 ------------------------------------------------------------------------------
8126 Merge Join (cost=0.56..90.36 rows=1000 width=16)
8127 Merge Cond: (t1.id = t2.id)
8128 -> Index Scan using t1_pkey on t1 (cost=0.29..318.29 rows=10000 width=8)
8129 -> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8)
8133 /*+ Rows(t1 t2 -99999) */
8134 EXPLAIN SELECT * FROM t1 JOIN t2 ON (t1.id = t2.id);
8135 WARNING: make rows estimation 1 since below 1 : Rows(t1 t2 -99999)
8144 ------------------------------------------------------------------------------
8145 Merge Join (cost=0.56..90.36 rows=1 width=16)
8146 Merge Cond: (t1.id = t2.id)
8147 -> Index Scan using t1_pkey on t1 (cost=0.29..318.29 rows=10000 width=8)
8148 -> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8)
8151 -- complex join tree
8152 EXPLAIN SELECT * FROM t1 JOIN t2 ON (t1.id = t2.id) JOIN t3 ON (t3.id = t2.id);
8154 ------------------------------------------------------------------------------------
8155 Merge Join (cost=5.88..7.40 rows=10 width=24)
8156 Merge Cond: (t1.id = t3.id)
8157 -> Merge Join (cost=0.56..90.36 rows=1000 width=16)
8158 Merge Cond: (t1.id = t2.id)
8159 -> Index Scan using t1_pkey on t1 (cost=0.29..318.29 rows=10000 width=8)
8160 -> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8)
8161 -> Sort (cost=5.32..5.57 rows=100 width=8)
8163 -> Seq Scan on t3 (cost=0.00..2.00 rows=100 width=8)
8166 /*+ Rows(t1 t2 #22) */
8167 EXPLAIN SELECT * FROM t1 JOIN t2 ON (t1.id = t2.id) JOIN t3 ON (t3.id = t2.id);
8176 ------------------------------------------------------------------------------------
8177 Merge Join (cost=5.88..10.48 rows=1 width=24)
8178 Merge Cond: (t1.id = t3.id)
8179 -> Merge Join (cost=0.56..90.36 rows=22 width=16)
8180 Merge Cond: (t1.id = t2.id)
8181 -> Index Scan using t1_pkey on t1 (cost=0.29..318.29 rows=10000 width=8)
8182 -> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8)
8183 -> Sort (cost=5.32..5.57 rows=100 width=8)
8185 -> Seq Scan on t3 (cost=0.00..2.00 rows=100 width=8)
8188 /*+ Rows(t1 t3 *10) */
8189 EXPLAIN SELECT * FROM t1 JOIN t2 ON (t1.id = t2.id) JOIN t3 ON (t3.id = t2.id);
8198 ------------------------------------------------------------------------------------
8199 Merge Join (cost=5.88..7.40 rows=100 width=24)
8200 Merge Cond: (t1.id = t3.id)
8201 -> Merge Join (cost=0.56..90.36 rows=1000 width=16)
8202 Merge Cond: (t1.id = t2.id)
8203 -> Index Scan using t1_pkey on t1 (cost=0.29..318.29 rows=10000 width=8)
8204 -> Index Scan using t2_pkey on t2 (cost=0.28..43.27 rows=1000 width=8)
8205 -> Sort (cost=5.32..5.57 rows=100 width=8)
8207 -> Seq Scan on t3 (cost=0.00..2.00 rows=100 width=8)