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 Only 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 Only 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 ------------------------------------------------
500 -> Seq Scan on p1c1 t1
501 -> Seq Scan on p1c2 t1
502 -> Seq Scan on p1c3 t1
506 -> Index Scan using p1c1_i on p1c1 t2
507 Index Cond: (c1 = t1.c1)
508 -> Index Scan using p1c2_i on p1c2 t2
509 Index Cond: (c1 = t1.c1)
510 -> Index Scan using p1c3_i on p1c3 t2
511 Index Cond: (c1 = t1.c1)
515 EXPLAIN (COSTS false) SELECT * FROM s1.ul1 t1, s1.ul1 t2 WHERE t1.c1 = t2.c1;
517 --------------------------------
519 Hash Cond: (t1.c1 = t2.c1)
520 -> Seq Scan on ul1 t1
522 -> Seq Scan on ul1 t2
526 EXPLAIN (COSTS false) SELECT * FROM s1.ul1 t1, s1.ul1 t2 WHERE t1.c1 = t2.c1;
535 -------------------------------------------
537 -> Seq Scan on ul1 t1
538 -> Index Scan using ul1_pkey on ul1 t2
539 Index Cond: (c1 = t1.c1)
543 CREATE TEMP TABLE tm1 (LIKE s1.t1 INCLUDING ALL);
544 NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "tm1_pkey" for table "tm1"
545 EXPLAIN (COSTS false) SELECT * FROM tm1 t1, tm1 t2 WHERE t1.c1 = t2.c1;
547 --------------------------------
549 Hash Cond: (t1.c1 = t2.c1)
550 -> Seq Scan on tm1 t1
552 -> Seq Scan on tm1 t2
556 EXPLAIN (COSTS false) SELECT * FROM tm1 t1, tm1 t2 WHERE t1.c1 = t2.c1;
565 -------------------------------------------
567 -> Seq Scan on tm1 t1
568 -> Index Scan using tm1_pkey on tm1 t2
569 Index Cond: (c1 = t1.c1)
573 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class t1, pg_catalog.pg_class t2 WHERE t1.oid = t2.oid;
575 -------------------------------------
577 Hash Cond: (t1.oid = t2.oid)
578 -> Seq Scan on pg_class t1
580 -> Seq Scan on pg_class t2
584 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class t1, pg_catalog.pg_class t2 WHERE t1.oid = t2.oid;
593 ----------------------------------------------------------
595 -> Seq Scan on pg_class t1
596 -> Index Scan using pg_class_oid_index on pg_class t2
597 Index Cond: (oid = t1.oid)
603 EXPLAIN (COSTS false) SELECT * FROM s1.f1() t1, s1.f1() t2 WHERE t1.c1 = t2.c1;
605 --------------------------------
607 Join Filter: (t1.c1 = t2.c1)
608 -> Function Scan on f1 t1
609 -> Function Scan on f1 t2
613 EXPLAIN (COSTS false) SELECT * FROM s1.f1() t1, s1.f1() t2 WHERE t1.c1 = t2.c1;
622 ------------------------------------
624 Hash Cond: (t1.c1 = t2.c1)
625 -> Function Scan on f1 t1
627 -> Function Scan on f1 t2
631 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;
633 -------------------------------------------
635 Hash Cond: (t2.c1 = "*VALUES*".column1)
638 -> Values Scan on "*VALUES*"
642 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;
651 -------------------------------------------
653 Hash Cond: (t2.c1 = "*VALUES*".column1)
656 -> Values Scan on "*VALUES*"
659 /*+NestLoop(*VALUES* t2)*/
660 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;
663 NestLoop(*VALUES* t2)
669 ---------------------------------------------
671 Join Filter: ("*VALUES*".column1 = t2.c1)
674 -> Values Scan on "*VALUES*"
678 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;
680 -------------------------------------------------------
685 Merge Cond: (s1.t1.c1 = t2.c1)
686 -> Index Only Scan using t1_i1 on t1
691 -> Index Scan using t1_i1 on t1
692 Index Cond: (c1 = c1.c1)
695 /*+NestLoop(t1 t2)HashJoin(t1 c1)*/
696 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;
706 -------------------------------------------------------
708 Hash Cond: (s1.t1.c1 = c1.c1)
713 -> Index Only Scan using t1_i1 on t1
714 Index Cond: (c1 = t2.c1)
721 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
723 ----------------------------------
725 Hash Cond: (v1t1.c1 = v1t1.c1)
726 -> Seq Scan on t1 v1t1
728 -> Seq Scan on t1 v1t1
732 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
741 ----------------------------------
743 Hash Cond: (v1t1.c1 = v1t1.c1)
744 -> Seq Scan on t1 v1t1
746 -> Seq Scan on t1 v1t1
749 /*+NestLoop(v1t1 v1t1_)*/
750 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1_ t2 WHERE t1.c1 = t2.c1;
759 ------------------------------------------
761 -> Seq Scan on t1 v1t1
762 -> Index Scan using t1_i1 on t1 v1t1_
763 Index Cond: (c1 = v1t1.c1)
767 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);
769 -----------------------------------------------------------
771 InitPlan 1 (returns $0)
774 Merge Cond: (st1.c1 = st2.c1)
775 -> Index Only Scan using t1_i1 on t1 st1
778 -> Seq Scan on t2 st2
779 -> Index Scan using t1_i1 on t1
780 Index Cond: (c1 = $0)
785 /*+MergeJoin(t1 t2)NestLoop(st1 st2)*/
786 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);
796 ---------------------------------------------------------------------------------------------
797 Nested Loop (cost=10000000074.46..10000000084.99 rows=1 width=29)
798 InitPlan 1 (returns $1)
799 -> Aggregate (cost=74.45..74.46 rows=1 width=4)
800 -> Nested Loop (cost=0.00..74.20 rows=100 width=4)
801 -> Seq Scan on t2 st2 (cost=0.00..2.00 rows=100 width=4)
802 -> Index Only Scan using t1_i1 on t1 st1 (cost=0.00..0.71 rows=1 width=4)
803 Index Cond: (c1 = st2.c1)
804 -> Index Scan using t1_i1 on t1 (cost=0.00..8.27 rows=1 width=15)
805 Index Cond: (c1 = $1)
806 -> Seq Scan on t2 (cost=0.00..2.25 rows=1 width=14)
810 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
812 ------------------------------------
814 Merge Cond: (t1.c1 = t2.c1)
815 -> Index Scan using t1_i1 on t1
821 /*+HashJoin(t1 st2)*/
822 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
831 ------------------------------------
833 Merge Cond: (t1.c1 = t2.c1)
834 -> Index Scan using t1_i1 on t1
841 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
850 ------------------------------
852 Hash Cond: (t1.c1 = t2.c1)
859 ---- No. J-2-1 some complexity query blocks
862 EXPLAIN (COSTS false)
863 SELECT max(bmt1.c1), (
864 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)'
866 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)'
868 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)'
871 -------------------------------------------------------------------
873 InitPlan 1 (returns $0)
876 Join Filter: (b1t1.c1 = b1t4.c1)
878 Join Filter: (b1t1.c1 = b1t3.c1)
880 Join Filter: (b1t1.c1 = b1t2.c1)
881 -> Tid Scan on t1 b1t1
882 TID Cond: (ctid = '(1,1)'::tid)
883 -> Seq Scan on t2 b1t2
884 Filter: (ctid = '(1,1)'::tid)
885 -> Tid Scan on t3 b1t3
886 TID Cond: (ctid = '(1,1)'::tid)
887 -> Tid Scan on t4 b1t4
888 TID Cond: (ctid = '(1,1)'::tid)
889 InitPlan 2 (returns $1)
892 Join Filter: (b2t1.c1 = b2t4.c1)
894 Join Filter: (b2t1.c1 = b2t3.c1)
896 Join Filter: (b2t1.c1 = b2t2.c1)
897 -> Tid Scan on t1 b2t1
898 TID Cond: (ctid = '(1,1)'::tid)
899 -> Seq Scan on t2 b2t2
900 Filter: (ctid = '(1,1)'::tid)
901 -> Tid Scan on t3 b2t3
902 TID Cond: (ctid = '(1,1)'::tid)
903 -> Tid Scan on t4 b2t4
904 TID Cond: (ctid = '(1,1)'::tid)
906 Join Filter: (bmt1.c1 = bmt4.c1)
908 Join Filter: (bmt1.c1 = bmt3.c1)
910 Join Filter: (bmt1.c1 = bmt2.c1)
911 -> Tid Scan on t1 bmt1
912 TID Cond: (ctid = '(1,1)'::tid)
913 -> Seq Scan on t2 bmt2
914 Filter: (ctid = '(1,1)'::tid)
915 -> Tid Scan on t3 bmt3
916 TID Cond: (ctid = '(1,1)'::tid)
917 -> Tid Scan on t4 bmt4
918 TID Cond: (ctid = '(1,1)'::tid)
922 Leading(bmt1 bmt2 bmt3 bmt4)
923 Leading(b1t2 b1t3 b1t4 b1t1)
924 Leading(b2t3 b2t4 b2t1 b2t2)
925 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
926 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
927 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
929 EXPLAIN (COSTS false)
930 SELECT max(bmt1.c1), (
931 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)'
933 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)'
935 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)'
942 HashJoin(b1t2 b1t3 b1t4)
943 HashJoin(b2t1 b2t3 b2t4)
944 HashJoin(bmt1 bmt2 bmt3)
945 NestLoop(b1t1 b1t2 b1t3 b1t4)
946 NestLoop(b2t1 b2t2 b2t3 b2t4)
947 NestLoop(bmt1 bmt2 bmt3 bmt4)
948 Leading(bmt1 bmt2 bmt3 bmt4)
949 Leading(b1t2 b1t3 b1t4 b1t1)
950 Leading(b2t3 b2t4 b2t1 b2t2)
956 -------------------------------------------------------------------------------
958 InitPlan 1 (returns $0)
961 Join Filter: (b1t2.c1 = b1t1.c1)
963 Hash Cond: (b1t4.c1 = b1t2.c1)
964 -> Tid Scan on t4 b1t4
965 TID Cond: (ctid = '(1,1)'::tid)
968 Merge Cond: (b1t2.c1 = b1t3.c1)
971 -> Seq Scan on t2 b1t2
972 Filter: (ctid = '(1,1)'::tid)
975 -> Tid Scan on t3 b1t3
976 TID Cond: (ctid = '(1,1)'::tid)
977 -> Tid Scan on t1 b1t1
978 TID Cond: (ctid = '(1,1)'::tid)
979 InitPlan 2 (returns $1)
982 Join Filter: (b2t1.c1 = b2t2.c1)
984 Hash Cond: (b2t1.c1 = b2t3.c1)
985 -> Tid Scan on t1 b2t1
986 TID Cond: (ctid = '(1,1)'::tid)
989 Merge Cond: (b2t3.c1 = b2t4.c1)
992 -> Tid Scan on t3 b2t3
993 TID Cond: (ctid = '(1,1)'::tid)
996 -> Tid Scan on t4 b2t4
997 TID Cond: (ctid = '(1,1)'::tid)
998 -> Seq Scan on t2 b2t2
999 Filter: (ctid = '(1,1)'::tid)
1001 Join Filter: (bmt1.c1 = bmt4.c1)
1003 Hash Cond: (bmt3.c1 = bmt1.c1)
1004 -> Tid Scan on t3 bmt3
1005 TID Cond: (ctid = '(1,1)'::tid)
1008 Merge Cond: (bmt1.c1 = bmt2.c1)
1011 -> Tid Scan on t1 bmt1
1012 TID Cond: (ctid = '(1,1)'::tid)
1015 -> Seq Scan on t2 bmt2
1016 Filter: (ctid = '(1,1)'::tid)
1017 -> Tid Scan on t4 bmt4
1018 TID Cond: (ctid = '(1,1)'::tid)
1022 EXPLAIN (COSTS false)
1023 SELECT max(bmt1.c1), (
1024 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)'
1026 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)'
1028 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)'
1030 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)'
1033 -------------------------------------------------------------------
1035 InitPlan 1 (returns $0)
1038 Join Filter: (b1t1.c1 = b1t4.c1)
1040 Join Filter: (b1t1.c1 = b1t3.c1)
1042 Join Filter: (b1t1.c1 = b1t2.c1)
1043 -> Tid Scan on t1 b1t1
1044 TID Cond: (ctid = '(1,1)'::tid)
1045 -> Seq Scan on t2 b1t2
1046 Filter: (ctid = '(1,1)'::tid)
1047 -> Tid Scan on t3 b1t3
1048 TID Cond: (ctid = '(1,1)'::tid)
1049 -> Tid Scan on t4 b1t4
1050 TID Cond: (ctid = '(1,1)'::tid)
1051 InitPlan 2 (returns $1)
1054 Join Filter: (b2t1.c1 = b2t4.c1)
1056 Join Filter: (b2t1.c1 = b2t3.c1)
1058 Join Filter: (b2t1.c1 = b2t2.c1)
1059 -> Tid Scan on t1 b2t1
1060 TID Cond: (ctid = '(1,1)'::tid)
1061 -> Seq Scan on t2 b2t2
1062 Filter: (ctid = '(1,1)'::tid)
1063 -> Tid Scan on t3 b2t3
1064 TID Cond: (ctid = '(1,1)'::tid)
1065 -> Tid Scan on t4 b2t4
1066 TID Cond: (ctid = '(1,1)'::tid)
1067 InitPlan 3 (returns $2)
1070 Join Filter: (b3t1.c1 = b3t4.c1)
1072 Join Filter: (b3t1.c1 = b3t3.c1)
1074 Join Filter: (b3t1.c1 = b3t2.c1)
1075 -> Tid Scan on t1 b3t1
1076 TID Cond: (ctid = '(1,1)'::tid)
1077 -> Seq Scan on t2 b3t2
1078 Filter: (ctid = '(1,1)'::tid)
1079 -> Tid Scan on t3 b3t3
1080 TID Cond: (ctid = '(1,1)'::tid)
1081 -> Tid Scan on t4 b3t4
1082 TID Cond: (ctid = '(1,1)'::tid)
1084 Join Filter: (bmt1.c1 = bmt4.c1)
1086 Join Filter: (bmt1.c1 = bmt3.c1)
1088 Join Filter: (bmt1.c1 = bmt2.c1)
1089 -> Tid Scan on t1 bmt1
1090 TID Cond: (ctid = '(1,1)'::tid)
1091 -> Seq Scan on t2 bmt2
1092 Filter: (ctid = '(1,1)'::tid)
1093 -> Tid Scan on t3 bmt3
1094 TID Cond: (ctid = '(1,1)'::tid)
1095 -> Tid Scan on t4 bmt4
1096 TID Cond: (ctid = '(1,1)'::tid)
1100 Leading(bmt1 bmt2 bmt3 bmt4)
1101 Leading(b1t2 b1t3 b1t4 b1t1)
1102 Leading(b2t3 b2t4 b2t1 b2t2)
1103 Leading(b3t4 b3t1 b3t2 b3t3)
1104 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1105 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1106 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1107 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1109 EXPLAIN (COSTS false)
1110 SELECT max(bmt1.c1), (
1111 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)'
1113 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)'
1115 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)'
1117 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)'
1121 MergeJoin(b1t2 b1t3)
1122 MergeJoin(b2t3 b2t4)
1123 MergeJoin(b3t1 b3t4)
1124 MergeJoin(bmt1 bmt2)
1125 HashJoin(b1t2 b1t3 b1t4)
1126 HashJoin(b2t1 b2t3 b2t4)
1127 HashJoin(b3t1 b3t2 b3t4)
1128 HashJoin(bmt1 bmt2 bmt3)
1129 NestLoop(b1t1 b1t2 b1t3 b1t4)
1130 NestLoop(b2t1 b2t2 b2t3 b2t4)
1131 NestLoop(b3t1 b3t2 b3t3 b3t4)
1132 NestLoop(bmt1 bmt2 bmt3 bmt4)
1133 Leading(bmt1 bmt2 bmt3 bmt4)
1134 Leading(b1t2 b1t3 b1t4 b1t1)
1135 Leading(b2t3 b2t4 b2t1 b2t2)
1136 Leading(b3t4 b3t1 b3t2 b3t3)
1142 -------------------------------------------------------------------------------
1144 InitPlan 1 (returns $0)
1147 Join Filter: (b1t2.c1 = b1t1.c1)
1149 Hash Cond: (b1t4.c1 = b1t2.c1)
1150 -> Tid Scan on t4 b1t4
1151 TID Cond: (ctid = '(1,1)'::tid)
1154 Merge Cond: (b1t2.c1 = b1t3.c1)
1157 -> Seq Scan on t2 b1t2
1158 Filter: (ctid = '(1,1)'::tid)
1161 -> Tid Scan on t3 b1t3
1162 TID Cond: (ctid = '(1,1)'::tid)
1163 -> Tid Scan on t1 b1t1
1164 TID Cond: (ctid = '(1,1)'::tid)
1165 InitPlan 2 (returns $1)
1168 Join Filter: (b2t1.c1 = b2t2.c1)
1170 Hash Cond: (b2t1.c1 = b2t3.c1)
1171 -> Tid Scan on t1 b2t1
1172 TID Cond: (ctid = '(1,1)'::tid)
1175 Merge Cond: (b2t3.c1 = b2t4.c1)
1178 -> Tid Scan on t3 b2t3
1179 TID Cond: (ctid = '(1,1)'::tid)
1182 -> Tid Scan on t4 b2t4
1183 TID Cond: (ctid = '(1,1)'::tid)
1184 -> Seq Scan on t2 b2t2
1185 Filter: (ctid = '(1,1)'::tid)
1186 InitPlan 3 (returns $2)
1189 Join Filter: (b3t1.c1 = b3t3.c1)
1191 Hash Cond: (b3t2.c1 = b3t1.c1)
1192 -> Seq Scan on t2 b3t2
1193 Filter: (ctid = '(1,1)'::tid)
1196 Merge Cond: (b3t1.c1 = b3t4.c1)
1199 -> Tid Scan on t1 b3t1
1200 TID Cond: (ctid = '(1,1)'::tid)
1203 -> Tid Scan on t4 b3t4
1204 TID Cond: (ctid = '(1,1)'::tid)
1205 -> Tid Scan on t3 b3t3
1206 TID Cond: (ctid = '(1,1)'::tid)
1208 Join Filter: (bmt1.c1 = bmt4.c1)
1210 Hash Cond: (bmt3.c1 = bmt1.c1)
1211 -> Tid Scan on t3 bmt3
1212 TID Cond: (ctid = '(1,1)'::tid)
1215 Merge Cond: (bmt1.c1 = bmt2.c1)
1218 -> Tid Scan on t1 bmt1
1219 TID Cond: (ctid = '(1,1)'::tid)
1222 -> Seq Scan on t2 bmt2
1223 Filter: (ctid = '(1,1)'::tid)
1224 -> Tid Scan on t4 bmt4
1225 TID Cond: (ctid = '(1,1)'::tid)
1229 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)';
1231 -----------------------------------------------------------
1234 Join Filter: (bmt1.c1 = bmt4.c1)
1236 Join Filter: (bmt1.c1 = bmt3.c1)
1238 Join Filter: (bmt1.c1 = bmt2.c1)
1239 -> Tid Scan on t1 bmt1
1240 TID Cond: (ctid = '(1,1)'::tid)
1241 -> Seq Scan on t2 bmt2
1242 Filter: (ctid = '(1,1)'::tid)
1243 -> Tid Scan on t3 bmt3
1244 TID Cond: (ctid = '(1,1)'::tid)
1245 -> Tid Scan on t4 bmt4
1246 TID Cond: (ctid = '(1,1)'::tid)
1250 Leading(bmt4 bmt3 bmt2 bmt1)
1251 MergeJoin(bmt4 bmt3)HashJoin(bmt4 bmt3 bmt2)NestLoop(bmt1 bmt2 bmt3 bmt4)
1253 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)';
1256 MergeJoin(bmt3 bmt4)
1257 HashJoin(bmt2 bmt3 bmt4)
1258 NestLoop(bmt1 bmt2 bmt3 bmt4)
1259 Leading(bmt4 bmt3 bmt2 bmt1)
1265 -----------------------------------------------------------------------
1268 Join Filter: (bmt2.c1 = bmt1.c1)
1270 Hash Cond: (bmt2.c1 = bmt3.c1)
1271 -> Seq Scan on t2 bmt2
1272 Filter: (ctid = '(1,1)'::tid)
1275 Merge Cond: (bmt3.c1 = bmt4.c1)
1278 -> Tid Scan on t3 bmt3
1279 TID Cond: (ctid = '(1,1)'::tid)
1282 -> Tid Scan on t4 bmt4
1283 TID Cond: (ctid = '(1,1)'::tid)
1284 -> Tid Scan on t1 bmt1
1285 TID Cond: (ctid = '(1,1)'::tid)
1289 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)';
1291 -----------------------------------------------------------
1294 Join Filter: (bmt1.c1 = bmt4.c1)
1296 Join Filter: (bmt1.c1 = bmt3.c1)
1298 Join Filter: (bmt1.c1 = bmt2.c1)
1299 -> Tid Scan on t1 bmt1
1300 TID Cond: (ctid = '(1,1)'::tid)
1301 -> Seq Scan on t2 bmt2
1302 Filter: (ctid = '(1,1)'::tid)
1303 -> Tid Scan on t3 bmt3
1304 TID Cond: (ctid = '(1,1)'::tid)
1305 -> Tid Scan on t4 bmt4
1306 TID Cond: (ctid = '(1,1)'::tid)
1310 Leading(bmt4 bmt3 bmt2 bmt1)
1311 MergeJoin(bmt4 bmt3)HashJoin(bmt4 bmt3 bmt2)NestLoop(bmt1 bmt2 bmt3 bmt4)
1313 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)';
1316 MergeJoin(bmt3 bmt4)
1317 HashJoin(bmt2 bmt3 bmt4)
1318 NestLoop(bmt1 bmt2 bmt3 bmt4)
1319 Leading(bmt4 bmt3 bmt2 bmt1)
1325 -----------------------------------------------------------------------
1328 Join Filter: (bmt2.c1 = bmt1.c1)
1330 Hash Cond: (bmt2.c1 = bmt3.c1)
1331 -> Seq Scan on t2 bmt2
1332 Filter: (ctid = '(1,1)'::tid)
1335 Merge Cond: (bmt3.c1 = bmt4.c1)
1338 -> Tid Scan on t3 bmt3
1339 TID Cond: (ctid = '(1,1)'::tid)
1342 -> Tid Scan on t4 bmt4
1343 TID Cond: (ctid = '(1,1)'::tid)
1344 -> Tid Scan on t1 bmt1
1345 TID Cond: (ctid = '(1,1)'::tid)
1349 EXPLAIN (COSTS false)
1350 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)'
1352 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)'
1354 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)'
1358 -------------------------------------------------------------------
1360 InitPlan 1 (returns $0)
1363 Join Filter: (b1t1.c1 = b1t4.c1)
1365 Join Filter: (b1t1.c1 = b1t3.c1)
1367 Join Filter: (b1t1.c1 = b1t2.c1)
1368 -> Tid Scan on t1 b1t1
1369 TID Cond: (ctid = '(1,1)'::tid)
1370 -> Seq Scan on t2 b1t2
1371 Filter: (ctid = '(1,1)'::tid)
1372 -> Tid Scan on t3 b1t3
1373 TID Cond: (ctid = '(1,1)'::tid)
1374 -> Tid Scan on t4 b1t4
1375 TID Cond: (ctid = '(1,1)'::tid)
1376 InitPlan 2 (returns $1)
1379 Join Filter: (b2t1.c1 = b2t4.c1)
1381 Join Filter: (b2t1.c1 = b2t3.c1)
1383 Join Filter: (b2t1.c1 = b2t2.c1)
1384 -> Tid Scan on t1 b2t1
1385 TID Cond: (ctid = '(1,1)'::tid)
1386 -> Seq Scan on t2 b2t2
1387 Filter: (ctid = '(1,1)'::tid)
1388 -> Tid Scan on t3 b2t3
1389 TID Cond: (ctid = '(1,1)'::tid)
1390 -> Tid Scan on t4 b2t4
1391 TID Cond: (ctid = '(1,1)'::tid)
1393 Join Filter: (bmt1.c1 = bmt4.c1)
1395 Join Filter: (bmt1.c1 = bmt3.c1)
1397 Join Filter: (bmt1.c1 = bmt2.c1)
1398 -> Tid Scan on t1 bmt1
1399 TID Cond: (ctid = '(1,1)'::tid)
1400 Filter: ((c1 <> $0) AND (c1 <> $1))
1401 -> Seq Scan on t2 bmt2
1402 Filter: (ctid = '(1,1)'::tid)
1403 -> Tid Scan on t3 bmt3
1404 TID Cond: (ctid = '(1,1)'::tid)
1405 -> Tid Scan on t4 bmt4
1406 TID Cond: (ctid = '(1,1)'::tid)
1410 Leading(bmt1 bmt2 bmt3 bmt4)
1411 Leading(b1t2 b1t3 b1t4 b1t1)
1412 Leading(b2t3 b2t4 b2t1 b2t2)
1413 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1414 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1415 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1417 EXPLAIN (COSTS false)
1418 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)'
1420 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)'
1422 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)'
1427 MergeJoin(b1t2 b1t3)
1428 MergeJoin(b2t3 b2t4)
1429 MergeJoin(bmt1 bmt2)
1430 HashJoin(b1t2 b1t3 b1t4)
1431 HashJoin(b2t1 b2t3 b2t4)
1432 HashJoin(bmt1 bmt2 bmt3)
1433 NestLoop(b1t1 b1t2 b1t3 b1t4)
1434 NestLoop(b2t1 b2t2 b2t3 b2t4)
1435 NestLoop(bmt1 bmt2 bmt3 bmt4)
1436 Leading(bmt1 bmt2 bmt3 bmt4)
1437 Leading(b1t2 b1t3 b1t4 b1t1)
1438 Leading(b2t3 b2t4 b2t1 b2t2)
1444 -------------------------------------------------------------------------------
1446 InitPlan 1 (returns $0)
1449 Join Filter: (b1t2.c1 = b1t1.c1)
1451 Hash Cond: (b1t4.c1 = b1t2.c1)
1452 -> Tid Scan on t4 b1t4
1453 TID Cond: (ctid = '(1,1)'::tid)
1456 Merge Cond: (b1t2.c1 = b1t3.c1)
1459 -> Seq Scan on t2 b1t2
1460 Filter: (ctid = '(1,1)'::tid)
1463 -> Tid Scan on t3 b1t3
1464 TID Cond: (ctid = '(1,1)'::tid)
1465 -> Tid Scan on t1 b1t1
1466 TID Cond: (ctid = '(1,1)'::tid)
1467 InitPlan 2 (returns $1)
1470 Join Filter: (b2t1.c1 = b2t2.c1)
1472 Hash Cond: (b2t1.c1 = b2t3.c1)
1473 -> Tid Scan on t1 b2t1
1474 TID Cond: (ctid = '(1,1)'::tid)
1477 Merge Cond: (b2t3.c1 = b2t4.c1)
1480 -> Tid Scan on t3 b2t3
1481 TID Cond: (ctid = '(1,1)'::tid)
1484 -> Tid Scan on t4 b2t4
1485 TID Cond: (ctid = '(1,1)'::tid)
1486 -> Seq Scan on t2 b2t2
1487 Filter: (ctid = '(1,1)'::tid)
1489 Join Filter: (bmt1.c1 = bmt4.c1)
1491 Hash Cond: (bmt3.c1 = bmt1.c1)
1492 -> Tid Scan on t3 bmt3
1493 TID Cond: (ctid = '(1,1)'::tid)
1496 Merge Cond: (bmt1.c1 = bmt2.c1)
1499 -> Tid Scan on t1 bmt1
1500 TID Cond: (ctid = '(1,1)'::tid)
1501 Filter: ((c1 <> $0) AND (c1 <> $1))
1504 -> Seq Scan on t2 bmt2
1505 Filter: (ctid = '(1,1)'::tid)
1506 -> Tid Scan on t4 bmt4
1507 TID Cond: (ctid = '(1,1)'::tid)
1511 EXPLAIN (COSTS false)
1512 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)'
1514 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)'
1516 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)'
1518 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)'
1522 ------------------------------------------------------------------------------
1524 InitPlan 1 (returns $0)
1527 Join Filter: (b1t1.c1 = b1t4.c1)
1529 Join Filter: (b1t1.c1 = b1t3.c1)
1531 Join Filter: (b1t1.c1 = b1t2.c1)
1532 -> Tid Scan on t1 b1t1
1533 TID Cond: (ctid = '(1,1)'::tid)
1534 -> Seq Scan on t2 b1t2
1535 Filter: (ctid = '(1,1)'::tid)
1536 -> Tid Scan on t3 b1t3
1537 TID Cond: (ctid = '(1,1)'::tid)
1538 -> Tid Scan on t4 b1t4
1539 TID Cond: (ctid = '(1,1)'::tid)
1540 InitPlan 2 (returns $1)
1543 Join Filter: (b2t1.c1 = b2t4.c1)
1545 Join Filter: (b2t1.c1 = b2t3.c1)
1547 Join Filter: (b2t1.c1 = b2t2.c1)
1548 -> Tid Scan on t1 b2t1
1549 TID Cond: (ctid = '(1,1)'::tid)
1550 -> Seq Scan on t2 b2t2
1551 Filter: (ctid = '(1,1)'::tid)
1552 -> Tid Scan on t3 b2t3
1553 TID Cond: (ctid = '(1,1)'::tid)
1554 -> Tid Scan on t4 b2t4
1555 TID Cond: (ctid = '(1,1)'::tid)
1556 InitPlan 3 (returns $2)
1559 Join Filter: (b3t1.c1 = b3t4.c1)
1561 Join Filter: (b3t1.c1 = b3t3.c1)
1563 Join Filter: (b3t1.c1 = b3t2.c1)
1564 -> Tid Scan on t1 b3t1
1565 TID Cond: (ctid = '(1,1)'::tid)
1566 -> Seq Scan on t2 b3t2
1567 Filter: (ctid = '(1,1)'::tid)
1568 -> Tid Scan on t3 b3t3
1569 TID Cond: (ctid = '(1,1)'::tid)
1570 -> Tid Scan on t4 b3t4
1571 TID Cond: (ctid = '(1,1)'::tid)
1573 Join Filter: (bmt1.c1 = bmt4.c1)
1575 Join Filter: (bmt1.c1 = bmt3.c1)
1577 Join Filter: (bmt1.c1 = bmt2.c1)
1578 -> Tid Scan on t1 bmt1
1579 TID Cond: (ctid = '(1,1)'::tid)
1580 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1581 -> Seq Scan on t2 bmt2
1582 Filter: (ctid = '(1,1)'::tid)
1583 -> Tid Scan on t3 bmt3
1584 TID Cond: (ctid = '(1,1)'::tid)
1585 -> Tid Scan on t4 bmt4
1586 TID Cond: (ctid = '(1,1)'::tid)
1590 Leading(bmt1 bmt2 bmt3 bmt4)
1591 Leading(b1t2 b1t3 b1t4 b1t1)
1592 Leading(b2t3 b2t4 b2t1 b2t2)
1593 Leading(b3t4 b3t1 b3t2 b3t3)
1594 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1595 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1596 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1597 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1599 EXPLAIN (COSTS false)
1600 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)'
1602 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)'
1604 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)'
1606 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)'
1611 MergeJoin(b1t2 b1t3)
1612 MergeJoin(b2t3 b2t4)
1613 MergeJoin(b3t1 b3t4)
1614 MergeJoin(bmt1 bmt2)
1615 HashJoin(b1t2 b1t3 b1t4)
1616 HashJoin(b2t1 b2t3 b2t4)
1617 HashJoin(b3t1 b3t2 b3t4)
1618 HashJoin(bmt1 bmt2 bmt3)
1619 NestLoop(b1t1 b1t2 b1t3 b1t4)
1620 NestLoop(b2t1 b2t2 b2t3 b2t4)
1621 NestLoop(b3t1 b3t2 b3t3 b3t4)
1622 NestLoop(bmt1 bmt2 bmt3 bmt4)
1623 Leading(bmt1 bmt2 bmt3 bmt4)
1624 Leading(b1t2 b1t3 b1t4 b1t1)
1625 Leading(b2t3 b2t4 b2t1 b2t2)
1626 Leading(b3t4 b3t1 b3t2 b3t3)
1632 ------------------------------------------------------------------------------------------
1634 InitPlan 1 (returns $0)
1637 Join Filter: (b1t2.c1 = b1t1.c1)
1639 Hash Cond: (b1t4.c1 = b1t2.c1)
1640 -> Tid Scan on t4 b1t4
1641 TID Cond: (ctid = '(1,1)'::tid)
1644 Merge Cond: (b1t2.c1 = b1t3.c1)
1647 -> Seq Scan on t2 b1t2
1648 Filter: (ctid = '(1,1)'::tid)
1651 -> Tid Scan on t3 b1t3
1652 TID Cond: (ctid = '(1,1)'::tid)
1653 -> Tid Scan on t1 b1t1
1654 TID Cond: (ctid = '(1,1)'::tid)
1655 InitPlan 2 (returns $1)
1658 Join Filter: (b2t1.c1 = b2t2.c1)
1660 Hash Cond: (b2t1.c1 = b2t3.c1)
1661 -> Tid Scan on t1 b2t1
1662 TID Cond: (ctid = '(1,1)'::tid)
1665 Merge Cond: (b2t3.c1 = b2t4.c1)
1668 -> Tid Scan on t3 b2t3
1669 TID Cond: (ctid = '(1,1)'::tid)
1672 -> Tid Scan on t4 b2t4
1673 TID Cond: (ctid = '(1,1)'::tid)
1674 -> Seq Scan on t2 b2t2
1675 Filter: (ctid = '(1,1)'::tid)
1676 InitPlan 3 (returns $2)
1679 Join Filter: (b3t1.c1 = b3t3.c1)
1681 Hash Cond: (b3t2.c1 = b3t1.c1)
1682 -> Seq Scan on t2 b3t2
1683 Filter: (ctid = '(1,1)'::tid)
1686 Merge Cond: (b3t1.c1 = b3t4.c1)
1689 -> Tid Scan on t1 b3t1
1690 TID Cond: (ctid = '(1,1)'::tid)
1693 -> Tid Scan on t4 b3t4
1694 TID Cond: (ctid = '(1,1)'::tid)
1695 -> Tid Scan on t3 b3t3
1696 TID Cond: (ctid = '(1,1)'::tid)
1698 Join Filter: (bmt1.c1 = bmt4.c1)
1700 Hash Cond: (bmt3.c1 = bmt1.c1)
1701 -> Tid Scan on t3 bmt3
1702 TID Cond: (ctid = '(1,1)'::tid)
1705 Merge Cond: (bmt1.c1 = bmt2.c1)
1708 -> Tid Scan on t1 bmt1
1709 TID Cond: (ctid = '(1,1)'::tid)
1710 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1713 -> Seq Scan on t2 bmt2
1714 Filter: (ctid = '(1,1)'::tid)
1715 -> Tid Scan on t4 bmt4
1716 TID Cond: (ctid = '(1,1)'::tid)
1720 EXPLAIN (COSTS false)
1722 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)'
1725 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)'
1727 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1729 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)'
1734 -----------------------------------------------------------------------
1739 Join Filter: (b1t1.c1 = b1t4.c1)
1741 Join Filter: (b1t1.c1 = b1t3.c1)
1743 Join Filter: (b1t1.c1 = b1t2.c1)
1744 -> Tid Scan on t1 b1t1
1745 TID Cond: (ctid = '(1,1)'::tid)
1746 -> Seq Scan on t2 b1t2
1747 Filter: (ctid = '(1,1)'::tid)
1748 -> Tid Scan on t3 b1t3
1749 TID Cond: (ctid = '(1,1)'::tid)
1750 -> Tid Scan on t4 b1t4
1751 TID Cond: (ctid = '(1,1)'::tid)
1755 Join Filter: (b2t1.c1 = b2t4.c1)
1757 Join Filter: (b2t1.c1 = b2t3.c1)
1759 Join Filter: (b2t1.c1 = b2t2.c1)
1760 -> Tid Scan on t1 b2t1
1761 TID Cond: (ctid = '(1,1)'::tid)
1762 -> Seq Scan on t2 b2t2
1763 Filter: (ctid = '(1,1)'::tid)
1764 -> Tid Scan on t3 b2t3
1765 TID Cond: (ctid = '(1,1)'::tid)
1766 -> Tid Scan on t4 b2t4
1767 TID Cond: (ctid = '(1,1)'::tid)
1769 Join Filter: (bmt1.c1 = c2.c1)
1771 Join Filter: (bmt1.c1 = c1.c1)
1773 Join Filter: (bmt1.c1 = bmt4.c1)
1775 Join Filter: (bmt1.c1 = bmt3.c1)
1777 Join Filter: (bmt1.c1 = bmt2.c1)
1778 -> Tid Scan on t1 bmt1
1779 TID Cond: (ctid = '(1,1)'::tid)
1780 -> Seq Scan on t2 bmt2
1781 Filter: (ctid = '(1,1)'::tid)
1782 -> Tid Scan on t3 bmt3
1783 TID Cond: (ctid = '(1,1)'::tid)
1784 -> Tid Scan on t4 bmt4
1785 TID Cond: (ctid = '(1,1)'::tid)
1791 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1792 Leading(b1t2 b1t3 b1t4 b1t1)
1793 Leading(b2t3 b2t4 b2t1 b2t2)
1794 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)
1795 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1796 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1798 EXPLAIN (COSTS false)
1800 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)'
1803 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)'
1805 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1807 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)'
1813 MergeJoin(b1t2 b1t3)
1814 MergeJoin(b2t3 b2t4)
1816 HashJoin(b1t2 b1t3 b1t4)
1817 HashJoin(b2t1 b2t3 b2t4)
1818 HashJoin(bmt1 c1 c2)
1819 NestLoop(b1t1 b1t2 b1t3 b1t4)
1820 NestLoop(b2t1 b2t2 b2t3 b2t4)
1821 NestLoop(bmt1 bmt2 c1 c2)
1822 MergeJoin(bmt1 bmt2 bmt3 c1 c2)
1823 HashJoin(bmt1 bmt2 bmt3 bmt4 c1 c2)
1824 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1825 Leading(b1t2 b1t3 b1t4 b1t1)
1826 Leading(b2t3 b2t4 b2t1 b2t2)
1832 -------------------------------------------------------------------------------
1837 Join Filter: (b1t2.c1 = b1t1.c1)
1839 Hash Cond: (b1t4.c1 = b1t2.c1)
1840 -> Tid Scan on t4 b1t4
1841 TID Cond: (ctid = '(1,1)'::tid)
1844 Merge Cond: (b1t2.c1 = b1t3.c1)
1847 -> Seq Scan on t2 b1t2
1848 Filter: (ctid = '(1,1)'::tid)
1851 -> Tid Scan on t3 b1t3
1852 TID Cond: (ctid = '(1,1)'::tid)
1853 -> Tid Scan on t1 b1t1
1854 TID Cond: (ctid = '(1,1)'::tid)
1858 Join Filter: (b2t1.c1 = b2t2.c1)
1860 Hash Cond: (b2t1.c1 = b2t3.c1)
1861 -> Tid Scan on t1 b2t1
1862 TID Cond: (ctid = '(1,1)'::tid)
1865 Merge Cond: (b2t3.c1 = b2t4.c1)
1868 -> Tid Scan on t3 b2t3
1869 TID Cond: (ctid = '(1,1)'::tid)
1872 -> Tid Scan on t4 b2t4
1873 TID Cond: (ctid = '(1,1)'::tid)
1874 -> Seq Scan on t2 b2t2
1875 Filter: (ctid = '(1,1)'::tid)
1877 Hash Cond: (bmt4.c1 = bmt1.c1)
1878 -> Tid Scan on t4 bmt4
1879 TID Cond: (ctid = '(1,1)'::tid)
1882 Merge Cond: (bmt1.c1 = bmt3.c1)
1886 Join Filter: (bmt1.c1 = bmt2.c1)
1888 Hash Cond: (bmt1.c1 = c1.c1)
1889 -> Tid Scan on t1 bmt1
1890 TID Cond: (ctid = '(1,1)'::tid)
1893 Merge Cond: (c1.c1 = c2.c1)
1900 -> Seq Scan on t2 bmt2
1901 Filter: (ctid = '(1,1)'::tid)
1904 -> Tid Scan on t3 bmt3
1905 TID Cond: (ctid = '(1,1)'::tid)
1909 EXPLAIN (COSTS false)
1911 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)'
1914 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)'
1917 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)'
1919 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1921 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)'
1927 -----------------------------------------------------------------------------
1932 Join Filter: (b1t1.c1 = b1t4.c1)
1934 Join Filter: (b1t1.c1 = b1t3.c1)
1936 Join Filter: (b1t1.c1 = b1t2.c1)
1937 -> Tid Scan on t1 b1t1
1938 TID Cond: (ctid = '(1,1)'::tid)
1939 -> Seq Scan on t2 b1t2
1940 Filter: (ctid = '(1,1)'::tid)
1941 -> Tid Scan on t3 b1t3
1942 TID Cond: (ctid = '(1,1)'::tid)
1943 -> Tid Scan on t4 b1t4
1944 TID Cond: (ctid = '(1,1)'::tid)
1948 Join Filter: (b2t1.c1 = b2t4.c1)
1950 Join Filter: (b2t1.c1 = b2t3.c1)
1952 Join Filter: (b2t1.c1 = b2t2.c1)
1953 -> Tid Scan on t1 b2t1
1954 TID Cond: (ctid = '(1,1)'::tid)
1955 -> Seq Scan on t2 b2t2
1956 Filter: (ctid = '(1,1)'::tid)
1957 -> Tid Scan on t3 b2t3
1958 TID Cond: (ctid = '(1,1)'::tid)
1959 -> Tid Scan on t4 b2t4
1960 TID Cond: (ctid = '(1,1)'::tid)
1964 Join Filter: (b3t1.c1 = b3t4.c1)
1966 Join Filter: (b3t1.c1 = b3t3.c1)
1968 Join Filter: (b3t1.c1 = b3t2.c1)
1969 -> Tid Scan on t1 b3t1
1970 TID Cond: (ctid = '(1,1)'::tid)
1971 -> Seq Scan on t2 b3t2
1972 Filter: (ctid = '(1,1)'::tid)
1973 -> Tid Scan on t3 b3t3
1974 TID Cond: (ctid = '(1,1)'::tid)
1975 -> Tid Scan on t4 b3t4
1976 TID Cond: (ctid = '(1,1)'::tid)
1978 Join Filter: (bmt1.c1 = c3.c1)
1980 Join Filter: (bmt1.c1 = c2.c1)
1982 Join Filter: (bmt1.c1 = c1.c1)
1984 Join Filter: (bmt1.c1 = bmt4.c1)
1986 Join Filter: (bmt1.c1 = bmt3.c1)
1988 Join Filter: (bmt1.c1 = bmt2.c1)
1989 -> Tid Scan on t1 bmt1
1990 TID Cond: (ctid = '(1,1)'::tid)
1991 -> Seq Scan on t2 bmt2
1992 Filter: (ctid = '(1,1)'::tid)
1993 -> Tid Scan on t3 bmt3
1994 TID Cond: (ctid = '(1,1)'::tid)
1995 -> Tid Scan on t4 bmt4
1996 TID Cond: (ctid = '(1,1)'::tid)
2003 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2004 Leading(b1t2 b1t3 b1t4 b1t1)
2005 Leading(b2t3 b2t4 b2t1 b2t2)
2006 Leading(b3t4 b3t1 b3t2 b3t3)
2007 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)
2008 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
2009 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
2010 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
2012 EXPLAIN (COSTS false)
2014 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)'
2017 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)'
2020 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)'
2022 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2024 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)'
2031 MergeJoin(b1t2 b1t3)
2032 MergeJoin(b2t3 b2t4)
2033 MergeJoin(b3t1 b3t4)
2035 HashJoin(b1t2 b1t3 b1t4)
2036 HashJoin(b2t1 b2t3 b2t4)
2037 HashJoin(b3t1 b3t2 b3t4)
2039 NestLoop(b1t1 b1t2 b1t3 b1t4)
2040 NestLoop(b2t1 b2t2 b2t3 b2t4)
2041 NestLoop(b3t1 b3t2 b3t3 b3t4)
2042 NestLoop(bmt1 c1 c2 c3)
2043 MergeJoin(bmt1 bmt2 c1 c2 c3)
2044 HashJoin(bmt1 bmt2 bmt3 c1 c2 c3)
2045 NestLoop(bmt1 bmt2 bmt3 bmt4 c1 c2 c3)
2046 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2047 Leading(b1t2 b1t3 b1t4 b1t1)
2048 Leading(b2t3 b2t4 b2t1 b2t2)
2049 Leading(b3t4 b3t1 b3t2 b3t3)
2055 -------------------------------------------------------------------------------
2060 Join Filter: (b1t2.c1 = b1t1.c1)
2062 Hash Cond: (b1t4.c1 = b1t2.c1)
2063 -> Tid Scan on t4 b1t4
2064 TID Cond: (ctid = '(1,1)'::tid)
2067 Merge Cond: (b1t2.c1 = b1t3.c1)
2070 -> Seq Scan on t2 b1t2
2071 Filter: (ctid = '(1,1)'::tid)
2074 -> Tid Scan on t3 b1t3
2075 TID Cond: (ctid = '(1,1)'::tid)
2076 -> Tid Scan on t1 b1t1
2077 TID Cond: (ctid = '(1,1)'::tid)
2081 Join Filter: (b2t1.c1 = b2t2.c1)
2083 Hash Cond: (b2t1.c1 = b2t3.c1)
2084 -> Tid Scan on t1 b2t1
2085 TID Cond: (ctid = '(1,1)'::tid)
2088 Merge Cond: (b2t3.c1 = b2t4.c1)
2091 -> Tid Scan on t3 b2t3
2092 TID Cond: (ctid = '(1,1)'::tid)
2095 -> Tid Scan on t4 b2t4
2096 TID Cond: (ctid = '(1,1)'::tid)
2097 -> Seq Scan on t2 b2t2
2098 Filter: (ctid = '(1,1)'::tid)
2102 Join Filter: (b3t1.c1 = b3t3.c1)
2104 Hash Cond: (b3t2.c1 = b3t1.c1)
2105 -> Seq Scan on t2 b3t2
2106 Filter: (ctid = '(1,1)'::tid)
2109 Merge Cond: (b3t1.c1 = b3t4.c1)
2112 -> Tid Scan on t1 b3t1
2113 TID Cond: (ctid = '(1,1)'::tid)
2116 -> Tid Scan on t4 b3t4
2117 TID Cond: (ctid = '(1,1)'::tid)
2118 -> Tid Scan on t3 b3t3
2119 TID Cond: (ctid = '(1,1)'::tid)
2121 Join Filter: (bmt1.c1 = bmt4.c1)
2123 Hash Cond: (bmt3.c1 = bmt1.c1)
2124 -> Tid Scan on t3 bmt3
2125 TID Cond: (ctid = '(1,1)'::tid)
2128 Merge Cond: (bmt1.c1 = bmt2.c1)
2132 Join Filter: (c1.c1 = bmt1.c1)
2134 Hash Cond: (c2.c1 = c1.c1)
2136 Merge Cond: (c2.c1 = c3.c1)
2145 -> Tid Scan on t1 bmt1
2146 TID Cond: (ctid = '(1,1)'::tid)
2149 -> Seq Scan on t2 bmt2
2150 Filter: (ctid = '(1,1)'::tid)
2151 -> Tid Scan on t4 bmt4
2152 TID Cond: (ctid = '(1,1)'::tid)
2156 ---- No. J-2-2 the number of the tables per quiry block
2159 EXPLAIN (COSTS false)
2161 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2163 SELECT max(bmt1.c1), (
2164 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2166 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2169 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2173 -----------------------------------------------------------------
2177 InitPlan 1 (returns $0)
2179 -> Tid Scan on t1 b1t1
2180 TID Cond: (ctid = '(1,1)'::tid)
2181 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2182 InitPlan 4 (returns $3)
2184 InitPlan 3 (returns $2)
2186 -> Tid Scan on t1 b2t1
2187 TID Cond: (ctid = '(1,1)'::tid)
2188 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2189 InitPlan 6 (returns $5)
2191 InitPlan 5 (returns $4)
2193 -> Tid Scan on t1 b3t1
2194 TID Cond: (ctid = '(1,1)'::tid)
2195 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2197 -> Tid Scan on t1 bmt1
2198 TID Cond: (ctid = '(1,1)'::tid)
2199 Filter: ((c1 <> $5) AND (c1 = 1))
2211 EXPLAIN (COSTS false)
2213 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2215 SELECT max(bmt1.c1), (
2216 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2218 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2221 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2236 -----------------------------------------------------------------
2240 InitPlan 1 (returns $0)
2242 -> Tid Scan on t1 b1t1
2243 TID Cond: (ctid = '(1,1)'::tid)
2244 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2245 InitPlan 4 (returns $3)
2247 InitPlan 3 (returns $2)
2249 -> Tid Scan on t1 b2t1
2250 TID Cond: (ctid = '(1,1)'::tid)
2251 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2252 InitPlan 6 (returns $5)
2254 InitPlan 5 (returns $4)
2256 -> Tid Scan on t1 b3t1
2257 TID Cond: (ctid = '(1,1)'::tid)
2258 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2260 -> Tid Scan on t1 bmt1
2261 TID Cond: (ctid = '(1,1)'::tid)
2262 Filter: ((c1 <> $5) AND (c1 = 1))
2268 EXPLAIN (COSTS false)
2270 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)'
2272 SELECT max(bmt1.c1), (
2273 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)'
2275 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2278 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)'
2282 -------------------------------------------------------
2287 Join Filter: (b1t1.c1 = b1t2.c1)
2288 -> Tid Scan on t1 b1t1
2289 TID Cond: (ctid = '(1,1)'::tid)
2290 -> Seq Scan on t2 b1t2
2291 Filter: (ctid = '(1,1)'::tid)
2292 InitPlan 2 (returns $1)
2295 Join Filter: (b2t1.c1 = b2t2.c1)
2296 -> Tid Scan on t1 b2t1
2297 TID Cond: (ctid = '(1,1)'::tid)
2298 -> Seq Scan on t2 b2t2
2299 Filter: (ctid = '(1,1)'::tid)
2300 InitPlan 3 (returns $2)
2303 Join Filter: (b3t1.c1 = b3t2.c1)
2304 -> Tid Scan on t1 b3t1
2305 TID Cond: (ctid = '(1,1)'::tid)
2306 -> Seq Scan on t2 b3t2
2307 Filter: (ctid = '(1,1)'::tid)
2309 Join Filter: (bmt1.c1 = c1.c1)
2311 Join Filter: (bmt1.c1 = bmt2.c1)
2312 -> Tid Scan on t1 bmt1
2313 TID Cond: (ctid = '(1,1)'::tid)
2315 -> Seq Scan on t2 bmt2
2316 Filter: (ctid = '(1,1)'::tid)
2321 Leading(c1 bmt2 bmt1)
2326 HashJoin(c1 bmt1 bmt2)
2327 MergeJoin(b1t1 b1t2)
2328 MergeJoin(b2t1 b2t2)
2329 MergeJoin(b3t1 b3t2)
2331 EXPLAIN (COSTS false)
2333 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)'
2335 SELECT max(bmt1.c1), (
2336 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)'
2338 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2341 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)'
2346 MergeJoin(b1t1 b1t2)
2347 MergeJoin(b2t1 b2t2)
2348 MergeJoin(b3t1 b3t2)
2350 HashJoin(bmt1 bmt2 c1)
2351 Leading(c1 bmt2 bmt1)
2360 ---------------------------------------------------------------
2365 Merge Cond: (b1t1.c1 = b1t2.c1)
2368 -> Tid Scan on t1 b1t1
2369 TID Cond: (ctid = '(1,1)'::tid)
2372 -> Seq Scan on t2 b1t2
2373 Filter: (ctid = '(1,1)'::tid)
2374 InitPlan 2 (returns $1)
2377 Merge Cond: (b2t1.c1 = b2t2.c1)
2380 -> Tid Scan on t1 b2t1
2381 TID Cond: (ctid = '(1,1)'::tid)
2384 -> Seq Scan on t2 b2t2
2385 Filter: (ctid = '(1,1)'::tid)
2386 InitPlan 3 (returns $2)
2389 Merge Cond: (b3t1.c1 = b3t2.c1)
2392 -> Tid Scan on t1 b3t1
2393 TID Cond: (ctid = '(1,1)'::tid)
2396 -> Seq Scan on t2 b3t2
2397 Filter: (ctid = '(1,1)'::tid)
2399 Hash Cond: (bmt1.c1 = bmt2.c1)
2400 -> Tid Scan on t1 bmt1
2401 TID Cond: (ctid = '(1,1)'::tid)
2405 Merge Cond: (bmt2.c1 = c1.c1)
2408 -> Seq Scan on t2 bmt2
2409 Filter: (ctid = '(1,1)'::tid)
2416 EXPLAIN (COSTS false)
2418 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)'
2420 SELECT max(bmt1.c1), (
2421 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)'
2423 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
2425 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)'
2429 -------------------------------------------------------------------
2434 Join Filter: (b1t1.c1 = b1t4.c1)
2436 Join Filter: (b1t1.c1 = b1t3.c1)
2438 Join Filter: (b1t1.c1 = b1t2.c1)
2439 -> Tid Scan on t1 b1t1
2440 TID Cond: (ctid = '(1,1)'::tid)
2441 -> Seq Scan on t2 b1t2
2442 Filter: (ctid = '(1,1)'::tid)
2443 -> Tid Scan on t3 b1t3
2444 TID Cond: (ctid = '(1,1)'::tid)
2445 -> Tid Scan on t4 b1t4
2446 TID Cond: (ctid = '(1,1)'::tid)
2447 InitPlan 2 (returns $1)
2450 Join Filter: (b2t1.c1 = b2t4.c1)
2452 Join Filter: (b2t1.c1 = b2t3.c1)
2454 Join Filter: (b2t1.c1 = b2t2.c1)
2455 -> Tid Scan on t1 b2t1
2456 TID Cond: (ctid = '(1,1)'::tid)
2457 -> Seq Scan on t2 b2t2
2458 Filter: (ctid = '(1,1)'::tid)
2459 -> Tid Scan on t3 b2t3
2460 TID Cond: (ctid = '(1,1)'::tid)
2461 -> Tid Scan on t4 b2t4
2462 TID Cond: (ctid = '(1,1)'::tid)
2463 InitPlan 3 (returns $2)
2466 Join Filter: (b3t1.c1 = b3t4.c1)
2468 Join Filter: (b3t1.c1 = b3t3.c1)
2470 Join Filter: (b3t1.c1 = b3t2.c1)
2471 -> Tid Scan on t1 b3t1
2472 TID Cond: (ctid = '(1,1)'::tid)
2473 -> Seq Scan on t2 b3t2
2474 Filter: (ctid = '(1,1)'::tid)
2475 -> Tid Scan on t3 b3t3
2476 TID Cond: (ctid = '(1,1)'::tid)
2477 -> Tid Scan on t4 b3t4
2478 TID Cond: (ctid = '(1,1)'::tid)
2480 Join Filter: (bmt1.c1 = c1.c1)
2482 Join Filter: (bmt1.c1 = bmt4.c1)
2484 Join Filter: (bmt1.c1 = bmt3.c1)
2486 Join Filter: (bmt1.c1 = bmt2.c1)
2487 -> Tid Scan on t1 bmt1
2488 TID Cond: (ctid = '(1,1)'::tid)
2490 -> Seq Scan on t2 bmt2
2491 Filter: (ctid = '(1,1)'::tid)
2492 -> Tid Scan on t3 bmt3
2493 TID Cond: (ctid = '(1,1)'::tid)
2494 -> Tid Scan on t4 bmt4
2495 TID Cond: (ctid = '(1,1)'::tid)
2500 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2501 Leading(b1t4 b1t3 b1t2 b1t1)
2502 Leading(b2t4 b2t3 b2t2 b2t1)
2503 Leading(b3t4 b3t3 b3t2 b3t1)
2505 HashJoin(c1 bmt4 bmt3)
2506 NestLoop(c1 bmt4 bmt3 bmt2)
2507 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2509 NestLoop(b1t4 b1t3 b1t2)
2510 MergeJoin(b1t4 b1t3 b1t2 b1t1)
2512 NestLoop(b2t4 b2t3 b2t2)
2513 MergeJoin(b2t4 b2t3 b2t2 b2t1)
2515 NestLoop(b3t4 b3t3 b3t2)
2516 MergeJoin(b3t4 b3t3 b3t2 b3t1)
2518 EXPLAIN (COSTS false)
2520 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)'
2522 SELECT max(bmt1.c1), (
2523 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)'
2525 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
2527 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)'
2536 NestLoop(b1t2 b1t3 b1t4)
2537 NestLoop(b2t2 b2t3 b2t4)
2538 NestLoop(b3t2 b3t3 b3t4)
2539 HashJoin(bmt3 bmt4 c1)
2540 MergeJoin(b1t1 b1t2 b1t3 b1t4)
2541 MergeJoin(b2t1 b2t2 b2t3 b2t4)
2542 MergeJoin(b3t1 b3t2 b3t3 b3t4)
2543 NestLoop(bmt2 bmt3 bmt4 c1)
2544 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2545 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2546 Leading(b1t4 b1t3 b1t2 b1t1)
2547 Leading(b2t4 b2t3 b2t2 b2t1)
2548 Leading(b3t4 b3t3 b3t2 b3t1)
2554 -----------------------------------------------------------------------------------
2559 Merge Cond: (b1t2.c1 = b1t1.c1)
2563 Join Filter: (b1t3.c1 = b1t2.c1)
2565 Hash Cond: (b1t3.c1 = b1t4.c1)
2566 -> Tid Scan on t3 b1t3
2567 TID Cond: (ctid = '(1,1)'::tid)
2569 -> Tid Scan on t4 b1t4
2570 TID Cond: (ctid = '(1,1)'::tid)
2571 -> Seq Scan on t2 b1t2
2572 Filter: (ctid = '(1,1)'::tid)
2575 -> Tid Scan on t1 b1t1
2576 TID Cond: (ctid = '(1,1)'::tid)
2577 InitPlan 2 (returns $1)
2580 Merge Cond: (b2t2.c1 = b2t1.c1)
2584 Join Filter: (b2t3.c1 = b2t2.c1)
2586 Hash Cond: (b2t3.c1 = b2t4.c1)
2587 -> Tid Scan on t3 b2t3
2588 TID Cond: (ctid = '(1,1)'::tid)
2590 -> Tid Scan on t4 b2t4
2591 TID Cond: (ctid = '(1,1)'::tid)
2592 -> Seq Scan on t2 b2t2
2593 Filter: (ctid = '(1,1)'::tid)
2596 -> Tid Scan on t1 b2t1
2597 TID Cond: (ctid = '(1,1)'::tid)
2598 InitPlan 3 (returns $2)
2601 Merge Cond: (b3t2.c1 = b3t1.c1)
2605 Join Filter: (b3t3.c1 = b3t2.c1)
2607 Hash Cond: (b3t3.c1 = b3t4.c1)
2608 -> Tid Scan on t3 b3t3
2609 TID Cond: (ctid = '(1,1)'::tid)
2611 -> Tid Scan on t4 b3t4
2612 TID Cond: (ctid = '(1,1)'::tid)
2613 -> Seq Scan on t2 b3t2
2614 Filter: (ctid = '(1,1)'::tid)
2617 -> Tid Scan on t1 b3t1
2618 TID Cond: (ctid = '(1,1)'::tid)
2620 Merge Cond: (bmt2.c1 = bmt1.c1)
2624 Join Filter: (bmt3.c1 = bmt2.c1)
2626 Hash Cond: (bmt3.c1 = bmt4.c1)
2627 -> Tid Scan on t3 bmt3
2628 TID Cond: (ctid = '(1,1)'::tid)
2631 Merge Cond: (bmt4.c1 = c1.c1)
2634 -> Tid Scan on t4 bmt4
2635 TID Cond: (ctid = '(1,1)'::tid)
2639 -> Seq Scan on t2 bmt2
2640 Filter: (ctid = '(1,1)'::tid)
2643 -> Tid Scan on t1 bmt1
2644 TID Cond: (ctid = '(1,1)'::tid)
2649 EXPLAIN (COSTS false)
2651 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)'
2653 SELECT max(bmt1.c1), (
2654 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2656 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
2658 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2662 -------------------------------------------------------------------
2667 Join Filter: (b1t1.c1 = b1t4.c1)
2669 Join Filter: (b1t1.c1 = b1t3.c1)
2671 Join Filter: (b1t1.c1 = b1t2.c1)
2672 -> Tid Scan on t1 b1t1
2673 TID Cond: (ctid = '(1,1)'::tid)
2674 -> Seq Scan on t2 b1t2
2675 Filter: (ctid = '(1,1)'::tid)
2676 -> Tid Scan on t3 b1t3
2677 TID Cond: (ctid = '(1,1)'::tid)
2678 -> Tid Scan on t4 b1t4
2679 TID Cond: (ctid = '(1,1)'::tid)
2680 InitPlan 3 (returns $2)
2682 InitPlan 2 (returns $1)
2684 -> Tid Scan on t1 b2t1
2685 TID Cond: (ctid = '(1,1)'::tid)
2686 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2687 InitPlan 4 (returns $3)
2689 -> Tid Scan on t1 b3t1
2690 TID Cond: (ctid = '(1,1)'::tid)
2692 Join Filter: (bmt1.c1 = c1.c1)
2694 Join Filter: (bmt1.c1 = bmt4.c1)
2696 Join Filter: (bmt1.c1 = bmt3.c1)
2698 Join Filter: (bmt1.c1 = bmt2.c1)
2699 -> Tid Scan on t1 bmt1
2700 TID Cond: (ctid = '(1,1)'::tid)
2702 -> Seq Scan on t2 bmt2
2703 Filter: (ctid = '(1,1)'::tid)
2704 -> Tid Scan on t3 bmt3
2705 TID Cond: (ctid = '(1,1)'::tid)
2706 -> Tid Scan on t4 bmt4
2707 TID Cond: (ctid = '(1,1)'::tid)
2712 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2713 Leading(b1t4 b1t3 b1t2 b1t1)
2715 HashJoin(c1 bmt4 bmt3)
2716 NestLoop(c1 bmt4 bmt3 bmt2)
2717 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2718 MergeJoin(b1t4 b1t3)
2719 HashJoin(b1t4 b1t3 b1t2)
2720 NestLoop(b1t4 b1t3 b1t2 b1t1)
2722 EXPLAIN (COSTS false)
2724 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)'
2726 SELECT max(bmt1.c1), (
2727 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2729 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
2731 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2736 MergeJoin(b1t3 b1t4)
2738 HashJoin(b1t2 b1t3 b1t4)
2739 HashJoin(bmt3 bmt4 c1)
2740 NestLoop(b1t1 b1t2 b1t3 b1t4)
2741 NestLoop(bmt2 bmt3 bmt4 c1)
2742 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2743 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2744 Leading(b1t4 b1t3 b1t2 b1t1)
2750 -----------------------------------------------------------------------------------
2755 Join Filter: (b1t2.c1 = b1t1.c1)
2757 Hash Cond: (b1t2.c1 = b1t3.c1)
2758 -> Seq Scan on t2 b1t2
2759 Filter: (ctid = '(1,1)'::tid)
2762 Merge Cond: (b1t3.c1 = b1t4.c1)
2765 -> Tid Scan on t3 b1t3
2766 TID Cond: (ctid = '(1,1)'::tid)
2769 -> Tid Scan on t4 b1t4
2770 TID Cond: (ctid = '(1,1)'::tid)
2771 -> Tid Scan on t1 b1t1
2772 TID Cond: (ctid = '(1,1)'::tid)
2773 InitPlan 3 (returns $2)
2775 InitPlan 2 (returns $1)
2777 -> Tid Scan on t1 b2t1
2778 TID Cond: (ctid = '(1,1)'::tid)
2779 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2780 InitPlan 4 (returns $3)
2782 -> Tid Scan on t1 b3t1
2783 TID Cond: (ctid = '(1,1)'::tid)
2785 Merge Cond: (bmt2.c1 = bmt1.c1)
2789 Join Filter: (bmt3.c1 = bmt2.c1)
2791 Hash Cond: (bmt3.c1 = bmt4.c1)
2792 -> Tid Scan on t3 bmt3
2793 TID Cond: (ctid = '(1,1)'::tid)
2796 Merge Cond: (bmt4.c1 = c1.c1)
2799 -> Tid Scan on t4 bmt4
2800 TID Cond: (ctid = '(1,1)'::tid)
2804 -> Seq Scan on t2 bmt2
2805 Filter: (ctid = '(1,1)'::tid)
2808 -> Tid Scan on t1 bmt1
2809 TID Cond: (ctid = '(1,1)'::tid)
2814 ---- No. J-2-3 RULE or VIEW
2817 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2819 -----------------------------------------------------------------
2822 Join Filter: (t1.c1 = t4.c1)
2824 Join Filter: (t1.c1 = t3.c1)
2826 Join Filter: (t1.c1 = t2.c1)
2829 TID Cond: (ctid = '(1,1)'::tid)
2832 TID Cond: (ctid = '(1,1)'::tid)
2834 Filter: (ctid = '(1,1)'::tid)
2836 TID Cond: (ctid = '(1,1)'::tid)
2838 TID Cond: (ctid = '(1,1)'::tid)
2842 Leading(t4 t3 t2 t1 r1)
2843 MergeJoin(t4 t3 t2 t1 r1)
2844 HashJoin(t4 t3 t2 t1)
2848 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2853 HashJoin(t1 t2 t3 t4)
2854 MergeJoin(r1 t1 t2 t3 t4)
2855 Leading(t4 t3 t2 t1 r1)
2861 -----------------------------------------------------------------------------
2865 Hash Cond: (t1.c1 = t2.c1)
2867 TID Cond: (ctid = '(1,1)'::tid)
2870 Join Filter: (t3.c1 = t2.c1)
2872 Merge Cond: (t3.c1 = t4.c1)
2876 TID Cond: (ctid = '(1,1)'::tid)
2880 TID Cond: (ctid = '(1,1)'::tid)
2882 Filter: (ctid = '(1,1)'::tid)
2884 TID Cond: (ctid = '(1,1)'::tid)
2888 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2890 -----------------------------------------------------------------
2893 Join Filter: (b1t1.c1 = b1t4.c1)
2895 Join Filter: (b1t1.c1 = b1t3.c1)
2897 Join Filter: (b1t1.c1 = b1t2.c1)
2900 TID Cond: (ctid = '(1,1)'::tid)
2902 -> Tid Scan on t1 b1t1
2903 TID Cond: (ctid = '(1,1)'::tid)
2904 -> Seq Scan on t2 b1t2
2905 Filter: (ctid = '(1,1)'::tid)
2906 -> Tid Scan on t3 b1t3
2907 TID Cond: (ctid = '(1,1)'::tid)
2908 -> Tid Scan on t4 b1t4
2909 TID Cond: (ctid = '(1,1)'::tid)
2913 Leading(b1t4 b1t3 b1t2 b1t1 r1_)
2914 MergeJoin(b1t4 b1t3 b1t2 b1t1 r1_)
2915 HashJoin(b1t4 b1t3 b1t2 b1t1)
2916 NestLoop(b1t4 b1t3 b1t2)
2917 MergeJoin(b1t4 b1t3)
2919 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2922 MergeJoin(b1t3 b1t4)
2923 NestLoop(b1t2 b1t3 b1t4)
2924 HashJoin(b1t1 b1t2 b1t3 b1t4)
2925 MergeJoin(b1t1 b1t2 b1t3 b1t4 r1_)
2926 Leading(b1t4 b1t3 b1t2 b1t1 r1_)
2932 -----------------------------------------------------------------------------
2936 Hash Cond: (b1t1.c1 = b1t2.c1)
2937 -> Tid Scan on t1 b1t1
2938 TID Cond: (ctid = '(1,1)'::tid)
2941 Join Filter: (b1t3.c1 = b1t2.c1)
2943 Merge Cond: (b1t3.c1 = b1t4.c1)
2946 -> Tid Scan on t3 b1t3
2947 TID Cond: (ctid = '(1,1)'::tid)
2950 -> Tid Scan on t4 b1t4
2951 TID Cond: (ctid = '(1,1)'::tid)
2952 -> Seq Scan on t2 b1t2
2953 Filter: (ctid = '(1,1)'::tid)
2955 TID Cond: (ctid = '(1,1)'::tid)
2960 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2962 -----------------------------------------------------------------
2965 Join Filter: (t1.c1 = t4.c1)
2967 Join Filter: (t1.c1 = t3.c1)
2969 Join Filter: (t1.c1 = t2.c1)
2972 TID Cond: (ctid = '(1,1)'::tid)
2975 TID Cond: (ctid = '(1,1)'::tid)
2977 Filter: (ctid = '(1,1)'::tid)
2979 TID Cond: (ctid = '(1,1)'::tid)
2981 TID Cond: (ctid = '(1,1)'::tid)
2985 Join Filter: (t1.c1 = t4.c1)
2987 Join Filter: (t1.c1 = t3.c1)
2989 Join Filter: (t1.c1 = t2.c1)
2992 TID Cond: (ctid = '(1,1)'::tid)
2995 TID Cond: (ctid = '(1,1)'::tid)
2997 Filter: (ctid = '(1,1)'::tid)
2999 TID Cond: (ctid = '(1,1)'::tid)
3001 TID Cond: (ctid = '(1,1)'::tid)
3005 Leading(t4 t3 t2 t1 r2)
3006 MergeJoin(t4 t3 t2 t1 r2)
3007 HashJoin(t4 t3 t2 t1)
3011 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3016 HashJoin(t1 t2 t3 t4)
3017 MergeJoin(r2 t1 t2 t3 t4)
3018 Leading(t4 t3 t2 t1 r2)
3027 HashJoin(t1 t2 t3 t4)
3028 MergeJoin(r2 t1 t2 t3 t4)
3029 Leading(t4 t3 t2 t1 r2)
3035 -----------------------------------------------------------------------------
3039 Hash Cond: (t1.c1 = t2.c1)
3041 TID Cond: (ctid = '(1,1)'::tid)
3044 Join Filter: (t3.c1 = t2.c1)
3046 Merge Cond: (t3.c1 = t4.c1)
3050 TID Cond: (ctid = '(1,1)'::tid)
3054 TID Cond: (ctid = '(1,1)'::tid)
3056 Filter: (ctid = '(1,1)'::tid)
3058 TID Cond: (ctid = '(1,1)'::tid)
3064 Hash Cond: (t1.c1 = t2.c1)
3066 TID Cond: (ctid = '(1,1)'::tid)
3069 Join Filter: (t3.c1 = t2.c1)
3071 Merge Cond: (t3.c1 = t4.c1)
3075 TID Cond: (ctid = '(1,1)'::tid)
3079 TID Cond: (ctid = '(1,1)'::tid)
3081 Filter: (ctid = '(1,1)'::tid)
3083 TID Cond: (ctid = '(1,1)'::tid)
3087 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3089 -----------------------------------------------------------------
3092 Join Filter: (b1t1.c1 = b1t4.c1)
3094 Join Filter: (b1t1.c1 = b1t3.c1)
3096 Join Filter: (b1t1.c1 = b1t2.c1)
3099 TID Cond: (ctid = '(1,1)'::tid)
3101 -> Tid Scan on t1 b1t1
3102 TID Cond: (ctid = '(1,1)'::tid)
3103 -> Seq Scan on t2 b1t2
3104 Filter: (ctid = '(1,1)'::tid)
3105 -> Tid Scan on t3 b1t3
3106 TID Cond: (ctid = '(1,1)'::tid)
3107 -> Tid Scan on t4 b1t4
3108 TID Cond: (ctid = '(1,1)'::tid)
3112 Join Filter: (b2t1.c1 = b2t4.c1)
3114 Join Filter: (b2t1.c1 = b2t3.c1)
3116 Join Filter: (b2t1.c1 = b2t2.c1)
3119 TID Cond: (ctid = '(1,1)'::tid)
3121 -> Tid Scan on t1 b2t1
3122 TID Cond: (ctid = '(1,1)'::tid)
3123 -> Seq Scan on t2 b2t2
3124 Filter: (ctid = '(1,1)'::tid)
3125 -> Tid Scan on t3 b2t3
3126 TID Cond: (ctid = '(1,1)'::tid)
3127 -> Tid Scan on t4 b2t4
3128 TID Cond: (ctid = '(1,1)'::tid)
3132 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3133 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3134 MergeJoin(b1t1 b1t2)
3135 HashJoin(b1t1 b1t2 b1t3)
3136 NestLoop(b1t1 b1t2 b1t3 b1t4)
3137 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3138 MergeJoin(b2t1 b2t2)
3139 HashJoin(b2t1 b2t2 b2t3)
3140 NestLoop(b2t1 b2t2 b2t3 b2t4)
3141 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3143 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3146 MergeJoin(b1t1 b1t2)
3147 HashJoin(b1t1 b1t2 b1t3)
3148 NestLoop(b1t1 b1t2 b1t3 b1t4)
3149 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3150 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3152 MergeJoin(b2t1 b2t2)
3153 HashJoin(b2t1 b2t2 b2t3)
3154 NestLoop(b2t1 b2t2 b2t3 b2t4)
3155 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3156 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3162 MergeJoin(b2t1 b2t2)
3163 HashJoin(b2t1 b2t2 b2t3)
3164 NestLoop(b2t1 b2t2 b2t3 b2t4)
3165 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3166 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3168 MergeJoin(b1t1 b1t2)
3169 HashJoin(b1t1 b1t2 b1t3)
3170 NestLoop(b1t1 b1t2 b1t3 b1t4)
3171 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3172 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3177 -----------------------------------------------------------------------------
3181 Join Filter: (b1t1.c1 = b1t4.c1)
3183 Hash Cond: (b1t3.c1 = b1t1.c1)
3184 -> Tid Scan on t3 b1t3
3185 TID Cond: (ctid = '(1,1)'::tid)
3188 Merge Cond: (b1t1.c1 = b1t2.c1)
3191 -> Tid Scan on t1 b1t1
3192 TID Cond: (ctid = '(1,1)'::tid)
3195 -> Seq Scan on t2 b1t2
3196 Filter: (ctid = '(1,1)'::tid)
3197 -> Tid Scan on t4 b1t4
3198 TID Cond: (ctid = '(1,1)'::tid)
3200 TID Cond: (ctid = '(1,1)'::tid)
3206 Join Filter: (b2t1.c1 = b2t4.c1)
3208 Hash Cond: (b2t3.c1 = b2t1.c1)
3209 -> Tid Scan on t3 b2t3
3210 TID Cond: (ctid = '(1,1)'::tid)
3213 Merge Cond: (b2t1.c1 = b2t2.c1)
3216 -> Tid Scan on t1 b2t1
3217 TID Cond: (ctid = '(1,1)'::tid)
3220 -> Seq Scan on t2 b2t2
3221 Filter: (ctid = '(1,1)'::tid)
3222 -> Tid Scan on t4 b2t4
3223 TID Cond: (ctid = '(1,1)'::tid)
3225 TID Cond: (ctid = '(1,1)'::tid)
3230 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3232 -----------------------------------------------------------------
3235 Join Filter: (t1.c1 = t4.c1)
3237 Join Filter: (t1.c1 = t3.c1)
3239 Join Filter: (t1.c1 = t2.c1)
3242 TID Cond: (ctid = '(1,1)'::tid)
3245 TID Cond: (ctid = '(1,1)'::tid)
3247 Filter: (ctid = '(1,1)'::tid)
3249 TID Cond: (ctid = '(1,1)'::tid)
3251 TID Cond: (ctid = '(1,1)'::tid)
3255 Join Filter: (t1.c1 = t4.c1)
3257 Join Filter: (t1.c1 = t3.c1)
3259 Join Filter: (t1.c1 = t2.c1)
3262 TID Cond: (ctid = '(1,1)'::tid)
3265 TID Cond: (ctid = '(1,1)'::tid)
3267 Filter: (ctid = '(1,1)'::tid)
3269 TID Cond: (ctid = '(1,1)'::tid)
3271 TID Cond: (ctid = '(1,1)'::tid)
3275 Join Filter: (t1.c1 = t4.c1)
3277 Join Filter: (t1.c1 = t3.c1)
3279 Join Filter: (t1.c1 = t2.c1)
3282 TID Cond: (ctid = '(1,1)'::tid)
3285 TID Cond: (ctid = '(1,1)'::tid)
3287 Filter: (ctid = '(1,1)'::tid)
3289 TID Cond: (ctid = '(1,1)'::tid)
3291 TID Cond: (ctid = '(1,1)'::tid)
3295 Leading(t4 t3 t2 t1 r3)
3296 MergeJoin(t4 t3 t2 t1 r3)
3297 HashJoin(t4 t3 t2 t1)
3301 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3306 HashJoin(t1 t2 t3 t4)
3307 MergeJoin(r3 t1 t2 t3 t4)
3308 Leading(t4 t3 t2 t1 r3)
3317 HashJoin(t1 t2 t3 t4)
3318 MergeJoin(r3 t1 t2 t3 t4)
3319 Leading(t4 t3 t2 t1 r3)
3328 HashJoin(t1 t2 t3 t4)
3329 MergeJoin(r3 t1 t2 t3 t4)
3330 Leading(t4 t3 t2 t1 r3)
3336 -----------------------------------------------------------------------------
3340 Hash Cond: (t1.c1 = t2.c1)
3342 TID Cond: (ctid = '(1,1)'::tid)
3345 Join Filter: (t3.c1 = t2.c1)
3347 Merge Cond: (t3.c1 = t4.c1)
3351 TID Cond: (ctid = '(1,1)'::tid)
3355 TID Cond: (ctid = '(1,1)'::tid)
3357 Filter: (ctid = '(1,1)'::tid)
3359 TID Cond: (ctid = '(1,1)'::tid)
3365 Hash Cond: (t1.c1 = t2.c1)
3367 TID Cond: (ctid = '(1,1)'::tid)
3370 Join Filter: (t3.c1 = t2.c1)
3372 Merge Cond: (t3.c1 = t4.c1)
3376 TID Cond: (ctid = '(1,1)'::tid)
3380 TID Cond: (ctid = '(1,1)'::tid)
3382 Filter: (ctid = '(1,1)'::tid)
3384 TID Cond: (ctid = '(1,1)'::tid)
3390 Hash Cond: (t1.c1 = t2.c1)
3392 TID Cond: (ctid = '(1,1)'::tid)
3395 Join Filter: (t3.c1 = t2.c1)
3397 Merge Cond: (t3.c1 = t4.c1)
3401 TID Cond: (ctid = '(1,1)'::tid)
3405 TID Cond: (ctid = '(1,1)'::tid)
3407 Filter: (ctid = '(1,1)'::tid)
3409 TID Cond: (ctid = '(1,1)'::tid)
3413 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3415 -----------------------------------------------------------------
3418 Join Filter: (b1t1.c1 = b1t4.c1)
3420 Join Filter: (b1t1.c1 = b1t3.c1)
3422 Join Filter: (b1t1.c1 = b1t2.c1)
3425 TID Cond: (ctid = '(1,1)'::tid)
3427 -> Tid Scan on t1 b1t1
3428 TID Cond: (ctid = '(1,1)'::tid)
3429 -> Seq Scan on t2 b1t2
3430 Filter: (ctid = '(1,1)'::tid)
3431 -> Tid Scan on t3 b1t3
3432 TID Cond: (ctid = '(1,1)'::tid)
3433 -> Tid Scan on t4 b1t4
3434 TID Cond: (ctid = '(1,1)'::tid)
3438 Join Filter: (b2t1.c1 = b2t4.c1)
3440 Join Filter: (b2t1.c1 = b2t3.c1)
3442 Join Filter: (b2t1.c1 = b2t2.c1)
3445 TID Cond: (ctid = '(1,1)'::tid)
3447 -> Tid Scan on t1 b2t1
3448 TID Cond: (ctid = '(1,1)'::tid)
3449 -> Seq Scan on t2 b2t2
3450 Filter: (ctid = '(1,1)'::tid)
3451 -> Tid Scan on t3 b2t3
3452 TID Cond: (ctid = '(1,1)'::tid)
3453 -> Tid Scan on t4 b2t4
3454 TID Cond: (ctid = '(1,1)'::tid)
3458 Join Filter: (b3t1.c1 = b3t4.c1)
3460 Join Filter: (b3t1.c1 = b3t3.c1)
3462 Join Filter: (b3t1.c1 = b3t2.c1)
3465 TID Cond: (ctid = '(1,1)'::tid)
3467 -> Tid Scan on t1 b3t1
3468 TID Cond: (ctid = '(1,1)'::tid)
3469 -> Seq Scan on t2 b3t2
3470 Filter: (ctid = '(1,1)'::tid)
3471 -> Tid Scan on t3 b3t3
3472 TID Cond: (ctid = '(1,1)'::tid)
3473 -> Tid Scan on t4 b3t4
3474 TID Cond: (ctid = '(1,1)'::tid)
3478 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3479 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3480 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3481 MergeJoin(b1t1 b1t2)
3482 HashJoin(b1t1 b1t2 b1t3)
3483 NestLoop(b1t1 b1t2 b1t3 b1t4)
3484 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3485 MergeJoin(b2t1 b2t2)
3486 HashJoin(b2t1 b2t2 b2t3)
3487 NestLoop(b2t1 b2t2 b2t3 b2t4)
3488 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3489 MergeJoin(b3t1 b3t2)
3490 HashJoin(b3t1 b3t2 b3t3)
3491 NestLoop(b3t1 b3t2 b3t3 b3t4)
3492 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3494 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3497 MergeJoin(b1t1 b1t2)
3498 HashJoin(b1t1 b1t2 b1t3)
3499 NestLoop(b1t1 b1t2 b1t3 b1t4)
3500 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3501 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3503 MergeJoin(b2t1 b2t2)
3504 MergeJoin(b3t1 b3t2)
3505 HashJoin(b2t1 b2t2 b2t3)
3506 HashJoin(b3t1 b3t2 b3t3)
3507 NestLoop(b2t1 b2t2 b2t3 b2t4)
3508 NestLoop(b3t1 b3t2 b3t3 b3t4)
3509 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3510 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3511 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3512 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3518 MergeJoin(b2t1 b2t2)
3519 HashJoin(b2t1 b2t2 b2t3)
3520 NestLoop(b2t1 b2t2 b2t3 b2t4)
3521 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3522 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3524 MergeJoin(b1t1 b1t2)
3525 MergeJoin(b3t1 b3t2)
3526 HashJoin(b1t1 b1t2 b1t3)
3527 HashJoin(b3t1 b3t2 b3t3)
3528 NestLoop(b1t1 b1t2 b1t3 b1t4)
3529 NestLoop(b3t1 b3t2 b3t3 b3t4)
3530 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3531 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3532 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3533 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3539 MergeJoin(b3t1 b3t2)
3540 HashJoin(b3t1 b3t2 b3t3)
3541 NestLoop(b3t1 b3t2 b3t3 b3t4)
3542 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3543 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3545 MergeJoin(b1t1 b1t2)
3546 MergeJoin(b2t1 b2t2)
3547 HashJoin(b1t1 b1t2 b1t3)
3548 HashJoin(b2t1 b2t2 b2t3)
3549 NestLoop(b1t1 b1t2 b1t3 b1t4)
3550 NestLoop(b2t1 b2t2 b2t3 b2t4)
3551 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3552 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3553 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3554 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3559 -----------------------------------------------------------------------------
3563 Join Filter: (b1t1.c1 = b1t4.c1)
3565 Hash Cond: (b1t3.c1 = b1t1.c1)
3566 -> Tid Scan on t3 b1t3
3567 TID Cond: (ctid = '(1,1)'::tid)
3570 Merge Cond: (b1t1.c1 = b1t2.c1)
3573 -> Tid Scan on t1 b1t1
3574 TID Cond: (ctid = '(1,1)'::tid)
3577 -> Seq Scan on t2 b1t2
3578 Filter: (ctid = '(1,1)'::tid)
3579 -> Tid Scan on t4 b1t4
3580 TID Cond: (ctid = '(1,1)'::tid)
3582 TID Cond: (ctid = '(1,1)'::tid)
3588 Join Filter: (b2t1.c1 = b2t4.c1)
3590 Hash Cond: (b2t3.c1 = b2t1.c1)
3591 -> Tid Scan on t3 b2t3
3592 TID Cond: (ctid = '(1,1)'::tid)
3595 Merge Cond: (b2t1.c1 = b2t2.c1)
3598 -> Tid Scan on t1 b2t1
3599 TID Cond: (ctid = '(1,1)'::tid)
3602 -> Seq Scan on t2 b2t2
3603 Filter: (ctid = '(1,1)'::tid)
3604 -> Tid Scan on t4 b2t4
3605 TID Cond: (ctid = '(1,1)'::tid)
3607 TID Cond: (ctid = '(1,1)'::tid)
3613 Join Filter: (b3t1.c1 = b3t4.c1)
3615 Hash Cond: (b3t3.c1 = b3t1.c1)
3616 -> Tid Scan on t3 b3t3
3617 TID Cond: (ctid = '(1,1)'::tid)
3620 Merge Cond: (b3t1.c1 = b3t2.c1)
3623 -> Tid Scan on t1 b3t1
3624 TID Cond: (ctid = '(1,1)'::tid)
3627 -> Seq Scan on t2 b3t2
3628 Filter: (ctid = '(1,1)'::tid)
3629 -> Tid Scan on t4 b3t4
3630 TID Cond: (ctid = '(1,1)'::tid)
3632 TID Cond: (ctid = '(1,1)'::tid)
3637 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3639 ----------------------------------
3641 Hash Cond: (v1t1.c1 = v1t1.c1)
3642 -> Seq Scan on t1 v1t1
3644 -> Seq Scan on t1 v1t1
3647 /*+HashJoin(v1t1 v1t1)*/
3648 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3649 INFO: hint syntax error at or near "HashJoin(v1t1 v1t1)"
3650 DETAIL: Relation name "v1t1" is ambiguous.
3659 ----------------------------------
3661 Hash Cond: (v1t1.c1 = v1t1.c1)
3662 -> Seq Scan on t1 v1t1
3664 -> Seq Scan on t1 v1t1
3668 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3670 -----------------------------------
3672 Hash Cond: (v1t1.c1 = v1t1_.c1)
3673 -> Seq Scan on t1 v1t1
3675 -> Seq Scan on t1 v1t1_
3678 /*+NestLoop(v1t1 v1t1_)*/
3679 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3682 NestLoop(v1t1 v1t1_)
3688 ------------------------------------------
3690 -> Seq Scan on t1 v1t1
3691 -> Index Scan using t1_i1 on t1 v1t1_
3692 Index Cond: (c1 = v1t1.c1)
3696 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3698 ----------------------------------
3700 Hash Cond: (r4t1.c1 = r4t1.c1)
3701 -> Seq Scan on t1 r4t1
3703 -> Seq Scan on t1 r4t1
3706 /*+HashJoin(r4t1 r4t1)*/
3707 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3708 INFO: hint syntax error at or near "HashJoin(r4t1 r4t1)"
3709 DETAIL: Relation name "r4t1" is ambiguous.
3718 ----------------------------------
3720 Hash Cond: (r4t1.c1 = r4t1.c1)
3721 -> Seq Scan on t1 r4t1
3723 -> Seq Scan on t1 r4t1
3727 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3729 ----------------------------------
3731 Hash Cond: (r4t1.c1 = r5t1.c1)
3732 -> Seq Scan on t1 r4t1
3734 -> Seq Scan on t1 r5t1
3737 /*+NestLoop(r4t1 r5t1)*/
3738 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3747 -----------------------------------------
3749 -> Seq Scan on t1 r4t1
3750 -> Index Scan using t1_i1 on t1 r5t1
3751 Index Cond: (c1 = r4t1.c1)
3755 ---- No. J-2-4 VALUES clause
3758 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;
3760 -------------------------------------------------
3763 Hash Cond: (t2.c1 = "*VALUES*".column1)
3766 -> Values Scan on "*VALUES*"
3767 -> Index Scan using t1_i1 on t1
3768 Index Cond: (c1 = t2.c1)
3771 /*+ Leading(t3 t1 t2) HashJoin(t3 t1)NestLoop(t3 t1 t2)*/
3772 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;
3783 -------------------------------------------------
3786 Hash Cond: (t2.c1 = "*VALUES*".column1)
3789 -> Values Scan on "*VALUES*"
3790 -> Index Scan using t1_i1 on t1
3791 Index Cond: (c1 = t2.c1)
3794 /*+ Leading(*VALUES* t1 t2) HashJoin(*VALUES* t1)NestLoop(*VALUES* t1 t2)*/
3795 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;
3798 HashJoin(*VALUES* t1)
3799 NestLoop(*VALUES* t1 t2)
3800 Leading(*VALUES* t1 t2)
3806 -------------------------------------------------
3809 Hash Cond: (t1.c1 = "*VALUES*".column1)
3812 -> Values Scan on "*VALUES*"
3813 -> Index Scan using t2_i1 on t2
3814 Index Cond: (c1 = t1.c1)
3818 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;
3820 -------------------------------------------------------
3822 Join Filter: (t1.c1 = "*VALUES*".column1)
3825 Hash Cond: (t2.c1 = "*VALUES*".column1)
3828 -> Values Scan on "*VALUES*"
3829 -> Index Scan using t1_i1 on t1
3830 Index Cond: (c1 = t2.c1)
3831 -> Values Scan on "*VALUES*"
3834 /*+ Leading(t4 t3 t2 t1) NestLoop(t4 t3)HashJoin(t4 t3 t2)MergeJoin(t4 t3 t2 t1)*/
3835 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;
3841 MergeJoin(t1 t2 t3 t4)
3842 Leading(t4 t3 t2 t1)
3847 -------------------------------------------------------
3849 Join Filter: (t1.c1 = "*VALUES*".column1)
3852 Hash Cond: (t2.c1 = "*VALUES*".column1)
3855 -> Values Scan on "*VALUES*"
3856 -> Index Scan using t1_i1 on t1
3857 Index Cond: (c1 = t2.c1)
3858 -> Values Scan on "*VALUES*"
3861 /*+ Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)*/
3862 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;
3863 INFO: hint syntax error at or near "HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)"
3864 DETAIL: Relation name "*VALUES*" is ambiguous.
3865 INFO: hint syntax error at or near "MergeJoin(*VALUES* t3 t2 t1)"
3866 DETAIL: Relation name "*VALUES*" is ambiguous.
3867 INFO: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)"
3868 DETAIL: Relation name "*VALUES*" is ambiguous.
3875 HashJoin(*VALUES* t2 t3)
3876 MergeJoin(*VALUES* t1 t2 t3)
3877 Leading(*VALUES* t3 t2 t1)
3880 -------------------------------------------------------
3882 Join Filter: (t1.c1 = "*VALUES*".column1)
3885 Hash Cond: (t2.c1 = "*VALUES*".column1)
3888 -> Values Scan on "*VALUES*"
3889 -> Index Scan using t1_i1 on t1
3890 Index Cond: (c1 = t2.c1)
3891 -> Values Scan on "*VALUES*"
3895 ---- No. J-3-1 join method hint
3898 SET enable_nestloop TO on;
3899 SET enable_mergejoin TO off;
3900 SET enable_hashjoin TO off;
3901 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3903 ------------------------------------
3906 -> Index Scan using t1_i1 on t1
3907 Index Cond: (c1 = t2.c1)
3910 /*+NestLoop(t1 t2)*/
3911 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3920 ------------------------------------
3923 -> Index Scan using t1_i1 on t1
3924 Index Cond: (c1 = t2.c1)
3927 /*+HashJoin(t1 t2)*/
3928 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3937 ------------------------------
3939 Hash Cond: (t1.c1 = t2.c1)
3945 /*+MergeJoin(t1 t2)*/
3946 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3955 ------------------------------------
3957 Merge Cond: (t1.c1 = t2.c1)
3958 -> Index Scan using t1_i1 on t1
3964 SET enable_mergejoin TO on;
3965 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';;
3967 -----------------------------------------
3969 Join Filter: (t1.c1 = t2.c1)
3971 TID Cond: (ctid = '(1,1)'::tid)
3975 /*+NoNestLoop(t1 t2)*/
3976 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';;
3985 -----------------------------------------------
3987 Merge Cond: (t1.c1 = t2.c1)
3991 TID Cond: (ctid = '(1,1)'::tid)
3997 SET enable_mergejoin TO off;
3998 /*+NoHashJoin(t1 t2)*/
3999 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4008 ------------------------------------
4011 -> Index Scan using t1_i1 on t1
4012 Index Cond: (c1 = t2.c1)
4015 /*+NoMergeJoin(t1 t2)*/
4016 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4025 ------------------------------------
4028 -> Index Scan using t1_i1 on t1
4029 Index Cond: (c1 = t2.c1)
4033 SET enable_nestloop TO off;
4034 SET enable_mergejoin TO off;
4035 SET enable_hashjoin TO on;
4036 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4038 ------------------------------
4040 Hash Cond: (t1.c1 = t2.c1)
4046 /*+NestLoop(t1 t2)*/
4047 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4056 ------------------------------------
4059 -> Index Scan using t1_i1 on t1
4060 Index Cond: (c1 = t2.c1)
4063 /*+HashJoin(t1 t2)*/
4064 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4073 ------------------------------
4075 Hash Cond: (t1.c1 = t2.c1)
4081 /*+MergeJoin(t1 t2)*/
4082 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4091 ------------------------------------
4093 Merge Cond: (t1.c1 = t2.c1)
4094 -> Index Scan using t1_i1 on t1
4100 /*+NoNestLoop(t1 t2)*/
4101 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4110 ------------------------------
4112 Hash Cond: (t1.c1 = t2.c1)
4118 /*+NoHashJoin(t1 t2)*/
4119 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4128 ------------------------------------
4131 -> Index Scan using t1_i1 on t1
4132 Index Cond: (c1 = t2.c1)
4135 /*+NoMergeJoin(t1 t2)*/
4136 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4145 ------------------------------
4147 Hash Cond: (t1.c1 = t2.c1)
4154 SET enable_nestloop TO off;
4155 SET enable_mergejoin TO on;
4156 SET enable_hashjoin TO off;
4157 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4159 ------------------------------------
4161 Merge Cond: (t1.c1 = t2.c1)
4162 -> Index Scan using t1_i1 on t1
4168 /*+NestLoop(t1 t2)*/
4169 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4178 ------------------------------------
4181 -> Index Scan using t1_i1 on t1
4182 Index Cond: (c1 = t2.c1)
4185 /*+HashJoin(t1 t2)*/
4186 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4195 ------------------------------
4197 Hash Cond: (t1.c1 = t2.c1)
4203 /*+MergeJoin(t1 t2)*/
4204 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4213 ------------------------------------
4215 Merge Cond: (t1.c1 = t2.c1)
4216 -> Index Scan using t1_i1 on t1
4222 /*+NoNestLoop(t1 t2)*/
4223 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4232 ------------------------------------
4234 Merge Cond: (t1.c1 = t2.c1)
4235 -> Index Scan using t1_i1 on t1
4241 /*+NoHashJoin(t1 t2)*/
4242 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4251 ------------------------------------
4253 Merge Cond: (t1.c1 = t2.c1)
4254 -> Index Scan using t1_i1 on t1
4260 /*+NoMergeJoin(t1 t2)*/
4261 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4270 ------------------------------------
4273 -> Index Scan using t1_i1 on t1
4274 Index Cond: (c1 = t2.c1)
4277 SET enable_nestloop TO on;
4278 SET enable_mergejoin TO on;
4279 SET enable_hashjoin TO on;
4281 ---- No. J-3-2 join inherit tables
4283 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4285 ---------------------------------------
4287 Hash Cond: (s1.p2.c1 = s1.p1.c1)
4290 -> Seq Scan on p2c1 p2
4291 -> Seq Scan on p2c2 p2
4292 -> Seq Scan on p2c3 p2
4293 -> Seq Scan on p2c1c1 p2
4294 -> Seq Scan on p2c1c2 p2
4295 -> Seq Scan on p2c2c1 p2
4296 -> Seq Scan on p2c2c2 p2
4297 -> Seq Scan on p2c3c1 p2
4298 -> Seq Scan on p2c3c2 p2
4302 -> Seq Scan on p1c1 p1
4303 -> Seq Scan on p1c2 p1
4304 -> Seq Scan on p1c3 p1
4308 /*+MergeJoin(p1 p2)*/
4309 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4318 -----------------------------------------
4320 Merge Cond: (s1.p1.c1 = s1.p2.c1)
4325 -> Seq Scan on p1c1 p1
4326 -> Seq Scan on p1c2 p1
4327 -> Seq Scan on p1c3 p1
4332 -> Seq Scan on p2c1 p2
4333 -> Seq Scan on p2c2 p2
4334 -> Seq Scan on p2c3 p2
4335 -> Seq Scan on p2c1c1 p2
4336 -> Seq Scan on p2c1c2 p2
4337 -> Seq Scan on p2c2c1 p2
4338 -> Seq Scan on p2c2c2 p2
4339 -> Seq Scan on p2c3c1 p2
4340 -> Seq Scan on p2c3c2 p2
4344 /*+MergeJoin(p1c1 p2c1)*/
4345 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4349 MergeJoin(p1c1 p2c1)
4354 ---------------------------------------
4356 Hash Cond: (s1.p2.c1 = s1.p1.c1)
4359 -> Seq Scan on p2c1 p2
4360 -> Seq Scan on p2c2 p2
4361 -> Seq Scan on p2c3 p2
4362 -> Seq Scan on p2c1c1 p2
4363 -> Seq Scan on p2c1c2 p2
4364 -> Seq Scan on p2c2c1 p2
4365 -> Seq Scan on p2c2c2 p2
4366 -> Seq Scan on p2c3c1 p2
4367 -> Seq Scan on p2c3c2 p2
4371 -> Seq Scan on p1c1 p1
4372 -> Seq Scan on p1c2 p1
4373 -> Seq Scan on p1c3 p1
4377 ---- No. J-3-3 conflict join method hint
4379 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4381 ------------------------------------
4383 Merge Cond: (t1.c1 = t2.c1)
4384 -> Index Scan using t1_i1 on t1
4391 /*+HashJoin(t1 t2)NestLoop(t1 t2)*/
4392 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4393 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t1 t2)"
4394 DETAIL: Conflict join method hint.
4404 ------------------------------------
4407 -> Index Scan using t1_i1 on t1
4408 Index Cond: (c1 = t2.c1)
4412 /*+MergeJoin(t1 t2)HashJoin(t1 t2)NestLoop(t1 t2)*/
4413 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4414 INFO: hint syntax error at or near "MergeJoin(t1 t2)HashJoin(t1 t2)NestLoop(t1 t2)"
4415 DETAIL: Conflict join method hint.
4416 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t1 t2)"
4417 DETAIL: Conflict join method hint.
4428 ------------------------------------
4431 -> Index Scan using t1_i1 on t1
4432 Index Cond: (c1 = t2.c1)
4436 /*+HashJoin(t1 t2)NestLoop(t2 t1)*/
4437 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4438 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)"
4439 DETAIL: Conflict join method hint.
4449 ------------------------------------
4452 -> Index Scan using t1_i1 on t1
4453 Index Cond: (c1 = t2.c1)
4457 /*+MergeJoin(t2 t1)HashJoin(t1 t2)NestLoop(t2 t1)*/
4458 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4459 INFO: hint syntax error at or near "MergeJoin(t2 t1)HashJoin(t1 t2)NestLoop(t2 t1)"
4460 DETAIL: Conflict join method hint.
4461 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)"
4462 DETAIL: Conflict join method hint.
4473 ------------------------------------
4476 -> Index Scan using t1_i1 on t1
4477 Index Cond: (c1 = t2.c1)
4481 ---- No. J-3-4 hint state output
4484 /*+NestLoop(t1 t2)*/
4485 SELECT * FROM s1.t1, s1.t2 WHERE false;
4493 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4494 ----+----+----+----+----+----+----+----
4498 /*+HashJoin(t1 t2)*/
4499 SELECT * FROM s1.t1, s1.t2 WHERE false;
4507 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4508 ----+----+----+----+----+----+----+----
4512 /*+MergeJoin(t1 t2)*/
4513 SELECT * FROM s1.t1, s1.t2 WHERE false;
4521 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4522 ----+----+----+----+----+----+----+----
4526 /*+NoNestLoop(t1 t2)*/
4527 SELECT * FROM s1.t1, s1.t2 WHERE false;
4535 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4536 ----+----+----+----+----+----+----+----
4540 /*+NoHashJoin(t1 t2)*/
4541 SELECT * FROM s1.t1, s1.t2 WHERE false;
4549 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4550 ----+----+----+----+----+----+----+----
4554 /*+NoMergeJoin(t1 t2)*/
4555 SELECT * FROM s1.t1, s1.t2 WHERE false;
4563 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4564 ----+----+----+----+----+----+----+----
4569 SELECT * FROM s1.t1 WHERE false;
4570 INFO: hint syntax error at or near ""
4571 DETAIL: NestLoop hint requires at least two relations.
4585 SELECT * FROM s1.t1 WHERE false;
4586 INFO: hint syntax error at or near ""
4587 DETAIL: NestLoop hint requires at least two relations.
4600 /*+NestLoop(t1 t2)*/
4601 SELECT * FROM s1.t1, s1.t2 WHERE false;
4609 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4610 ----+----+----+----+----+----+----+----
4614 /*+NestLoop(t1 t2 t3)*/
4615 SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE false;
4623 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4624 ----+----+----+----+----+----+----+----+----+----+----+----
4628 ---- No. J-3-5 not used hint
4631 EXPLAIN (COSTS false) SELECT * FROM s1.t1 FULL OUTER JOIN s1.t2 ON (t1.c1 = t2.c1);
4633 ------------------------------
4635 Hash Cond: (t1.c1 = t2.c1)
4641 /*+NestLoop(t1 t2)*/
4642 EXPLAIN (COSTS true) SELECT * FROM s1.t1 FULL OUTER JOIN s1.t2 ON (t1.c1 = t2.c1);
4651 --------------------------------------------------------------------------
4652 Hash Full Join (cost=10000000003.25..10000000024.00 rows=1000 width=29)
4653 Hash Cond: (t1.c1 = t2.c1)
4654 -> Seq Scan on t1 (cost=0.00..16.00 rows=1000 width=15)
4655 -> Hash (cost=2.00..2.00 rows=100 width=14)
4656 -> Seq Scan on t2 (cost=0.00..2.00 rows=100 width=14)