1 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
3 --------------------------------------
5 Merge Cond: (t1.id = t2.id)
6 -> Index Scan using t1_pkey on t1
7 -> Index Scan using t2_pkey on t2
10 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.val = t2.val;
12 -------------------------------------------
14 Merge Cond: (t2.val = t1.val)
15 -> Index Scan using t2_val on t2
17 -> Index Scan using t1_val on t1
21 SET pg_hint_plan.debug_print TO on;
22 SET client_min_messages TO LOG;
23 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
25 --------------------------------------
27 Merge Cond: (t1.id = t2.id)
28 -> Index Scan using t1_pkey on t1
29 -> Index Scan using t2_pkey on t2
32 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.val = t2.val;
34 -------------------------------------------
36 Merge Cond: (t2.val = t1.val)
37 -> Index Scan using t2_val on t2
39 -> Index Scan using t1_val on t1
43 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
44 INFO: hint syntax error at or near "Test (t1 t2) "
45 DETAIL: Keyword "Test" does not exist.
47 --------------------------------------
49 Merge Cond: (t1.id = t2.id)
50 -> Index Scan using t1_pkey on t1
51 -> Index Scan using t2_pkey on t2
54 SET pg_hint_plan.enable TO off;
56 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
58 --------------------------------------
60 Merge Cond: (t1.id = t2.id)
61 -> Index Scan using t1_pkey on t1
62 -> Index Scan using t2_pkey on t2
65 SET pg_hint_plan.enable TO on;
66 /*+Set(enable_indexscan off)*/
67 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
70 Set(enable_indexscan off)
76 ------------------------------
78 Hash Cond: (t1.id = t2.id)
84 /*+ Set(enable_indexscan off) Set(enable_hashjoin off) */
85 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
88 Set(enable_hashjoin off)
89 Set(enable_indexscan off)
95 -------------------------------
97 Merge Cond: (t1.id = t2.id)
106 /*+ Set ( enable_indexscan off ) */
107 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
110 Set(enable_indexscan off)
116 ------------------------------
118 Hash Cond: (t1.id = t2.id)
131 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
134 Set(enable_indexscan off)
140 ------------------------------
142 Hash Cond: (t1.id = t2.id)
148 /*+ Set(enable_indexscan off)Set(enable_nestloop off)Set(enable_mergejoin off)
149 Set(enable_seqscan off)
151 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
154 Set(enable_indexscan off)
155 Set(enable_mergejoin off)
156 Set(enable_nestloop off)
157 Set(enable_seqscan off)
163 --------------------------------------------
165 Hash Cond: (t1.id = t2.id)
166 -> Index Scan using t1_pkey on t1
168 -> Index Scan using t2_pkey on t2
171 /*+Set(work_mem "1M")*/
172 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
173 INFO: invalid value for parameter "work_mem": "1M"
174 HINT: Valid units for this parameter are "kB", "MB", and "GB".
183 --------------------------------------
185 Merge Cond: (t1.id = t2.id)
186 -> Index Scan using t1_pkey on t1
187 -> Index Scan using t2_pkey on t2
190 /*+Set(work_mem "1MB")*/
191 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
200 --------------------------------------
202 Merge Cond: (t1.id = t2.id)
203 -> Index Scan using t1_pkey on t1
204 -> Index Scan using t2_pkey on t2
207 /*+Set(work_mem TO "1MB")*/
208 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
209 INFO: hint syntax error at or near ""1MB")"
210 DETAIL: Closed parenthesis is necessary.
212 --------------------------------------
214 Merge Cond: (t1.id = t2.id)
215 -> Index Scan using t1_pkey on t1
216 -> Index Scan using t2_pkey on t2
220 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
221 INFO: hint syntax error at or near "t2)"
222 DETAIL: Closed parenthesis is necessary.
224 --------------------------------------
226 Merge Cond: (t1.id = t2.id)
227 -> Index Scan using t1_pkey on t1
228 -> Index Scan using t2_pkey on t2
232 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
241 ------------------------------
243 Hash Cond: (t1.id = t2.id)
249 /*+SeqScan(t1)IndexScan(t2)*/
250 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
260 --------------------------------------------
262 Hash Cond: (t1.id = t2.id)
265 -> Index Scan using t2_pkey on t2
269 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
278 ------------------------------------------
281 -> Bitmap Heap Scan on t2
282 Recheck Cond: (id = t1.id)
283 -> Bitmap Index Scan on t2_pkey
284 Index Cond: (id = t1.id)
287 /*+BitmapScan(t2)NoSeqScan(t1)*/
288 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
298 ------------------------------------------
300 -> Index Scan using t1_pkey on t1
301 -> Bitmap Heap Scan on t2
302 Recheck Cond: (id = t1.id)
303 -> Bitmap Index Scan on t2_pkey
304 Index Cond: (id = t1.id)
308 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
317 ------------------------------
319 Hash Cond: (t1.id = t2.id)
325 /*+NoBitmapScan(t1)*/
326 EXPLAIN (COSTS false) SELECT * FROM t1, t4 WHERE t1.val < 10;
335 ----------------------------
344 EXPLAIN (COSTS false) SELECT * FROM t3, t4 WHERE t3.id = t4.id AND t4.ctid = '(1,1)';
353 -----------------------------------------------
355 Merge Cond: (t3.id = t4.id)
356 -> Index Scan using t3_pkey on t3
360 TID Cond: (ctid = '(1,1)'::tid)
364 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)';
373 ---------------------------------------
376 Filter: (ctid = '(1,1)'::tid)
377 -> Index Scan using t2_pkey on t2
378 Index Cond: (id = t1.id)
382 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
391 ------------------------------
393 Hash Cond: (t1.id = t2.id)
400 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
409 --------------------------------------
412 -> Index Scan using t1_pkey on t1
413 Index Cond: (id = t2.id)
416 /*+NoMergeJoin(t1 t2)*/
417 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id;
426 ------------------------------
428 Hash Cond: (t1.id = t2.id)
434 /*+MergeJoin(t1 t3)*/
435 EXPLAIN (COSTS false) SELECT * FROM t1, t3 WHERE t1.val = t3.val;
444 -------------------------------------
446 Merge Cond: (t1.val = t3.val)
447 -> Index Scan using t1_val on t1
454 EXPLAIN (COSTS false) SELECT * FROM t1, t3 WHERE t1.val = t3.val;
463 -------------------------------------
466 -> Index Scan using t1_val on t1
467 Index Cond: (val = t3.val)
470 /*+NoHashJoin(t1 t3)*/
471 EXPLAIN (COSTS false) SELECT * FROM t1, t3 WHERE t1.val = t3.val;
480 -------------------------------------
483 -> Index Scan using t1_val on t1
484 Index Cond: (val = t3.val)
487 /*+MergeJoin(t4 t1 t2 t3)*/
488 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
491 MergeJoin(t1 t2 t3 t4)
497 --------------------------------------------------
499 Merge Cond: (t1.id = t4.id)
501 Merge Cond: (t1.id = t3.id)
503 Merge Cond: (t1.id = t2.id)
504 -> Index Scan using t1_pkey on t1
505 -> Index Scan using t2_pkey on t2
506 -> Index Scan using t3_pkey on t3
512 /*+HashJoin(t3 t4 t1 t2)*/
513 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
516 HashJoin(t1 t2 t3 t4)
522 --------------------------------------------------------
524 Hash Cond: (t3.id = t1.id)
528 Merge Cond: (t1.id = t4.id)
530 Merge Cond: (t1.id = t2.id)
531 -> Index Scan using t1_pkey on t1
532 -> Index Scan using t2_pkey on t2
538 /*+NestLoop(t2 t3 t4 t1) IndexScan(t3)*/
539 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
543 NestLoop(t1 t2 t3 t4)
549 --------------------------------------------------
552 Merge Cond: (t1.id = t4.id)
554 Merge Cond: (t1.id = t2.id)
555 -> Index Scan using t1_pkey on t1
556 -> Index Scan using t2_pkey on t2
560 -> Index Scan using t3_pkey on t3
561 Index Cond: (id = t1.id)
564 /*+NoNestLoop(t4 t1 t3 t2)*/
565 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
568 NoNestLoop(t1 t2 t3 t4)
574 --------------------------------------------------
576 Merge Cond: (t1.id = t4.id)
578 Merge Cond: (t1.id = t3.id)
580 Merge Cond: (t1.id = t2.id)
581 -> Index Scan using t1_pkey on t1
582 -> Index Scan using t2_pkey on t2
583 -> Index Scan using t3_pkey on t3
590 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
599 --------------------------------------------------
603 Merge Cond: (t3.id = t4.id)
604 -> Index Scan using t3_pkey on t3
608 -> Index Scan using t2_pkey on t2
609 Index Cond: (id = t3.id)
610 -> Index Scan using t1_pkey on t1
611 Index Cond: (id = t2.id)
614 /*+Leading(t3 t4 t1)*/
615 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
624 --------------------------------------------------
627 Merge Cond: (t3.id = t1.id)
629 Merge Cond: (t3.id = t4.id)
630 -> Index Scan using t3_pkey on t3
634 -> Index Scan using t1_pkey on t1
635 -> Index Scan using t2_pkey on t2
636 Index Cond: (id = t1.id)
639 /*+Leading(t3 t4 t1 t2)*/
640 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
649 --------------------------------------------------
652 Merge Cond: (t3.id = t1.id)
654 Merge Cond: (t3.id = t4.id)
655 -> Index Scan using t3_pkey on t3
659 -> Index Scan using t1_pkey on t1
660 -> Index Scan using t2_pkey on t2
661 Index Cond: (id = t1.id)
664 /*+Leading(t3 t4 t1 t2 t1)*/
665 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
666 INFO: hint syntax error at or near "Leading(t3 t4 t1 t2 t1)"
667 DETAIL: In Leading hint, specified relation name 4 or less.
673 Leading(t3 t4 t1 t2 t1)
676 --------------------------------------------------
678 Merge Cond: (t1.id = t4.id)
680 Merge Cond: (t1.id = t3.id)
682 Merge Cond: (t1.id = t2.id)
683 -> Index Scan using t1_pkey on t1
684 -> Index Scan using t2_pkey on t2
685 -> Index Scan using t3_pkey on t3
691 /*+Leading(t3 t4 t4)*/
692 EXPLAIN (COSTS false) SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.id AND t1.id = t3.id AND t1.id = t4.id;
701 --------------------------------------------------
705 Merge Cond: (t3.id = t4.id)
706 -> Index Scan using t3_pkey on t3
710 -> Index Scan using t2_pkey on t2
711 Index Cond: (id = t3.id)
712 -> Index Scan using t1_pkey on t1
713 Index Cond: (id = t2.id)
716 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
718 -----------------------------------------------
720 -> Values Scan on "*VALUES*"
721 -> Index Scan using t1_pkey on t1
722 Index Cond: (id = "*VALUES*".column1)
726 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
727 INFO: hint syntax error at or near "HashJoin(t1 t2)"
728 DETAIL: Relation "t2" does not exist.
737 -----------------------------------------------
739 -> Values Scan on "*VALUES*"
740 -> Index Scan using t1_pkey on t1
741 Index Cond: (id = "*VALUES*".column1)
744 /*+HashJoin(t1 *VALUES*)*/
745 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
748 HashJoin(*VALUES* t1)
754 -------------------------------------------
756 Hash Cond: (t1.id = "*VALUES*".column1)
759 -> Values Scan on "*VALUES*"
762 /*+HashJoin(t1 *VALUES*) IndexScan(t1) IndexScan(*VALUES*)*/
763 EXPLAIN (COSTS false) SELECT * FROM t1, (VALUES(1,1),(2,2),(3,3)) AS t2(id,val) WHERE t1.id = t2.id;
767 HashJoin(*VALUES* t1)
774 -------------------------------------------
776 Hash Cond: (t1.id = "*VALUES*".column1)
777 -> Index Scan using t1_pkey on t1
779 -> Values Scan on "*VALUES*"
782 -- single table scan hint test
783 EXPLAIN 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);
785 -----------------------------------------------------------------------------------------------------
786 Index Scan using t1_pkey on t1 (cost=1.89..10.16 rows=1 width=4)
787 Index Cond: (id = $3)
788 InitPlan 2 (returns $1)
789 -> Result (cost=0.94..0.95 rows=1 width=0)
790 InitPlan 1 (returns $0)
791 -> Limit (cost=0.00..0.94 rows=1 width=4)
792 -> Index Scan Backward using t1_pkey on t1 v_1 (cost=0.00..8.43 rows=9 width=4)
793 Index Cond: ((id IS NOT NULL) AND (id < 10))
794 InitPlan 4 (returns $3)
795 -> Result (cost=0.94..0.95 rows=1 width=0)
796 InitPlan 3 (returns $2)
797 -> Limit (cost=0.00..0.94 rows=1 width=4)
798 -> Index Scan Backward using t1_pkey on t1 v_2 (cost=0.00..8.43 rows=9 width=4)
799 Index Cond: ((id IS NOT NULL) AND (id < 10))
803 EXPLAIN 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);
812 -----------------------------------------------------------------------------------------------------
813 Index Scan using t1_pkey on t1 (cost=29.34..37.61 rows=1 width=4)
814 Index Cond: (id = $2)
815 InitPlan 1 (returns $0)
816 -> Aggregate (cost=28.38..28.39 rows=1 width=4)
817 -> Bitmap Heap Scan on t1 v_1 (cost=4.32..28.36 rows=9 width=4)
818 Recheck Cond: (id < 10)
819 -> Bitmap Index Scan on t1_pkey (cost=0.00..4.32 rows=9 width=0)
820 Index Cond: (id < 10)
821 InitPlan 3 (returns $2)
822 -> Result (cost=0.94..0.95 rows=1 width=0)
823 InitPlan 2 (returns $1)
824 -> Limit (cost=0.00..0.94 rows=1 width=4)
825 -> Index Scan Backward using t1_pkey on t1 v_2 (cost=0.00..8.43 rows=9 width=4)
826 Index Cond: ((id IS NOT NULL) AND (id < 10))
830 EXPLAIN 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);
839 -----------------------------------------------------------------------------------------------------
840 Index Scan using t1_pkey on t1 (cost=29.34..37.61 rows=1 width=4)
841 Index Cond: (id = $2)
842 InitPlan 2 (returns $1)
843 -> Result (cost=0.94..0.95 rows=1 width=0)
844 InitPlan 1 (returns $0)
845 -> Limit (cost=0.00..0.94 rows=1 width=4)
846 -> Index Scan Backward using t1_pkey on t1 v_1 (cost=0.00..8.43 rows=9 width=4)
847 Index Cond: ((id IS NOT NULL) AND (id < 10))
848 InitPlan 3 (returns $2)
849 -> Aggregate (cost=28.38..28.39 rows=1 width=4)
850 -> Bitmap Heap Scan on t1 v_2 (cost=4.32..28.36 rows=9 width=4)
851 Recheck Cond: (id < 10)
852 -> Bitmap Index Scan on t1_pkey (cost=0.00..4.32 rows=9 width=0)
853 Index Cond: (id < 10)
857 EXPLAIN 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);
866 -----------------------------------------------------------------------------------------------------
867 Bitmap Heap Scan on t1 (cost=6.15..10.17 rows=1 width=4)
868 Recheck Cond: (id = $3)
869 InitPlan 2 (returns $1)
870 -> Result (cost=0.94..0.95 rows=1 width=0)
871 InitPlan 1 (returns $0)
872 -> Limit (cost=0.00..0.94 rows=1 width=4)
873 -> Index Scan Backward using t1_pkey on t1 v_1 (cost=0.00..8.43 rows=9 width=4)
874 Index Cond: ((id IS NOT NULL) AND (id < 10))
875 InitPlan 4 (returns $3)
876 -> Result (cost=0.94..0.95 rows=1 width=0)
877 InitPlan 3 (returns $2)
878 -> Limit (cost=0.00..0.94 rows=1 width=4)
879 -> Index Scan Backward using t1_pkey on t1 v_2 (cost=0.00..8.43 rows=9 width=4)
880 Index Cond: ((id IS NOT NULL) AND (id < 10))
881 -> Bitmap Index Scan on t1_pkey (cost=0.00..4.26 rows=1 width=0)
882 Index Cond: (id = $3)
885 /*+BitmapScan(v_1)BitmapScan(v_2)*/
886 EXPLAIN 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);
896 ------------------------------------------------------------------------------------
897 Index Scan using t1_pkey on t1 (cost=56.78..65.05 rows=1 width=4)
898 Index Cond: (id = $1)
899 InitPlan 1 (returns $0)
900 -> Aggregate (cost=28.38..28.39 rows=1 width=4)
901 -> Bitmap Heap Scan on t1 v_1 (cost=4.32..28.36 rows=9 width=4)
902 Recheck Cond: (id < 10)
903 -> Bitmap Index Scan on t1_pkey (cost=0.00..4.32 rows=9 width=0)
904 Index Cond: (id < 10)
905 InitPlan 2 (returns $1)
906 -> Aggregate (cost=28.38..28.39 rows=1 width=4)
907 -> Bitmap Heap Scan on t1 v_2 (cost=4.32..28.36 rows=9 width=4)
908 Recheck Cond: (id < 10)
909 -> Bitmap Index Scan on t1_pkey (cost=0.00..4.32 rows=9 width=0)
910 Index Cond: (id < 10)
913 /*+BitmapScan(v_1)BitmapScan(t1)*/
914 EXPLAIN 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);
924 -----------------------------------------------------------------------------------------------------
925 Bitmap Heap Scan on t1 (cost=33.60..37.61 rows=1 width=4)
926 Recheck Cond: (id = $2)
927 InitPlan 1 (returns $0)
928 -> Aggregate (cost=28.38..28.39 rows=1 width=4)
929 -> Bitmap Heap Scan on t1 v_1 (cost=4.32..28.36 rows=9 width=4)
930 Recheck Cond: (id < 10)
931 -> Bitmap Index Scan on t1_pkey (cost=0.00..4.32 rows=9 width=0)
932 Index Cond: (id < 10)
933 InitPlan 3 (returns $2)
934 -> Result (cost=0.94..0.95 rows=1 width=0)
935 InitPlan 2 (returns $1)
936 -> Limit (cost=0.00..0.94 rows=1 width=4)
937 -> Index Scan Backward using t1_pkey on t1 v_2 (cost=0.00..8.43 rows=9 width=4)
938 Index Cond: ((id IS NOT NULL) AND (id < 10))
939 -> Bitmap Index Scan on t1_pkey (cost=0.00..4.26 rows=1 width=0)
940 Index Cond: (id = $2)
943 /*+BitmapScan(v_2)BitmapScan(t1)*/
944 EXPLAIN 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 Bitmap Heap Scan on t1 (cost=33.60..37.61 rows=1 width=4)
956 Recheck Cond: (id = $2)
957 InitPlan 2 (returns $1)
958 -> Result (cost=0.94..0.95 rows=1 width=0)
959 InitPlan 1 (returns $0)
960 -> Limit (cost=0.00..0.94 rows=1 width=4)
961 -> Index Scan Backward using t1_pkey on t1 v_1 (cost=0.00..8.43 rows=9 width=4)
962 Index Cond: ((id IS NOT NULL) AND (id < 10))
963 InitPlan 3 (returns $2)
964 -> Aggregate (cost=28.38..28.39 rows=1 width=4)
965 -> Bitmap Heap Scan on t1 v_2 (cost=4.32..28.36 rows=9 width=4)
966 Recheck Cond: (id < 10)
967 -> Bitmap Index Scan on t1_pkey (cost=0.00..4.32 rows=9 width=0)
968 Index Cond: (id < 10)
969 -> Bitmap Index Scan on t1_pkey (cost=0.00..4.26 rows=1 width=0)
970 Index Cond: (id = $2)
973 /*+BitmapScan(v_1)BitmapScan(v_2)BitmapScan(t1)*/
974 EXPLAIN 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);
985 ------------------------------------------------------------------------------------
986 Bitmap Heap Scan on t1 (cost=61.04..65.05 rows=1 width=4)
987 Recheck Cond: (id = $1)
988 InitPlan 1 (returns $0)
989 -> Aggregate (cost=28.38..28.39 rows=1 width=4)
990 -> Bitmap Heap Scan on t1 v_1 (cost=4.32..28.36 rows=9 width=4)
991 Recheck Cond: (id < 10)
992 -> Bitmap Index Scan on t1_pkey (cost=0.00..4.32 rows=9 width=0)
993 Index Cond: (id < 10)
994 InitPlan 2 (returns $1)
995 -> Aggregate (cost=28.38..28.39 rows=1 width=4)
996 -> Bitmap Heap Scan on t1 v_2 (cost=4.32..28.36 rows=9 width=4)
997 Recheck Cond: (id < 10)
998 -> Bitmap Index Scan on t1_pkey (cost=0.00..4.32 rows=9 width=0)
999 Index Cond: (id < 10)
1000 -> Bitmap Index Scan on t1_pkey (cost=0.00..4.26 rows=1 width=0)
1001 Index Cond: (id = $1)
1004 -- full scan hint pattern test
1005 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1007 -----------------------------------
1009 TID Cond: (ctid = '(1,1)'::tid)
1014 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1023 -------------------------------------------------
1025 Filter: ((id < 10) AND (ctid = '(1,1)'::tid))
1029 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1038 ---------------------------------
1039 Index Scan using t1_pkey on t1
1040 Index Cond: (id < 10)
1041 Filter: (ctid = '(1,1)'::tid)
1045 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1054 ------------------------------------
1055 Bitmap Heap Scan on t1
1056 Recheck Cond: (id < 10)
1057 Filter: (ctid = '(1,1)'::tid)
1058 -> Bitmap Index Scan on t1_pkey
1059 Index Cond: (id < 10)
1063 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1072 -----------------------------------
1074 TID Cond: (ctid = '(1,1)'::tid)
1079 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1088 -----------------------------------
1090 TID Cond: (ctid = '(1,1)'::tid)
1094 /*+NoIndexScan(t1)*/
1095 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1104 -----------------------------------
1106 TID Cond: (ctid = '(1,1)'::tid)
1110 /*+NoBitmapScan(t1)*/
1111 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1120 -----------------------------------
1122 TID Cond: (ctid = '(1,1)'::tid)
1127 EXPLAIN (COSTS false) SELECT * FROM t1 WHERE id < 10 AND ctid = '(1,1)';
1136 ---------------------------------
1137 Index Scan using t1_pkey on t1
1138 Index Cond: (id < 10)
1139 Filter: (ctid = '(1,1)'::tid)
1142 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1144 -----------------------------------------
1146 Join Filter: (t1.id = t2.id)
1148 TID Cond: (ctid = '(1,1)'::tid)
1150 TID Cond: (ctid = '(1,1)'::tid)
1154 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1163 -----------------------------------------
1165 Join Filter: (t1.id = t2.id)
1167 Filter: (ctid = '(1,1)'::tid)
1169 TID Cond: (ctid = '(1,1)'::tid)
1173 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1182 -----------------------------------------
1184 Join Filter: (t1.id = t2.id)
1186 TID Cond: (ctid = '(1,1)'::tid)
1188 Filter: (ctid = '(1,1)'::tid)
1191 /*+SeqScan(t1) SeqScan(t2)*/
1192 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1202 ---------------------------------------
1204 Join Filter: (t1.id = t2.id)
1206 Filter: (ctid = '(1,1)'::tid)
1208 Filter: (ctid = '(1,1)'::tid)
1211 /*+SeqScan(t1) IndexScan(t2)*/
1212 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1222 ---------------------------------------
1225 Filter: (ctid = '(1,1)'::tid)
1226 -> Index Scan using t2_pkey on t2
1227 Index Cond: (id = t1.id)
1228 Filter: (ctid = '(1,1)'::tid)
1231 /*+SeqScan(t1) BitmapScan(t2)*/
1232 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1242 ------------------------------------------
1245 Filter: (ctid = '(1,1)'::tid)
1246 -> Bitmap Heap Scan on t2
1247 Recheck Cond: (id = t1.id)
1248 Filter: (ctid = '(1,1)'::tid)
1249 -> Bitmap Index Scan on t2_pkey
1250 Index Cond: (id = t1.id)
1253 /*+SeqScan(t1) TidScan(t2)*/
1254 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1264 -----------------------------------------
1266 Join Filter: (t1.id = t2.id)
1268 Filter: (ctid = '(1,1)'::tid)
1270 TID Cond: (ctid = '(1,1)'::tid)
1273 /*+SeqScan(t1) NoSeqScan(t2)*/
1274 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1284 -----------------------------------------
1286 Join Filter: (t1.id = t2.id)
1288 Filter: (ctid = '(1,1)'::tid)
1290 TID Cond: (ctid = '(1,1)'::tid)
1293 /*+SeqScan(t1) NoIndexScan(t2)*/
1294 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1304 -----------------------------------------
1306 Join Filter: (t1.id = t2.id)
1308 Filter: (ctid = '(1,1)'::tid)
1310 TID Cond: (ctid = '(1,1)'::tid)
1313 /*+SeqScan(t1) NoBitmapScan(t2)*/
1314 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 Filter: (ctid = '(1,1)'::tid)
1330 TID Cond: (ctid = '(1,1)'::tid)
1333 /*+SeqScan(t1) NoTidScan(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 ---------------------------------------
1347 Filter: (ctid = '(1,1)'::tid)
1348 -> Index Scan using t2_pkey on t2
1349 Index Cond: (id = t1.id)
1350 Filter: (ctid = '(1,1)'::tid)
1354 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1363 -----------------------------------------
1366 TID Cond: (ctid = '(1,1)'::tid)
1367 -> Index Scan using t1_pkey on t1
1368 Index Cond: (id = t2.id)
1369 Filter: (ctid = '(1,1)'::tid)
1373 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1382 -----------------------------------------
1385 TID Cond: (ctid = '(1,1)'::tid)
1386 -> Index Scan using t2_pkey on t2
1387 Index Cond: (id = t1.id)
1388 Filter: (ctid = '(1,1)'::tid)
1391 /*+IndexScan(t1) SeqScan(t2)*/
1392 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1402 ---------------------------------------
1405 Filter: (ctid = '(1,1)'::tid)
1406 -> Index Scan using t1_pkey on t1
1407 Index Cond: (id = t2.id)
1408 Filter: (ctid = '(1,1)'::tid)
1411 /*+IndexScan(t1) IndexScan(t2)*/
1412 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1422 ---------------------------------------
1424 -> Index Scan using t2_pkey on t2
1425 Filter: (ctid = '(1,1)'::tid)
1426 -> Index Scan using t1_pkey on t1
1427 Index Cond: (id = t2.id)
1428 Filter: (ctid = '(1,1)'::tid)
1431 /*+IndexScan(t1) BitmapScan(t2)*/
1432 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1442 ------------------------------------------
1444 -> Index Scan using t1_pkey on t1
1445 Filter: (ctid = '(1,1)'::tid)
1446 -> Bitmap Heap Scan on t2
1447 Recheck Cond: (id = t1.id)
1448 Filter: (ctid = '(1,1)'::tid)
1449 -> Bitmap Index Scan on t2_pkey
1450 Index Cond: (id = t1.id)
1453 /*+IndexScan(t1) TidScan(t2)*/
1454 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1464 -----------------------------------------
1467 TID Cond: (ctid = '(1,1)'::tid)
1468 -> Index Scan using t1_pkey on t1
1469 Index Cond: (id = t2.id)
1470 Filter: (ctid = '(1,1)'::tid)
1473 /*+IndexScan(t1) NoSeqScan(t2)*/
1474 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1484 -----------------------------------------
1487 TID Cond: (ctid = '(1,1)'::tid)
1488 -> Index Scan using t1_pkey on t1
1489 Index Cond: (id = t2.id)
1490 Filter: (ctid = '(1,1)'::tid)
1493 /*+IndexScan(t1) NoIndexScan(t2)*/
1494 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1504 -----------------------------------------
1507 TID Cond: (ctid = '(1,1)'::tid)
1508 -> Index Scan using t1_pkey on t1
1509 Index Cond: (id = t2.id)
1510 Filter: (ctid = '(1,1)'::tid)
1513 /*+IndexScan(t1) NoBitmapScan(t2)*/
1514 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 t1_pkey on t1
1529 Index Cond: (id = t2.id)
1530 Filter: (ctid = '(1,1)'::tid)
1533 /*+IndexScan(t1) NoTidScan(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)
1554 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1563 ------------------------------------------
1566 TID Cond: (ctid = '(1,1)'::tid)
1567 -> Bitmap Heap Scan on t1
1568 Recheck Cond: (id = t2.id)
1569 Filter: (ctid = '(1,1)'::tid)
1570 -> Bitmap Index Scan on t1_pkey
1571 Index Cond: (id = t2.id)
1575 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1584 ------------------------------------------
1587 TID Cond: (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)
1596 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1605 ------------------------------------------
1608 TID Cond: (ctid = '(1,1)'::tid)
1609 -> Bitmap Heap Scan on t2
1610 Recheck Cond: (id = t1.id)
1611 Filter: (ctid = '(1,1)'::tid)
1612 -> Bitmap Index Scan on t2_pkey
1613 Index Cond: (id = t1.id)
1616 /*+BitmapScan(t1) SeqScan(t2)*/
1617 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1627 ------------------------------------------
1630 Filter: (ctid = '(1,1)'::tid)
1631 -> Bitmap Heap Scan on t1
1632 Recheck Cond: (id = t2.id)
1633 Filter: (ctid = '(1,1)'::tid)
1634 -> Bitmap Index Scan on t1_pkey
1635 Index Cond: (id = t2.id)
1638 /*+BitmapScan(t1) IndexScan(t2)*/
1639 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1649 ------------------------------------------
1651 -> Index Scan using t2_pkey on t2
1652 Filter: (ctid = '(1,1)'::tid)
1653 -> Bitmap Heap Scan on t1
1654 Recheck Cond: (id = t2.id)
1655 Filter: (ctid = '(1,1)'::tid)
1656 -> Bitmap Index Scan on t1_pkey
1657 Index Cond: (id = t2.id)
1660 /*+BitmapScan(t1) BitmapScan(t2)*/
1661 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1671 ------------------------------------------
1673 -> Index Scan using t2_pkey on t2
1674 Filter: (ctid = '(1,1)'::tid)
1675 -> Bitmap Heap Scan on t1
1676 Recheck Cond: (id = t2.id)
1677 Filter: (ctid = '(1,1)'::tid)
1678 -> Bitmap Index Scan on t1_pkey
1679 Index Cond: (id = t2.id)
1682 /*+BitmapScan(t1) TidScan(t2)*/
1683 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1693 ------------------------------------------
1696 TID Cond: (ctid = '(1,1)'::tid)
1697 -> Bitmap Heap Scan on t1
1698 Recheck Cond: (id = t2.id)
1699 Filter: (ctid = '(1,1)'::tid)
1700 -> Bitmap Index Scan on t1_pkey
1701 Index Cond: (id = t2.id)
1704 /*+BitmapScan(t1) NoSeqScan(t2)*/
1705 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1715 ------------------------------------------
1718 TID Cond: (ctid = '(1,1)'::tid)
1719 -> Bitmap Heap Scan on t1
1720 Recheck Cond: (id = t2.id)
1721 Filter: (ctid = '(1,1)'::tid)
1722 -> Bitmap Index Scan on t1_pkey
1723 Index Cond: (id = t2.id)
1726 /*+BitmapScan(t1) NoIndexScan(t2)*/
1727 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1737 ------------------------------------------
1740 TID Cond: (ctid = '(1,1)'::tid)
1741 -> Bitmap Heap Scan on t1
1742 Recheck Cond: (id = t2.id)
1743 Filter: (ctid = '(1,1)'::tid)
1744 -> Bitmap Index Scan on t1_pkey
1745 Index Cond: (id = t2.id)
1748 /*+BitmapScan(t1) NoBitmapScan(t2)*/
1749 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1759 ------------------------------------------
1762 TID Cond: (ctid = '(1,1)'::tid)
1763 -> Bitmap Heap Scan on t1
1764 Recheck Cond: (id = t2.id)
1765 Filter: (ctid = '(1,1)'::tid)
1766 -> Bitmap Index Scan on t1_pkey
1767 Index Cond: (id = t2.id)
1770 /*+BitmapScan(t1) NoTidScan(t2)*/
1771 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1781 ------------------------------------------
1784 Filter: (ctid = '(1,1)'::tid)
1785 -> Bitmap Heap Scan on t1
1786 Recheck Cond: (id = t2.id)
1787 Filter: (ctid = '(1,1)'::tid)
1788 -> Bitmap Index Scan on t1_pkey
1789 Index Cond: (id = t2.id)
1793 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1802 -----------------------------------------
1804 Join Filter: (t1.id = t2.id)
1806 TID Cond: (ctid = '(1,1)'::tid)
1808 TID Cond: (ctid = '(1,1)'::tid)
1812 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1821 -----------------------------------------
1823 Join Filter: (t1.id = t2.id)
1825 TID Cond: (ctid = '(1,1)'::tid)
1827 TID Cond: (ctid = '(1,1)'::tid)
1830 /*+TidScan(t1) SeqScan(t2)*/
1831 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1841 -----------------------------------------
1843 Join Filter: (t1.id = t2.id)
1845 TID Cond: (ctid = '(1,1)'::tid)
1847 Filter: (ctid = '(1,1)'::tid)
1850 /*+TidScan(t1) IndexScan(t2)*/
1851 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1861 -----------------------------------------
1864 TID Cond: (ctid = '(1,1)'::tid)
1865 -> Index Scan using t2_pkey on t2
1866 Index Cond: (id = t1.id)
1867 Filter: (ctid = '(1,1)'::tid)
1870 /*+TidScan(t1) BitmapScan(t2)*/
1871 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1881 ------------------------------------------
1884 TID Cond: (ctid = '(1,1)'::tid)
1885 -> Bitmap Heap Scan on t2
1886 Recheck Cond: (id = t1.id)
1887 Filter: (ctid = '(1,1)'::tid)
1888 -> Bitmap Index Scan on t2_pkey
1889 Index Cond: (id = t1.id)
1892 /*+TidScan(t1) TidScan(t2)*/
1893 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1903 -----------------------------------------
1905 Join Filter: (t1.id = t2.id)
1907 TID Cond: (ctid = '(1,1)'::tid)
1909 TID Cond: (ctid = '(1,1)'::tid)
1912 /*+TidScan(t1) NoSeqScan(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 -----------------------------------------
1925 Join Filter: (t1.id = t2.id)
1927 TID Cond: (ctid = '(1,1)'::tid)
1929 TID Cond: (ctid = '(1,1)'::tid)
1932 /*+TidScan(t1) NoIndexScan(t2)*/
1933 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
1943 -----------------------------------------
1945 Join Filter: (t1.id = t2.id)
1947 TID Cond: (ctid = '(1,1)'::tid)
1949 TID Cond: (ctid = '(1,1)'::tid)
1952 /*+TidScan(t1) NoBitmapScan(t2)*/
1953 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) NoTidScan(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 -----------------------------------------
1986 TID Cond: (ctid = '(1,1)'::tid)
1987 -> Index Scan using t2_pkey on t2
1988 Index Cond: (id = t1.id)
1989 Filter: (ctid = '(1,1)'::tid)
1993 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2002 -----------------------------------------
2004 Join Filter: (t1.id = t2.id)
2006 TID Cond: (ctid = '(1,1)'::tid)
2008 TID Cond: (ctid = '(1,1)'::tid)
2012 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2021 -----------------------------------------
2023 Join Filter: (t1.id = t2.id)
2025 TID Cond: (ctid = '(1,1)'::tid)
2027 TID Cond: (ctid = '(1,1)'::tid)
2030 /*+NoSeqScan(t1) SeqScan(t2)*/
2031 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2041 -----------------------------------------
2043 Join Filter: (t1.id = t2.id)
2045 TID Cond: (ctid = '(1,1)'::tid)
2047 Filter: (ctid = '(1,1)'::tid)
2050 /*+NoSeqScan(t1) IndexScan(t2)*/
2051 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2061 -----------------------------------------
2064 TID Cond: (ctid = '(1,1)'::tid)
2065 -> Index Scan using t2_pkey on t2
2066 Index Cond: (id = t1.id)
2067 Filter: (ctid = '(1,1)'::tid)
2070 /*+NoSeqScan(t1) BitmapScan(t2)*/
2071 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2081 ------------------------------------------
2084 TID Cond: (ctid = '(1,1)'::tid)
2085 -> Bitmap Heap Scan on t2
2086 Recheck Cond: (id = t1.id)
2087 Filter: (ctid = '(1,1)'::tid)
2088 -> Bitmap Index Scan on t2_pkey
2089 Index Cond: (id = t1.id)
2092 /*+NoSeqScan(t1) TidScan(t2)*/
2093 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2103 -----------------------------------------
2105 Join Filter: (t1.id = t2.id)
2107 TID Cond: (ctid = '(1,1)'::tid)
2109 TID Cond: (ctid = '(1,1)'::tid)
2112 /*+NoSeqScan(t1) NoSeqScan(t2)*/
2113 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2123 -----------------------------------------
2125 Join Filter: (t1.id = t2.id)
2127 TID Cond: (ctid = '(1,1)'::tid)
2129 TID Cond: (ctid = '(1,1)'::tid)
2132 /*+NoSeqScan(t1) NoIndexScan(t2)*/
2133 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2143 -----------------------------------------
2145 Join Filter: (t1.id = t2.id)
2147 TID Cond: (ctid = '(1,1)'::tid)
2149 TID Cond: (ctid = '(1,1)'::tid)
2152 /*+NoSeqScan(t1) NoBitmapScan(t2)*/
2153 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) NoTidScan(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 -----------------------------------------
2186 TID Cond: (ctid = '(1,1)'::tid)
2187 -> Index Scan using t2_pkey on t2
2188 Index Cond: (id = t1.id)
2189 Filter: (ctid = '(1,1)'::tid)
2192 /*+NoIndexScan(t1)*/
2193 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2202 -----------------------------------------
2204 Join Filter: (t1.id = t2.id)
2206 TID Cond: (ctid = '(1,1)'::tid)
2208 TID Cond: (ctid = '(1,1)'::tid)
2211 /*+NoIndexScan(t2)*/
2212 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2221 -----------------------------------------
2223 Join Filter: (t1.id = t2.id)
2225 TID Cond: (ctid = '(1,1)'::tid)
2227 TID Cond: (ctid = '(1,1)'::tid)
2230 /*+NoIndexScan(t1) SeqScan(t2)*/
2231 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2241 -----------------------------------------
2243 Join Filter: (t1.id = t2.id)
2245 TID Cond: (ctid = '(1,1)'::tid)
2247 Filter: (ctid = '(1,1)'::tid)
2250 /*+NoIndexScan(t1) IndexScan(t2)*/
2251 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2261 -----------------------------------------
2264 TID Cond: (ctid = '(1,1)'::tid)
2265 -> Index Scan using t2_pkey on t2
2266 Index Cond: (id = t1.id)
2267 Filter: (ctid = '(1,1)'::tid)
2270 /*+NoIndexScan(t1) BitmapScan(t2)*/
2271 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2281 ------------------------------------------
2284 TID Cond: (ctid = '(1,1)'::tid)
2285 -> Bitmap Heap Scan on t2
2286 Recheck Cond: (id = t1.id)
2287 Filter: (ctid = '(1,1)'::tid)
2288 -> Bitmap Index Scan on t2_pkey
2289 Index Cond: (id = t1.id)
2292 /*+NoIndexScan(t1) TidScan(t2)*/
2293 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2303 -----------------------------------------
2305 Join Filter: (t1.id = t2.id)
2307 TID Cond: (ctid = '(1,1)'::tid)
2309 TID Cond: (ctid = '(1,1)'::tid)
2312 /*+NoIndexScan(t1) NoSeqScan(t2)*/
2313 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2323 -----------------------------------------
2325 Join Filter: (t1.id = t2.id)
2327 TID Cond: (ctid = '(1,1)'::tid)
2329 TID Cond: (ctid = '(1,1)'::tid)
2332 /*+NoIndexScan(t1) NoIndexScan(t2)*/
2333 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2343 -----------------------------------------
2345 Join Filter: (t1.id = t2.id)
2347 TID Cond: (ctid = '(1,1)'::tid)
2349 TID Cond: (ctid = '(1,1)'::tid)
2352 /*+NoIndexScan(t1) NoBitmapScan(t2)*/
2353 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) NoTidScan(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 -----------------------------------------
2386 TID Cond: (ctid = '(1,1)'::tid)
2387 -> Index Scan using t2_pkey on t2
2388 Index Cond: (id = t1.id)
2389 Filter: (ctid = '(1,1)'::tid)
2392 /*+NoBitmapScan(t1)*/
2393 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2402 -----------------------------------------
2404 Join Filter: (t1.id = t2.id)
2406 TID Cond: (ctid = '(1,1)'::tid)
2408 TID Cond: (ctid = '(1,1)'::tid)
2411 /*+NoBitmapScan(t2)*/
2412 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2421 -----------------------------------------
2423 Join Filter: (t1.id = t2.id)
2425 TID Cond: (ctid = '(1,1)'::tid)
2427 TID Cond: (ctid = '(1,1)'::tid)
2430 /*+NoBitmapScan(t1) SeqScan(t2)*/
2431 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2441 -----------------------------------------
2443 Join Filter: (t1.id = t2.id)
2445 TID Cond: (ctid = '(1,1)'::tid)
2447 Filter: (ctid = '(1,1)'::tid)
2450 /*+NoBitmapScan(t1) IndexScan(t2)*/
2451 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2461 -----------------------------------------
2464 TID Cond: (ctid = '(1,1)'::tid)
2465 -> Index Scan using t2_pkey on t2
2466 Index Cond: (id = t1.id)
2467 Filter: (ctid = '(1,1)'::tid)
2470 /*+NoBitmapScan(t1) BitmapScan(t2)*/
2471 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2481 ------------------------------------------
2484 TID Cond: (ctid = '(1,1)'::tid)
2485 -> Bitmap Heap Scan on t2
2486 Recheck Cond: (id = t1.id)
2487 Filter: (ctid = '(1,1)'::tid)
2488 -> Bitmap Index Scan on t2_pkey
2489 Index Cond: (id = t1.id)
2492 /*+NoBitmapScan(t1) TidScan(t2)*/
2493 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2503 -----------------------------------------
2505 Join Filter: (t1.id = t2.id)
2507 TID Cond: (ctid = '(1,1)'::tid)
2509 TID Cond: (ctid = '(1,1)'::tid)
2512 /*+NoBitmapScan(t1) NoSeqScan(t2)*/
2513 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2523 -----------------------------------------
2525 Join Filter: (t1.id = t2.id)
2527 TID Cond: (ctid = '(1,1)'::tid)
2529 TID Cond: (ctid = '(1,1)'::tid)
2532 /*+NoBitmapScan(t1) NoIndexScan(t2)*/
2533 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2543 -----------------------------------------
2545 Join Filter: (t1.id = t2.id)
2547 TID Cond: (ctid = '(1,1)'::tid)
2549 TID Cond: (ctid = '(1,1)'::tid)
2552 /*+NoBitmapScan(t1) NoBitmapScan(t2)*/
2553 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
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) NoTidScan(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 -----------------------------------------
2586 TID Cond: (ctid = '(1,1)'::tid)
2587 -> Index Scan using t2_pkey on t2
2588 Index Cond: (id = t1.id)
2589 Filter: (ctid = '(1,1)'::tid)
2593 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2602 -----------------------------------------
2605 TID Cond: (ctid = '(1,1)'::tid)
2606 -> Index Scan using t1_pkey on t1
2607 Index Cond: (id = t2.id)
2608 Filter: (ctid = '(1,1)'::tid)
2612 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2621 -----------------------------------------
2624 TID Cond: (ctid = '(1,1)'::tid)
2625 -> Index Scan using t2_pkey on t2
2626 Index Cond: (id = t1.id)
2627 Filter: (ctid = '(1,1)'::tid)
2630 /*+NoTidScan(t1) SeqScan(t2)*/
2631 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2641 ---------------------------------------
2644 Filter: (ctid = '(1,1)'::tid)
2645 -> Index Scan using t1_pkey on t1
2646 Index Cond: (id = t2.id)
2647 Filter: (ctid = '(1,1)'::tid)
2650 /*+NoTidScan(t1) IndexScan(t2)*/
2651 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2661 ---------------------------------------
2663 -> Index Scan using t2_pkey on t2
2664 Filter: (ctid = '(1,1)'::tid)
2665 -> Index Scan using t1_pkey on t1
2666 Index Cond: (id = t2.id)
2667 Filter: (ctid = '(1,1)'::tid)
2670 /*+NoTidScan(t1) BitmapScan(t2)*/
2671 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2681 ------------------------------------------
2684 Filter: (ctid = '(1,1)'::tid)
2685 -> Bitmap Heap Scan on t2
2686 Recheck Cond: (id = t1.id)
2687 Filter: (ctid = '(1,1)'::tid)
2688 -> Bitmap Index Scan on t2_pkey
2689 Index Cond: (id = t1.id)
2692 /*+NoTidScan(t1) TidScan(t2)*/
2693 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2703 -----------------------------------------
2706 TID Cond: (ctid = '(1,1)'::tid)
2707 -> Index Scan using t1_pkey on t1
2708 Index Cond: (id = t2.id)
2709 Filter: (ctid = '(1,1)'::tid)
2712 /*+NoTidScan(t1) NoSeqScan(t2)*/
2713 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2723 -----------------------------------------
2726 TID Cond: (ctid = '(1,1)'::tid)
2727 -> Index Scan using t1_pkey on t1
2728 Index Cond: (id = t2.id)
2729 Filter: (ctid = '(1,1)'::tid)
2732 /*+NoTidScan(t1) NoIndexScan(t2)*/
2733 EXPLAIN (COSTS false) SELECT * FROM t1, t2 WHERE t1.id = t2.id AND t1.ctid = '(1,1)' AND t2.ctid = '(1,1)';
2743 -----------------------------------------
2746 TID Cond: (ctid = '(1,1)'::tid)
2747 -> Index Scan using t1_pkey on t1
2748 Index Cond: (id = t2.id)
2749 Filter: (ctid = '(1,1)'::tid)
2752 /*+NoTidScan(t1) NoBitmapScan(t2)*/
2753 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 t1_pkey on t1
2768 Index Cond: (id = t2.id)
2769 Filter: (ctid = '(1,1)'::tid)
2772 /*+NoTidScan(t1) NoTidScan(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)
2793 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;
2795 -----------------------------------------
2797 Join Filter: (t1.id = t2.id)
2799 TID Cond: (ctid = '(1,1)'::tid)
2802 TID Cond: (ctid = '(1,1)'::tid)
2806 /*+BitmapScan(t1) BitmapScan(t2)*/
2807 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;
2817 --------------------------------------------------------
2819 -> Bitmap Heap Scan on t2
2820 Recheck Cond: (id < 10)
2821 Filter: (ctid = '(1,1)'::tid)
2822 -> Bitmap Index Scan on t2_pkey
2823 Index Cond: (id < 10)
2824 -> Bitmap Heap Scan on t1
2825 Recheck Cond: ((id < 10) AND (id = t2.id))
2826 Filter: (ctid = '(1,1)'::tid)
2827 -> Bitmap Index Scan on t1_pkey
2828 Index Cond: ((id < 10) AND (id = t2.id))
2832 EXPLAIN (COSTS false) SELECT * FROM t1 FULL OUTER JOIN t2 ON (t1.id = t2.id);
2834 ------------------------------
2836 Hash Cond: (t1.id = t2.id)
2842 /*+MergeJoin(t1 t2)*/
2843 EXPLAIN (COSTS false) SELECT * FROM t1 FULL OUTER JOIN t2 ON (t1.id = t2.id);
2852 --------------------------------------
2854 Merge Cond: (t1.id = t2.id)
2855 -> Index Scan using t1_pkey on t1
2856 -> Index Scan using t2_pkey on t2
2859 /*+NestLoop(t1 t2)*/
2860 EXPLAIN (COSTS false) SELECT * FROM t1 FULL OUTER JOIN t2 ON (t1.id = t2.id);
2869 ------------------------------
2871 Hash Cond: (t1.id = t2.id)