2 SET pg_hint_plan.enable_hint TO on;
3 SET pg_hint_plan.debug_print TO on;
4 SET client_min_messages TO LOG;
5 SET search_path TO public;
6 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
8 ------------------------------------
10 Merge Cond: (t1.c1 = t2.c1)
11 -> Index Scan using t1_i1 on t1
18 ---- No. J-1-1 specified pattern of the object name
22 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
31 ------------------------------
33 Hash Cond: (t1.c1 = t2.c1)
41 EXPLAIN (COSTS false) SELECT * FROM s1.t1 t_1, s1.t2 t_2 WHERE t_1.c1 = t_2.c1;
50 ----------------------------------------
52 Merge Cond: (t_1.c1 = t_2.c1)
53 -> Index Scan using t1_i1 on t1 t_1
60 /*+HashJoin(t_1 t_2)*/
61 EXPLAIN (COSTS false) SELECT * FROM s1.t1 t_1, s1.t2 t_2 WHERE t_1.c1 = t_2.c1;
70 --------------------------------
72 Hash Cond: (t_1.c1 = t_2.c1)
79 ---- No. J-1-2 specified schema name in the hint option
83 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
92 ------------------------------
94 Hash Cond: (t1.c1 = t2.c1)
101 /*+HashJoin(s1.t1 s1.t2)*/
102 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
106 HashJoin(s1.t1 s1.t2)
111 ------------------------------------
113 Merge Cond: (t1.c1 = t2.c1)
114 -> Index Scan using t1_i1 on t1
121 ---- No. J-1-3 table doesn't exist in the hint option
125 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
134 ------------------------------
136 Hash Cond: (t1.c1 = t2.c1)
144 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
153 ------------------------------------
155 Merge Cond: (t1.c1 = t2.c1)
156 -> Index Scan using t1_i1 on t1
163 ---- No. J-1-4 conflict table name
167 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
176 ------------------------------
178 Hash Cond: (t1.c1 = t2.c1)
185 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = s2.t1.c1;
187 -------------------------------------
189 Merge Cond: (s1.t1.c1 = s2.t1.c1)
190 -> Index Scan using t1_i1 on t1
197 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = s2.t1.c1;
198 INFO: hint syntax error at or near "HashJoin(t1 t1)"
199 DETAIL: Relation name "t1" is ambiguous.
208 -------------------------------------
210 Merge Cond: (s1.t1.c1 = s2.t1.c1)
211 -> Index Scan using t1_i1 on t1
217 /*+HashJoin(s1.t1 s2.t1)*/
218 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = s2.t1.c1;
222 HashJoin(s1.t1 s2.t1)
227 -------------------------------------
229 Merge Cond: (s1.t1.c1 = s2.t1.c1)
230 -> Index Scan using t1_i1 on t1
236 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 s2t1 WHERE s1.t1.c1 = s2t1.c1;
238 ------------------------------------
240 Merge Cond: (t1.c1 = s2t1.c1)
241 -> Index Scan using t1_i1 on t1
244 -> Seq Scan on t1 s2t1
247 /*+HashJoin(t1 s2t1)*/
248 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 s2t1 WHERE s1.t1.c1 = s2t1.c1;
257 ---------------------------------
259 Hash Cond: (t1.c1 = s2t1.c1)
262 -> Seq Scan on t1 s2t1
266 EXPLAIN (COSTS false) SELECT *, (SELECT max(t1.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
268 ---------------------------------------------------
270 Merge Cond: (s1.t1.c1 = s1.t2.c1)
271 InitPlan 1 (returns $0)
274 Merge Cond: (s1.t1.c1 = s1.t2.c1)
275 -> Index Scan using t1_i1 on t1
279 -> Index Scan using t1_i1 on t1
286 EXPLAIN (COSTS false) SELECT *, (SELECT max(t1.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
295 --------------------------------------------------
297 Hash Cond: (s1.t1.c1 = s1.t2.c1)
298 InitPlan 1 (returns $0)
301 Hash Cond: (s1.t1.c1 = s1.t2.c1)
310 /*+NestLoop(st1 st2)HashJoin(t1 t2)*/
311 EXPLAIN (COSTS false) SELECT *, (SELECT max(st1.c1) FROM s1.t1 st1, s1.t2 st2 WHERE st1.c1 = st2.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
321 ------------------------------------------------------
323 Hash Cond: (t1.c1 = t2.c1)
324 InitPlan 1 (returns $1)
327 -> Seq Scan on t2 st2
328 -> Index Scan using t1_i1 on t1 st1
329 Index Cond: (c1 = st2.c1)
336 ---- No. J-1-5 conflict table name
340 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
349 ------------------------------
351 Hash Cond: (t1.c1 = t2.c1)
359 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
360 INFO: hint syntax error at or near "HashJoin(t1 t1)"
361 DETAIL: Relation name "t1" is duplicated.
370 ------------------------------------
372 Merge Cond: (t1.c1 = t2.c1)
373 -> Index Scan using t1_i1 on t1
380 /*+HashJoin(t1 t1)HashJoin(t2 t2)*/
381 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
382 INFO: hint syntax error at or near "HashJoin(t1 t1)HashJoin(t2 t2)"
383 DETAIL: Relation name "t1" is duplicated.
384 INFO: hint syntax error at or near "HashJoin(t2 t2)"
385 DETAIL: Relation name "t2" is duplicated.
395 ------------------------------------
397 Merge Cond: (t1.c1 = t2.c1)
398 -> Index Scan using t1_i1 on t1
404 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
406 ------------------------------------------
408 Merge Cond: (t1.c1 = t2.c1)
410 Merge Cond: (t1.c1 = t3.c1)
411 -> Index Scan using t1_i1 on t1
412 -> Index Scan using t3_i1 on t3
418 /*+HashJoin(t1 t2 t1 t2)*/
419 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3, s1.t4 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
420 INFO: hint syntax error at or near "HashJoin(t1 t2 t1 t2)"
421 DETAIL: Relation name "t1" is duplicated.
427 HashJoin(t1 t1 t2 t2)
430 ------------------------------------------------
432 Merge Cond: (t1.c1 = t2.c1)
434 Merge Cond: (t1.c1 = t4.c1)
436 Merge Cond: (t1.c1 = t3.c1)
437 -> Index Scan using t1_i1 on t1
438 -> Index Scan using t3_i1 on t3
439 -> Index Scan using t4_i1 on t4
446 ---- No. J-1-6 object type for the hint
450 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
459 ------------------------------
461 Hash Cond: (t1.c1 = t2.c1)
468 EXPLAIN (COSTS false) SELECT * FROM s1.p1 t1, s1.p1 t2 WHERE t1.c1 = t2.c1;
470 ---------------------------------------
472 Hash Cond: (t1.c1 = t2.c1)
475 -> Seq Scan on p1c1 t1
476 -> Seq Scan on p1c2 t1
477 -> Seq Scan on p1c3 t1
481 -> Seq Scan on p1c1 t2
482 -> Seq Scan on p1c2 t2
483 -> Seq Scan on p1c3 t2
487 EXPLAIN (COSTS false) SELECT * FROM s1.p1 t1, s1.p1 t2 WHERE t1.c1 = t2.c1;
496 -----------------------------------------------------------
498 Join Filter: (t1.c1 = t2.c1)
501 -> Seq Scan on p1c1 t1
502 -> Seq Scan on p1c2 t1
503 -> Seq Scan on p1c3 t1
505 -> Index Scan using p1_i on p1 t2
506 Index Cond: ((c1 = t1.c1) AND (c1 = t1.c1))
507 -> Index Scan using p1c1_i on p1c1 t2
508 Index Cond: ((c1 = t1.c1) AND (c1 = t1.c1))
509 -> Index Scan using p1c2_i on p1c2 t2
510 Index Cond: ((c1 = t1.c1) AND (c1 = t1.c1))
511 -> Index Scan using p1c3_i on p1c3 t2
512 Index Cond: ((c1 = t1.c1) AND (c1 = t1.c1))
516 EXPLAIN (COSTS false) SELECT * FROM s1.ul1 t1, s1.ul1 t2 WHERE t1.c1 = t2.c1;
518 --------------------------------
520 Hash Cond: (t1.c1 = t2.c1)
521 -> Seq Scan on ul1 t1
523 -> Seq Scan on ul1 t2
527 EXPLAIN (COSTS false) SELECT * FROM s1.ul1 t1, s1.ul1 t2 WHERE t1.c1 = t2.c1;
536 -------------------------------------------
538 -> Seq Scan on ul1 t1
539 -> Index Scan using ul1_pkey on ul1 t2
540 Index Cond: (c1 = t1.c1)
544 CREATE TEMP TABLE tm1 (LIKE s1.t1 INCLUDING ALL);
545 NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "tm1_pkey" for table "tm1"
546 EXPLAIN (COSTS false) SELECT * FROM tm1 t1, tm1 t2 WHERE t1.c1 = t2.c1;
548 --------------------------------
550 Hash Cond: (t1.c1 = t2.c1)
551 -> Seq Scan on tm1 t1
553 -> Seq Scan on tm1 t2
557 EXPLAIN (COSTS false) SELECT * FROM tm1 t1, tm1 t2 WHERE t1.c1 = t2.c1;
566 -------------------------------------------
568 -> Seq Scan on tm1 t1
569 -> Index Scan using tm1_pkey on tm1 t2
570 Index Cond: (c1 = t1.c1)
574 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class t1, pg_catalog.pg_class t2 WHERE t1.oid = t2.oid;
576 -------------------------------------
578 Hash Cond: (t1.oid = t2.oid)
579 -> Seq Scan on pg_class t1
581 -> Seq Scan on pg_class t2
585 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class t1, pg_catalog.pg_class t2 WHERE t1.oid = t2.oid;
594 ----------------------------------------------------------
596 -> Seq Scan on pg_class t1
597 -> Index Scan using pg_class_oid_index on pg_class t2
598 Index Cond: (oid = t1.oid)
604 EXPLAIN (COSTS false) SELECT * FROM s1.f1() t1, s1.f1() t2 WHERE t1.c1 = t2.c1;
606 --------------------------------
608 Join Filter: (t1.c1 = t2.c1)
609 -> Function Scan on f1 t1
610 -> Function Scan on f1 t2
614 EXPLAIN (COSTS false) SELECT * FROM s1.f1() t1, s1.f1() t2 WHERE t1.c1 = t2.c1;
623 ------------------------------------
625 Hash Cond: (t1.c1 = t2.c1)
626 -> Function Scan on f1 t1
628 -> Function Scan on f1 t2
632 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), s1.t2 WHERE t1.c1 = t2.c1;
634 -------------------------------------------
636 Hash Cond: (t2.c1 = "*VALUES*".column1)
639 -> Values Scan on "*VALUES*"
643 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), s1.t2 WHERE t1.c1 = t2.c1;
652 -------------------------------------------
654 Hash Cond: (t2.c1 = "*VALUES*".column1)
657 -> Values Scan on "*VALUES*"
660 /*+NestLoop(*VALUES* t2)*/
661 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), s1.t2 WHERE t1.c1 = t2.c1;
664 NestLoop(*VALUES* t2)
670 ---------------------------------------------
672 Join Filter: ("*VALUES*".column1 = t2.c1)
675 -> Values Scan on "*VALUES*"
679 EXPLAIN (COSTS false) WITH c1(c1) AS (SELECT max(t1.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1) SELECT * FROM s1.t1, c1 WHERE t1.c1 = c1.c1;
681 --------------------------------------------------
686 Merge Cond: (s1.t1.c1 = t2.c1)
687 -> Index Scan using t1_i1 on t1
692 -> Index Scan using t1_i1 on t1
693 Index Cond: (c1 = c1.c1)
696 /*+NestLoop(t1 t2)HashJoin(t1 c1)*/
697 EXPLAIN (COSTS false) WITH c1(c1) AS (SELECT max(t1.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1) SELECT * FROM s1.t1, c1 WHERE t1.c1 = c1.c1;
707 --------------------------------------------------
709 Hash Cond: (s1.t1.c1 = c1.c1)
714 -> Index Scan using t1_i1 on t1
715 Index Cond: (c1 = t2.c1)
722 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
724 ----------------------------------
726 Hash Cond: (v1t1.c1 = v1t1.c1)
727 -> Seq Scan on t1 v1t1
729 -> Seq Scan on t1 v1t1
733 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
742 ----------------------------------
744 Hash Cond: (v1t1.c1 = v1t1.c1)
745 -> Seq Scan on t1 v1t1
747 -> Seq Scan on t1 v1t1
750 /*+NestLoop(v1t1 v1t1_)*/
751 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1_ t2 WHERE t1.c1 = t2.c1;
760 ------------------------------------------
762 -> Seq Scan on t1 v1t1
763 -> Index Scan using t1_i1 on t1 v1t1_
764 Index Cond: (c1 = v1t1.c1)
768 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.c1 = (SELECT max(st1.c1) FROM s1.t1 st1, s1.t2 st2 WHERE st1.c1 = st2.c1);
770 ------------------------------------------------------
772 InitPlan 1 (returns $0)
775 Merge Cond: (st1.c1 = st2.c1)
776 -> Index Scan using t1_i1 on t1 st1
779 -> Seq Scan on t2 st2
780 -> Index Scan using t1_i1 on t1
781 Index Cond: (c1 = $0)
786 /*+MergeJoin(t1 t2)NestLoop(st1 st2)*/
787 EXPLAIN (COSTS true) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.c1 = (SELECT max(st1.c1) FROM s1.t1 st1, s1.t2 st2 WHERE st1.c1 = st2.c1);
797 ----------------------------------------------------------------------------------------
798 Nested Loop (cost=10000000074.28..10000000084.81 rows=1 width=29)
799 InitPlan 1 (returns $1)
800 -> Aggregate (cost=74.27..74.28 rows=1 width=4)
801 -> Nested Loop (cost=0.00..74.02 rows=100 width=4)
802 -> Seq Scan on t2 st2 (cost=0.00..2.00 rows=100 width=4)
803 -> Index Scan using t1_i1 on t1 st1 (cost=0.00..0.71 rows=1 width=4)
804 Index Cond: (c1 = st2.c1)
805 -> Index Scan using t1_i1 on t1 (cost=0.00..8.27 rows=1 width=15)
806 Index Cond: (c1 = $1)
807 -> Seq Scan on t2 (cost=0.00..2.25 rows=1 width=14)
811 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
813 ------------------------------------
815 Merge Cond: (t1.c1 = t2.c1)
816 -> Index Scan using t1_i1 on t1
822 /*+HashJoin(t1 st2)*/
823 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
832 ------------------------------------
834 Merge Cond: (t1.c1 = t2.c1)
835 -> Index Scan using t1_i1 on t1
842 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
851 ------------------------------
853 Hash Cond: (t1.c1 = t2.c1)
860 ---- No. J-2-1 some complexity query blocks
863 EXPLAIN (COSTS false)
864 SELECT max(bmt1.c1), (
865 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
867 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
869 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
872 -------------------------------------------------------------------
874 InitPlan 1 (returns $0)
877 Join Filter: (b1t1.c1 = b1t4.c1)
879 Join Filter: (b1t1.c1 = b1t3.c1)
881 Join Filter: (b1t1.c1 = b1t2.c1)
882 -> Tid Scan on t1 b1t1
883 TID Cond: (ctid = '(1,1)'::tid)
884 -> Seq Scan on t2 b1t2
885 Filter: (ctid = '(1,1)'::tid)
886 -> Tid Scan on t3 b1t3
887 TID Cond: (ctid = '(1,1)'::tid)
888 -> Tid Scan on t4 b1t4
889 TID Cond: (ctid = '(1,1)'::tid)
890 InitPlan 2 (returns $1)
893 Join Filter: (b2t1.c1 = b2t4.c1)
895 Join Filter: (b2t1.c1 = b2t3.c1)
897 Join Filter: (b2t1.c1 = b2t2.c1)
898 -> Tid Scan on t1 b2t1
899 TID Cond: (ctid = '(1,1)'::tid)
900 -> Seq Scan on t2 b2t2
901 Filter: (ctid = '(1,1)'::tid)
902 -> Tid Scan on t3 b2t3
903 TID Cond: (ctid = '(1,1)'::tid)
904 -> Tid Scan on t4 b2t4
905 TID Cond: (ctid = '(1,1)'::tid)
907 Join Filter: (bmt1.c1 = bmt4.c1)
909 Join Filter: (bmt1.c1 = bmt3.c1)
911 Join Filter: (bmt1.c1 = bmt2.c1)
912 -> Tid Scan on t1 bmt1
913 TID Cond: (ctid = '(1,1)'::tid)
914 -> Seq Scan on t2 bmt2
915 Filter: (ctid = '(1,1)'::tid)
916 -> Tid Scan on t3 bmt3
917 TID Cond: (ctid = '(1,1)'::tid)
918 -> Tid Scan on t4 bmt4
919 TID Cond: (ctid = '(1,1)'::tid)
923 Leading(bmt1 bmt2 bmt3 bmt4)
924 Leading(b1t2 b1t3 b1t4 b1t1)
925 Leading(b2t3 b2t4 b2t1 b2t2)
926 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
927 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
928 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
930 EXPLAIN (COSTS false)
931 SELECT max(bmt1.c1), (
932 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
934 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
936 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
943 HashJoin(b1t2 b1t3 b1t4)
944 HashJoin(b2t1 b2t3 b2t4)
945 HashJoin(bmt1 bmt2 bmt3)
946 NestLoop(b1t1 b1t2 b1t3 b1t4)
947 NestLoop(b2t1 b2t2 b2t3 b2t4)
948 NestLoop(bmt1 bmt2 bmt3 bmt4)
949 Leading(bmt1 bmt2 bmt3 bmt4)
950 Leading(b1t2 b1t3 b1t4 b1t1)
951 Leading(b2t3 b2t4 b2t1 b2t2)
957 -------------------------------------------------------------------------------
959 InitPlan 1 (returns $0)
962 Join Filter: (b1t2.c1 = b1t1.c1)
964 Hash Cond: (b1t4.c1 = b1t2.c1)
965 -> Tid Scan on t4 b1t4
966 TID Cond: (ctid = '(1,1)'::tid)
969 Merge Cond: (b1t2.c1 = b1t3.c1)
972 -> Seq Scan on t2 b1t2
973 Filter: (ctid = '(1,1)'::tid)
976 -> Tid Scan on t3 b1t3
977 TID Cond: (ctid = '(1,1)'::tid)
978 -> Tid Scan on t1 b1t1
979 TID Cond: (ctid = '(1,1)'::tid)
980 InitPlan 2 (returns $1)
983 Join Filter: (b2t1.c1 = b2t2.c1)
985 Hash Cond: (b2t1.c1 = b2t3.c1)
986 -> Tid Scan on t1 b2t1
987 TID Cond: (ctid = '(1,1)'::tid)
990 Merge Cond: (b2t3.c1 = b2t4.c1)
993 -> Tid Scan on t3 b2t3
994 TID Cond: (ctid = '(1,1)'::tid)
997 -> Tid Scan on t4 b2t4
998 TID Cond: (ctid = '(1,1)'::tid)
999 -> Seq Scan on t2 b2t2
1000 Filter: (ctid = '(1,1)'::tid)
1002 Join Filter: (bmt1.c1 = bmt4.c1)
1004 Hash Cond: (bmt3.c1 = bmt1.c1)
1005 -> Tid Scan on t3 bmt3
1006 TID Cond: (ctid = '(1,1)'::tid)
1009 Merge Cond: (bmt1.c1 = bmt2.c1)
1012 -> Tid Scan on t1 bmt1
1013 TID Cond: (ctid = '(1,1)'::tid)
1016 -> Seq Scan on t2 bmt2
1017 Filter: (ctid = '(1,1)'::tid)
1018 -> Tid Scan on t4 bmt4
1019 TID Cond: (ctid = '(1,1)'::tid)
1023 EXPLAIN (COSTS false)
1024 SELECT max(bmt1.c1), (
1025 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1027 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1029 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)' AND b3t1.c1 = b3t3.c1 AND b3t3.ctid = '(1,1)' AND b3t1.c1 = b3t4.c1 AND b3t4.ctid = '(1,1)'
1031 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1034 -------------------------------------------------------------------
1036 InitPlan 1 (returns $0)
1039 Join Filter: (b1t1.c1 = b1t4.c1)
1041 Join Filter: (b1t1.c1 = b1t3.c1)
1043 Join Filter: (b1t1.c1 = b1t2.c1)
1044 -> Tid Scan on t1 b1t1
1045 TID Cond: (ctid = '(1,1)'::tid)
1046 -> Seq Scan on t2 b1t2
1047 Filter: (ctid = '(1,1)'::tid)
1048 -> Tid Scan on t3 b1t3
1049 TID Cond: (ctid = '(1,1)'::tid)
1050 -> Tid Scan on t4 b1t4
1051 TID Cond: (ctid = '(1,1)'::tid)
1052 InitPlan 2 (returns $1)
1055 Join Filter: (b2t1.c1 = b2t4.c1)
1057 Join Filter: (b2t1.c1 = b2t3.c1)
1059 Join Filter: (b2t1.c1 = b2t2.c1)
1060 -> Tid Scan on t1 b2t1
1061 TID Cond: (ctid = '(1,1)'::tid)
1062 -> Seq Scan on t2 b2t2
1063 Filter: (ctid = '(1,1)'::tid)
1064 -> Tid Scan on t3 b2t3
1065 TID Cond: (ctid = '(1,1)'::tid)
1066 -> Tid Scan on t4 b2t4
1067 TID Cond: (ctid = '(1,1)'::tid)
1068 InitPlan 3 (returns $2)
1071 Join Filter: (b3t1.c1 = b3t4.c1)
1073 Join Filter: (b3t1.c1 = b3t3.c1)
1075 Join Filter: (b3t1.c1 = b3t2.c1)
1076 -> Tid Scan on t1 b3t1
1077 TID Cond: (ctid = '(1,1)'::tid)
1078 -> Seq Scan on t2 b3t2
1079 Filter: (ctid = '(1,1)'::tid)
1080 -> Tid Scan on t3 b3t3
1081 TID Cond: (ctid = '(1,1)'::tid)
1082 -> Tid Scan on t4 b3t4
1083 TID Cond: (ctid = '(1,1)'::tid)
1085 Join Filter: (bmt1.c1 = bmt4.c1)
1087 Join Filter: (bmt1.c1 = bmt3.c1)
1089 Join Filter: (bmt1.c1 = bmt2.c1)
1090 -> Tid Scan on t1 bmt1
1091 TID Cond: (ctid = '(1,1)'::tid)
1092 -> Seq Scan on t2 bmt2
1093 Filter: (ctid = '(1,1)'::tid)
1094 -> Tid Scan on t3 bmt3
1095 TID Cond: (ctid = '(1,1)'::tid)
1096 -> Tid Scan on t4 bmt4
1097 TID Cond: (ctid = '(1,1)'::tid)
1101 Leading(bmt1 bmt2 bmt3 bmt4)
1102 Leading(b1t2 b1t3 b1t4 b1t1)
1103 Leading(b2t3 b2t4 b2t1 b2t2)
1104 Leading(b3t4 b3t1 b3t2 b3t3)
1105 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1106 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1107 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1108 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1110 EXPLAIN (COSTS false)
1111 SELECT max(bmt1.c1), (
1112 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1114 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1116 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)' AND b3t1.c1 = b3t3.c1 AND b3t3.ctid = '(1,1)' AND b3t1.c1 = b3t4.c1 AND b3t4.ctid = '(1,1)'
1118 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1122 MergeJoin(b1t2 b1t3)
1123 MergeJoin(b2t3 b2t4)
1124 MergeJoin(b3t1 b3t4)
1125 MergeJoin(bmt1 bmt2)
1126 HashJoin(b1t2 b1t3 b1t4)
1127 HashJoin(b2t1 b2t3 b2t4)
1128 HashJoin(b3t1 b3t2 b3t4)
1129 HashJoin(bmt1 bmt2 bmt3)
1130 NestLoop(b1t1 b1t2 b1t3 b1t4)
1131 NestLoop(b2t1 b2t2 b2t3 b2t4)
1132 NestLoop(b3t1 b3t2 b3t3 b3t4)
1133 NestLoop(bmt1 bmt2 bmt3 bmt4)
1134 Leading(bmt1 bmt2 bmt3 bmt4)
1135 Leading(b1t2 b1t3 b1t4 b1t1)
1136 Leading(b2t3 b2t4 b2t1 b2t2)
1137 Leading(b3t4 b3t1 b3t2 b3t3)
1143 -------------------------------------------------------------------------------
1145 InitPlan 1 (returns $0)
1148 Join Filter: (b1t2.c1 = b1t1.c1)
1150 Hash Cond: (b1t4.c1 = b1t2.c1)
1151 -> Tid Scan on t4 b1t4
1152 TID Cond: (ctid = '(1,1)'::tid)
1155 Merge Cond: (b1t2.c1 = b1t3.c1)
1158 -> Seq Scan on t2 b1t2
1159 Filter: (ctid = '(1,1)'::tid)
1162 -> Tid Scan on t3 b1t3
1163 TID Cond: (ctid = '(1,1)'::tid)
1164 -> Tid Scan on t1 b1t1
1165 TID Cond: (ctid = '(1,1)'::tid)
1166 InitPlan 2 (returns $1)
1169 Join Filter: (b2t1.c1 = b2t2.c1)
1171 Hash Cond: (b2t1.c1 = b2t3.c1)
1172 -> Tid Scan on t1 b2t1
1173 TID Cond: (ctid = '(1,1)'::tid)
1176 Merge Cond: (b2t3.c1 = b2t4.c1)
1179 -> Tid Scan on t3 b2t3
1180 TID Cond: (ctid = '(1,1)'::tid)
1183 -> Tid Scan on t4 b2t4
1184 TID Cond: (ctid = '(1,1)'::tid)
1185 -> Seq Scan on t2 b2t2
1186 Filter: (ctid = '(1,1)'::tid)
1187 InitPlan 3 (returns $2)
1190 Join Filter: (b3t1.c1 = b3t3.c1)
1192 Hash Cond: (b3t2.c1 = b3t1.c1)
1193 -> Seq Scan on t2 b3t2
1194 Filter: (ctid = '(1,1)'::tid)
1197 Merge Cond: (b3t1.c1 = b3t4.c1)
1200 -> Tid Scan on t1 b3t1
1201 TID Cond: (ctid = '(1,1)'::tid)
1204 -> Tid Scan on t4 b3t4
1205 TID Cond: (ctid = '(1,1)'::tid)
1206 -> Tid Scan on t3 b3t3
1207 TID Cond: (ctid = '(1,1)'::tid)
1209 Join Filter: (bmt1.c1 = bmt4.c1)
1211 Hash Cond: (bmt3.c1 = bmt1.c1)
1212 -> Tid Scan on t3 bmt3
1213 TID Cond: (ctid = '(1,1)'::tid)
1216 Merge Cond: (bmt1.c1 = bmt2.c1)
1219 -> Tid Scan on t1 bmt1
1220 TID Cond: (ctid = '(1,1)'::tid)
1223 -> Seq Scan on t2 bmt2
1224 Filter: (ctid = '(1,1)'::tid)
1225 -> Tid Scan on t4 bmt4
1226 TID Cond: (ctid = '(1,1)'::tid)
1230 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, (SELECT ctid, * FROM s1.t3 bmt3) sbmt3, (SELECT ctid, * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = sbmt3.c1 AND sbmt3.ctid = '(1,1)' AND bmt1.c1 = sbmt4.c1 AND sbmt4.ctid = '(1,1)';
1232 -----------------------------------------------------------
1235 Join Filter: (bmt1.c1 = bmt4.c1)
1237 Join Filter: (bmt1.c1 = bmt3.c1)
1239 Join Filter: (bmt1.c1 = bmt2.c1)
1240 -> Tid Scan on t1 bmt1
1241 TID Cond: (ctid = '(1,1)'::tid)
1242 -> Seq Scan on t2 bmt2
1243 Filter: (ctid = '(1,1)'::tid)
1244 -> Tid Scan on t3 bmt3
1245 TID Cond: (ctid = '(1,1)'::tid)
1246 -> Tid Scan on t4 bmt4
1247 TID Cond: (ctid = '(1,1)'::tid)
1251 Leading(bmt4 bmt3 bmt2 bmt1)
1252 MergeJoin(bmt4 bmt3)HashJoin(bmt4 bmt3 bmt2)NestLoop(bmt1 bmt2 bmt3 bmt4)
1254 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, (SELECT ctid, * FROM s1.t3 bmt3) sbmt3, (SELECT ctid, * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = sbmt3.c1 AND sbmt3.ctid = '(1,1)' AND bmt1.c1 = sbmt4.c1 AND sbmt4.ctid = '(1,1)';
1257 MergeJoin(bmt3 bmt4)
1258 HashJoin(bmt2 bmt3 bmt4)
1259 NestLoop(bmt1 bmt2 bmt3 bmt4)
1260 Leading(bmt4 bmt3 bmt2 bmt1)
1266 -----------------------------------------------------------------------
1269 Join Filter: (bmt2.c1 = bmt1.c1)
1271 Hash Cond: (bmt2.c1 = bmt3.c1)
1272 -> Seq Scan on t2 bmt2
1273 Filter: (ctid = '(1,1)'::tid)
1276 Merge Cond: (bmt3.c1 = bmt4.c1)
1279 -> Tid Scan on t3 bmt3
1280 TID Cond: (ctid = '(1,1)'::tid)
1283 -> Tid Scan on t4 bmt4
1284 TID Cond: (ctid = '(1,1)'::tid)
1285 -> Tid Scan on t1 bmt1
1286 TID Cond: (ctid = '(1,1)'::tid)
1290 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, (SELECT ctid, * FROM s1.t2 bmt2) sbmt2, (SELECT ctid, * FROM s1.t3 bmt3) sbmt3, (SELECT ctid, * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = sbmt2.c1 AND sbmt2.ctid = '(1,1)' AND bmt1.c1 = sbmt3.c1 AND sbmt3.ctid = '(1,1)' AND bmt1.c1 = sbmt4.c1 AND sbmt4.ctid = '(1,1)';
1292 -----------------------------------------------------------
1295 Join Filter: (bmt1.c1 = bmt4.c1)
1297 Join Filter: (bmt1.c1 = bmt3.c1)
1299 Join Filter: (bmt1.c1 = bmt2.c1)
1300 -> Tid Scan on t1 bmt1
1301 TID Cond: (ctid = '(1,1)'::tid)
1302 -> Seq Scan on t2 bmt2
1303 Filter: (ctid = '(1,1)'::tid)
1304 -> Tid Scan on t3 bmt3
1305 TID Cond: (ctid = '(1,1)'::tid)
1306 -> Tid Scan on t4 bmt4
1307 TID Cond: (ctid = '(1,1)'::tid)
1311 Leading(bmt4 bmt3 bmt2 bmt1)
1312 MergeJoin(bmt4 bmt3)HashJoin(bmt4 bmt3 bmt2)NestLoop(bmt1 bmt2 bmt3 bmt4)
1314 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, (SELECT ctid, * FROM s1.t2 bmt2) sbmt2, (SELECT ctid, * FROM s1.t3 bmt3) sbmt3, (SELECT ctid, * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = sbmt2.c1 AND sbmt2.ctid = '(1,1)' AND bmt1.c1 = sbmt3.c1 AND sbmt3.ctid = '(1,1)' AND bmt1.c1 = sbmt4.c1 AND sbmt4.ctid = '(1,1)';
1317 MergeJoin(bmt3 bmt4)
1318 HashJoin(bmt2 bmt3 bmt4)
1319 NestLoop(bmt1 bmt2 bmt3 bmt4)
1320 Leading(bmt4 bmt3 bmt2 bmt1)
1326 -----------------------------------------------------------------------
1329 Join Filter: (bmt2.c1 = bmt1.c1)
1331 Hash Cond: (bmt2.c1 = bmt3.c1)
1332 -> Seq Scan on t2 bmt2
1333 Filter: (ctid = '(1,1)'::tid)
1336 Merge Cond: (bmt3.c1 = bmt4.c1)
1339 -> Tid Scan on t3 bmt3
1340 TID Cond: (ctid = '(1,1)'::tid)
1343 -> Tid Scan on t4 bmt4
1344 TID Cond: (ctid = '(1,1)'::tid)
1345 -> Tid Scan on t1 bmt1
1346 TID Cond: (ctid = '(1,1)'::tid)
1350 EXPLAIN (COSTS false)
1351 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1353 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1355 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1359 -------------------------------------------------------------------
1361 InitPlan 1 (returns $0)
1364 Join Filter: (b1t1.c1 = b1t4.c1)
1366 Join Filter: (b1t1.c1 = b1t3.c1)
1368 Join Filter: (b1t1.c1 = b1t2.c1)
1369 -> Tid Scan on t1 b1t1
1370 TID Cond: (ctid = '(1,1)'::tid)
1371 -> Seq Scan on t2 b1t2
1372 Filter: (ctid = '(1,1)'::tid)
1373 -> Tid Scan on t3 b1t3
1374 TID Cond: (ctid = '(1,1)'::tid)
1375 -> Tid Scan on t4 b1t4
1376 TID Cond: (ctid = '(1,1)'::tid)
1377 InitPlan 2 (returns $1)
1380 Join Filter: (b2t1.c1 = b2t4.c1)
1382 Join Filter: (b2t1.c1 = b2t3.c1)
1384 Join Filter: (b2t1.c1 = b2t2.c1)
1385 -> Tid Scan on t1 b2t1
1386 TID Cond: (ctid = '(1,1)'::tid)
1387 -> Seq Scan on t2 b2t2
1388 Filter: (ctid = '(1,1)'::tid)
1389 -> Tid Scan on t3 b2t3
1390 TID Cond: (ctid = '(1,1)'::tid)
1391 -> Tid Scan on t4 b2t4
1392 TID Cond: (ctid = '(1,1)'::tid)
1394 Join Filter: (bmt1.c1 = bmt4.c1)
1396 Join Filter: (bmt1.c1 = bmt2.c1)
1398 Join Filter: (bmt1.c1 = bmt3.c1)
1399 -> Tid Scan on t1 bmt1
1400 TID Cond: (ctid = '(1,1)'::tid)
1401 Filter: ((c1 <> $0) AND (c1 <> $1))
1402 -> Tid Scan on t3 bmt3
1403 TID Cond: (ctid = '(1,1)'::tid)
1404 -> Seq Scan on t2 bmt2
1405 Filter: (ctid = '(1,1)'::tid)
1406 -> Tid Scan on t4 bmt4
1407 TID Cond: (ctid = '(1,1)'::tid)
1411 Leading(bmt1 bmt2 bmt3 bmt4)
1412 Leading(b1t2 b1t3 b1t4 b1t1)
1413 Leading(b2t3 b2t4 b2t1 b2t2)
1414 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1415 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1416 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1418 EXPLAIN (COSTS false)
1419 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1421 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1423 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1428 MergeJoin(b1t2 b1t3)
1429 MergeJoin(b2t3 b2t4)
1430 MergeJoin(bmt1 bmt2)
1431 HashJoin(b1t2 b1t3 b1t4)
1432 HashJoin(b2t1 b2t3 b2t4)
1433 HashJoin(bmt1 bmt2 bmt3)
1434 NestLoop(b1t1 b1t2 b1t3 b1t4)
1435 NestLoop(b2t1 b2t2 b2t3 b2t4)
1436 NestLoop(bmt1 bmt2 bmt3 bmt4)
1437 Leading(bmt1 bmt2 bmt3 bmt4)
1438 Leading(b1t2 b1t3 b1t4 b1t1)
1439 Leading(b2t3 b2t4 b2t1 b2t2)
1445 -------------------------------------------------------------------------------
1447 InitPlan 1 (returns $0)
1450 Join Filter: (b1t2.c1 = b1t1.c1)
1452 Hash Cond: (b1t4.c1 = b1t2.c1)
1453 -> Tid Scan on t4 b1t4
1454 TID Cond: (ctid = '(1,1)'::tid)
1457 Merge Cond: (b1t2.c1 = b1t3.c1)
1460 -> Seq Scan on t2 b1t2
1461 Filter: (ctid = '(1,1)'::tid)
1464 -> Tid Scan on t3 b1t3
1465 TID Cond: (ctid = '(1,1)'::tid)
1466 -> Tid Scan on t1 b1t1
1467 TID Cond: (ctid = '(1,1)'::tid)
1468 InitPlan 2 (returns $1)
1471 Join Filter: (b2t1.c1 = b2t2.c1)
1473 Hash Cond: (b2t1.c1 = b2t3.c1)
1474 -> Tid Scan on t1 b2t1
1475 TID Cond: (ctid = '(1,1)'::tid)
1478 Merge Cond: (b2t3.c1 = b2t4.c1)
1481 -> Tid Scan on t3 b2t3
1482 TID Cond: (ctid = '(1,1)'::tid)
1485 -> Tid Scan on t4 b2t4
1486 TID Cond: (ctid = '(1,1)'::tid)
1487 -> Seq Scan on t2 b2t2
1488 Filter: (ctid = '(1,1)'::tid)
1490 Join Filter: (bmt1.c1 = bmt4.c1)
1492 Hash Cond: (bmt3.c1 = bmt1.c1)
1493 -> Tid Scan on t3 bmt3
1494 TID Cond: (ctid = '(1,1)'::tid)
1497 Merge Cond: (bmt1.c1 = bmt2.c1)
1500 -> Tid Scan on t1 bmt1
1501 TID Cond: (ctid = '(1,1)'::tid)
1502 Filter: ((c1 <> $0) AND (c1 <> $1))
1505 -> Seq Scan on t2 bmt2
1506 Filter: (ctid = '(1,1)'::tid)
1507 -> Tid Scan on t4 bmt4
1508 TID Cond: (ctid = '(1,1)'::tid)
1512 EXPLAIN (COSTS false)
1513 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1515 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1517 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1519 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)' AND b3t1.c1 = b3t3.c1 AND b3t3.ctid = '(1,1)' AND b3t1.c1 = b3t4.c1 AND b3t4.ctid = '(1,1)'
1523 ------------------------------------------------------------------------------
1525 InitPlan 1 (returns $0)
1528 Join Filter: (b1t1.c1 = b1t4.c1)
1530 Join Filter: (b1t1.c1 = b1t3.c1)
1532 Join Filter: (b1t1.c1 = b1t2.c1)
1533 -> Tid Scan on t1 b1t1
1534 TID Cond: (ctid = '(1,1)'::tid)
1535 -> Seq Scan on t2 b1t2
1536 Filter: (ctid = '(1,1)'::tid)
1537 -> Tid Scan on t3 b1t3
1538 TID Cond: (ctid = '(1,1)'::tid)
1539 -> Tid Scan on t4 b1t4
1540 TID Cond: (ctid = '(1,1)'::tid)
1541 InitPlan 2 (returns $1)
1544 Join Filter: (b2t1.c1 = b2t4.c1)
1546 Join Filter: (b2t1.c1 = b2t3.c1)
1548 Join Filter: (b2t1.c1 = b2t2.c1)
1549 -> Tid Scan on t1 b2t1
1550 TID Cond: (ctid = '(1,1)'::tid)
1551 -> Seq Scan on t2 b2t2
1552 Filter: (ctid = '(1,1)'::tid)
1553 -> Tid Scan on t3 b2t3
1554 TID Cond: (ctid = '(1,1)'::tid)
1555 -> Tid Scan on t4 b2t4
1556 TID Cond: (ctid = '(1,1)'::tid)
1557 InitPlan 3 (returns $2)
1560 Join Filter: (b3t1.c1 = b3t4.c1)
1562 Join Filter: (b3t1.c1 = b3t3.c1)
1564 Join Filter: (b3t1.c1 = b3t2.c1)
1565 -> Tid Scan on t1 b3t1
1566 TID Cond: (ctid = '(1,1)'::tid)
1567 -> Seq Scan on t2 b3t2
1568 Filter: (ctid = '(1,1)'::tid)
1569 -> Tid Scan on t3 b3t3
1570 TID Cond: (ctid = '(1,1)'::tid)
1571 -> Tid Scan on t4 b3t4
1572 TID Cond: (ctid = '(1,1)'::tid)
1574 Join Filter: (bmt1.c1 = bmt4.c1)
1576 Join Filter: (bmt1.c1 = bmt3.c1)
1578 Join Filter: (bmt1.c1 = bmt2.c1)
1579 -> Tid Scan on t1 bmt1
1580 TID Cond: (ctid = '(1,1)'::tid)
1581 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1582 -> Seq Scan on t2 bmt2
1583 Filter: (ctid = '(1,1)'::tid)
1584 -> Tid Scan on t3 bmt3
1585 TID Cond: (ctid = '(1,1)'::tid)
1586 -> Tid Scan on t4 bmt4
1587 TID Cond: (ctid = '(1,1)'::tid)
1591 Leading(bmt1 bmt2 bmt3 bmt4)
1592 Leading(b1t2 b1t3 b1t4 b1t1)
1593 Leading(b2t3 b2t4 b2t1 b2t2)
1594 Leading(b3t4 b3t1 b3t2 b3t3)
1595 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1596 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1597 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1598 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1600 EXPLAIN (COSTS false)
1601 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1603 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1605 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1607 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)' AND b3t1.c1 = b3t3.c1 AND b3t3.ctid = '(1,1)' AND b3t1.c1 = b3t4.c1 AND b3t4.ctid = '(1,1)'
1612 MergeJoin(b1t2 b1t3)
1613 MergeJoin(b2t3 b2t4)
1614 MergeJoin(b3t1 b3t4)
1615 MergeJoin(bmt1 bmt2)
1616 HashJoin(b1t2 b1t3 b1t4)
1617 HashJoin(b2t1 b2t3 b2t4)
1618 HashJoin(b3t1 b3t2 b3t4)
1619 HashJoin(bmt1 bmt2 bmt3)
1620 NestLoop(b1t1 b1t2 b1t3 b1t4)
1621 NestLoop(b2t1 b2t2 b2t3 b2t4)
1622 NestLoop(b3t1 b3t2 b3t3 b3t4)
1623 NestLoop(bmt1 bmt2 bmt3 bmt4)
1624 Leading(bmt1 bmt2 bmt3 bmt4)
1625 Leading(b1t2 b1t3 b1t4 b1t1)
1626 Leading(b2t3 b2t4 b2t1 b2t2)
1627 Leading(b3t4 b3t1 b3t2 b3t3)
1633 ------------------------------------------------------------------------------------------
1635 InitPlan 1 (returns $0)
1638 Join Filter: (b1t2.c1 = b1t1.c1)
1640 Hash Cond: (b1t4.c1 = b1t2.c1)
1641 -> Tid Scan on t4 b1t4
1642 TID Cond: (ctid = '(1,1)'::tid)
1645 Merge Cond: (b1t2.c1 = b1t3.c1)
1648 -> Seq Scan on t2 b1t2
1649 Filter: (ctid = '(1,1)'::tid)
1652 -> Tid Scan on t3 b1t3
1653 TID Cond: (ctid = '(1,1)'::tid)
1654 -> Tid Scan on t1 b1t1
1655 TID Cond: (ctid = '(1,1)'::tid)
1656 InitPlan 2 (returns $1)
1659 Join Filter: (b2t1.c1 = b2t2.c1)
1661 Hash Cond: (b2t1.c1 = b2t3.c1)
1662 -> Tid Scan on t1 b2t1
1663 TID Cond: (ctid = '(1,1)'::tid)
1666 Merge Cond: (b2t3.c1 = b2t4.c1)
1669 -> Tid Scan on t3 b2t3
1670 TID Cond: (ctid = '(1,1)'::tid)
1673 -> Tid Scan on t4 b2t4
1674 TID Cond: (ctid = '(1,1)'::tid)
1675 -> Seq Scan on t2 b2t2
1676 Filter: (ctid = '(1,1)'::tid)
1677 InitPlan 3 (returns $2)
1680 Join Filter: (b3t1.c1 = b3t3.c1)
1682 Hash Cond: (b3t2.c1 = b3t1.c1)
1683 -> Seq Scan on t2 b3t2
1684 Filter: (ctid = '(1,1)'::tid)
1687 Merge Cond: (b3t1.c1 = b3t4.c1)
1690 -> Tid Scan on t1 b3t1
1691 TID Cond: (ctid = '(1,1)'::tid)
1694 -> Tid Scan on t4 b3t4
1695 TID Cond: (ctid = '(1,1)'::tid)
1696 -> Tid Scan on t3 b3t3
1697 TID Cond: (ctid = '(1,1)'::tid)
1699 Join Filter: (bmt1.c1 = bmt4.c1)
1701 Hash Cond: (bmt3.c1 = bmt1.c1)
1702 -> Tid Scan on t3 bmt3
1703 TID Cond: (ctid = '(1,1)'::tid)
1706 Merge Cond: (bmt1.c1 = bmt2.c1)
1709 -> Tid Scan on t1 bmt1
1710 TID Cond: (ctid = '(1,1)'::tid)
1711 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1714 -> Seq Scan on t2 bmt2
1715 Filter: (ctid = '(1,1)'::tid)
1716 -> Tid Scan on t4 bmt4
1717 TID Cond: (ctid = '(1,1)'::tid)
1721 EXPLAIN (COSTS false)
1723 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1726 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1728 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1730 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1735 -----------------------------------------------------------------------
1740 Join Filter: (b1t1.c1 = b1t4.c1)
1742 Join Filter: (b1t1.c1 = b1t3.c1)
1744 Join Filter: (b1t1.c1 = b1t2.c1)
1745 -> Tid Scan on t1 b1t1
1746 TID Cond: (ctid = '(1,1)'::tid)
1747 -> Seq Scan on t2 b1t2
1748 Filter: (ctid = '(1,1)'::tid)
1749 -> Tid Scan on t3 b1t3
1750 TID Cond: (ctid = '(1,1)'::tid)
1751 -> Tid Scan on t4 b1t4
1752 TID Cond: (ctid = '(1,1)'::tid)
1756 Join Filter: (b2t1.c1 = b2t4.c1)
1758 Join Filter: (b2t1.c1 = b2t3.c1)
1760 Join Filter: (b2t1.c1 = b2t2.c1)
1761 -> Tid Scan on t1 b2t1
1762 TID Cond: (ctid = '(1,1)'::tid)
1763 -> Seq Scan on t2 b2t2
1764 Filter: (ctid = '(1,1)'::tid)
1765 -> Tid Scan on t3 b2t3
1766 TID Cond: (ctid = '(1,1)'::tid)
1767 -> Tid Scan on t4 b2t4
1768 TID Cond: (ctid = '(1,1)'::tid)
1770 Join Filter: (bmt1.c1 = c2.c1)
1772 Join Filter: (bmt1.c1 = c1.c1)
1774 Join Filter: (bmt1.c1 = bmt4.c1)
1776 Join Filter: (bmt1.c1 = bmt3.c1)
1778 Join Filter: (bmt1.c1 = bmt2.c1)
1779 -> Tid Scan on t1 bmt1
1780 TID Cond: (ctid = '(1,1)'::tid)
1781 -> Seq Scan on t2 bmt2
1782 Filter: (ctid = '(1,1)'::tid)
1783 -> Tid Scan on t3 bmt3
1784 TID Cond: (ctid = '(1,1)'::tid)
1785 -> Tid Scan on t4 bmt4
1786 TID Cond: (ctid = '(1,1)'::tid)
1792 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1793 Leading(b1t2 b1t3 b1t4 b1t1)
1794 Leading(b2t3 b2t4 b2t1 b2t2)
1795 MergeJoin(c2 c1)HashJoin(c2 c1 bmt1)NestLoop(c2 c1 bmt1 bmt2)MergeJoin(c2 c1 bmt1 bmt2 bmt3)HashJoin(c2 c1 bmt1 bmt2 bmt3 bmt4)
1796 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1797 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1799 EXPLAIN (COSTS false)
1801 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1804 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1806 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1808 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1814 MergeJoin(b1t2 b1t3)
1815 MergeJoin(b2t3 b2t4)
1817 HashJoin(b1t2 b1t3 b1t4)
1818 HashJoin(b2t1 b2t3 b2t4)
1819 HashJoin(bmt1 c1 c2)
1820 NestLoop(b1t1 b1t2 b1t3 b1t4)
1821 NestLoop(b2t1 b2t2 b2t3 b2t4)
1822 NestLoop(bmt1 bmt2 c1 c2)
1823 MergeJoin(bmt1 bmt2 bmt3 c1 c2)
1824 HashJoin(bmt1 bmt2 bmt3 bmt4 c1 c2)
1825 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1826 Leading(b1t2 b1t3 b1t4 b1t1)
1827 Leading(b2t3 b2t4 b2t1 b2t2)
1833 -------------------------------------------------------------------------------
1838 Join Filter: (b1t2.c1 = b1t1.c1)
1840 Hash Cond: (b1t4.c1 = b1t2.c1)
1841 -> Tid Scan on t4 b1t4
1842 TID Cond: (ctid = '(1,1)'::tid)
1845 Merge Cond: (b1t2.c1 = b1t3.c1)
1848 -> Seq Scan on t2 b1t2
1849 Filter: (ctid = '(1,1)'::tid)
1852 -> Tid Scan on t3 b1t3
1853 TID Cond: (ctid = '(1,1)'::tid)
1854 -> Tid Scan on t1 b1t1
1855 TID Cond: (ctid = '(1,1)'::tid)
1859 Join Filter: (b2t1.c1 = b2t2.c1)
1861 Hash Cond: (b2t1.c1 = b2t3.c1)
1862 -> Tid Scan on t1 b2t1
1863 TID Cond: (ctid = '(1,1)'::tid)
1866 Merge Cond: (b2t3.c1 = b2t4.c1)
1869 -> Tid Scan on t3 b2t3
1870 TID Cond: (ctid = '(1,1)'::tid)
1873 -> Tid Scan on t4 b2t4
1874 TID Cond: (ctid = '(1,1)'::tid)
1875 -> Seq Scan on t2 b2t2
1876 Filter: (ctid = '(1,1)'::tid)
1878 Hash Cond: (bmt4.c1 = bmt1.c1)
1879 -> Tid Scan on t4 bmt4
1880 TID Cond: (ctid = '(1,1)'::tid)
1883 Merge Cond: (bmt1.c1 = bmt3.c1)
1887 Join Filter: (bmt1.c1 = bmt2.c1)
1889 Hash Cond: (bmt1.c1 = c1.c1)
1890 -> Tid Scan on t1 bmt1
1891 TID Cond: (ctid = '(1,1)'::tid)
1894 Merge Cond: (c1.c1 = c2.c1)
1901 -> Seq Scan on t2 bmt2
1902 Filter: (ctid = '(1,1)'::tid)
1905 -> Tid Scan on t3 bmt3
1906 TID Cond: (ctid = '(1,1)'::tid)
1910 EXPLAIN (COSTS false)
1912 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
1915 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
1918 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)' AND b3t1.c1 = b3t3.c1 AND b3t3.ctid = '(1,1)' AND b3t1.c1 = b3t4.c1 AND b3t4.ctid = '(1,1)'
1920 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1922 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
1928 -----------------------------------------------------------------------------
1933 Join Filter: (b1t1.c1 = b1t4.c1)
1935 Join Filter: (b1t1.c1 = b1t3.c1)
1937 Join Filter: (b1t1.c1 = b1t2.c1)
1938 -> Tid Scan on t1 b1t1
1939 TID Cond: (ctid = '(1,1)'::tid)
1940 -> Seq Scan on t2 b1t2
1941 Filter: (ctid = '(1,1)'::tid)
1942 -> Tid Scan on t3 b1t3
1943 TID Cond: (ctid = '(1,1)'::tid)
1944 -> Tid Scan on t4 b1t4
1945 TID Cond: (ctid = '(1,1)'::tid)
1949 Join Filter: (b2t1.c1 = b2t4.c1)
1951 Join Filter: (b2t1.c1 = b2t3.c1)
1953 Join Filter: (b2t1.c1 = b2t2.c1)
1954 -> Tid Scan on t1 b2t1
1955 TID Cond: (ctid = '(1,1)'::tid)
1956 -> Seq Scan on t2 b2t2
1957 Filter: (ctid = '(1,1)'::tid)
1958 -> Tid Scan on t3 b2t3
1959 TID Cond: (ctid = '(1,1)'::tid)
1960 -> Tid Scan on t4 b2t4
1961 TID Cond: (ctid = '(1,1)'::tid)
1965 Join Filter: (b3t1.c1 = b3t4.c1)
1967 Join Filter: (b3t1.c1 = b3t3.c1)
1969 Join Filter: (b3t1.c1 = b3t2.c1)
1970 -> Tid Scan on t1 b3t1
1971 TID Cond: (ctid = '(1,1)'::tid)
1972 -> Seq Scan on t2 b3t2
1973 Filter: (ctid = '(1,1)'::tid)
1974 -> Tid Scan on t3 b3t3
1975 TID Cond: (ctid = '(1,1)'::tid)
1976 -> Tid Scan on t4 b3t4
1977 TID Cond: (ctid = '(1,1)'::tid)
1979 Join Filter: (bmt1.c1 = c3.c1)
1981 Join Filter: (bmt1.c1 = c2.c1)
1983 Join Filter: (bmt1.c1 = c1.c1)
1985 Join Filter: (bmt1.c1 = bmt4.c1)
1987 Join Filter: (bmt1.c1 = bmt3.c1)
1989 Join Filter: (bmt1.c1 = bmt2.c1)
1990 -> Tid Scan on t1 bmt1
1991 TID Cond: (ctid = '(1,1)'::tid)
1992 -> Seq Scan on t2 bmt2
1993 Filter: (ctid = '(1,1)'::tid)
1994 -> Tid Scan on t3 bmt3
1995 TID Cond: (ctid = '(1,1)'::tid)
1996 -> Tid Scan on t4 bmt4
1997 TID Cond: (ctid = '(1,1)'::tid)
2004 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2005 Leading(b1t2 b1t3 b1t4 b1t1)
2006 Leading(b2t3 b2t4 b2t1 b2t2)
2007 Leading(b3t4 b3t1 b3t2 b3t3)
2008 MergeJoin(c3 c2)HashJoin(c3 c2 c1)NestLoop(c3 c2 c1 bmt1)MergeJoin(c3 c2 c1 bmt1 bmt2)HashJoin(c3 c2 c1 bmt1 bmt2 bmt3)NestLoop(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2009 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
2010 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
2011 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
2013 EXPLAIN (COSTS false)
2015 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
2018 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
2021 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)' AND b3t1.c1 = b3t3.c1 AND b3t3.ctid = '(1,1)' AND b3t1.c1 = b3t4.c1 AND b3t4.ctid = '(1,1)'
2023 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2025 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)'
2032 MergeJoin(b1t2 b1t3)
2033 MergeJoin(b2t3 b2t4)
2034 MergeJoin(b3t1 b3t4)
2036 HashJoin(b1t2 b1t3 b1t4)
2037 HashJoin(b2t1 b2t3 b2t4)
2038 HashJoin(b3t1 b3t2 b3t4)
2040 NestLoop(b1t1 b1t2 b1t3 b1t4)
2041 NestLoop(b2t1 b2t2 b2t3 b2t4)
2042 NestLoop(b3t1 b3t2 b3t3 b3t4)
2043 NestLoop(bmt1 c1 c2 c3)
2044 MergeJoin(bmt1 bmt2 c1 c2 c3)
2045 HashJoin(bmt1 bmt2 bmt3 c1 c2 c3)
2046 NestLoop(bmt1 bmt2 bmt3 bmt4 c1 c2 c3)
2047 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2048 Leading(b1t2 b1t3 b1t4 b1t1)
2049 Leading(b2t3 b2t4 b2t1 b2t2)
2050 Leading(b3t4 b3t1 b3t2 b3t3)
2056 -------------------------------------------------------------------------------
2061 Join Filter: (b1t2.c1 = b1t1.c1)
2063 Hash Cond: (b1t4.c1 = b1t2.c1)
2064 -> Tid Scan on t4 b1t4
2065 TID Cond: (ctid = '(1,1)'::tid)
2068 Merge Cond: (b1t2.c1 = b1t3.c1)
2071 -> Seq Scan on t2 b1t2
2072 Filter: (ctid = '(1,1)'::tid)
2075 -> Tid Scan on t3 b1t3
2076 TID Cond: (ctid = '(1,1)'::tid)
2077 -> Tid Scan on t1 b1t1
2078 TID Cond: (ctid = '(1,1)'::tid)
2082 Join Filter: (b2t1.c1 = b2t2.c1)
2084 Hash Cond: (b2t1.c1 = b2t3.c1)
2085 -> Tid Scan on t1 b2t1
2086 TID Cond: (ctid = '(1,1)'::tid)
2089 Merge Cond: (b2t3.c1 = b2t4.c1)
2092 -> Tid Scan on t3 b2t3
2093 TID Cond: (ctid = '(1,1)'::tid)
2096 -> Tid Scan on t4 b2t4
2097 TID Cond: (ctid = '(1,1)'::tid)
2098 -> Seq Scan on t2 b2t2
2099 Filter: (ctid = '(1,1)'::tid)
2103 Join Filter: (b3t1.c1 = b3t3.c1)
2105 Hash Cond: (b3t2.c1 = b3t1.c1)
2106 -> Seq Scan on t2 b3t2
2107 Filter: (ctid = '(1,1)'::tid)
2110 Merge Cond: (b3t1.c1 = b3t4.c1)
2113 -> Tid Scan on t1 b3t1
2114 TID Cond: (ctid = '(1,1)'::tid)
2117 -> Tid Scan on t4 b3t4
2118 TID Cond: (ctid = '(1,1)'::tid)
2119 -> Tid Scan on t3 b3t3
2120 TID Cond: (ctid = '(1,1)'::tid)
2122 Join Filter: (bmt1.c1 = bmt4.c1)
2124 Hash Cond: (bmt3.c1 = bmt1.c1)
2125 -> Tid Scan on t3 bmt3
2126 TID Cond: (ctid = '(1,1)'::tid)
2129 Merge Cond: (bmt1.c1 = bmt2.c1)
2133 Join Filter: (c1.c1 = bmt1.c1)
2135 Hash Cond: (c2.c1 = c1.c1)
2137 Merge Cond: (c2.c1 = c3.c1)
2146 -> Tid Scan on t1 bmt1
2147 TID Cond: (ctid = '(1,1)'::tid)
2150 -> Seq Scan on t2 bmt2
2151 Filter: (ctid = '(1,1)'::tid)
2152 -> Tid Scan on t4 bmt4
2153 TID Cond: (ctid = '(1,1)'::tid)
2157 ---- No. J-2-2 the number of the tables per quiry block
2160 EXPLAIN (COSTS false)
2162 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2164 SELECT max(bmt1.c1), (
2165 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2167 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2170 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2174 -----------------------------------------------------------------
2178 InitPlan 1 (returns $0)
2180 -> Tid Scan on t1 b1t1
2181 TID Cond: (ctid = '(1,1)'::tid)
2182 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2183 InitPlan 4 (returns $3)
2185 InitPlan 3 (returns $2)
2187 -> Tid Scan on t1 b2t1
2188 TID Cond: (ctid = '(1,1)'::tid)
2189 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2190 InitPlan 6 (returns $5)
2192 InitPlan 5 (returns $4)
2194 -> Tid Scan on t1 b3t1
2195 TID Cond: (ctid = '(1,1)'::tid)
2196 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2198 -> Tid Scan on t1 bmt1
2199 TID Cond: (ctid = '(1,1)'::tid)
2200 Filter: ((c1 <> $5) AND (c1 = 1))
2212 EXPLAIN (COSTS false)
2214 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2216 SELECT max(bmt1.c1), (
2217 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2219 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2222 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2237 -----------------------------------------------------------------
2241 InitPlan 1 (returns $0)
2243 -> Tid Scan on t1 b1t1
2244 TID Cond: (ctid = '(1,1)'::tid)
2245 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2246 InitPlan 4 (returns $3)
2248 InitPlan 3 (returns $2)
2250 -> Tid Scan on t1 b2t1
2251 TID Cond: (ctid = '(1,1)'::tid)
2252 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2253 InitPlan 6 (returns $5)
2255 InitPlan 5 (returns $4)
2257 -> Tid Scan on t1 b3t1
2258 TID Cond: (ctid = '(1,1)'::tid)
2259 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2261 -> Tid Scan on t1 bmt1
2262 TID Cond: (ctid = '(1,1)'::tid)
2263 Filter: ((c1 <> $5) AND (c1 = 1))
2269 EXPLAIN (COSTS false)
2271 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)'
2273 SELECT max(bmt1.c1), (
2274 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)'
2276 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2279 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)'
2283 -------------------------------------------------------
2288 Join Filter: (b1t1.c1 = b1t2.c1)
2289 -> Tid Scan on t1 b1t1
2290 TID Cond: (ctid = '(1,1)'::tid)
2291 -> Seq Scan on t2 b1t2
2292 Filter: (ctid = '(1,1)'::tid)
2293 InitPlan 2 (returns $1)
2296 Join Filter: (b2t1.c1 = b2t2.c1)
2297 -> Tid Scan on t1 b2t1
2298 TID Cond: (ctid = '(1,1)'::tid)
2299 -> Seq Scan on t2 b2t2
2300 Filter: (ctid = '(1,1)'::tid)
2301 InitPlan 3 (returns $2)
2304 Join Filter: (b3t1.c1 = b3t2.c1)
2305 -> Tid Scan on t1 b3t1
2306 TID Cond: (ctid = '(1,1)'::tid)
2307 -> Seq Scan on t2 b3t2
2308 Filter: (ctid = '(1,1)'::tid)
2310 Join Filter: (bmt1.c1 = c1.c1)
2312 Join Filter: (bmt1.c1 = bmt2.c1)
2313 -> Tid Scan on t1 bmt1
2314 TID Cond: (ctid = '(1,1)'::tid)
2316 -> Seq Scan on t2 bmt2
2317 Filter: (ctid = '(1,1)'::tid)
2322 Leading(c1 bmt2 bmt1)
2327 HashJoin(c1 bmt1 bmt2)
2328 MergeJoin(b1t1 b1t2)
2329 MergeJoin(b2t1 b2t2)
2330 MergeJoin(b3t1 b3t2)
2332 EXPLAIN (COSTS false)
2334 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)'
2336 SELECT max(bmt1.c1), (
2337 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)'
2339 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2342 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)'
2347 MergeJoin(b1t1 b1t2)
2348 MergeJoin(b2t1 b2t2)
2349 MergeJoin(b3t1 b3t2)
2351 HashJoin(bmt1 bmt2 c1)
2352 Leading(c1 bmt2 bmt1)
2361 ---------------------------------------------------------------
2366 Merge Cond: (b1t1.c1 = b1t2.c1)
2369 -> Tid Scan on t1 b1t1
2370 TID Cond: (ctid = '(1,1)'::tid)
2373 -> Seq Scan on t2 b1t2
2374 Filter: (ctid = '(1,1)'::tid)
2375 InitPlan 2 (returns $1)
2378 Merge Cond: (b2t1.c1 = b2t2.c1)
2381 -> Tid Scan on t1 b2t1
2382 TID Cond: (ctid = '(1,1)'::tid)
2385 -> Seq Scan on t2 b2t2
2386 Filter: (ctid = '(1,1)'::tid)
2387 InitPlan 3 (returns $2)
2390 Merge Cond: (b3t1.c1 = b3t2.c1)
2393 -> Tid Scan on t1 b3t1
2394 TID Cond: (ctid = '(1,1)'::tid)
2397 -> Seq Scan on t2 b3t2
2398 Filter: (ctid = '(1,1)'::tid)
2400 Hash Cond: (bmt1.c1 = bmt2.c1)
2401 -> Tid Scan on t1 bmt1
2402 TID Cond: (ctid = '(1,1)'::tid)
2406 Merge Cond: (bmt2.c1 = c1.c1)
2409 -> Seq Scan on t2 bmt2
2410 Filter: (ctid = '(1,1)'::tid)
2417 EXPLAIN (COSTS false)
2419 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
2421 SELECT max(bmt1.c1), (
2422 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
2424 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)' AND bmt1.c1 = c1.c1
2426 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)' AND b3t1.c1 = b3t3.c1 AND b3t3.ctid = '(1,1)' AND b3t1.c1 = b3t4.c1 AND b3t4.ctid = '(1,1)'
2430 -------------------------------------------------------------------
2435 Join Filter: (b1t1.c1 = b1t4.c1)
2437 Join Filter: (b1t1.c1 = b1t3.c1)
2439 Join Filter: (b1t1.c1 = b1t2.c1)
2440 -> Tid Scan on t1 b1t1
2441 TID Cond: (ctid = '(1,1)'::tid)
2442 -> Seq Scan on t2 b1t2
2443 Filter: (ctid = '(1,1)'::tid)
2444 -> Tid Scan on t3 b1t3
2445 TID Cond: (ctid = '(1,1)'::tid)
2446 -> Tid Scan on t4 b1t4
2447 TID Cond: (ctid = '(1,1)'::tid)
2448 InitPlan 2 (returns $1)
2451 Join Filter: (b2t1.c1 = b2t4.c1)
2453 Join Filter: (b2t1.c1 = b2t3.c1)
2455 Join Filter: (b2t1.c1 = b2t2.c1)
2456 -> Tid Scan on t1 b2t1
2457 TID Cond: (ctid = '(1,1)'::tid)
2458 -> Seq Scan on t2 b2t2
2459 Filter: (ctid = '(1,1)'::tid)
2460 -> Tid Scan on t3 b2t3
2461 TID Cond: (ctid = '(1,1)'::tid)
2462 -> Tid Scan on t4 b2t4
2463 TID Cond: (ctid = '(1,1)'::tid)
2464 InitPlan 3 (returns $2)
2467 Join Filter: (b3t1.c1 = b3t4.c1)
2469 Join Filter: (b3t1.c1 = b3t3.c1)
2471 Join Filter: (b3t1.c1 = b3t2.c1)
2472 -> Tid Scan on t1 b3t1
2473 TID Cond: (ctid = '(1,1)'::tid)
2474 -> Seq Scan on t2 b3t2
2475 Filter: (ctid = '(1,1)'::tid)
2476 -> Tid Scan on t3 b3t3
2477 TID Cond: (ctid = '(1,1)'::tid)
2478 -> Tid Scan on t4 b3t4
2479 TID Cond: (ctid = '(1,1)'::tid)
2481 Join Filter: (bmt1.c1 = c1.c1)
2483 Join Filter: (bmt1.c1 = bmt2.c1)
2485 Join Filter: (bmt3.c1 = bmt1.c1)
2487 Join Filter: (bmt3.c1 = bmt4.c1)
2488 -> Tid Scan on t3 bmt3
2489 TID Cond: (ctid = '(1,1)'::tid)
2490 -> Tid Scan on t4 bmt4
2491 TID Cond: (ctid = '(1,1)'::tid)
2492 -> Tid Scan on t1 bmt1
2493 TID Cond: (ctid = '(1,1)'::tid)
2495 -> Seq Scan on t2 bmt2
2496 Filter: (ctid = '(1,1)'::tid)
2501 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2502 Leading(b1t4 b1t3 b1t2 b1t1)
2503 Leading(b2t4 b2t3 b2t2 b2t1)
2504 Leading(b3t4 b3t3 b3t2 b3t1)
2506 HashJoin(c1 bmt4 bmt3)
2507 NestLoop(c1 bmt4 bmt3 bmt2)
2508 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2510 NestLoop(b1t4 b1t3 b1t2)
2511 MergeJoin(b1t4 b1t3 b1t2 b1t1)
2513 NestLoop(b2t4 b2t3 b2t2)
2514 MergeJoin(b2t4 b2t3 b2t2 b2t1)
2516 NestLoop(b3t4 b3t3 b3t2)
2517 MergeJoin(b3t4 b3t3 b3t2 b3t1)
2519 EXPLAIN (COSTS false)
2521 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
2523 SELECT max(bmt1.c1), (
2524 SELECT max(b2t1.c1) FROM s1.t1 b2t1, s1.t2 b2t2, s1.t3 b2t3, s1.t4 b2t4 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = b2t2.c1 AND b2t2.ctid = '(1,1)' AND b2t1.c1 = b2t3.c1 AND b2t3.ctid = '(1,1)' AND b2t1.c1 = b2t4.c1 AND b2t4.ctid = '(1,1)'
2526 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)' AND bmt1.c1 = c1.c1
2528 SELECT max(b3t1.c1) FROM s1.t1 b3t1, s1.t2 b3t2, s1.t3 b3t3, s1.t4 b3t4 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = b3t2.c1 AND b3t2.ctid = '(1,1)' AND b3t1.c1 = b3t3.c1 AND b3t3.ctid = '(1,1)' AND b3t1.c1 = b3t4.c1 AND b3t4.ctid = '(1,1)'
2537 NestLoop(b1t2 b1t3 b1t4)
2538 NestLoop(b2t2 b2t3 b2t4)
2539 NestLoop(b3t2 b3t3 b3t4)
2540 HashJoin(bmt3 bmt4 c1)
2541 MergeJoin(b1t1 b1t2 b1t3 b1t4)
2542 MergeJoin(b2t1 b2t2 b2t3 b2t4)
2543 MergeJoin(b3t1 b3t2 b3t3 b3t4)
2544 NestLoop(bmt2 bmt3 bmt4 c1)
2545 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2546 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2547 Leading(b1t4 b1t3 b1t2 b1t1)
2548 Leading(b2t4 b2t3 b2t2 b2t1)
2549 Leading(b3t4 b3t3 b3t2 b3t1)
2555 -----------------------------------------------------------------------------------
2560 Merge Cond: (b1t2.c1 = b1t1.c1)
2564 Join Filter: (b1t3.c1 = b1t2.c1)
2566 Hash Cond: (b1t3.c1 = b1t4.c1)
2567 -> Tid Scan on t3 b1t3
2568 TID Cond: (ctid = '(1,1)'::tid)
2570 -> Tid Scan on t4 b1t4
2571 TID Cond: (ctid = '(1,1)'::tid)
2572 -> Seq Scan on t2 b1t2
2573 Filter: (ctid = '(1,1)'::tid)
2576 -> Tid Scan on t1 b1t1
2577 TID Cond: (ctid = '(1,1)'::tid)
2578 InitPlan 2 (returns $1)
2581 Merge Cond: (b2t2.c1 = b2t1.c1)
2585 Join Filter: (b2t3.c1 = b2t2.c1)
2587 Hash Cond: (b2t3.c1 = b2t4.c1)
2588 -> Tid Scan on t3 b2t3
2589 TID Cond: (ctid = '(1,1)'::tid)
2591 -> Tid Scan on t4 b2t4
2592 TID Cond: (ctid = '(1,1)'::tid)
2593 -> Seq Scan on t2 b2t2
2594 Filter: (ctid = '(1,1)'::tid)
2597 -> Tid Scan on t1 b2t1
2598 TID Cond: (ctid = '(1,1)'::tid)
2599 InitPlan 3 (returns $2)
2602 Merge Cond: (b3t2.c1 = b3t1.c1)
2606 Join Filter: (b3t3.c1 = b3t2.c1)
2608 Hash Cond: (b3t3.c1 = b3t4.c1)
2609 -> Tid Scan on t3 b3t3
2610 TID Cond: (ctid = '(1,1)'::tid)
2612 -> Tid Scan on t4 b3t4
2613 TID Cond: (ctid = '(1,1)'::tid)
2614 -> Seq Scan on t2 b3t2
2615 Filter: (ctid = '(1,1)'::tid)
2618 -> Tid Scan on t1 b3t1
2619 TID Cond: (ctid = '(1,1)'::tid)
2621 Merge Cond: (bmt2.c1 = bmt1.c1)
2625 Join Filter: (bmt3.c1 = bmt2.c1)
2627 Hash Cond: (bmt3.c1 = bmt4.c1)
2628 -> Tid Scan on t3 bmt3
2629 TID Cond: (ctid = '(1,1)'::tid)
2632 Merge Cond: (bmt4.c1 = c1.c1)
2635 -> Tid Scan on t4 bmt4
2636 TID Cond: (ctid = '(1,1)'::tid)
2640 -> Seq Scan on t2 bmt2
2641 Filter: (ctid = '(1,1)'::tid)
2644 -> Tid Scan on t1 bmt1
2645 TID Cond: (ctid = '(1,1)'::tid)
2650 EXPLAIN (COSTS false)
2652 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
2654 SELECT max(bmt1.c1), (
2655 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2657 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)' AND bmt1.c1 = c1.c1
2659 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2663 -------------------------------------------------------------------
2668 Join Filter: (b1t1.c1 = b1t4.c1)
2670 Join Filter: (b1t1.c1 = b1t3.c1)
2672 Join Filter: (b1t1.c1 = b1t2.c1)
2673 -> Tid Scan on t1 b1t1
2674 TID Cond: (ctid = '(1,1)'::tid)
2675 -> Seq Scan on t2 b1t2
2676 Filter: (ctid = '(1,1)'::tid)
2677 -> Tid Scan on t3 b1t3
2678 TID Cond: (ctid = '(1,1)'::tid)
2679 -> Tid Scan on t4 b1t4
2680 TID Cond: (ctid = '(1,1)'::tid)
2681 InitPlan 3 (returns $2)
2683 InitPlan 2 (returns $1)
2685 -> Tid Scan on t1 b2t1
2686 TID Cond: (ctid = '(1,1)'::tid)
2687 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2688 InitPlan 4 (returns $3)
2690 -> Tid Scan on t1 b3t1
2691 TID Cond: (ctid = '(1,1)'::tid)
2693 Join Filter: (bmt1.c1 = c1.c1)
2695 Join Filter: (bmt1.c1 = bmt2.c1)
2697 Join Filter: (bmt3.c1 = bmt1.c1)
2699 Join Filter: (bmt3.c1 = bmt4.c1)
2700 -> Tid Scan on t3 bmt3
2701 TID Cond: (ctid = '(1,1)'::tid)
2702 -> Tid Scan on t4 bmt4
2703 TID Cond: (ctid = '(1,1)'::tid)
2704 -> Tid Scan on t1 bmt1
2705 TID Cond: (ctid = '(1,1)'::tid)
2707 -> Seq Scan on t2 bmt2
2708 Filter: (ctid = '(1,1)'::tid)
2713 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2714 Leading(b1t4 b1t3 b1t2 b1t1)
2716 HashJoin(c1 bmt4 bmt3)
2717 NestLoop(c1 bmt4 bmt3 bmt2)
2718 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2719 MergeJoin(b1t4 b1t3)
2720 HashJoin(b1t4 b1t3 b1t2)
2721 NestLoop(b1t4 b1t3 b1t2 b1t1)
2723 EXPLAIN (COSTS false)
2725 SELECT max(b1t1.c1) FROM s1.t1 b1t1, s1.t2 b1t2, s1.t3 b1t3, s1.t4 b1t4 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = b1t2.c1 AND b1t2.ctid = '(1,1)' AND b1t1.c1 = b1t3.c1 AND b1t3.ctid = '(1,1)' AND b1t1.c1 = b1t4.c1 AND b1t4.ctid = '(1,1)'
2727 SELECT max(bmt1.c1), (
2728 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2730 FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = bmt3.c1 AND bmt3.ctid = '(1,1)' AND bmt1.c1 = bmt4.c1 AND bmt4.ctid = '(1,1)' AND bmt1.c1 = c1.c1
2732 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2737 MergeJoin(b1t3 b1t4)
2739 HashJoin(b1t2 b1t3 b1t4)
2740 HashJoin(bmt3 bmt4 c1)
2741 NestLoop(b1t1 b1t2 b1t3 b1t4)
2742 NestLoop(bmt2 bmt3 bmt4 c1)
2743 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2744 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2745 Leading(b1t4 b1t3 b1t2 b1t1)
2751 -----------------------------------------------------------------------------------
2756 Join Filter: (b1t2.c1 = b1t1.c1)
2758 Hash Cond: (b1t2.c1 = b1t3.c1)
2759 -> Seq Scan on t2 b1t2
2760 Filter: (ctid = '(1,1)'::tid)
2763 Merge Cond: (b1t3.c1 = b1t4.c1)
2766 -> Tid Scan on t3 b1t3
2767 TID Cond: (ctid = '(1,1)'::tid)
2770 -> Tid Scan on t4 b1t4
2771 TID Cond: (ctid = '(1,1)'::tid)
2772 -> Tid Scan on t1 b1t1
2773 TID Cond: (ctid = '(1,1)'::tid)
2774 InitPlan 3 (returns $2)
2776 InitPlan 2 (returns $1)
2778 -> Tid Scan on t1 b2t1
2779 TID Cond: (ctid = '(1,1)'::tid)
2780 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2781 InitPlan 4 (returns $3)
2783 -> Tid Scan on t1 b3t1
2784 TID Cond: (ctid = '(1,1)'::tid)
2786 Merge Cond: (bmt2.c1 = bmt1.c1)
2790 Join Filter: (bmt3.c1 = bmt2.c1)
2792 Hash Cond: (bmt3.c1 = bmt4.c1)
2793 -> Tid Scan on t3 bmt3
2794 TID Cond: (ctid = '(1,1)'::tid)
2797 Merge Cond: (bmt4.c1 = c1.c1)
2800 -> Tid Scan on t4 bmt4
2801 TID Cond: (ctid = '(1,1)'::tid)
2805 -> Seq Scan on t2 bmt2
2806 Filter: (ctid = '(1,1)'::tid)
2809 -> Tid Scan on t1 bmt1
2810 TID Cond: (ctid = '(1,1)'::tid)
2815 ---- No. J-2-3 RULE or VIEW
2818 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2820 -----------------------------------------------------------------
2823 Join Filter: (t1.c1 = t4.c1)
2825 Join Filter: (t1.c1 = t3.c1)
2827 Join Filter: (t2.c1 = t1.c1)
2830 TID Cond: (ctid = '(1,1)'::tid)
2833 Filter: (ctid = '(1,1)'::tid)
2835 TID Cond: (ctid = '(1,1)'::tid)
2837 TID Cond: (ctid = '(1,1)'::tid)
2839 TID Cond: (ctid = '(1,1)'::tid)
2843 Leading(t4 t3 t2 t1 r1)
2844 MergeJoin(t4 t3 t2 t1 r1)
2845 HashJoin(t4 t3 t2 t1)
2849 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2854 HashJoin(t1 t2 t3 t4)
2855 MergeJoin(r1 t1 t2 t3 t4)
2856 Leading(t4 t3 t2 t1 r1)
2862 -----------------------------------------------------------------------------
2866 Hash Cond: (t1.c1 = t2.c1)
2868 TID Cond: (ctid = '(1,1)'::tid)
2871 Join Filter: (t3.c1 = t2.c1)
2873 Merge Cond: (t3.c1 = t4.c1)
2877 TID Cond: (ctid = '(1,1)'::tid)
2881 TID Cond: (ctid = '(1,1)'::tid)
2883 Filter: (ctid = '(1,1)'::tid)
2885 TID Cond: (ctid = '(1,1)'::tid)
2889 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2891 -----------------------------------------------------------------
2894 Join Filter: (b1t1.c1 = b1t4.c1)
2896 Join Filter: (b1t1.c1 = b1t3.c1)
2898 Join Filter: (b1t2.c1 = b1t1.c1)
2901 TID Cond: (ctid = '(1,1)'::tid)
2903 -> Seq Scan on t2 b1t2
2904 Filter: (ctid = '(1,1)'::tid)
2905 -> Tid Scan on t1 b1t1
2906 TID Cond: (ctid = '(1,1)'::tid)
2907 -> Tid Scan on t3 b1t3
2908 TID Cond: (ctid = '(1,1)'::tid)
2909 -> Tid Scan on t4 b1t4
2910 TID Cond: (ctid = '(1,1)'::tid)
2914 Leading(b1t4 b1t3 b1t2 b1t1 r1_)
2915 MergeJoin(b1t4 b1t3 b1t2 b1t1 r1_)
2916 HashJoin(b1t4 b1t3 b1t2 b1t1)
2917 NestLoop(b1t4 b1t3 b1t2)
2918 MergeJoin(b1t4 b1t3)
2920 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2923 MergeJoin(b1t3 b1t4)
2924 NestLoop(b1t2 b1t3 b1t4)
2925 HashJoin(b1t1 b1t2 b1t3 b1t4)
2926 MergeJoin(b1t1 b1t2 b1t3 b1t4 r1_)
2927 Leading(b1t4 b1t3 b1t2 b1t1 r1_)
2933 -----------------------------------------------------------------------------
2937 Hash Cond: (b1t1.c1 = b1t2.c1)
2938 -> Tid Scan on t1 b1t1
2939 TID Cond: (ctid = '(1,1)'::tid)
2942 Join Filter: (b1t3.c1 = b1t2.c1)
2944 Merge Cond: (b1t3.c1 = b1t4.c1)
2947 -> Tid Scan on t3 b1t3
2948 TID Cond: (ctid = '(1,1)'::tid)
2951 -> Tid Scan on t4 b1t4
2952 TID Cond: (ctid = '(1,1)'::tid)
2953 -> Seq Scan on t2 b1t2
2954 Filter: (ctid = '(1,1)'::tid)
2956 TID Cond: (ctid = '(1,1)'::tid)
2961 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2963 -----------------------------------------------------------------
2966 Join Filter: (t1.c1 = t4.c1)
2968 Join Filter: (t1.c1 = t3.c1)
2970 Join Filter: (t2.c1 = t1.c1)
2973 TID Cond: (ctid = '(1,1)'::tid)
2976 Filter: (ctid = '(1,1)'::tid)
2978 TID Cond: (ctid = '(1,1)'::tid)
2980 TID Cond: (ctid = '(1,1)'::tid)
2982 TID Cond: (ctid = '(1,1)'::tid)
2986 Join Filter: (t1.c1 = t4.c1)
2988 Join Filter: (t1.c1 = t3.c1)
2990 Join Filter: (t2.c1 = t1.c1)
2993 TID Cond: (ctid = '(1,1)'::tid)
2996 Filter: (ctid = '(1,1)'::tid)
2998 TID Cond: (ctid = '(1,1)'::tid)
3000 TID Cond: (ctid = '(1,1)'::tid)
3002 TID Cond: (ctid = '(1,1)'::tid)
3006 Leading(t4 t3 t2 t1 r2)
3007 MergeJoin(t4 t3 t2 t1 r2)
3008 HashJoin(t4 t3 t2 t1)
3012 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3017 HashJoin(t1 t2 t3 t4)
3018 MergeJoin(r2 t1 t2 t3 t4)
3019 Leading(t4 t3 t2 t1 r2)
3028 HashJoin(t1 t2 t3 t4)
3029 MergeJoin(r2 t1 t2 t3 t4)
3030 Leading(t4 t3 t2 t1 r2)
3036 -----------------------------------------------------------------------------
3040 Hash Cond: (t1.c1 = t2.c1)
3042 TID Cond: (ctid = '(1,1)'::tid)
3045 Join Filter: (t3.c1 = t2.c1)
3047 Merge Cond: (t3.c1 = t4.c1)
3051 TID Cond: (ctid = '(1,1)'::tid)
3055 TID Cond: (ctid = '(1,1)'::tid)
3057 Filter: (ctid = '(1,1)'::tid)
3059 TID Cond: (ctid = '(1,1)'::tid)
3065 Hash Cond: (t1.c1 = t2.c1)
3067 TID Cond: (ctid = '(1,1)'::tid)
3070 Join Filter: (t3.c1 = t2.c1)
3072 Merge Cond: (t3.c1 = t4.c1)
3076 TID Cond: (ctid = '(1,1)'::tid)
3080 TID Cond: (ctid = '(1,1)'::tid)
3082 Filter: (ctid = '(1,1)'::tid)
3084 TID Cond: (ctid = '(1,1)'::tid)
3088 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3090 -----------------------------------------------------------------
3093 Join Filter: (b1t1.c1 = b1t4.c1)
3095 Join Filter: (b1t1.c1 = b1t3.c1)
3097 Join Filter: (b1t2.c1 = b1t1.c1)
3100 TID Cond: (ctid = '(1,1)'::tid)
3102 -> Seq Scan on t2 b1t2
3103 Filter: (ctid = '(1,1)'::tid)
3104 -> Tid Scan on t1 b1t1
3105 TID Cond: (ctid = '(1,1)'::tid)
3106 -> Tid Scan on t3 b1t3
3107 TID Cond: (ctid = '(1,1)'::tid)
3108 -> Tid Scan on t4 b1t4
3109 TID Cond: (ctid = '(1,1)'::tid)
3113 Join Filter: (b2t1.c1 = b2t4.c1)
3115 Join Filter: (b2t1.c1 = b2t3.c1)
3117 Join Filter: (b2t2.c1 = b2t1.c1)
3120 TID Cond: (ctid = '(1,1)'::tid)
3122 -> Seq Scan on t2 b2t2
3123 Filter: (ctid = '(1,1)'::tid)
3124 -> Tid Scan on t1 b2t1
3125 TID Cond: (ctid = '(1,1)'::tid)
3126 -> Tid Scan on t3 b2t3
3127 TID Cond: (ctid = '(1,1)'::tid)
3128 -> Tid Scan on t4 b2t4
3129 TID Cond: (ctid = '(1,1)'::tid)
3133 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3134 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3135 MergeJoin(b1t1 b1t2)
3136 HashJoin(b1t1 b1t2 b1t3)
3137 NestLoop(b1t1 b1t2 b1t3 b1t4)
3138 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3139 MergeJoin(b2t1 b2t2)
3140 HashJoin(b2t1 b2t2 b2t3)
3141 NestLoop(b2t1 b2t2 b2t3 b2t4)
3142 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3144 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3147 MergeJoin(b1t1 b1t2)
3148 HashJoin(b1t1 b1t2 b1t3)
3149 NestLoop(b1t1 b1t2 b1t3 b1t4)
3150 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3151 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3153 MergeJoin(b2t1 b2t2)
3154 HashJoin(b2t1 b2t2 b2t3)
3155 NestLoop(b2t1 b2t2 b2t3 b2t4)
3156 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3157 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3163 MergeJoin(b2t1 b2t2)
3164 HashJoin(b2t1 b2t2 b2t3)
3165 NestLoop(b2t1 b2t2 b2t3 b2t4)
3166 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3167 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3169 MergeJoin(b1t1 b1t2)
3170 HashJoin(b1t1 b1t2 b1t3)
3171 NestLoop(b1t1 b1t2 b1t3 b1t4)
3172 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3173 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3178 -----------------------------------------------------------------------------
3182 Join Filter: (b1t1.c1 = b1t4.c1)
3184 Hash Cond: (b1t3.c1 = b1t1.c1)
3185 -> Tid Scan on t3 b1t3
3186 TID Cond: (ctid = '(1,1)'::tid)
3189 Merge Cond: (b1t1.c1 = b1t2.c1)
3192 -> Tid Scan on t1 b1t1
3193 TID Cond: (ctid = '(1,1)'::tid)
3196 -> Seq Scan on t2 b1t2
3197 Filter: (ctid = '(1,1)'::tid)
3198 -> Tid Scan on t4 b1t4
3199 TID Cond: (ctid = '(1,1)'::tid)
3201 TID Cond: (ctid = '(1,1)'::tid)
3207 Join Filter: (b2t1.c1 = b2t4.c1)
3209 Hash Cond: (b2t3.c1 = b2t1.c1)
3210 -> Tid Scan on t3 b2t3
3211 TID Cond: (ctid = '(1,1)'::tid)
3214 Merge Cond: (b2t1.c1 = b2t2.c1)
3217 -> Tid Scan on t1 b2t1
3218 TID Cond: (ctid = '(1,1)'::tid)
3221 -> Seq Scan on t2 b2t2
3222 Filter: (ctid = '(1,1)'::tid)
3223 -> Tid Scan on t4 b2t4
3224 TID Cond: (ctid = '(1,1)'::tid)
3226 TID Cond: (ctid = '(1,1)'::tid)
3231 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3233 -----------------------------------------------------------------
3236 Join Filter: (t1.c1 = t4.c1)
3238 Join Filter: (t1.c1 = t3.c1)
3240 Join Filter: (t2.c1 = t1.c1)
3243 TID Cond: (ctid = '(1,1)'::tid)
3246 Filter: (ctid = '(1,1)'::tid)
3248 TID Cond: (ctid = '(1,1)'::tid)
3250 TID Cond: (ctid = '(1,1)'::tid)
3252 TID Cond: (ctid = '(1,1)'::tid)
3256 Join Filter: (t1.c1 = t4.c1)
3258 Join Filter: (t1.c1 = t3.c1)
3260 Join Filter: (t2.c1 = t1.c1)
3263 TID Cond: (ctid = '(1,1)'::tid)
3266 Filter: (ctid = '(1,1)'::tid)
3268 TID Cond: (ctid = '(1,1)'::tid)
3270 TID Cond: (ctid = '(1,1)'::tid)
3272 TID Cond: (ctid = '(1,1)'::tid)
3276 Join Filter: (t1.c1 = t4.c1)
3278 Join Filter: (t1.c1 = t3.c1)
3280 Join Filter: (t2.c1 = t1.c1)
3283 TID Cond: (ctid = '(1,1)'::tid)
3286 Filter: (ctid = '(1,1)'::tid)
3288 TID Cond: (ctid = '(1,1)'::tid)
3290 TID Cond: (ctid = '(1,1)'::tid)
3292 TID Cond: (ctid = '(1,1)'::tid)
3296 Leading(t4 t3 t2 t1 r3)
3297 MergeJoin(t4 t3 t2 t1 r3)
3298 HashJoin(t4 t3 t2 t1)
3302 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3307 HashJoin(t1 t2 t3 t4)
3308 MergeJoin(r3 t1 t2 t3 t4)
3309 Leading(t4 t3 t2 t1 r3)
3318 HashJoin(t1 t2 t3 t4)
3319 MergeJoin(r3 t1 t2 t3 t4)
3320 Leading(t4 t3 t2 t1 r3)
3329 HashJoin(t1 t2 t3 t4)
3330 MergeJoin(r3 t1 t2 t3 t4)
3331 Leading(t4 t3 t2 t1 r3)
3337 -----------------------------------------------------------------------------
3341 Hash Cond: (t1.c1 = t2.c1)
3343 TID Cond: (ctid = '(1,1)'::tid)
3346 Join Filter: (t3.c1 = t2.c1)
3348 Merge Cond: (t3.c1 = t4.c1)
3352 TID Cond: (ctid = '(1,1)'::tid)
3356 TID Cond: (ctid = '(1,1)'::tid)
3358 Filter: (ctid = '(1,1)'::tid)
3360 TID Cond: (ctid = '(1,1)'::tid)
3366 Hash Cond: (t1.c1 = t2.c1)
3368 TID Cond: (ctid = '(1,1)'::tid)
3371 Join Filter: (t3.c1 = t2.c1)
3373 Merge Cond: (t3.c1 = t4.c1)
3377 TID Cond: (ctid = '(1,1)'::tid)
3381 TID Cond: (ctid = '(1,1)'::tid)
3383 Filter: (ctid = '(1,1)'::tid)
3385 TID Cond: (ctid = '(1,1)'::tid)
3391 Hash Cond: (t1.c1 = t2.c1)
3393 TID Cond: (ctid = '(1,1)'::tid)
3396 Join Filter: (t3.c1 = t2.c1)
3398 Merge Cond: (t3.c1 = t4.c1)
3402 TID Cond: (ctid = '(1,1)'::tid)
3406 TID Cond: (ctid = '(1,1)'::tid)
3408 Filter: (ctid = '(1,1)'::tid)
3410 TID Cond: (ctid = '(1,1)'::tid)
3414 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3416 -----------------------------------------------------------------
3419 Join Filter: (b1t1.c1 = b1t4.c1)
3421 Join Filter: (b1t1.c1 = b1t3.c1)
3423 Join Filter: (b1t2.c1 = b1t1.c1)
3426 TID Cond: (ctid = '(1,1)'::tid)
3428 -> Seq Scan on t2 b1t2
3429 Filter: (ctid = '(1,1)'::tid)
3430 -> Tid Scan on t1 b1t1
3431 TID Cond: (ctid = '(1,1)'::tid)
3432 -> Tid Scan on t3 b1t3
3433 TID Cond: (ctid = '(1,1)'::tid)
3434 -> Tid Scan on t4 b1t4
3435 TID Cond: (ctid = '(1,1)'::tid)
3439 Join Filter: (b2t1.c1 = b2t4.c1)
3441 Join Filter: (b2t1.c1 = b2t3.c1)
3443 Join Filter: (b2t2.c1 = b2t1.c1)
3446 TID Cond: (ctid = '(1,1)'::tid)
3448 -> Seq Scan on t2 b2t2
3449 Filter: (ctid = '(1,1)'::tid)
3450 -> Tid Scan on t1 b2t1
3451 TID Cond: (ctid = '(1,1)'::tid)
3452 -> Tid Scan on t3 b2t3
3453 TID Cond: (ctid = '(1,1)'::tid)
3454 -> Tid Scan on t4 b2t4
3455 TID Cond: (ctid = '(1,1)'::tid)
3459 Join Filter: (b3t1.c1 = b3t4.c1)
3461 Join Filter: (b3t1.c1 = b3t3.c1)
3463 Join Filter: (b3t2.c1 = b3t1.c1)
3466 TID Cond: (ctid = '(1,1)'::tid)
3468 -> Seq Scan on t2 b3t2
3469 Filter: (ctid = '(1,1)'::tid)
3470 -> Tid Scan on t1 b3t1
3471 TID Cond: (ctid = '(1,1)'::tid)
3472 -> Tid Scan on t3 b3t3
3473 TID Cond: (ctid = '(1,1)'::tid)
3474 -> Tid Scan on t4 b3t4
3475 TID Cond: (ctid = '(1,1)'::tid)
3479 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3480 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3481 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3482 MergeJoin(b1t1 b1t2)
3483 HashJoin(b1t1 b1t2 b1t3)
3484 NestLoop(b1t1 b1t2 b1t3 b1t4)
3485 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3486 MergeJoin(b2t1 b2t2)
3487 HashJoin(b2t1 b2t2 b2t3)
3488 NestLoop(b2t1 b2t2 b2t3 b2t4)
3489 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3490 MergeJoin(b3t1 b3t2)
3491 HashJoin(b3t1 b3t2 b3t3)
3492 NestLoop(b3t1 b3t2 b3t3 b3t4)
3493 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3495 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3498 MergeJoin(b1t1 b1t2)
3499 HashJoin(b1t1 b1t2 b1t3)
3500 NestLoop(b1t1 b1t2 b1t3 b1t4)
3501 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3502 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3504 MergeJoin(b2t1 b2t2)
3505 MergeJoin(b3t1 b3t2)
3506 HashJoin(b2t1 b2t2 b2t3)
3507 HashJoin(b3t1 b3t2 b3t3)
3508 NestLoop(b2t1 b2t2 b2t3 b2t4)
3509 NestLoop(b3t1 b3t2 b3t3 b3t4)
3510 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3511 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3512 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3513 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3519 MergeJoin(b2t1 b2t2)
3520 HashJoin(b2t1 b2t2 b2t3)
3521 NestLoop(b2t1 b2t2 b2t3 b2t4)
3522 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3523 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3525 MergeJoin(b1t1 b1t2)
3526 MergeJoin(b3t1 b3t2)
3527 HashJoin(b1t1 b1t2 b1t3)
3528 HashJoin(b3t1 b3t2 b3t3)
3529 NestLoop(b1t1 b1t2 b1t3 b1t4)
3530 NestLoop(b3t1 b3t2 b3t3 b3t4)
3531 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3532 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3533 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3534 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3540 MergeJoin(b3t1 b3t2)
3541 HashJoin(b3t1 b3t2 b3t3)
3542 NestLoop(b3t1 b3t2 b3t3 b3t4)
3543 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3544 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3546 MergeJoin(b1t1 b1t2)
3547 MergeJoin(b2t1 b2t2)
3548 HashJoin(b1t1 b1t2 b1t3)
3549 HashJoin(b2t1 b2t2 b2t3)
3550 NestLoop(b1t1 b1t2 b1t3 b1t4)
3551 NestLoop(b2t1 b2t2 b2t3 b2t4)
3552 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3553 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3554 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3555 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3560 -----------------------------------------------------------------------------
3564 Join Filter: (b1t1.c1 = b1t4.c1)
3566 Hash Cond: (b1t3.c1 = b1t1.c1)
3567 -> Tid Scan on t3 b1t3
3568 TID Cond: (ctid = '(1,1)'::tid)
3571 Merge Cond: (b1t1.c1 = b1t2.c1)
3574 -> Tid Scan on t1 b1t1
3575 TID Cond: (ctid = '(1,1)'::tid)
3578 -> Seq Scan on t2 b1t2
3579 Filter: (ctid = '(1,1)'::tid)
3580 -> Tid Scan on t4 b1t4
3581 TID Cond: (ctid = '(1,1)'::tid)
3583 TID Cond: (ctid = '(1,1)'::tid)
3589 Join Filter: (b2t1.c1 = b2t4.c1)
3591 Hash Cond: (b2t3.c1 = b2t1.c1)
3592 -> Tid Scan on t3 b2t3
3593 TID Cond: (ctid = '(1,1)'::tid)
3596 Merge Cond: (b2t1.c1 = b2t2.c1)
3599 -> Tid Scan on t1 b2t1
3600 TID Cond: (ctid = '(1,1)'::tid)
3603 -> Seq Scan on t2 b2t2
3604 Filter: (ctid = '(1,1)'::tid)
3605 -> Tid Scan on t4 b2t4
3606 TID Cond: (ctid = '(1,1)'::tid)
3608 TID Cond: (ctid = '(1,1)'::tid)
3614 Join Filter: (b3t1.c1 = b3t4.c1)
3616 Hash Cond: (b3t3.c1 = b3t1.c1)
3617 -> Tid Scan on t3 b3t3
3618 TID Cond: (ctid = '(1,1)'::tid)
3621 Merge Cond: (b3t1.c1 = b3t2.c1)
3624 -> Tid Scan on t1 b3t1
3625 TID Cond: (ctid = '(1,1)'::tid)
3628 -> Seq Scan on t2 b3t2
3629 Filter: (ctid = '(1,1)'::tid)
3630 -> Tid Scan on t4 b3t4
3631 TID Cond: (ctid = '(1,1)'::tid)
3633 TID Cond: (ctid = '(1,1)'::tid)
3638 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3640 ----------------------------------
3642 Hash Cond: (v1t1.c1 = v1t1.c1)
3643 -> Seq Scan on t1 v1t1
3645 -> Seq Scan on t1 v1t1
3648 /*+HashJoin(v1t1 v1t1)*/
3649 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3650 INFO: hint syntax error at or near "HashJoin(v1t1 v1t1)"
3651 DETAIL: Relation name "v1t1" is ambiguous.
3660 ----------------------------------
3662 Hash Cond: (v1t1.c1 = v1t1.c1)
3663 -> Seq Scan on t1 v1t1
3665 -> Seq Scan on t1 v1t1
3669 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3671 -----------------------------------
3673 Hash Cond: (v1t1.c1 = v1t1_.c1)
3674 -> Seq Scan on t1 v1t1
3676 -> Seq Scan on t1 v1t1_
3679 /*+NestLoop(v1t1 v1t1_)*/
3680 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3683 NestLoop(v1t1 v1t1_)
3689 ------------------------------------------
3691 -> Seq Scan on t1 v1t1
3692 -> Index Scan using t1_i1 on t1 v1t1_
3693 Index Cond: (c1 = v1t1.c1)
3697 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3699 ----------------------------------
3701 Hash Cond: (r4t1.c1 = r4t1.c1)
3702 -> Seq Scan on t1 r4t1
3704 -> Seq Scan on t1 r4t1
3707 /*+HashJoin(r4t1 r4t1)*/
3708 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3709 INFO: hint syntax error at or near "HashJoin(r4t1 r4t1)"
3710 DETAIL: Relation name "r4t1" is ambiguous.
3719 ----------------------------------
3721 Hash Cond: (r4t1.c1 = r4t1.c1)
3722 -> Seq Scan on t1 r4t1
3724 -> Seq Scan on t1 r4t1
3728 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3730 ----------------------------------
3732 Hash Cond: (r4t1.c1 = r5t1.c1)
3733 -> Seq Scan on t1 r4t1
3735 -> Seq Scan on t1 r5t1
3738 /*+NestLoop(r4t1 r5t1)*/
3739 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3748 -----------------------------------------
3750 -> Seq Scan on t1 r4t1
3751 -> Index Scan using t1_i1 on t1 r5t1
3752 Index Cond: (c1 = r4t1.c1)
3756 ---- No. J-2-4 VALUES clause
3759 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3761 -------------------------------------------------------
3763 Merge Cond: (t1.c1 = t2.c1)
3764 -> Index Scan using t1_i1 on t1
3768 Hash Cond: (t2.c1 = "*VALUES*".column1)
3771 -> Values Scan on "*VALUES*"
3774 /*+ Leading(t3 t1 t2) HashJoin(t3 t1)NestLoop(t3 t1 t2)*/
3775 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3786 -------------------------------------------------------
3788 Merge Cond: (t1.c1 = t2.c1)
3789 -> Index Scan using t1_i1 on t1
3793 Hash Cond: (t2.c1 = "*VALUES*".column1)
3796 -> Values Scan on "*VALUES*"
3799 /*+ Leading(*VALUES* t1 t2) HashJoin(*VALUES* t1)NestLoop(*VALUES* t1 t2)*/
3800 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3803 HashJoin(*VALUES* t1)
3804 NestLoop(*VALUES* t1 t2)
3805 Leading(*VALUES* t1 t2)
3811 -------------------------------------------------
3813 Join Filter: (t1.c1 = t2.c1)
3815 Hash Cond: (t1.c1 = "*VALUES*".column1)
3818 -> Values Scan on "*VALUES*"
3823 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
3825 -------------------------------------------------------------
3827 Join Filter: (t1.c1 = "*VALUES*".column1)
3829 Merge Cond: (t1.c1 = t2.c1)
3830 -> Index Scan using t1_i1 on t1
3834 Hash Cond: (t2.c1 = "*VALUES*".column1)
3837 -> Values Scan on "*VALUES*"
3838 -> Values Scan on "*VALUES*"
3841 /*+ Leading(t4 t3 t2 t1) NestLoop(t4 t3)HashJoin(t4 t3 t2)MergeJoin(t4 t3 t2 t1)*/
3842 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
3848 MergeJoin(t1 t2 t3 t4)
3849 Leading(t4 t3 t2 t1)
3854 -------------------------------------------------------------
3856 Join Filter: (t1.c1 = "*VALUES*".column1)
3858 Merge Cond: (t1.c1 = t2.c1)
3859 -> Index Scan using t1_i1 on t1
3863 Hash Cond: (t2.c1 = "*VALUES*".column1)
3866 -> Values Scan on "*VALUES*"
3867 -> Values Scan on "*VALUES*"
3870 /*+ Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)*/
3871 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4), (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t4 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1 AND t1.c1 = t4.c1;
3872 INFO: hint syntax error at or near "HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)"
3873 DETAIL: Relation name "*VALUES*" is ambiguous.
3874 INFO: hint syntax error at or near "MergeJoin(*VALUES* t3 t2 t1)"
3875 DETAIL: Relation name "*VALUES*" is ambiguous.
3876 INFO: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)"
3877 DETAIL: Relation name "*VALUES*" is ambiguous.
3884 HashJoin(*VALUES* t2 t3)
3885 MergeJoin(*VALUES* t1 t2 t3)
3886 Leading(*VALUES* t3 t2 t1)
3889 -------------------------------------------------------------
3891 Join Filter: (t1.c1 = "*VALUES*".column1)
3893 Merge Cond: (t1.c1 = t2.c1)
3894 -> Index Scan using t1_i1 on t1
3898 Hash Cond: (t2.c1 = "*VALUES*".column1)
3901 -> Values Scan on "*VALUES*"
3902 -> Values Scan on "*VALUES*"
3906 ---- No. J-3-1 join method hint
3909 SET enable_nestloop TO on;
3910 SET enable_mergejoin TO off;
3911 SET enable_hashjoin TO off;
3912 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3914 ------------------------------------
3917 -> Index Scan using t1_i1 on t1
3918 Index Cond: (c1 = t2.c1)
3921 /*+NestLoop(t1 t2)*/
3922 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3931 ------------------------------------
3934 -> Index Scan using t1_i1 on t1
3935 Index Cond: (c1 = t2.c1)
3938 /*+HashJoin(t1 t2)*/
3939 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3948 ------------------------------
3950 Hash Cond: (t1.c1 = t2.c1)
3956 /*+MergeJoin(t1 t2)*/
3957 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3966 ------------------------------------
3968 Merge Cond: (t1.c1 = t2.c1)
3969 -> Index Scan using t1_i1 on t1
3975 SET enable_mergejoin TO on;
3976 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';;
3978 -----------------------------------------
3980 Join Filter: (t1.c1 = t2.c1)
3982 TID Cond: (ctid = '(1,1)'::tid)
3986 /*+NoNestLoop(t1 t2)*/
3987 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';;
3996 -----------------------------------------------
3998 Merge Cond: (t1.c1 = t2.c1)
4002 TID Cond: (ctid = '(1,1)'::tid)
4008 SET enable_mergejoin TO off;
4009 /*+NoHashJoin(t1 t2)*/
4010 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4019 ------------------------------------
4022 -> Index Scan using t1_i1 on t1
4023 Index Cond: (c1 = t2.c1)
4026 /*+NoMergeJoin(t1 t2)*/
4027 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4036 ------------------------------------
4039 -> Index Scan using t1_i1 on t1
4040 Index Cond: (c1 = t2.c1)
4044 SET enable_nestloop TO off;
4045 SET enable_mergejoin TO off;
4046 SET enable_hashjoin TO on;
4047 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4049 ------------------------------
4051 Hash Cond: (t1.c1 = t2.c1)
4057 /*+NestLoop(t1 t2)*/
4058 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4067 ------------------------------------
4070 -> Index Scan using t1_i1 on t1
4071 Index Cond: (c1 = t2.c1)
4074 /*+HashJoin(t1 t2)*/
4075 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4084 ------------------------------
4086 Hash Cond: (t1.c1 = t2.c1)
4092 /*+MergeJoin(t1 t2)*/
4093 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4102 ------------------------------------
4104 Merge Cond: (t1.c1 = t2.c1)
4105 -> Index Scan using t1_i1 on t1
4111 /*+NoNestLoop(t1 t2)*/
4112 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4121 ------------------------------
4123 Hash Cond: (t1.c1 = t2.c1)
4129 /*+NoHashJoin(t1 t2)*/
4130 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4139 ------------------------------------
4142 -> Index Scan using t1_i1 on t1
4143 Index Cond: (c1 = t2.c1)
4146 /*+NoMergeJoin(t1 t2)*/
4147 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4156 ------------------------------
4158 Hash Cond: (t1.c1 = t2.c1)
4165 SET enable_nestloop TO off;
4166 SET enable_mergejoin TO on;
4167 SET enable_hashjoin TO off;
4168 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4170 ------------------------------------
4172 Merge Cond: (t1.c1 = t2.c1)
4173 -> Index Scan using t1_i1 on t1
4179 /*+NestLoop(t1 t2)*/
4180 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4189 ------------------------------------
4192 -> Index Scan using t1_i1 on t1
4193 Index Cond: (c1 = t2.c1)
4196 /*+HashJoin(t1 t2)*/
4197 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4206 ------------------------------
4208 Hash Cond: (t1.c1 = t2.c1)
4214 /*+MergeJoin(t1 t2)*/
4215 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4224 ------------------------------------
4226 Merge Cond: (t1.c1 = t2.c1)
4227 -> Index Scan using t1_i1 on t1
4233 /*+NoNestLoop(t1 t2)*/
4234 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4243 ------------------------------------
4245 Merge Cond: (t1.c1 = t2.c1)
4246 -> Index Scan using t1_i1 on t1
4252 /*+NoHashJoin(t1 t2)*/
4253 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4262 ------------------------------------
4264 Merge Cond: (t1.c1 = t2.c1)
4265 -> Index Scan using t1_i1 on t1
4271 /*+NoMergeJoin(t1 t2)*/
4272 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4281 ------------------------------------
4284 -> Index Scan using t1_i1 on t1
4285 Index Cond: (c1 = t2.c1)
4288 SET enable_nestloop TO on;
4289 SET enable_mergejoin TO on;
4290 SET enable_hashjoin TO on;
4292 ---- No. J-3-2 join inherit tables
4294 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4296 ---------------------------------------
4298 Hash Cond: (s1.p2.c1 = s1.p1.c1)
4301 -> Seq Scan on p2c1 p2
4302 -> Seq Scan on p2c2 p2
4303 -> Seq Scan on p2c3 p2
4304 -> Seq Scan on p2c1c1 p2
4305 -> Seq Scan on p2c1c2 p2
4306 -> Seq Scan on p2c2c1 p2
4307 -> Seq Scan on p2c2c2 p2
4308 -> Seq Scan on p2c3c1 p2
4309 -> Seq Scan on p2c3c2 p2
4313 -> Seq Scan on p1c1 p1
4314 -> Seq Scan on p1c2 p1
4315 -> Seq Scan on p1c3 p1
4319 /*+MergeJoin(p1 p2)*/
4320 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4329 -----------------------------------------
4331 Merge Cond: (s1.p1.c1 = s1.p2.c1)
4336 -> Seq Scan on p1c1 p1
4337 -> Seq Scan on p1c2 p1
4338 -> Seq Scan on p1c3 p1
4343 -> Seq Scan on p2c1 p2
4344 -> Seq Scan on p2c2 p2
4345 -> Seq Scan on p2c3 p2
4346 -> Seq Scan on p2c1c1 p2
4347 -> Seq Scan on p2c1c2 p2
4348 -> Seq Scan on p2c2c1 p2
4349 -> Seq Scan on p2c2c2 p2
4350 -> Seq Scan on p2c3c1 p2
4351 -> Seq Scan on p2c3c2 p2
4355 /*+MergeJoin(p1c1 p2c1)*/
4356 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4360 MergeJoin(p1c1 p2c1)
4365 ---------------------------------------
4367 Hash Cond: (s1.p2.c1 = s1.p1.c1)
4370 -> Seq Scan on p2c1 p2
4371 -> Seq Scan on p2c2 p2
4372 -> Seq Scan on p2c3 p2
4373 -> Seq Scan on p2c1c1 p2
4374 -> Seq Scan on p2c1c2 p2
4375 -> Seq Scan on p2c2c1 p2
4376 -> Seq Scan on p2c2c2 p2
4377 -> Seq Scan on p2c3c1 p2
4378 -> Seq Scan on p2c3c2 p2
4382 -> Seq Scan on p1c1 p1
4383 -> Seq Scan on p1c2 p1
4384 -> Seq Scan on p1c3 p1
4388 ---- No. J-3-3 conflict join method hint
4390 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4392 ------------------------------------
4394 Merge Cond: (t1.c1 = t2.c1)
4395 -> Index Scan using t1_i1 on t1
4402 /*+HashJoin(t1 t2)NestLoop(t1 t2)*/
4403 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4404 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t1 t2)"
4405 DETAIL: Conflict join method hint.
4415 ------------------------------------
4418 -> Index Scan using t1_i1 on t1
4419 Index Cond: (c1 = t2.c1)
4423 /*+MergeJoin(t1 t2)HashJoin(t1 t2)NestLoop(t1 t2)*/
4424 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4425 INFO: hint syntax error at or near "MergeJoin(t1 t2)HashJoin(t1 t2)NestLoop(t1 t2)"
4426 DETAIL: Conflict join method hint.
4427 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t1 t2)"
4428 DETAIL: Conflict join method hint.
4439 ------------------------------------
4442 -> Index Scan using t1_i1 on t1
4443 Index Cond: (c1 = t2.c1)
4447 /*+HashJoin(t1 t2)NestLoop(t2 t1)*/
4448 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4449 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)"
4450 DETAIL: Conflict join method hint.
4460 ------------------------------------
4463 -> Index Scan using t1_i1 on t1
4464 Index Cond: (c1 = t2.c1)
4468 /*+MergeJoin(t2 t1)HashJoin(t1 t2)NestLoop(t2 t1)*/
4469 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4470 INFO: hint syntax error at or near "MergeJoin(t2 t1)HashJoin(t1 t2)NestLoop(t2 t1)"
4471 DETAIL: Conflict join method hint.
4472 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)"
4473 DETAIL: Conflict join method hint.
4484 ------------------------------------
4487 -> Index Scan using t1_i1 on t1
4488 Index Cond: (c1 = t2.c1)
4492 ---- No. J-3-4 hint state output
4495 /*+NestLoop(t1 t2)*/
4496 SELECT * FROM s1.t1, s1.t2 WHERE false;
4504 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4505 ----+----+----+----+----+----+----+----
4509 /*+HashJoin(t1 t2)*/
4510 SELECT * FROM s1.t1, s1.t2 WHERE false;
4518 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4519 ----+----+----+----+----+----+----+----
4523 /*+MergeJoin(t1 t2)*/
4524 SELECT * FROM s1.t1, s1.t2 WHERE false;
4532 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4533 ----+----+----+----+----+----+----+----
4537 /*+NoNestLoop(t1 t2)*/
4538 SELECT * FROM s1.t1, s1.t2 WHERE false;
4546 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4547 ----+----+----+----+----+----+----+----
4551 /*+NoHashJoin(t1 t2)*/
4552 SELECT * FROM s1.t1, s1.t2 WHERE false;
4560 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4561 ----+----+----+----+----+----+----+----
4565 /*+NoMergeJoin(t1 t2)*/
4566 SELECT * FROM s1.t1, s1.t2 WHERE false;
4574 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4575 ----+----+----+----+----+----+----+----
4580 SELECT * FROM s1.t1 WHERE false;
4581 INFO: hint syntax error at or near ""
4582 DETAIL: NestLoop hint requires at least two relations.
4596 SELECT * FROM s1.t1 WHERE false;
4597 INFO: hint syntax error at or near ""
4598 DETAIL: NestLoop hint requires at least two relations.
4611 /*+NestLoop(t1 t2)*/
4612 SELECT * FROM s1.t1, s1.t2 WHERE false;
4620 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4621 ----+----+----+----+----+----+----+----
4625 /*+NestLoop(t1 t2 t3)*/
4626 SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE false;
4634 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4635 ----+----+----+----+----+----+----+----+----+----+----+----
4639 ---- No. J-3-5 not used hint
4642 EXPLAIN (COSTS false) SELECT * FROM s1.t1 FULL OUTER JOIN s1.t2 ON (t1.c1 = t2.c1);
4644 ------------------------------
4646 Hash Cond: (t1.c1 = t2.c1)
4652 /*+NestLoop(t1 t2)*/
4653 EXPLAIN (COSTS true) SELECT * FROM s1.t1 FULL OUTER JOIN s1.t2 ON (t1.c1 = t2.c1);
4662 --------------------------------------------------------------------------
4663 Hash Full Join (cost=10000000003.25..10000000024.00 rows=1000 width=29)
4664 Hash Cond: (t1.c1 = t2.c1)
4665 -> Seq Scan on t1 (cost=0.00..16.00 rows=1000 width=15)
4666 -> Hash (cost=2.00..2.00 rows=100 width=14)
4667 -> Seq Scan on t2 (cost=0.00..2.00 rows=100 width=14)