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 b1t2 b1t3 b1t4 b1t1 b2t3 b2t4 b2t1 b2t2)
923 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
924 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
925 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
927 EXPLAIN (COSTS false)
928 SELECT max(bmt1.c1), (
929 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)'
931 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)'
933 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)'
940 HashJoin(b1t2 b1t3 b1t4)
941 HashJoin(b2t1 b2t3 b2t4)
942 HashJoin(bmt1 bmt2 bmt3)
943 NestLoop(b1t1 b1t2 b1t3 b1t4)
944 NestLoop(b2t1 b2t2 b2t3 b2t4)
945 NestLoop(bmt1 bmt2 bmt3 bmt4)
946 Leading(bmt1 bmt2 bmt3 bmt4 b1t2 b1t3 b1t4 b1t1 b2t3 b2t4 b2t1 b2t2)
952 -------------------------------------------------------------------------------
954 InitPlan 1 (returns $0)
957 Join Filter: (b1t2.c1 = b1t1.c1)
959 Hash Cond: (b1t4.c1 = b1t2.c1)
960 -> Tid Scan on t4 b1t4
961 TID Cond: (ctid = '(1,1)'::tid)
964 Merge Cond: (b1t2.c1 = b1t3.c1)
967 -> Seq Scan on t2 b1t2
968 Filter: (ctid = '(1,1)'::tid)
971 -> Tid Scan on t3 b1t3
972 TID Cond: (ctid = '(1,1)'::tid)
973 -> Tid Scan on t1 b1t1
974 TID Cond: (ctid = '(1,1)'::tid)
975 InitPlan 2 (returns $1)
978 Join Filter: (b2t1.c1 = b2t2.c1)
980 Hash Cond: (b2t1.c1 = b2t3.c1)
981 -> Tid Scan on t1 b2t1
982 TID Cond: (ctid = '(1,1)'::tid)
985 Merge Cond: (b2t3.c1 = b2t4.c1)
988 -> Tid Scan on t3 b2t3
989 TID Cond: (ctid = '(1,1)'::tid)
992 -> Tid Scan on t4 b2t4
993 TID Cond: (ctid = '(1,1)'::tid)
994 -> Seq Scan on t2 b2t2
995 Filter: (ctid = '(1,1)'::tid)
997 Join Filter: (bmt1.c1 = bmt4.c1)
999 Hash Cond: (bmt3.c1 = bmt1.c1)
1000 -> Tid Scan on t3 bmt3
1001 TID Cond: (ctid = '(1,1)'::tid)
1004 Merge Cond: (bmt1.c1 = bmt2.c1)
1007 -> Tid Scan on t1 bmt1
1008 TID Cond: (ctid = '(1,1)'::tid)
1011 -> Seq Scan on t2 bmt2
1012 Filter: (ctid = '(1,1)'::tid)
1013 -> Tid Scan on t4 bmt4
1014 TID Cond: (ctid = '(1,1)'::tid)
1018 EXPLAIN (COSTS false)
1019 SELECT max(bmt1.c1), (
1020 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)'
1022 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)'
1024 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)'
1026 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)'
1029 -------------------------------------------------------------------
1031 InitPlan 1 (returns $0)
1034 Join Filter: (b1t1.c1 = b1t4.c1)
1036 Join Filter: (b1t1.c1 = b1t3.c1)
1038 Join Filter: (b1t1.c1 = b1t2.c1)
1039 -> Tid Scan on t1 b1t1
1040 TID Cond: (ctid = '(1,1)'::tid)
1041 -> Seq Scan on t2 b1t2
1042 Filter: (ctid = '(1,1)'::tid)
1043 -> Tid Scan on t3 b1t3
1044 TID Cond: (ctid = '(1,1)'::tid)
1045 -> Tid Scan on t4 b1t4
1046 TID Cond: (ctid = '(1,1)'::tid)
1047 InitPlan 2 (returns $1)
1050 Join Filter: (b2t1.c1 = b2t4.c1)
1052 Join Filter: (b2t1.c1 = b2t3.c1)
1054 Join Filter: (b2t1.c1 = b2t2.c1)
1055 -> Tid Scan on t1 b2t1
1056 TID Cond: (ctid = '(1,1)'::tid)
1057 -> Seq Scan on t2 b2t2
1058 Filter: (ctid = '(1,1)'::tid)
1059 -> Tid Scan on t3 b2t3
1060 TID Cond: (ctid = '(1,1)'::tid)
1061 -> Tid Scan on t4 b2t4
1062 TID Cond: (ctid = '(1,1)'::tid)
1063 InitPlan 3 (returns $2)
1066 Join Filter: (b3t1.c1 = b3t4.c1)
1068 Join Filter: (b3t1.c1 = b3t3.c1)
1070 Join Filter: (b3t1.c1 = b3t2.c1)
1071 -> Tid Scan on t1 b3t1
1072 TID Cond: (ctid = '(1,1)'::tid)
1073 -> Seq Scan on t2 b3t2
1074 Filter: (ctid = '(1,1)'::tid)
1075 -> Tid Scan on t3 b3t3
1076 TID Cond: (ctid = '(1,1)'::tid)
1077 -> Tid Scan on t4 b3t4
1078 TID Cond: (ctid = '(1,1)'::tid)
1080 Join Filter: (bmt1.c1 = bmt4.c1)
1082 Join Filter: (bmt1.c1 = bmt3.c1)
1084 Join Filter: (bmt1.c1 = bmt2.c1)
1085 -> Tid Scan on t1 bmt1
1086 TID Cond: (ctid = '(1,1)'::tid)
1087 -> Seq Scan on t2 bmt2
1088 Filter: (ctid = '(1,1)'::tid)
1089 -> Tid Scan on t3 bmt3
1090 TID Cond: (ctid = '(1,1)'::tid)
1091 -> Tid Scan on t4 bmt4
1092 TID Cond: (ctid = '(1,1)'::tid)
1096 Leading(bmt1 bmt2 bmt3 bmt4 b1t2 b1t3 b1t4 b1t1 b2t3 b2t4 b2t1 b2t2 b3t4 b3t1 b3t2 b3t3)
1097 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1098 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1099 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1100 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1102 EXPLAIN (COSTS false)
1103 SELECT max(bmt1.c1), (
1104 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)'
1106 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)'
1108 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)'
1110 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)'
1114 MergeJoin(b1t2 b1t3)
1115 MergeJoin(b2t3 b2t4)
1116 MergeJoin(b3t1 b3t4)
1117 MergeJoin(bmt1 bmt2)
1118 HashJoin(b1t2 b1t3 b1t4)
1119 HashJoin(b2t1 b2t3 b2t4)
1120 HashJoin(b3t1 b3t2 b3t4)
1121 HashJoin(bmt1 bmt2 bmt3)
1122 NestLoop(b1t1 b1t2 b1t3 b1t4)
1123 NestLoop(b2t1 b2t2 b2t3 b2t4)
1124 NestLoop(b3t1 b3t2 b3t3 b3t4)
1125 NestLoop(bmt1 bmt2 bmt3 bmt4)
1126 Leading(bmt1 bmt2 bmt3 bmt4 b1t2 b1t3 b1t4 b1t1 b2t3 b2t4 b2t1 b2t2 b3t4 b3t1 b3t2 b3t3)
1132 -------------------------------------------------------------------------------
1134 InitPlan 1 (returns $0)
1137 Join Filter: (b1t2.c1 = b1t1.c1)
1139 Hash Cond: (b1t4.c1 = b1t2.c1)
1140 -> Tid Scan on t4 b1t4
1141 TID Cond: (ctid = '(1,1)'::tid)
1144 Merge Cond: (b1t2.c1 = b1t3.c1)
1147 -> Seq Scan on t2 b1t2
1148 Filter: (ctid = '(1,1)'::tid)
1151 -> Tid Scan on t3 b1t3
1152 TID Cond: (ctid = '(1,1)'::tid)
1153 -> Tid Scan on t1 b1t1
1154 TID Cond: (ctid = '(1,1)'::tid)
1155 InitPlan 2 (returns $1)
1158 Join Filter: (b2t1.c1 = b2t2.c1)
1160 Hash Cond: (b2t1.c1 = b2t3.c1)
1161 -> Tid Scan on t1 b2t1
1162 TID Cond: (ctid = '(1,1)'::tid)
1165 Merge Cond: (b2t3.c1 = b2t4.c1)
1168 -> Tid Scan on t3 b2t3
1169 TID Cond: (ctid = '(1,1)'::tid)
1172 -> Tid Scan on t4 b2t4
1173 TID Cond: (ctid = '(1,1)'::tid)
1174 -> Seq Scan on t2 b2t2
1175 Filter: (ctid = '(1,1)'::tid)
1176 InitPlan 3 (returns $2)
1179 Join Filter: (b3t1.c1 = b3t3.c1)
1181 Hash Cond: (b3t2.c1 = b3t1.c1)
1182 -> Seq Scan on t2 b3t2
1183 Filter: (ctid = '(1,1)'::tid)
1186 Merge Cond: (b3t1.c1 = b3t4.c1)
1189 -> Tid Scan on t1 b3t1
1190 TID Cond: (ctid = '(1,1)'::tid)
1193 -> Tid Scan on t4 b3t4
1194 TID Cond: (ctid = '(1,1)'::tid)
1195 -> Tid Scan on t3 b3t3
1196 TID Cond: (ctid = '(1,1)'::tid)
1198 Join Filter: (bmt1.c1 = bmt4.c1)
1200 Hash Cond: (bmt3.c1 = bmt1.c1)
1201 -> Tid Scan on t3 bmt3
1202 TID Cond: (ctid = '(1,1)'::tid)
1205 Merge Cond: (bmt1.c1 = bmt2.c1)
1208 -> Tid Scan on t1 bmt1
1209 TID Cond: (ctid = '(1,1)'::tid)
1212 -> Seq Scan on t2 bmt2
1213 Filter: (ctid = '(1,1)'::tid)
1214 -> Tid Scan on t4 bmt4
1215 TID Cond: (ctid = '(1,1)'::tid)
1219 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)';
1221 -----------------------------------------------------------
1224 Join Filter: (bmt1.c1 = bmt4.c1)
1226 Join Filter: (bmt1.c1 = bmt3.c1)
1228 Join Filter: (bmt1.c1 = bmt2.c1)
1229 -> Tid Scan on t1 bmt1
1230 TID Cond: (ctid = '(1,1)'::tid)
1231 -> Seq Scan on t2 bmt2
1232 Filter: (ctid = '(1,1)'::tid)
1233 -> Tid Scan on t3 bmt3
1234 TID Cond: (ctid = '(1,1)'::tid)
1235 -> Tid Scan on t4 bmt4
1236 TID Cond: (ctid = '(1,1)'::tid)
1240 Leading(bmt4 bmt3 bmt2 bmt1)
1241 MergeJoin(bmt4 bmt3)HashJoin(bmt4 bmt3 bmt2)NestLoop(bmt1 bmt2 bmt3 bmt4)
1243 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)';
1246 MergeJoin(bmt3 bmt4)
1247 HashJoin(bmt2 bmt3 bmt4)
1248 NestLoop(bmt1 bmt2 bmt3 bmt4)
1249 Leading(bmt4 bmt3 bmt2 bmt1)
1255 -----------------------------------------------------------------------
1258 Join Filter: (bmt2.c1 = bmt1.c1)
1260 Hash Cond: (bmt2.c1 = bmt3.c1)
1261 -> Seq Scan on t2 bmt2
1262 Filter: (ctid = '(1,1)'::tid)
1265 Merge Cond: (bmt3.c1 = bmt4.c1)
1268 -> Tid Scan on t3 bmt3
1269 TID Cond: (ctid = '(1,1)'::tid)
1272 -> Tid Scan on t4 bmt4
1273 TID Cond: (ctid = '(1,1)'::tid)
1274 -> Tid Scan on t1 bmt1
1275 TID Cond: (ctid = '(1,1)'::tid)
1279 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)';
1281 -----------------------------------------------------------
1284 Join Filter: (bmt1.c1 = bmt4.c1)
1286 Join Filter: (bmt1.c1 = bmt3.c1)
1288 Join Filter: (bmt1.c1 = bmt2.c1)
1289 -> Tid Scan on t1 bmt1
1290 TID Cond: (ctid = '(1,1)'::tid)
1291 -> Seq Scan on t2 bmt2
1292 Filter: (ctid = '(1,1)'::tid)
1293 -> Tid Scan on t3 bmt3
1294 TID Cond: (ctid = '(1,1)'::tid)
1295 -> Tid Scan on t4 bmt4
1296 TID Cond: (ctid = '(1,1)'::tid)
1300 Leading(bmt4 bmt3 bmt2 bmt1)
1301 MergeJoin(bmt4 bmt3)HashJoin(bmt4 bmt3 bmt2)NestLoop(bmt1 bmt2 bmt3 bmt4)
1303 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)';
1306 MergeJoin(bmt3 bmt4)
1307 HashJoin(bmt2 bmt3 bmt4)
1308 NestLoop(bmt1 bmt2 bmt3 bmt4)
1309 Leading(bmt4 bmt3 bmt2 bmt1)
1315 -----------------------------------------------------------------------
1318 Join Filter: (bmt2.c1 = bmt1.c1)
1320 Hash Cond: (bmt2.c1 = bmt3.c1)
1321 -> Seq Scan on t2 bmt2
1322 Filter: (ctid = '(1,1)'::tid)
1325 Merge Cond: (bmt3.c1 = bmt4.c1)
1328 -> Tid Scan on t3 bmt3
1329 TID Cond: (ctid = '(1,1)'::tid)
1332 -> Tid Scan on t4 bmt4
1333 TID Cond: (ctid = '(1,1)'::tid)
1334 -> Tid Scan on t1 bmt1
1335 TID Cond: (ctid = '(1,1)'::tid)
1339 EXPLAIN (COSTS false)
1340 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)'
1342 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)'
1344 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)'
1348 -------------------------------------------------------------------
1350 InitPlan 1 (returns $0)
1353 Join Filter: (b1t1.c1 = b1t4.c1)
1355 Join Filter: (b1t1.c1 = b1t3.c1)
1357 Join Filter: (b1t1.c1 = b1t2.c1)
1358 -> Tid Scan on t1 b1t1
1359 TID Cond: (ctid = '(1,1)'::tid)
1360 -> Seq Scan on t2 b1t2
1361 Filter: (ctid = '(1,1)'::tid)
1362 -> Tid Scan on t3 b1t3
1363 TID Cond: (ctid = '(1,1)'::tid)
1364 -> Tid Scan on t4 b1t4
1365 TID Cond: (ctid = '(1,1)'::tid)
1366 InitPlan 2 (returns $1)
1369 Join Filter: (b2t1.c1 = b2t4.c1)
1371 Join Filter: (b2t1.c1 = b2t3.c1)
1373 Join Filter: (b2t1.c1 = b2t2.c1)
1374 -> Tid Scan on t1 b2t1
1375 TID Cond: (ctid = '(1,1)'::tid)
1376 -> Seq Scan on t2 b2t2
1377 Filter: (ctid = '(1,1)'::tid)
1378 -> Tid Scan on t3 b2t3
1379 TID Cond: (ctid = '(1,1)'::tid)
1380 -> Tid Scan on t4 b2t4
1381 TID Cond: (ctid = '(1,1)'::tid)
1383 Join Filter: (bmt1.c1 = bmt4.c1)
1385 Join Filter: (bmt1.c1 = bmt3.c1)
1387 Join Filter: (bmt1.c1 = bmt2.c1)
1388 -> Tid Scan on t1 bmt1
1389 TID Cond: (ctid = '(1,1)'::tid)
1390 Filter: ((c1 <> $0) AND (c1 <> $1))
1391 -> Seq Scan on t2 bmt2
1392 Filter: (ctid = '(1,1)'::tid)
1393 -> Tid Scan on t3 bmt3
1394 TID Cond: (ctid = '(1,1)'::tid)
1395 -> Tid Scan on t4 bmt4
1396 TID Cond: (ctid = '(1,1)'::tid)
1400 Leading(bmt1 bmt2 bmt3 bmt4 b1t2 b1t3 b1t4 b1t1 b2t3 b2t4 b2t1 b2t2)
1401 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1402 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1403 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1405 EXPLAIN (COSTS false)
1406 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)'
1408 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)'
1410 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)'
1415 MergeJoin(b1t2 b1t3)
1416 MergeJoin(b2t3 b2t4)
1417 MergeJoin(bmt1 bmt2)
1418 HashJoin(b1t2 b1t3 b1t4)
1419 HashJoin(b2t1 b2t3 b2t4)
1420 HashJoin(bmt1 bmt2 bmt3)
1421 NestLoop(b1t1 b1t2 b1t3 b1t4)
1422 NestLoop(b2t1 b2t2 b2t3 b2t4)
1423 NestLoop(bmt1 bmt2 bmt3 bmt4)
1424 Leading(bmt1 bmt2 bmt3 bmt4 b1t2 b1t3 b1t4 b1t1 b2t3 b2t4 b2t1 b2t2)
1430 -------------------------------------------------------------------------------
1432 InitPlan 1 (returns $0)
1435 Join Filter: (b1t2.c1 = b1t1.c1)
1437 Hash Cond: (b1t4.c1 = b1t2.c1)
1438 -> Tid Scan on t4 b1t4
1439 TID Cond: (ctid = '(1,1)'::tid)
1442 Merge Cond: (b1t2.c1 = b1t3.c1)
1445 -> Seq Scan on t2 b1t2
1446 Filter: (ctid = '(1,1)'::tid)
1449 -> Tid Scan on t3 b1t3
1450 TID Cond: (ctid = '(1,1)'::tid)
1451 -> Tid Scan on t1 b1t1
1452 TID Cond: (ctid = '(1,1)'::tid)
1453 InitPlan 2 (returns $1)
1456 Join Filter: (b2t1.c1 = b2t2.c1)
1458 Hash Cond: (b2t1.c1 = b2t3.c1)
1459 -> Tid Scan on t1 b2t1
1460 TID Cond: (ctid = '(1,1)'::tid)
1463 Merge Cond: (b2t3.c1 = b2t4.c1)
1466 -> Tid Scan on t3 b2t3
1467 TID Cond: (ctid = '(1,1)'::tid)
1470 -> Tid Scan on t4 b2t4
1471 TID Cond: (ctid = '(1,1)'::tid)
1472 -> Seq Scan on t2 b2t2
1473 Filter: (ctid = '(1,1)'::tid)
1475 Join Filter: (bmt1.c1 = bmt4.c1)
1477 Hash Cond: (bmt3.c1 = bmt1.c1)
1478 -> Tid Scan on t3 bmt3
1479 TID Cond: (ctid = '(1,1)'::tid)
1482 Merge Cond: (bmt1.c1 = bmt2.c1)
1485 -> Tid Scan on t1 bmt1
1486 TID Cond: (ctid = '(1,1)'::tid)
1487 Filter: ((c1 <> $0) AND (c1 <> $1))
1490 -> Seq Scan on t2 bmt2
1491 Filter: (ctid = '(1,1)'::tid)
1492 -> Tid Scan on t4 bmt4
1493 TID Cond: (ctid = '(1,1)'::tid)
1497 EXPLAIN (COSTS false)
1498 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)'
1500 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)'
1502 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)'
1504 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)'
1508 ------------------------------------------------------------------------------
1510 InitPlan 1 (returns $0)
1513 Join Filter: (b1t1.c1 = b1t4.c1)
1515 Join Filter: (b1t1.c1 = b1t3.c1)
1517 Join Filter: (b1t1.c1 = b1t2.c1)
1518 -> Tid Scan on t1 b1t1
1519 TID Cond: (ctid = '(1,1)'::tid)
1520 -> Seq Scan on t2 b1t2
1521 Filter: (ctid = '(1,1)'::tid)
1522 -> Tid Scan on t3 b1t3
1523 TID Cond: (ctid = '(1,1)'::tid)
1524 -> Tid Scan on t4 b1t4
1525 TID Cond: (ctid = '(1,1)'::tid)
1526 InitPlan 2 (returns $1)
1529 Join Filter: (b2t1.c1 = b2t4.c1)
1531 Join Filter: (b2t1.c1 = b2t3.c1)
1533 Join Filter: (b2t1.c1 = b2t2.c1)
1534 -> Tid Scan on t1 b2t1
1535 TID Cond: (ctid = '(1,1)'::tid)
1536 -> Seq Scan on t2 b2t2
1537 Filter: (ctid = '(1,1)'::tid)
1538 -> Tid Scan on t3 b2t3
1539 TID Cond: (ctid = '(1,1)'::tid)
1540 -> Tid Scan on t4 b2t4
1541 TID Cond: (ctid = '(1,1)'::tid)
1542 InitPlan 3 (returns $2)
1545 Join Filter: (b3t1.c1 = b3t4.c1)
1547 Join Filter: (b3t1.c1 = b3t3.c1)
1549 Join Filter: (b3t1.c1 = b3t2.c1)
1550 -> Tid Scan on t1 b3t1
1551 TID Cond: (ctid = '(1,1)'::tid)
1552 -> Seq Scan on t2 b3t2
1553 Filter: (ctid = '(1,1)'::tid)
1554 -> Tid Scan on t3 b3t3
1555 TID Cond: (ctid = '(1,1)'::tid)
1556 -> Tid Scan on t4 b3t4
1557 TID Cond: (ctid = '(1,1)'::tid)
1559 Join Filter: (bmt1.c1 = bmt4.c1)
1561 Join Filter: (bmt1.c1 = bmt3.c1)
1563 Join Filter: (bmt1.c1 = bmt2.c1)
1564 -> Tid Scan on t1 bmt1
1565 TID Cond: (ctid = '(1,1)'::tid)
1566 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1567 -> Seq Scan on t2 bmt2
1568 Filter: (ctid = '(1,1)'::tid)
1569 -> Tid Scan on t3 bmt3
1570 TID Cond: (ctid = '(1,1)'::tid)
1571 -> Tid Scan on t4 bmt4
1572 TID Cond: (ctid = '(1,1)'::tid)
1576 Leading(bmt1 bmt2 bmt3 bmt4 b1t2 b1t3 b1t4 b1t1 b2t3 b2t4 b2t1 b2t2 b3t4 b3t1 b3t2 b3t3)
1577 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1578 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1579 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1580 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1582 EXPLAIN (COSTS false)
1583 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)'
1585 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)'
1587 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)'
1589 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)'
1594 MergeJoin(b1t2 b1t3)
1595 MergeJoin(b2t3 b2t4)
1596 MergeJoin(b3t1 b3t4)
1597 MergeJoin(bmt1 bmt2)
1598 HashJoin(b1t2 b1t3 b1t4)
1599 HashJoin(b2t1 b2t3 b2t4)
1600 HashJoin(b3t1 b3t2 b3t4)
1601 HashJoin(bmt1 bmt2 bmt3)
1602 NestLoop(b1t1 b1t2 b1t3 b1t4)
1603 NestLoop(b2t1 b2t2 b2t3 b2t4)
1604 NestLoop(b3t1 b3t2 b3t3 b3t4)
1605 NestLoop(bmt1 bmt2 bmt3 bmt4)
1606 Leading(bmt1 bmt2 bmt3 bmt4 b1t2 b1t3 b1t4 b1t1 b2t3 b2t4 b2t1 b2t2 b3t4 b3t1 b3t2 b3t3)
1612 ------------------------------------------------------------------------------------------
1614 InitPlan 1 (returns $0)
1617 Join Filter: (b1t2.c1 = b1t1.c1)
1619 Hash Cond: (b1t4.c1 = b1t2.c1)
1620 -> Tid Scan on t4 b1t4
1621 TID Cond: (ctid = '(1,1)'::tid)
1624 Merge Cond: (b1t2.c1 = b1t3.c1)
1627 -> Seq Scan on t2 b1t2
1628 Filter: (ctid = '(1,1)'::tid)
1631 -> Tid Scan on t3 b1t3
1632 TID Cond: (ctid = '(1,1)'::tid)
1633 -> Tid Scan on t1 b1t1
1634 TID Cond: (ctid = '(1,1)'::tid)
1635 InitPlan 2 (returns $1)
1638 Join Filter: (b2t1.c1 = b2t2.c1)
1640 Hash Cond: (b2t1.c1 = b2t3.c1)
1641 -> Tid Scan on t1 b2t1
1642 TID Cond: (ctid = '(1,1)'::tid)
1645 Merge Cond: (b2t3.c1 = b2t4.c1)
1648 -> Tid Scan on t3 b2t3
1649 TID Cond: (ctid = '(1,1)'::tid)
1652 -> Tid Scan on t4 b2t4
1653 TID Cond: (ctid = '(1,1)'::tid)
1654 -> Seq Scan on t2 b2t2
1655 Filter: (ctid = '(1,1)'::tid)
1656 InitPlan 3 (returns $2)
1659 Join Filter: (b3t1.c1 = b3t3.c1)
1661 Hash Cond: (b3t2.c1 = b3t1.c1)
1662 -> Seq Scan on t2 b3t2
1663 Filter: (ctid = '(1,1)'::tid)
1666 Merge Cond: (b3t1.c1 = b3t4.c1)
1669 -> Tid Scan on t1 b3t1
1670 TID Cond: (ctid = '(1,1)'::tid)
1673 -> Tid Scan on t4 b3t4
1674 TID Cond: (ctid = '(1,1)'::tid)
1675 -> Tid Scan on t3 b3t3
1676 TID Cond: (ctid = '(1,1)'::tid)
1678 Join Filter: (bmt1.c1 = bmt4.c1)
1680 Hash Cond: (bmt3.c1 = bmt1.c1)
1681 -> Tid Scan on t3 bmt3
1682 TID Cond: (ctid = '(1,1)'::tid)
1685 Merge Cond: (bmt1.c1 = bmt2.c1)
1688 -> Tid Scan on t1 bmt1
1689 TID Cond: (ctid = '(1,1)'::tid)
1690 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1693 -> Seq Scan on t2 bmt2
1694 Filter: (ctid = '(1,1)'::tid)
1695 -> Tid Scan on t4 bmt4
1696 TID Cond: (ctid = '(1,1)'::tid)
1700 EXPLAIN (COSTS false)
1702 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)'
1705 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)'
1707 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1709 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)'
1714 -----------------------------------------------------------------------
1719 Join Filter: (b1t1.c1 = b1t4.c1)
1721 Join Filter: (b1t1.c1 = b1t3.c1)
1723 Join Filter: (b1t1.c1 = b1t2.c1)
1724 -> Tid Scan on t1 b1t1
1725 TID Cond: (ctid = '(1,1)'::tid)
1726 -> Seq Scan on t2 b1t2
1727 Filter: (ctid = '(1,1)'::tid)
1728 -> Tid Scan on t3 b1t3
1729 TID Cond: (ctid = '(1,1)'::tid)
1730 -> Tid Scan on t4 b1t4
1731 TID Cond: (ctid = '(1,1)'::tid)
1735 Join Filter: (b2t1.c1 = b2t4.c1)
1737 Join Filter: (b2t1.c1 = b2t3.c1)
1739 Join Filter: (b2t1.c1 = b2t2.c1)
1740 -> Tid Scan on t1 b2t1
1741 TID Cond: (ctid = '(1,1)'::tid)
1742 -> Seq Scan on t2 b2t2
1743 Filter: (ctid = '(1,1)'::tid)
1744 -> Tid Scan on t3 b2t3
1745 TID Cond: (ctid = '(1,1)'::tid)
1746 -> Tid Scan on t4 b2t4
1747 TID Cond: (ctid = '(1,1)'::tid)
1749 Join Filter: (bmt1.c1 = c2.c1)
1751 Join Filter: (bmt1.c1 = c1.c1)
1753 Join Filter: (bmt1.c1 = bmt4.c1)
1755 Join Filter: (bmt1.c1 = bmt3.c1)
1757 Join Filter: (bmt1.c1 = bmt2.c1)
1758 -> Tid Scan on t1 bmt1
1759 TID Cond: (ctid = '(1,1)'::tid)
1760 -> Seq Scan on t2 bmt2
1761 Filter: (ctid = '(1,1)'::tid)
1762 -> Tid Scan on t3 bmt3
1763 TID Cond: (ctid = '(1,1)'::tid)
1764 -> Tid Scan on t4 bmt4
1765 TID Cond: (ctid = '(1,1)'::tid)
1771 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4 b1t2 b1t3 b1t4 b1t1 b2t3 b2t4 b2t1 b2t2)
1772 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)
1773 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1774 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1776 EXPLAIN (COSTS false)
1778 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)'
1781 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)'
1783 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1785 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)'
1791 MergeJoin(b1t2 b1t3)
1792 MergeJoin(b2t3 b2t4)
1794 HashJoin(b1t2 b1t3 b1t4)
1795 HashJoin(b2t1 b2t3 b2t4)
1796 HashJoin(bmt1 c1 c2)
1797 NestLoop(b1t1 b1t2 b1t3 b1t4)
1798 NestLoop(b2t1 b2t2 b2t3 b2t4)
1799 NestLoop(bmt1 bmt2 c1 c2)
1800 MergeJoin(bmt1 bmt2 bmt3 c1 c2)
1801 HashJoin(bmt1 bmt2 bmt3 bmt4 c1 c2)
1802 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4 b1t2 b1t3 b1t4 b1t1 b2t3 b2t4 b2t1 b2t2)
1808 -------------------------------------------------------------------------------
1813 Join Filter: (b1t2.c1 = b1t1.c1)
1815 Hash Cond: (b1t4.c1 = b1t2.c1)
1816 -> Tid Scan on t4 b1t4
1817 TID Cond: (ctid = '(1,1)'::tid)
1820 Merge Cond: (b1t2.c1 = b1t3.c1)
1823 -> Seq Scan on t2 b1t2
1824 Filter: (ctid = '(1,1)'::tid)
1827 -> Tid Scan on t3 b1t3
1828 TID Cond: (ctid = '(1,1)'::tid)
1829 -> Tid Scan on t1 b1t1
1830 TID Cond: (ctid = '(1,1)'::tid)
1834 Join Filter: (b2t1.c1 = b2t2.c1)
1836 Hash Cond: (b2t1.c1 = b2t3.c1)
1837 -> Tid Scan on t1 b2t1
1838 TID Cond: (ctid = '(1,1)'::tid)
1841 Merge Cond: (b2t3.c1 = b2t4.c1)
1844 -> Tid Scan on t3 b2t3
1845 TID Cond: (ctid = '(1,1)'::tid)
1848 -> Tid Scan on t4 b2t4
1849 TID Cond: (ctid = '(1,1)'::tid)
1850 -> Seq Scan on t2 b2t2
1851 Filter: (ctid = '(1,1)'::tid)
1853 Hash Cond: (bmt4.c1 = bmt1.c1)
1854 -> Tid Scan on t4 bmt4
1855 TID Cond: (ctid = '(1,1)'::tid)
1858 Merge Cond: (bmt1.c1 = bmt3.c1)
1862 Join Filter: (bmt1.c1 = bmt2.c1)
1864 Hash Cond: (bmt1.c1 = c1.c1)
1865 -> Tid Scan on t1 bmt1
1866 TID Cond: (ctid = '(1,1)'::tid)
1869 Merge Cond: (c1.c1 = c2.c1)
1876 -> Seq Scan on t2 bmt2
1877 Filter: (ctid = '(1,1)'::tid)
1880 -> Tid Scan on t3 bmt3
1881 TID Cond: (ctid = '(1,1)'::tid)
1885 EXPLAIN (COSTS false)
1887 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)'
1890 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)'
1893 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)'
1895 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1897 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)'
1903 -----------------------------------------------------------------------------
1908 Join Filter: (b1t1.c1 = b1t4.c1)
1910 Join Filter: (b1t1.c1 = b1t3.c1)
1912 Join Filter: (b1t1.c1 = b1t2.c1)
1913 -> Tid Scan on t1 b1t1
1914 TID Cond: (ctid = '(1,1)'::tid)
1915 -> Seq Scan on t2 b1t2
1916 Filter: (ctid = '(1,1)'::tid)
1917 -> Tid Scan on t3 b1t3
1918 TID Cond: (ctid = '(1,1)'::tid)
1919 -> Tid Scan on t4 b1t4
1920 TID Cond: (ctid = '(1,1)'::tid)
1924 Join Filter: (b2t1.c1 = b2t4.c1)
1926 Join Filter: (b2t1.c1 = b2t3.c1)
1928 Join Filter: (b2t1.c1 = b2t2.c1)
1929 -> Tid Scan on t1 b2t1
1930 TID Cond: (ctid = '(1,1)'::tid)
1931 -> Seq Scan on t2 b2t2
1932 Filter: (ctid = '(1,1)'::tid)
1933 -> Tid Scan on t3 b2t3
1934 TID Cond: (ctid = '(1,1)'::tid)
1935 -> Tid Scan on t4 b2t4
1936 TID Cond: (ctid = '(1,1)'::tid)
1940 Join Filter: (b3t1.c1 = b3t4.c1)
1942 Join Filter: (b3t1.c1 = b3t3.c1)
1944 Join Filter: (b3t1.c1 = b3t2.c1)
1945 -> Tid Scan on t1 b3t1
1946 TID Cond: (ctid = '(1,1)'::tid)
1947 -> Seq Scan on t2 b3t2
1948 Filter: (ctid = '(1,1)'::tid)
1949 -> Tid Scan on t3 b3t3
1950 TID Cond: (ctid = '(1,1)'::tid)
1951 -> Tid Scan on t4 b3t4
1952 TID Cond: (ctid = '(1,1)'::tid)
1954 Join Filter: (bmt1.c1 = c3.c1)
1956 Join Filter: (bmt1.c1 = c2.c1)
1958 Join Filter: (bmt1.c1 = c1.c1)
1960 Join Filter: (bmt1.c1 = bmt4.c1)
1962 Join Filter: (bmt1.c1 = bmt3.c1)
1964 Join Filter: (bmt1.c1 = bmt2.c1)
1965 -> Tid Scan on t1 bmt1
1966 TID Cond: (ctid = '(1,1)'::tid)
1967 -> Seq Scan on t2 bmt2
1968 Filter: (ctid = '(1,1)'::tid)
1969 -> Tid Scan on t3 bmt3
1970 TID Cond: (ctid = '(1,1)'::tid)
1971 -> Tid Scan on t4 bmt4
1972 TID Cond: (ctid = '(1,1)'::tid)
1979 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4 b1t2 b1t3 b1t4 b1t1 b2t3 b2t4 b2t1 b2t2 b3t4 b3t1 b3t2 b3t3)
1980 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)
1981 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1982 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1983 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1985 EXPLAIN (COSTS false)
1987 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)'
1990 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)'
1993 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)'
1995 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1997 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)'
2004 MergeJoin(b1t2 b1t3)
2005 MergeJoin(b2t3 b2t4)
2006 MergeJoin(b3t1 b3t4)
2008 HashJoin(b1t2 b1t3 b1t4)
2009 HashJoin(b2t1 b2t3 b2t4)
2010 HashJoin(b3t1 b3t2 b3t4)
2012 NestLoop(b1t1 b1t2 b1t3 b1t4)
2013 NestLoop(b2t1 b2t2 b2t3 b2t4)
2014 NestLoop(b3t1 b3t2 b3t3 b3t4)
2015 NestLoop(bmt1 c1 c2 c3)
2016 MergeJoin(bmt1 bmt2 c1 c2 c3)
2017 HashJoin(bmt1 bmt2 bmt3 c1 c2 c3)
2018 NestLoop(bmt1 bmt2 bmt3 bmt4 c1 c2 c3)
2019 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4 b1t2 b1t3 b1t4 b1t1 b2t3 b2t4 b2t1 b2t2 b3t4 b3t1 b3t2 b3t3)
2025 -------------------------------------------------------------------------------
2030 Join Filter: (b1t2.c1 = b1t1.c1)
2032 Hash Cond: (b1t4.c1 = b1t2.c1)
2033 -> Tid Scan on t4 b1t4
2034 TID Cond: (ctid = '(1,1)'::tid)
2037 Merge Cond: (b1t2.c1 = b1t3.c1)
2040 -> Seq Scan on t2 b1t2
2041 Filter: (ctid = '(1,1)'::tid)
2044 -> Tid Scan on t3 b1t3
2045 TID Cond: (ctid = '(1,1)'::tid)
2046 -> Tid Scan on t1 b1t1
2047 TID Cond: (ctid = '(1,1)'::tid)
2051 Join Filter: (b2t1.c1 = b2t2.c1)
2053 Hash Cond: (b2t1.c1 = b2t3.c1)
2054 -> Tid Scan on t1 b2t1
2055 TID Cond: (ctid = '(1,1)'::tid)
2058 Merge Cond: (b2t3.c1 = b2t4.c1)
2061 -> Tid Scan on t3 b2t3
2062 TID Cond: (ctid = '(1,1)'::tid)
2065 -> Tid Scan on t4 b2t4
2066 TID Cond: (ctid = '(1,1)'::tid)
2067 -> Seq Scan on t2 b2t2
2068 Filter: (ctid = '(1,1)'::tid)
2072 Join Filter: (b3t1.c1 = b3t3.c1)
2074 Hash Cond: (b3t2.c1 = b3t1.c1)
2075 -> Seq Scan on t2 b3t2
2076 Filter: (ctid = '(1,1)'::tid)
2079 Merge Cond: (b3t1.c1 = b3t4.c1)
2082 -> Tid Scan on t1 b3t1
2083 TID Cond: (ctid = '(1,1)'::tid)
2086 -> Tid Scan on t4 b3t4
2087 TID Cond: (ctid = '(1,1)'::tid)
2088 -> Tid Scan on t3 b3t3
2089 TID Cond: (ctid = '(1,1)'::tid)
2091 Join Filter: (bmt1.c1 = bmt4.c1)
2093 Hash Cond: (bmt3.c1 = bmt1.c1)
2094 -> Tid Scan on t3 bmt3
2095 TID Cond: (ctid = '(1,1)'::tid)
2098 Merge Cond: (bmt1.c1 = bmt2.c1)
2102 Join Filter: (c1.c1 = bmt1.c1)
2104 Hash Cond: (c2.c1 = c1.c1)
2106 Merge Cond: (c2.c1 = c3.c1)
2115 -> Tid Scan on t1 bmt1
2116 TID Cond: (ctid = '(1,1)'::tid)
2119 -> Seq Scan on t2 bmt2
2120 Filter: (ctid = '(1,1)'::tid)
2121 -> Tid Scan on t4 bmt4
2122 TID Cond: (ctid = '(1,1)'::tid)
2126 ---- No. J-2-2 the number of the tables per quiry block
2129 EXPLAIN (COSTS false)
2131 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2133 SELECT max(bmt1.c1), (
2134 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2136 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2139 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2143 -----------------------------------------------------------------
2147 InitPlan 1 (returns $0)
2149 -> Tid Scan on t1 b1t1
2150 TID Cond: (ctid = '(1,1)'::tid)
2151 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2152 InitPlan 4 (returns $3)
2154 InitPlan 3 (returns $2)
2156 -> Tid Scan on t1 b2t1
2157 TID Cond: (ctid = '(1,1)'::tid)
2158 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2159 InitPlan 6 (returns $5)
2161 InitPlan 5 (returns $4)
2163 -> Tid Scan on t1 b3t1
2164 TID Cond: (ctid = '(1,1)'::tid)
2165 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2167 -> Tid Scan on t1 bmt1
2168 TID Cond: (ctid = '(1,1)'::tid)
2169 Filter: ((c1 <> $5) AND (c1 = 1))
2175 Leading(c1 bmt1 b1t1 b2t1 b3t1)
2181 EXPLAIN (COSTS false)
2183 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2185 SELECT max(bmt1.c1), (
2186 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2188 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2191 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2197 Leading(c1 bmt1 b1t1 b2t1 b3t1)
2206 -----------------------------------------------------------------
2210 InitPlan 1 (returns $0)
2212 -> Tid Scan on t1 b1t1
2213 TID Cond: (ctid = '(1,1)'::tid)
2214 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2215 InitPlan 4 (returns $3)
2217 InitPlan 3 (returns $2)
2219 -> Tid Scan on t1 b2t1
2220 TID Cond: (ctid = '(1,1)'::tid)
2221 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2222 InitPlan 6 (returns $5)
2224 InitPlan 5 (returns $4)
2226 -> Tid Scan on t1 b3t1
2227 TID Cond: (ctid = '(1,1)'::tid)
2228 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2230 -> Tid Scan on t1 bmt1
2231 TID Cond: (ctid = '(1,1)'::tid)
2232 Filter: ((c1 <> $5) AND (c1 = 1))
2238 EXPLAIN (COSTS false)
2240 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)'
2242 SELECT max(bmt1.c1), (
2243 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)'
2245 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2248 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)'
2252 -------------------------------------------------------
2257 Join Filter: (b1t1.c1 = b1t2.c1)
2258 -> Tid Scan on t1 b1t1
2259 TID Cond: (ctid = '(1,1)'::tid)
2260 -> Seq Scan on t2 b1t2
2261 Filter: (ctid = '(1,1)'::tid)
2262 InitPlan 2 (returns $1)
2265 Join Filter: (b2t1.c1 = b2t2.c1)
2266 -> Tid Scan on t1 b2t1
2267 TID Cond: (ctid = '(1,1)'::tid)
2268 -> Seq Scan on t2 b2t2
2269 Filter: (ctid = '(1,1)'::tid)
2270 InitPlan 3 (returns $2)
2273 Join Filter: (b3t1.c1 = b3t2.c1)
2274 -> Tid Scan on t1 b3t1
2275 TID Cond: (ctid = '(1,1)'::tid)
2276 -> Seq Scan on t2 b3t2
2277 Filter: (ctid = '(1,1)'::tid)
2279 Join Filter: (bmt1.c1 = c1.c1)
2281 Join Filter: (bmt1.c1 = bmt2.c1)
2282 -> Tid Scan on t1 bmt1
2283 TID Cond: (ctid = '(1,1)'::tid)
2285 -> Seq Scan on t2 bmt2
2286 Filter: (ctid = '(1,1)'::tid)
2291 Leading(c1 bmt2 b1t2 b2t2 b3t2 bmt1 b1t1 b2t1 b3t1)
2293 HashJoin(c1 bmt1 bmt2)
2294 MergeJoin(b1t1 b1t2)
2295 MergeJoin(b2t1 b2t2)
2296 MergeJoin(b3t1 b3t2)
2298 EXPLAIN (COSTS false)
2300 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)'
2302 SELECT max(bmt1.c1), (
2303 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)'
2305 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2308 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)'
2313 MergeJoin(b1t1 b1t2)
2314 MergeJoin(b2t1 b2t2)
2315 MergeJoin(b3t1 b3t2)
2317 HashJoin(bmt1 bmt2 c1)
2318 Leading(c1 bmt2 b1t2 b2t2 b3t2 bmt1 b1t1 b2t1 b3t1)
2324 ---------------------------------------------------------------
2329 Merge Cond: (b1t1.c1 = b1t2.c1)
2332 -> Tid Scan on t1 b1t1
2333 TID Cond: (ctid = '(1,1)'::tid)
2336 -> Seq Scan on t2 b1t2
2337 Filter: (ctid = '(1,1)'::tid)
2338 InitPlan 2 (returns $1)
2341 Merge Cond: (b2t1.c1 = b2t2.c1)
2344 -> Tid Scan on t1 b2t1
2345 TID Cond: (ctid = '(1,1)'::tid)
2348 -> Seq Scan on t2 b2t2
2349 Filter: (ctid = '(1,1)'::tid)
2350 InitPlan 3 (returns $2)
2353 Merge Cond: (b3t1.c1 = b3t2.c1)
2356 -> Tid Scan on t1 b3t1
2357 TID Cond: (ctid = '(1,1)'::tid)
2360 -> Seq Scan on t2 b3t2
2361 Filter: (ctid = '(1,1)'::tid)
2363 Hash Cond: (bmt1.c1 = bmt2.c1)
2364 -> Tid Scan on t1 bmt1
2365 TID Cond: (ctid = '(1,1)'::tid)
2369 Merge Cond: (bmt2.c1 = c1.c1)
2372 -> Seq Scan on t2 bmt2
2373 Filter: (ctid = '(1,1)'::tid)
2380 EXPLAIN (COSTS false)
2382 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)'
2384 SELECT max(bmt1.c1), (
2385 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)'
2387 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
2389 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)'
2393 -------------------------------------------------------------------
2398 Join Filter: (b1t1.c1 = b1t4.c1)
2400 Join Filter: (b1t1.c1 = b1t3.c1)
2402 Join Filter: (b1t1.c1 = b1t2.c1)
2403 -> Tid Scan on t1 b1t1
2404 TID Cond: (ctid = '(1,1)'::tid)
2405 -> Seq Scan on t2 b1t2
2406 Filter: (ctid = '(1,1)'::tid)
2407 -> Tid Scan on t3 b1t3
2408 TID Cond: (ctid = '(1,1)'::tid)
2409 -> Tid Scan on t4 b1t4
2410 TID Cond: (ctid = '(1,1)'::tid)
2411 InitPlan 2 (returns $1)
2414 Join Filter: (b2t1.c1 = b2t4.c1)
2416 Join Filter: (b2t1.c1 = b2t3.c1)
2418 Join Filter: (b2t1.c1 = b2t2.c1)
2419 -> Tid Scan on t1 b2t1
2420 TID Cond: (ctid = '(1,1)'::tid)
2421 -> Seq Scan on t2 b2t2
2422 Filter: (ctid = '(1,1)'::tid)
2423 -> Tid Scan on t3 b2t3
2424 TID Cond: (ctid = '(1,1)'::tid)
2425 -> Tid Scan on t4 b2t4
2426 TID Cond: (ctid = '(1,1)'::tid)
2427 InitPlan 3 (returns $2)
2430 Join Filter: (b3t1.c1 = b3t4.c1)
2432 Join Filter: (b3t1.c1 = b3t3.c1)
2434 Join Filter: (b3t1.c1 = b3t2.c1)
2435 -> Tid Scan on t1 b3t1
2436 TID Cond: (ctid = '(1,1)'::tid)
2437 -> Seq Scan on t2 b3t2
2438 Filter: (ctid = '(1,1)'::tid)
2439 -> Tid Scan on t3 b3t3
2440 TID Cond: (ctid = '(1,1)'::tid)
2441 -> Tid Scan on t4 b3t4
2442 TID Cond: (ctid = '(1,1)'::tid)
2444 Join Filter: (bmt1.c1 = c1.c1)
2446 Join Filter: (bmt1.c1 = bmt4.c1)
2448 Join Filter: (bmt1.c1 = bmt3.c1)
2450 Join Filter: (bmt1.c1 = bmt2.c1)
2451 -> Tid Scan on t1 bmt1
2452 TID Cond: (ctid = '(1,1)'::tid)
2454 -> Seq Scan on t2 bmt2
2455 Filter: (ctid = '(1,1)'::tid)
2456 -> Tid Scan on t3 bmt3
2457 TID Cond: (ctid = '(1,1)'::tid)
2458 -> Tid Scan on t4 bmt4
2459 TID Cond: (ctid = '(1,1)'::tid)
2464 Leading(c1 bmt4 b1t4 b2t4 b3t4 bmt3 b1t3 b2t3 b3t3 bmt2 b1t2 b2t2 b3t2 bmt1 b1t1 b2t1 b3t1)
2466 HashJoin(c1 bmt4 bmt3)
2467 NestLoop(c1 bmt4 bmt3 bmt2)
2468 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2470 NestLoop(b1t4 b1t3 b1t2)
2471 MergeJoin(b1t4 b1t3 b1t2 b1t1)
2473 NestLoop(b2t4 b2t3 b2t2)
2474 MergeJoin(b2t4 b2t3 b2t2 b2t1)
2476 NestLoop(b3t4 b3t3 b3t2)
2477 MergeJoin(b3t4 b3t3 b3t2 b3t1)
2479 EXPLAIN (COSTS false)
2481 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)'
2483 SELECT max(bmt1.c1), (
2484 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)'
2486 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
2488 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)'
2497 NestLoop(b1t2 b1t3 b1t4)
2498 NestLoop(b2t2 b2t3 b2t4)
2499 NestLoop(b3t2 b3t3 b3t4)
2500 HashJoin(bmt3 bmt4 c1)
2501 MergeJoin(b1t1 b1t2 b1t3 b1t4)
2502 MergeJoin(b2t1 b2t2 b2t3 b2t4)
2503 MergeJoin(b3t1 b3t2 b3t3 b3t4)
2504 NestLoop(bmt2 bmt3 bmt4 c1)
2505 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2506 Leading(c1 bmt4 b1t4 b2t4 b3t4 bmt3 b1t3 b2t3 b3t3 bmt2 b1t2 b2t2 b3t2 bmt1 b1t1 b2t1 b3t1)
2512 -----------------------------------------------------------------------------------
2517 Merge Cond: (b1t2.c1 = b1t1.c1)
2521 Join Filter: (b1t3.c1 = b1t2.c1)
2523 Hash Cond: (b1t3.c1 = b1t4.c1)
2524 -> Tid Scan on t3 b1t3
2525 TID Cond: (ctid = '(1,1)'::tid)
2527 -> Tid Scan on t4 b1t4
2528 TID Cond: (ctid = '(1,1)'::tid)
2529 -> Seq Scan on t2 b1t2
2530 Filter: (ctid = '(1,1)'::tid)
2533 -> Tid Scan on t1 b1t1
2534 TID Cond: (ctid = '(1,1)'::tid)
2535 InitPlan 2 (returns $1)
2538 Merge Cond: (b2t2.c1 = b2t1.c1)
2542 Join Filter: (b2t3.c1 = b2t2.c1)
2544 Hash Cond: (b2t3.c1 = b2t4.c1)
2545 -> Tid Scan on t3 b2t3
2546 TID Cond: (ctid = '(1,1)'::tid)
2548 -> Tid Scan on t4 b2t4
2549 TID Cond: (ctid = '(1,1)'::tid)
2550 -> Seq Scan on t2 b2t2
2551 Filter: (ctid = '(1,1)'::tid)
2554 -> Tid Scan on t1 b2t1
2555 TID Cond: (ctid = '(1,1)'::tid)
2556 InitPlan 3 (returns $2)
2559 Merge Cond: (b3t2.c1 = b3t1.c1)
2563 Join Filter: (b3t3.c1 = b3t2.c1)
2565 Hash Cond: (b3t3.c1 = b3t4.c1)
2566 -> Tid Scan on t3 b3t3
2567 TID Cond: (ctid = '(1,1)'::tid)
2569 -> Tid Scan on t4 b3t4
2570 TID Cond: (ctid = '(1,1)'::tid)
2571 -> Seq Scan on t2 b3t2
2572 Filter: (ctid = '(1,1)'::tid)
2575 -> Tid Scan on t1 b3t1
2576 TID Cond: (ctid = '(1,1)'::tid)
2578 Merge Cond: (bmt2.c1 = bmt1.c1)
2582 Join Filter: (bmt3.c1 = bmt2.c1)
2584 Hash Cond: (bmt3.c1 = bmt4.c1)
2585 -> Tid Scan on t3 bmt3
2586 TID Cond: (ctid = '(1,1)'::tid)
2589 Merge Cond: (bmt4.c1 = c1.c1)
2592 -> Tid Scan on t4 bmt4
2593 TID Cond: (ctid = '(1,1)'::tid)
2597 -> Seq Scan on t2 bmt2
2598 Filter: (ctid = '(1,1)'::tid)
2601 -> Tid Scan on t1 bmt1
2602 TID Cond: (ctid = '(1,1)'::tid)
2607 EXPLAIN (COSTS false)
2609 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)'
2611 SELECT max(bmt1.c1), (
2612 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2614 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
2616 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2620 -------------------------------------------------------------------
2625 Join Filter: (b1t1.c1 = b1t4.c1)
2627 Join Filter: (b1t1.c1 = b1t3.c1)
2629 Join Filter: (b1t1.c1 = b1t2.c1)
2630 -> Tid Scan on t1 b1t1
2631 TID Cond: (ctid = '(1,1)'::tid)
2632 -> Seq Scan on t2 b1t2
2633 Filter: (ctid = '(1,1)'::tid)
2634 -> Tid Scan on t3 b1t3
2635 TID Cond: (ctid = '(1,1)'::tid)
2636 -> Tid Scan on t4 b1t4
2637 TID Cond: (ctid = '(1,1)'::tid)
2638 InitPlan 3 (returns $2)
2640 InitPlan 2 (returns $1)
2642 -> Tid Scan on t1 b2t1
2643 TID Cond: (ctid = '(1,1)'::tid)
2644 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2645 InitPlan 4 (returns $3)
2647 -> Tid Scan on t1 b3t1
2648 TID Cond: (ctid = '(1,1)'::tid)
2650 Join Filter: (bmt1.c1 = c1.c1)
2652 Join Filter: (bmt1.c1 = bmt4.c1)
2654 Join Filter: (bmt1.c1 = bmt3.c1)
2656 Join Filter: (bmt1.c1 = bmt2.c1)
2657 -> Tid Scan on t1 bmt1
2658 TID Cond: (ctid = '(1,1)'::tid)
2660 -> Seq Scan on t2 bmt2
2661 Filter: (ctid = '(1,1)'::tid)
2662 -> Tid Scan on t3 bmt3
2663 TID Cond: (ctid = '(1,1)'::tid)
2664 -> Tid Scan on t4 bmt4
2665 TID Cond: (ctid = '(1,1)'::tid)
2670 Leading(c1 bmt4 b1t4 bmt3 b1t3 bmt2 b1t2 bmt1 b1t1 b2t1 b3t1)
2672 HashJoin(c1 bmt4 bmt3)
2673 NestLoop(c1 bmt4 bmt3 bmt2)
2674 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2675 MergeJoin(b1t4 b1t3)
2676 HashJoin(b1t4 b1t3 b1t2)
2677 NestLoop(b1t4 b1t3 b1t2 b1t1)
2679 EXPLAIN (COSTS false)
2681 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)'
2683 SELECT max(bmt1.c1), (
2684 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2686 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
2688 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2693 MergeJoin(b1t3 b1t4)
2695 HashJoin(b1t2 b1t3 b1t4)
2696 HashJoin(bmt3 bmt4 c1)
2697 NestLoop(b1t1 b1t2 b1t3 b1t4)
2698 NestLoop(bmt2 bmt3 bmt4 c1)
2699 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2700 Leading(c1 bmt4 b1t4 bmt3 b1t3 bmt2 b1t2 bmt1 b1t1 b2t1 b3t1)
2706 -----------------------------------------------------------------------------------
2711 Join Filter: (b1t2.c1 = b1t1.c1)
2713 Hash Cond: (b1t2.c1 = b1t3.c1)
2714 -> Seq Scan on t2 b1t2
2715 Filter: (ctid = '(1,1)'::tid)
2718 Merge Cond: (b1t3.c1 = b1t4.c1)
2721 -> Tid Scan on t3 b1t3
2722 TID Cond: (ctid = '(1,1)'::tid)
2725 -> Tid Scan on t4 b1t4
2726 TID Cond: (ctid = '(1,1)'::tid)
2727 -> Tid Scan on t1 b1t1
2728 TID Cond: (ctid = '(1,1)'::tid)
2729 InitPlan 3 (returns $2)
2731 InitPlan 2 (returns $1)
2733 -> Tid Scan on t1 b2t1
2734 TID Cond: (ctid = '(1,1)'::tid)
2735 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2736 InitPlan 4 (returns $3)
2738 -> Tid Scan on t1 b3t1
2739 TID Cond: (ctid = '(1,1)'::tid)
2741 Merge Cond: (bmt2.c1 = bmt1.c1)
2745 Join Filter: (bmt3.c1 = bmt2.c1)
2747 Hash Cond: (bmt3.c1 = bmt4.c1)
2748 -> Tid Scan on t3 bmt3
2749 TID Cond: (ctid = '(1,1)'::tid)
2752 Merge Cond: (bmt4.c1 = c1.c1)
2755 -> Tid Scan on t4 bmt4
2756 TID Cond: (ctid = '(1,1)'::tid)
2760 -> Seq Scan on t2 bmt2
2761 Filter: (ctid = '(1,1)'::tid)
2764 -> Tid Scan on t1 bmt1
2765 TID Cond: (ctid = '(1,1)'::tid)
2770 ---- No. J-2-3 RULE or VIEW
2773 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2775 -----------------------------------------------------------------
2778 Join Filter: (t1.c1 = t4.c1)
2780 Join Filter: (t1.c1 = t3.c1)
2782 Join Filter: (t1.c1 = t2.c1)
2785 TID Cond: (ctid = '(1,1)'::tid)
2788 TID Cond: (ctid = '(1,1)'::tid)
2790 Filter: (ctid = '(1,1)'::tid)
2792 TID Cond: (ctid = '(1,1)'::tid)
2794 TID Cond: (ctid = '(1,1)'::tid)
2798 Leading(t4 t3 t2 t1 r1)
2799 MergeJoin(t4 t3 t2 t1 r1)
2800 HashJoin(t4 t3 t2 t1)
2804 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2809 HashJoin(t1 t2 t3 t4)
2810 MergeJoin(r1 t1 t2 t3 t4)
2811 Leading(t4 t3 t2 t1 r1)
2817 -----------------------------------------------------------------------------
2821 Hash Cond: (t1.c1 = t2.c1)
2823 TID Cond: (ctid = '(1,1)'::tid)
2826 Join Filter: (t3.c1 = t2.c1)
2828 Merge Cond: (t3.c1 = t4.c1)
2832 TID Cond: (ctid = '(1,1)'::tid)
2836 TID Cond: (ctid = '(1,1)'::tid)
2838 Filter: (ctid = '(1,1)'::tid)
2840 TID Cond: (ctid = '(1,1)'::tid)
2844 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2846 -----------------------------------------------------------------
2849 Join Filter: (b1t1.c1 = b1t4.c1)
2851 Join Filter: (b1t1.c1 = b1t3.c1)
2853 Join Filter: (b1t1.c1 = b1t2.c1)
2856 TID Cond: (ctid = '(1,1)'::tid)
2858 -> Tid Scan on t1 b1t1
2859 TID Cond: (ctid = '(1,1)'::tid)
2860 -> Seq Scan on t2 b1t2
2861 Filter: (ctid = '(1,1)'::tid)
2862 -> Tid Scan on t3 b1t3
2863 TID Cond: (ctid = '(1,1)'::tid)
2864 -> Tid Scan on t4 b1t4
2865 TID Cond: (ctid = '(1,1)'::tid)
2869 Leading(b1t4 b1t3 b1t2 b1t1 r1_)
2870 MergeJoin(b1t4 b1t3 b1t2 b1t1 r1_)
2871 HashJoin(b1t4 b1t3 b1t2 b1t1)
2872 NestLoop(b1t4 b1t3 b1t2)
2873 MergeJoin(b1t4 b1t3)
2875 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2878 MergeJoin(b1t3 b1t4)
2879 NestLoop(b1t2 b1t3 b1t4)
2880 HashJoin(b1t1 b1t2 b1t3 b1t4)
2881 MergeJoin(b1t1 b1t2 b1t3 b1t4 r1_)
2882 Leading(b1t4 b1t3 b1t2 b1t1 r1_)
2888 -----------------------------------------------------------------------------
2892 Hash Cond: (b1t1.c1 = b1t2.c1)
2893 -> Tid Scan on t1 b1t1
2894 TID Cond: (ctid = '(1,1)'::tid)
2897 Join Filter: (b1t3.c1 = b1t2.c1)
2899 Merge Cond: (b1t3.c1 = b1t4.c1)
2902 -> Tid Scan on t3 b1t3
2903 TID Cond: (ctid = '(1,1)'::tid)
2906 -> Tid Scan on t4 b1t4
2907 TID Cond: (ctid = '(1,1)'::tid)
2908 -> Seq Scan on t2 b1t2
2909 Filter: (ctid = '(1,1)'::tid)
2911 TID Cond: (ctid = '(1,1)'::tid)
2916 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2918 -----------------------------------------------------------------
2921 Join Filter: (t1.c1 = t4.c1)
2923 Join Filter: (t1.c1 = t3.c1)
2925 Join Filter: (t1.c1 = t2.c1)
2928 TID Cond: (ctid = '(1,1)'::tid)
2931 TID Cond: (ctid = '(1,1)'::tid)
2933 Filter: (ctid = '(1,1)'::tid)
2935 TID Cond: (ctid = '(1,1)'::tid)
2937 TID Cond: (ctid = '(1,1)'::tid)
2941 Join Filter: (t1.c1 = t4.c1)
2943 Join Filter: (t1.c1 = t3.c1)
2945 Join Filter: (t1.c1 = t2.c1)
2948 TID Cond: (ctid = '(1,1)'::tid)
2951 TID Cond: (ctid = '(1,1)'::tid)
2953 Filter: (ctid = '(1,1)'::tid)
2955 TID Cond: (ctid = '(1,1)'::tid)
2957 TID Cond: (ctid = '(1,1)'::tid)
2961 Leading(t4 t3 t2 t1 r2)
2962 MergeJoin(t4 t3 t2 t1 r2)
2963 HashJoin(t4 t3 t2 t1)
2967 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2972 HashJoin(t1 t2 t3 t4)
2973 MergeJoin(r2 t1 t2 t3 t4)
2974 Leading(t4 t3 t2 t1 r2)
2983 HashJoin(t1 t2 t3 t4)
2984 MergeJoin(r2 t1 t2 t3 t4)
2985 Leading(t4 t3 t2 t1 r2)
2991 -----------------------------------------------------------------------------
2995 Hash Cond: (t1.c1 = t2.c1)
2997 TID Cond: (ctid = '(1,1)'::tid)
3000 Join Filter: (t3.c1 = t2.c1)
3002 Merge Cond: (t3.c1 = t4.c1)
3006 TID Cond: (ctid = '(1,1)'::tid)
3010 TID Cond: (ctid = '(1,1)'::tid)
3012 Filter: (ctid = '(1,1)'::tid)
3014 TID Cond: (ctid = '(1,1)'::tid)
3020 Hash Cond: (t1.c1 = t2.c1)
3022 TID Cond: (ctid = '(1,1)'::tid)
3025 Join Filter: (t3.c1 = t2.c1)
3027 Merge Cond: (t3.c1 = t4.c1)
3031 TID Cond: (ctid = '(1,1)'::tid)
3035 TID Cond: (ctid = '(1,1)'::tid)
3037 Filter: (ctid = '(1,1)'::tid)
3039 TID Cond: (ctid = '(1,1)'::tid)
3043 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3045 -----------------------------------------------------------------
3048 Join Filter: (b1t1.c1 = b1t4.c1)
3050 Join Filter: (b1t1.c1 = b1t3.c1)
3052 Join Filter: (b1t1.c1 = b1t2.c1)
3055 TID Cond: (ctid = '(1,1)'::tid)
3057 -> Tid Scan on t1 b1t1
3058 TID Cond: (ctid = '(1,1)'::tid)
3059 -> Seq Scan on t2 b1t2
3060 Filter: (ctid = '(1,1)'::tid)
3061 -> Tid Scan on t3 b1t3
3062 TID Cond: (ctid = '(1,1)'::tid)
3063 -> Tid Scan on t4 b1t4
3064 TID Cond: (ctid = '(1,1)'::tid)
3068 Join Filter: (b2t1.c1 = b2t4.c1)
3070 Join Filter: (b2t1.c1 = b2t3.c1)
3072 Join Filter: (b2t1.c1 = b2t2.c1)
3075 TID Cond: (ctid = '(1,1)'::tid)
3077 -> Tid Scan on t1 b2t1
3078 TID Cond: (ctid = '(1,1)'::tid)
3079 -> Seq Scan on t2 b2t2
3080 Filter: (ctid = '(1,1)'::tid)
3081 -> Tid Scan on t3 b2t3
3082 TID Cond: (ctid = '(1,1)'::tid)
3083 -> Tid Scan on t4 b2t4
3084 TID Cond: (ctid = '(1,1)'::tid)
3089 b2t1 b2t2 b2t3 b2t4 r2_
3091 MergeJoin(b1t1 b1t2)
3092 HashJoin(b1t1 b1t2 b1t3)
3093 NestLoop(b1t1 b1t2 b1t3 b1t4)
3094 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3095 MergeJoin(b2t1 b2t2)
3096 HashJoin(b2t1 b2t2 b2t3)
3097 NestLoop(b2t1 b2t2 b2t3 b2t4)
3098 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3100 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3103 MergeJoin(b1t1 b1t2)
3104 HashJoin(b1t1 b1t2 b1t3)
3105 NestLoop(b1t1 b1t2 b1t3 b1t4)
3106 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3107 Leading(b1t1 b1t2 b1t3 b1t4 b2t1 b2t2 b2t3 b2t4 r2_)
3109 MergeJoin(b2t1 b2t2)
3110 HashJoin(b2t1 b2t2 b2t3)
3111 NestLoop(b2t1 b2t2 b2t3 b2t4)
3112 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3118 MergeJoin(b2t1 b2t2)
3119 HashJoin(b2t1 b2t2 b2t3)
3120 NestLoop(b2t1 b2t2 b2t3 b2t4)
3121 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3122 Leading(b1t1 b1t2 b1t3 b1t4 b2t1 b2t2 b2t3 b2t4 r2_)
3124 MergeJoin(b1t1 b1t2)
3125 HashJoin(b1t1 b1t2 b1t3)
3126 NestLoop(b1t1 b1t2 b1t3 b1t4)
3127 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3132 -----------------------------------------------------------------------------
3136 Join Filter: (b1t1.c1 = b1t4.c1)
3138 Hash Cond: (b1t3.c1 = b1t1.c1)
3139 -> Tid Scan on t3 b1t3
3140 TID Cond: (ctid = '(1,1)'::tid)
3143 Merge Cond: (b1t1.c1 = b1t2.c1)
3146 -> Tid Scan on t1 b1t1
3147 TID Cond: (ctid = '(1,1)'::tid)
3150 -> Seq Scan on t2 b1t2
3151 Filter: (ctid = '(1,1)'::tid)
3152 -> Tid Scan on t4 b1t4
3153 TID Cond: (ctid = '(1,1)'::tid)
3155 TID Cond: (ctid = '(1,1)'::tid)
3161 Join Filter: (b2t1.c1 = b2t4.c1)
3163 Hash Cond: (b2t3.c1 = b2t1.c1)
3164 -> Tid Scan on t3 b2t3
3165 TID Cond: (ctid = '(1,1)'::tid)
3168 Merge Cond: (b2t1.c1 = b2t2.c1)
3171 -> Tid Scan on t1 b2t1
3172 TID Cond: (ctid = '(1,1)'::tid)
3175 -> Seq Scan on t2 b2t2
3176 Filter: (ctid = '(1,1)'::tid)
3177 -> Tid Scan on t4 b2t4
3178 TID Cond: (ctid = '(1,1)'::tid)
3180 TID Cond: (ctid = '(1,1)'::tid)
3185 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3187 -----------------------------------------------------------------
3190 Join Filter: (t1.c1 = t4.c1)
3192 Join Filter: (t1.c1 = t3.c1)
3194 Join Filter: (t1.c1 = t2.c1)
3197 TID Cond: (ctid = '(1,1)'::tid)
3200 TID Cond: (ctid = '(1,1)'::tid)
3202 Filter: (ctid = '(1,1)'::tid)
3204 TID Cond: (ctid = '(1,1)'::tid)
3206 TID Cond: (ctid = '(1,1)'::tid)
3210 Join Filter: (t1.c1 = t4.c1)
3212 Join Filter: (t1.c1 = t3.c1)
3214 Join Filter: (t1.c1 = t2.c1)
3217 TID Cond: (ctid = '(1,1)'::tid)
3220 TID Cond: (ctid = '(1,1)'::tid)
3222 Filter: (ctid = '(1,1)'::tid)
3224 TID Cond: (ctid = '(1,1)'::tid)
3226 TID Cond: (ctid = '(1,1)'::tid)
3230 Join Filter: (t1.c1 = t4.c1)
3232 Join Filter: (t1.c1 = t3.c1)
3234 Join Filter: (t1.c1 = t2.c1)
3237 TID Cond: (ctid = '(1,1)'::tid)
3240 TID Cond: (ctid = '(1,1)'::tid)
3242 Filter: (ctid = '(1,1)'::tid)
3244 TID Cond: (ctid = '(1,1)'::tid)
3246 TID Cond: (ctid = '(1,1)'::tid)
3250 Leading(t4 t3 t2 t1 r3)
3251 MergeJoin(t4 t3 t2 t1 r3)
3252 HashJoin(t4 t3 t2 t1)
3256 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3261 HashJoin(t1 t2 t3 t4)
3262 MergeJoin(r3 t1 t2 t3 t4)
3263 Leading(t4 t3 t2 t1 r3)
3272 HashJoin(t1 t2 t3 t4)
3273 MergeJoin(r3 t1 t2 t3 t4)
3274 Leading(t4 t3 t2 t1 r3)
3283 HashJoin(t1 t2 t3 t4)
3284 MergeJoin(r3 t1 t2 t3 t4)
3285 Leading(t4 t3 t2 t1 r3)
3291 -----------------------------------------------------------------------------
3295 Hash Cond: (t1.c1 = t2.c1)
3297 TID Cond: (ctid = '(1,1)'::tid)
3300 Join Filter: (t3.c1 = t2.c1)
3302 Merge Cond: (t3.c1 = t4.c1)
3306 TID Cond: (ctid = '(1,1)'::tid)
3310 TID Cond: (ctid = '(1,1)'::tid)
3312 Filter: (ctid = '(1,1)'::tid)
3314 TID Cond: (ctid = '(1,1)'::tid)
3320 Hash Cond: (t1.c1 = t2.c1)
3322 TID Cond: (ctid = '(1,1)'::tid)
3325 Join Filter: (t3.c1 = t2.c1)
3327 Merge Cond: (t3.c1 = t4.c1)
3331 TID Cond: (ctid = '(1,1)'::tid)
3335 TID Cond: (ctid = '(1,1)'::tid)
3337 Filter: (ctid = '(1,1)'::tid)
3339 TID Cond: (ctid = '(1,1)'::tid)
3345 Hash Cond: (t1.c1 = t2.c1)
3347 TID Cond: (ctid = '(1,1)'::tid)
3350 Join Filter: (t3.c1 = t2.c1)
3352 Merge Cond: (t3.c1 = t4.c1)
3356 TID Cond: (ctid = '(1,1)'::tid)
3360 TID Cond: (ctid = '(1,1)'::tid)
3362 Filter: (ctid = '(1,1)'::tid)
3364 TID Cond: (ctid = '(1,1)'::tid)
3368 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3370 -----------------------------------------------------------------
3373 Join Filter: (b1t1.c1 = b1t4.c1)
3375 Join Filter: (b1t1.c1 = b1t3.c1)
3377 Join Filter: (b1t1.c1 = b1t2.c1)
3380 TID Cond: (ctid = '(1,1)'::tid)
3382 -> Tid Scan on t1 b1t1
3383 TID Cond: (ctid = '(1,1)'::tid)
3384 -> Seq Scan on t2 b1t2
3385 Filter: (ctid = '(1,1)'::tid)
3386 -> Tid Scan on t3 b1t3
3387 TID Cond: (ctid = '(1,1)'::tid)
3388 -> Tid Scan on t4 b1t4
3389 TID Cond: (ctid = '(1,1)'::tid)
3393 Join Filter: (b2t1.c1 = b2t4.c1)
3395 Join Filter: (b2t1.c1 = b2t3.c1)
3397 Join Filter: (b2t1.c1 = b2t2.c1)
3400 TID Cond: (ctid = '(1,1)'::tid)
3402 -> Tid Scan on t1 b2t1
3403 TID Cond: (ctid = '(1,1)'::tid)
3404 -> Seq Scan on t2 b2t2
3405 Filter: (ctid = '(1,1)'::tid)
3406 -> Tid Scan on t3 b2t3
3407 TID Cond: (ctid = '(1,1)'::tid)
3408 -> Tid Scan on t4 b2t4
3409 TID Cond: (ctid = '(1,1)'::tid)
3413 Join Filter: (b3t1.c1 = b3t4.c1)
3415 Join Filter: (b3t1.c1 = b3t3.c1)
3417 Join Filter: (b3t1.c1 = b3t2.c1)
3420 TID Cond: (ctid = '(1,1)'::tid)
3422 -> Tid Scan on t1 b3t1
3423 TID Cond: (ctid = '(1,1)'::tid)
3424 -> Seq Scan on t2 b3t2
3425 Filter: (ctid = '(1,1)'::tid)
3426 -> Tid Scan on t3 b3t3
3427 TID Cond: (ctid = '(1,1)'::tid)
3428 -> Tid Scan on t4 b3t4
3429 TID Cond: (ctid = '(1,1)'::tid)
3435 b3t1 b3t2 b3t3 b3t4 r3_
3437 MergeJoin(b1t1 b1t2)
3438 HashJoin(b1t1 b1t2 b1t3)
3439 NestLoop(b1t1 b1t2 b1t3 b1t4)
3440 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3441 MergeJoin(b2t1 b2t2)
3442 HashJoin(b2t1 b2t2 b2t3)
3443 NestLoop(b2t1 b2t2 b2t3 b2t4)
3444 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3445 MergeJoin(b3t1 b3t2)
3446 HashJoin(b3t1 b3t2 b3t3)
3447 NestLoop(b3t1 b3t2 b3t3 b3t4)
3448 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3450 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3453 MergeJoin(b1t1 b1t2)
3454 HashJoin(b1t1 b1t2 b1t3)
3455 NestLoop(b1t1 b1t2 b1t3 b1t4)
3456 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3457 Leading(b1t1 b1t2 b1t3 b1t4 b2t1 b2t2 b2t3 b2t4 b3t1 b3t2 b3t3 b3t4 r3_)
3459 MergeJoin(b2t1 b2t2)
3460 MergeJoin(b3t1 b3t2)
3461 HashJoin(b2t1 b2t2 b2t3)
3462 HashJoin(b3t1 b3t2 b3t3)
3463 NestLoop(b2t1 b2t2 b2t3 b2t4)
3464 NestLoop(b3t1 b3t2 b3t3 b3t4)
3465 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3466 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3472 MergeJoin(b2t1 b2t2)
3473 HashJoin(b2t1 b2t2 b2t3)
3474 NestLoop(b2t1 b2t2 b2t3 b2t4)
3475 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3476 Leading(b1t1 b1t2 b1t3 b1t4 b2t1 b2t2 b2t3 b2t4 b3t1 b3t2 b3t3 b3t4 r3_)
3478 MergeJoin(b1t1 b1t2)
3479 MergeJoin(b3t1 b3t2)
3480 HashJoin(b1t1 b1t2 b1t3)
3481 HashJoin(b3t1 b3t2 b3t3)
3482 NestLoop(b1t1 b1t2 b1t3 b1t4)
3483 NestLoop(b3t1 b3t2 b3t3 b3t4)
3484 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3485 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3491 MergeJoin(b3t1 b3t2)
3492 HashJoin(b3t1 b3t2 b3t3)
3493 NestLoop(b3t1 b3t2 b3t3 b3t4)
3494 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3495 Leading(b1t1 b1t2 b1t3 b1t4 b2t1 b2t2 b2t3 b2t4 b3t1 b3t2 b3t3 b3t4 r3_)
3497 MergeJoin(b1t1 b1t2)
3498 MergeJoin(b2t1 b2t2)
3499 HashJoin(b1t1 b1t2 b1t3)
3500 HashJoin(b2t1 b2t2 b2t3)
3501 NestLoop(b1t1 b1t2 b1t3 b1t4)
3502 NestLoop(b2t1 b2t2 b2t3 b2t4)
3503 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3504 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3509 -----------------------------------------------------------------------------
3513 Join Filter: (b1t1.c1 = b1t4.c1)
3515 Hash Cond: (b1t3.c1 = b1t1.c1)
3516 -> Tid Scan on t3 b1t3
3517 TID Cond: (ctid = '(1,1)'::tid)
3520 Merge Cond: (b1t1.c1 = b1t2.c1)
3523 -> Tid Scan on t1 b1t1
3524 TID Cond: (ctid = '(1,1)'::tid)
3527 -> Seq Scan on t2 b1t2
3528 Filter: (ctid = '(1,1)'::tid)
3529 -> Tid Scan on t4 b1t4
3530 TID Cond: (ctid = '(1,1)'::tid)
3532 TID Cond: (ctid = '(1,1)'::tid)
3538 Join Filter: (b2t1.c1 = b2t4.c1)
3540 Hash Cond: (b2t3.c1 = b2t1.c1)
3541 -> Tid Scan on t3 b2t3
3542 TID Cond: (ctid = '(1,1)'::tid)
3545 Merge Cond: (b2t1.c1 = b2t2.c1)
3548 -> Tid Scan on t1 b2t1
3549 TID Cond: (ctid = '(1,1)'::tid)
3552 -> Seq Scan on t2 b2t2
3553 Filter: (ctid = '(1,1)'::tid)
3554 -> Tid Scan on t4 b2t4
3555 TID Cond: (ctid = '(1,1)'::tid)
3557 TID Cond: (ctid = '(1,1)'::tid)
3563 Join Filter: (b3t1.c1 = b3t4.c1)
3565 Hash Cond: (b3t3.c1 = b3t1.c1)
3566 -> Tid Scan on t3 b3t3
3567 TID Cond: (ctid = '(1,1)'::tid)
3570 Merge Cond: (b3t1.c1 = b3t2.c1)
3573 -> Tid Scan on t1 b3t1
3574 TID Cond: (ctid = '(1,1)'::tid)
3577 -> Seq Scan on t2 b3t2
3578 Filter: (ctid = '(1,1)'::tid)
3579 -> Tid Scan on t4 b3t4
3580 TID Cond: (ctid = '(1,1)'::tid)
3582 TID Cond: (ctid = '(1,1)'::tid)
3587 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3589 ----------------------------------
3591 Hash Cond: (v1t1.c1 = v1t1.c1)
3592 -> Seq Scan on t1 v1t1
3594 -> Seq Scan on t1 v1t1
3597 /*+HashJoin(v1t1 v1t1)*/
3598 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3599 INFO: hint syntax error at or near "HashJoin(v1t1 v1t1)"
3600 DETAIL: Relation name "v1t1" is ambiguous.
3609 ----------------------------------
3611 Hash Cond: (v1t1.c1 = v1t1.c1)
3612 -> Seq Scan on t1 v1t1
3614 -> Seq Scan on t1 v1t1
3618 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3620 -----------------------------------
3622 Hash Cond: (v1t1.c1 = v1t1_.c1)
3623 -> Seq Scan on t1 v1t1
3625 -> Seq Scan on t1 v1t1_
3628 /*+NestLoop(v1t1 v1t1_)*/
3629 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3632 NestLoop(v1t1 v1t1_)
3638 ------------------------------------------
3640 -> Seq Scan on t1 v1t1
3641 -> Index Scan using t1_i1 on t1 v1t1_
3642 Index Cond: (c1 = v1t1.c1)
3646 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3648 ----------------------------------
3650 Hash Cond: (r4t1.c1 = r4t1.c1)
3651 -> Seq Scan on t1 r4t1
3653 -> Seq Scan on t1 r4t1
3656 /*+HashJoin(r4t1 r4t1)*/
3657 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3658 INFO: hint syntax error at or near "HashJoin(r4t1 r4t1)"
3659 DETAIL: Relation name "r4t1" is ambiguous.
3668 ----------------------------------
3670 Hash Cond: (r4t1.c1 = r4t1.c1)
3671 -> Seq Scan on t1 r4t1
3673 -> Seq Scan on t1 r4t1
3677 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3679 ----------------------------------
3681 Hash Cond: (r4t1.c1 = r5t1.c1)
3682 -> Seq Scan on t1 r4t1
3684 -> Seq Scan on t1 r5t1
3687 /*+NestLoop(r4t1 r5t1)*/
3688 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3697 -----------------------------------------
3699 -> Seq Scan on t1 r4t1
3700 -> Index Scan using t1_i1 on t1 r5t1
3701 Index Cond: (c1 = r4t1.c1)
3705 ---- No. J-2-4 VALUES clause
3708 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;
3710 -------------------------------------------------
3713 Hash Cond: (t2.c1 = "*VALUES*".column1)
3716 -> Values Scan on "*VALUES*"
3717 -> Index Scan using t1_i1 on t1
3718 Index Cond: (c1 = t2.c1)
3721 /*+ Leading(t3 t1 t2) HashJoin(t3 t1)NestLoop(t3 t1 t2)*/
3722 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;
3733 ---------------------------------------------
3735 Join Filter: (t1.c1 = "*VALUES*".column1)
3736 -> Values Scan on "*VALUES*"
3738 Merge Cond: (t1.c1 = t2.c1)
3739 -> Index Scan using t1_i1 on t1
3745 /*+ Leading(*VALUES* t1 t2) HashJoin(*VALUES* t1)NestLoop(*VALUES* t1 t2)*/
3746 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;
3749 HashJoin(*VALUES* t1)
3750 NestLoop(*VALUES* t1 t2)
3751 Leading(*VALUES* t1 t2)
3757 -------------------------------------------------
3760 Hash Cond: (t1.c1 = "*VALUES*".column1)
3763 -> Values Scan on "*VALUES*"
3764 -> Index Scan using t2_i1 on t2
3765 Index Cond: (c1 = t1.c1)
3769 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;
3771 -------------------------------------------------------
3773 Join Filter: (t1.c1 = "*VALUES*".column1)
3776 Hash Cond: (t2.c1 = "*VALUES*".column1)
3779 -> Values Scan on "*VALUES*"
3780 -> Index Scan using t1_i1 on t1
3781 Index Cond: (c1 = t2.c1)
3782 -> Values Scan on "*VALUES*"
3785 /*+ Leading(t4 t3 t2 t1) NestLoop(t4 t3)HashJoin(t4 t3 t2)MergeJoin(t4 t3 t2 t1)*/
3786 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;
3789 Leading(t4 t3 t2 t1)
3793 MergeJoin(t1 t2 t3 t4)
3798 ---------------------------------------------------
3800 Join Filter: (t1.c1 = "*VALUES*".column1)
3802 Join Filter: (t1.c1 = "*VALUES*".column1)
3804 Merge Cond: (t1.c1 = t2.c1)
3805 -> Index Scan using t1_i1 on t1
3809 -> Values Scan on "*VALUES*"
3810 -> Values Scan on "*VALUES*"
3813 /*+ Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)*/
3814 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;
3815 INFO: hint syntax error at or near "HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)"
3816 DETAIL: Relation name "*VALUES*" is ambiguous.
3817 INFO: hint syntax error at or near "MergeJoin(*VALUES* t3 t2 t1)"
3818 DETAIL: Relation name "*VALUES*" is ambiguous.
3819 INFO: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)"
3820 DETAIL: Relation name "*VALUES*" is ambiguous.
3825 Leading(*VALUES* t3 t2 t1)
3828 HashJoin(*VALUES* t2 t3)
3829 MergeJoin(*VALUES* t1 t2 t3)
3832 -------------------------------------------------------
3834 Join Filter: (t1.c1 = "*VALUES*".column1)
3837 Hash Cond: (t2.c1 = "*VALUES*".column1)
3840 -> Values Scan on "*VALUES*"
3841 -> Index Scan using t1_i1 on t1
3842 Index Cond: (c1 = t2.c1)
3843 -> Values Scan on "*VALUES*"
3847 ---- No. J-3-1 join method hint
3850 SET enable_nestloop TO on;
3851 SET enable_mergejoin TO off;
3852 SET enable_hashjoin TO off;
3853 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3855 ------------------------------------
3858 -> Index Scan using t1_i1 on t1
3859 Index Cond: (c1 = t2.c1)
3862 /*+NestLoop(t1 t2)*/
3863 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3872 ------------------------------------
3875 -> Index Scan using t1_i1 on t1
3876 Index Cond: (c1 = t2.c1)
3879 /*+HashJoin(t1 t2)*/
3880 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3889 ------------------------------
3891 Hash Cond: (t1.c1 = t2.c1)
3897 /*+MergeJoin(t1 t2)*/
3898 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3907 ------------------------------------
3909 Merge Cond: (t1.c1 = t2.c1)
3910 -> Index Scan using t1_i1 on t1
3916 SET enable_mergejoin TO on;
3917 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';;
3919 -----------------------------------------
3921 Join Filter: (t1.c1 = t2.c1)
3923 TID Cond: (ctid = '(1,1)'::tid)
3927 /*+NoNestLoop(t1 t2)*/
3928 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';;
3937 -----------------------------------------------
3939 Merge Cond: (t1.c1 = t2.c1)
3943 TID Cond: (ctid = '(1,1)'::tid)
3949 SET enable_mergejoin TO off;
3950 /*+NoHashJoin(t1 t2)*/
3951 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3960 ------------------------------------
3963 -> Index Scan using t1_i1 on t1
3964 Index Cond: (c1 = t2.c1)
3967 /*+NoMergeJoin(t1 t2)*/
3968 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3977 ------------------------------------
3980 -> Index Scan using t1_i1 on t1
3981 Index Cond: (c1 = t2.c1)
3985 SET enable_nestloop TO off;
3986 SET enable_mergejoin TO off;
3987 SET enable_hashjoin TO on;
3988 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3990 ------------------------------
3992 Hash Cond: (t1.c1 = t2.c1)
3998 /*+NestLoop(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 /*+HashJoin(t1 t2)*/
4016 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4025 ------------------------------
4027 Hash Cond: (t1.c1 = t2.c1)
4033 /*+MergeJoin(t1 t2)*/
4034 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4043 ------------------------------------
4045 Merge Cond: (t1.c1 = t2.c1)
4046 -> Index Scan using t1_i1 on t1
4052 /*+NoNestLoop(t1 t2)*/
4053 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4062 ------------------------------
4064 Hash Cond: (t1.c1 = t2.c1)
4070 /*+NoHashJoin(t1 t2)*/
4071 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4080 ------------------------------------
4083 -> Index Scan using t1_i1 on t1
4084 Index Cond: (c1 = t2.c1)
4087 /*+NoMergeJoin(t1 t2)*/
4088 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4097 ------------------------------
4099 Hash Cond: (t1.c1 = t2.c1)
4106 SET enable_nestloop TO off;
4107 SET enable_mergejoin TO on;
4108 SET enable_hashjoin TO off;
4109 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4111 ------------------------------------
4113 Merge Cond: (t1.c1 = t2.c1)
4114 -> Index Scan using t1_i1 on t1
4120 /*+NestLoop(t1 t2)*/
4121 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4130 ------------------------------------
4133 -> Index Scan using t1_i1 on t1
4134 Index Cond: (c1 = t2.c1)
4137 /*+HashJoin(t1 t2)*/
4138 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4147 ------------------------------
4149 Hash Cond: (t1.c1 = t2.c1)
4155 /*+MergeJoin(t1 t2)*/
4156 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4165 ------------------------------------
4167 Merge Cond: (t1.c1 = t2.c1)
4168 -> Index Scan using t1_i1 on t1
4174 /*+NoNestLoop(t1 t2)*/
4175 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4184 ------------------------------------
4186 Merge Cond: (t1.c1 = t2.c1)
4187 -> Index Scan using t1_i1 on t1
4193 /*+NoHashJoin(t1 t2)*/
4194 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4203 ------------------------------------
4205 Merge Cond: (t1.c1 = t2.c1)
4206 -> Index Scan using t1_i1 on t1
4212 /*+NoMergeJoin(t1 t2)*/
4213 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4222 ------------------------------------
4225 -> Index Scan using t1_i1 on t1
4226 Index Cond: (c1 = t2.c1)
4229 SET enable_nestloop TO on;
4230 SET enable_mergejoin TO on;
4231 SET enable_hashjoin TO on;
4233 ---- No. J-3-2 join inherit tables
4235 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4237 ---------------------------------------
4239 Hash Cond: (s1.p2.c1 = s1.p1.c1)
4242 -> Seq Scan on p2c1 p2
4243 -> Seq Scan on p2c2 p2
4244 -> Seq Scan on p2c3 p2
4245 -> Seq Scan on p2c1c1 p2
4246 -> Seq Scan on p2c1c2 p2
4247 -> Seq Scan on p2c2c1 p2
4248 -> Seq Scan on p2c2c2 p2
4249 -> Seq Scan on p2c3c1 p2
4250 -> Seq Scan on p2c3c2 p2
4254 -> Seq Scan on p1c1 p1
4255 -> Seq Scan on p1c2 p1
4256 -> Seq Scan on p1c3 p1
4260 /*+MergeJoin(p1 p2)*/
4261 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4270 -----------------------------------------
4272 Merge Cond: (s1.p1.c1 = s1.p2.c1)
4277 -> Seq Scan on p1c1 p1
4278 -> Seq Scan on p1c2 p1
4279 -> Seq Scan on p1c3 p1
4284 -> Seq Scan on p2c1 p2
4285 -> Seq Scan on p2c2 p2
4286 -> Seq Scan on p2c3 p2
4287 -> Seq Scan on p2c1c1 p2
4288 -> Seq Scan on p2c1c2 p2
4289 -> Seq Scan on p2c2c1 p2
4290 -> Seq Scan on p2c2c2 p2
4291 -> Seq Scan on p2c3c1 p2
4292 -> Seq Scan on p2c3c2 p2
4296 /*+MergeJoin(p1c1 p2c1)*/
4297 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4301 MergeJoin(p1c1 p2c1)
4306 ---------------------------------------
4308 Hash Cond: (s1.p2.c1 = s1.p1.c1)
4311 -> Seq Scan on p2c1 p2
4312 -> Seq Scan on p2c2 p2
4313 -> Seq Scan on p2c3 p2
4314 -> Seq Scan on p2c1c1 p2
4315 -> Seq Scan on p2c1c2 p2
4316 -> Seq Scan on p2c2c1 p2
4317 -> Seq Scan on p2c2c2 p2
4318 -> Seq Scan on p2c3c1 p2
4319 -> Seq Scan on p2c3c2 p2
4323 -> Seq Scan on p1c1 p1
4324 -> Seq Scan on p1c2 p1
4325 -> Seq Scan on p1c3 p1
4329 ---- No. J-3-3 conflict join method hint
4331 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4333 ------------------------------------
4335 Merge Cond: (t1.c1 = t2.c1)
4336 -> Index Scan using t1_i1 on t1
4343 /*+HashJoin(t1 t2)NestLoop(t1 t2)*/
4344 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4345 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t1 t2)"
4346 DETAIL: Conflict join method hint.
4356 ------------------------------------
4359 -> Index Scan using t1_i1 on t1
4360 Index Cond: (c1 = t2.c1)
4364 /*+MergeJoin(t1 t2)HashJoin(t1 t2)NestLoop(t1 t2)*/
4365 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4366 INFO: hint syntax error at or near "MergeJoin(t1 t2)HashJoin(t1 t2)NestLoop(t1 t2)"
4367 DETAIL: Conflict join method hint.
4368 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t1 t2)"
4369 DETAIL: Conflict join method hint.
4380 ------------------------------------
4383 -> Index Scan using t1_i1 on t1
4384 Index Cond: (c1 = t2.c1)
4388 /*+HashJoin(t1 t2)NestLoop(t2 t1)*/
4389 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4390 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)"
4391 DETAIL: Conflict join method hint.
4401 ------------------------------------
4404 -> Index Scan using t1_i1 on t1
4405 Index Cond: (c1 = t2.c1)
4409 /*+MergeJoin(t2 t1)HashJoin(t1 t2)NestLoop(t2 t1)*/
4410 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4411 INFO: hint syntax error at or near "MergeJoin(t2 t1)HashJoin(t1 t2)NestLoop(t2 t1)"
4412 DETAIL: Conflict join method hint.
4413 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)"
4414 DETAIL: Conflict join method hint.
4425 ------------------------------------
4428 -> Index Scan using t1_i1 on t1
4429 Index Cond: (c1 = t2.c1)
4433 ---- No. J-3-4 hint state output
4436 /*+NestLoop(t1 t2)*/
4437 SELECT * FROM s1.t1, s1.t2 WHERE false;
4445 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4446 ----+----+----+----+----+----+----+----
4450 /*+HashJoin(t1 t2)*/
4451 SELECT * FROM s1.t1, s1.t2 WHERE false;
4459 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4460 ----+----+----+----+----+----+----+----
4464 /*+MergeJoin(t1 t2)*/
4465 SELECT * FROM s1.t1, s1.t2 WHERE false;
4473 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4474 ----+----+----+----+----+----+----+----
4478 /*+NoNestLoop(t1 t2)*/
4479 SELECT * FROM s1.t1, s1.t2 WHERE false;
4487 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4488 ----+----+----+----+----+----+----+----
4492 /*+NoHashJoin(t1 t2)*/
4493 SELECT * FROM s1.t1, s1.t2 WHERE false;
4501 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4502 ----+----+----+----+----+----+----+----
4506 /*+NoMergeJoin(t1 t2)*/
4507 SELECT * FROM s1.t1, s1.t2 WHERE false;
4515 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4516 ----+----+----+----+----+----+----+----
4521 SELECT * FROM s1.t1 WHERE false;
4522 INFO: hint syntax error at or near ""
4523 DETAIL: NestLoop hint requires at least two relations.
4537 SELECT * FROM s1.t1 WHERE false;
4538 INFO: hint syntax error at or near ""
4539 DETAIL: NestLoop hint requires at least two relations.
4552 /*+NestLoop(t1 t2)*/
4553 SELECT * FROM s1.t1, s1.t2 WHERE false;
4561 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4562 ----+----+----+----+----+----+----+----
4566 /*+NestLoop(t1 t2 t3)*/
4567 SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE false;
4575 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4576 ----+----+----+----+----+----+----+----+----+----+----+----
4580 ---- No. J-3-5 not used hint
4583 EXPLAIN (COSTS false) SELECT * FROM s1.t1 FULL OUTER JOIN s1.t2 ON (t1.c1 = t2.c1);
4585 ------------------------------
4587 Hash Cond: (t1.c1 = t2.c1)
4593 /*+NestLoop(t1 t2)*/
4594 EXPLAIN (COSTS true) SELECT * FROM s1.t1 FULL OUTER JOIN s1.t2 ON (t1.c1 = t2.c1);
4603 --------------------------------------------------------------------------
4604 Hash Full Join (cost=10000000003.25..10000000024.00 rows=1000 width=29)
4605 Hash Cond: (t1.c1 = t2.c1)
4606 -> Seq Scan on t1 (cost=0.00..16.00 rows=1000 width=15)
4607 -> Hash (cost=2.00..2.00 rows=100 width=14)
4608 -> Seq Scan on t2 (cost=0.00..2.00 rows=100 width=14)