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: (t1.c1 = t1_1.c1)
190 -> Index Scan using t1_i1 on t1
193 -> Seq Scan on t1 t1_1
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: (t1.c1 = t1_1.c1)
211 -> Index Scan using t1_i1 on t1
214 -> Seq Scan on t1 t1_1
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: (t1.c1 = t1_1.c1)
230 -> Index Scan using t1_i1 on t1
233 -> Seq Scan on t1 t1_1
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: (t1.c1 = t2.c1)
271 InitPlan 1 (returns $0)
274 Merge Cond: (t1_1.c1 = t2_1.c1)
275 -> Index Only Scan using t1_i1 on t1 t1_1
278 -> Seq Scan on t2 t2_1
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: (t1.c1 = t2.c1)
298 InitPlan 1 (returns $0)
301 Hash Cond: (t1_1.c1 = t2_1.c1)
302 -> Seq Scan on t1 t1_1
304 -> Seq Scan on t2 t2_1
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_1
476 -> Seq Scan on p1c2 t1_2
477 -> Seq Scan on p1c3 t1_3
481 -> Seq Scan on p1c1 t2_1
482 -> Seq Scan on p1c2 t2_2
483 -> Seq Scan on p1c3 t2_3
487 EXPLAIN (COSTS false) SELECT * FROM s1.p1 t1, s1.p1 t2 WHERE t1.c1 = t2.c1;
496 --------------------------------------------------
500 -> Seq Scan on p1c1 t1_1
501 -> Seq Scan on p1c2 t1_2
502 -> Seq Scan on p1c3 t1_3
506 -> Index Scan using p1c1_i on p1c1 t2_1
507 Index Cond: (c1 = t1.c1)
508 -> Index Scan using p1c2_i on p1c2 t2_2
509 Index Cond: (c1 = t1.c1)
510 -> Index Scan using p1c3_i on p1c3 t2_3
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 EXPLAIN (COSTS false) SELECT * FROM tm1 t1, tm1 t2 WHERE t1.c1 = t2.c1;
546 --------------------------------
548 Hash Cond: (t1.c1 = t2.c1)
549 -> Seq Scan on tm1 t1
551 -> Seq Scan on tm1 t2
555 EXPLAIN (COSTS false) SELECT * FROM tm1 t1, tm1 t2 WHERE t1.c1 = t2.c1;
564 -------------------------------------------
566 -> Seq Scan on tm1 t1
567 -> Index Scan using tm1_pkey on tm1 t2
568 Index Cond: (c1 = t1.c1)
572 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class t1, pg_catalog.pg_class t2 WHERE t1.oid = t2.oid;
574 -------------------------------------
576 Hash Cond: (t1.oid = t2.oid)
577 -> Seq Scan on pg_class t1
579 -> Seq Scan on pg_class t2
583 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class t1, pg_catalog.pg_class t2 WHERE t1.oid = t2.oid;
592 ----------------------------------------------------------
594 -> Seq Scan on pg_class t1
595 -> Index Scan using pg_class_oid_index on pg_class t2
596 Index Cond: (oid = t1.oid)
602 EXPLAIN (COSTS false) SELECT * FROM s1.f1() t1, s1.f1() t2 WHERE t1.c1 = t2.c1;
604 --------------------------------
606 Join Filter: (t1.c1 = t2.c1)
607 -> Function Scan on f1 t1
608 -> Function Scan on f1 t2
612 EXPLAIN (COSTS false) SELECT * FROM s1.f1() t1, s1.f1() t2 WHERE t1.c1 = t2.c1;
621 ------------------------------------
623 Hash Cond: (t1.c1 = t2.c1)
624 -> Function Scan on f1 t1
626 -> Function Scan on f1 t2
630 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;
632 -------------------------------------------
634 Hash Cond: (t2.c1 = "*VALUES*".column1)
637 -> Values Scan on "*VALUES*"
641 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;
650 -------------------------------------------
652 Hash Cond: (t2.c1 = "*VALUES*".column1)
655 -> Values Scan on "*VALUES*"
658 /*+NestLoop(*VALUES* t2)*/
659 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;
662 NestLoop(*VALUES* t2)
668 ---------------------------------------------
670 Join Filter: ("*VALUES*".column1 = t2.c1)
673 -> Values Scan on "*VALUES*"
677 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;
679 ------------------------------------------------------------
684 Merge Cond: (t1_1.c1 = t2.c1)
685 -> Index Only Scan using t1_i1 on t1 t1_1
690 -> Index Scan using t1_i1 on t1
691 Index Cond: (c1 = c1.c1)
694 /*+NestLoop(t1 t2)HashJoin(t1 c1)*/
695 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;
705 ------------------------------------------------------------
707 Hash Cond: (t1.c1 = c1.c1)
712 -> Index Only Scan using t1_i1 on t1 t1_1
713 Index Cond: (c1 = t2.c1)
720 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
722 ------------------------------------
724 Hash Cond: (v1t1.c1 = v1t1_1.c1)
725 -> Seq Scan on t1 v1t1
727 -> Seq Scan on t1 v1t1_1
731 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
740 ------------------------------------
742 Hash Cond: (v1t1.c1 = v1t1_1.c1)
743 -> Seq Scan on t1 v1t1
745 -> Seq Scan on t1 v1t1_1
748 /*+NestLoop(v1t1 v1t1_)*/
749 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1_ t2 WHERE t1.c1 = t2.c1;
758 ------------------------------------------
760 -> Seq Scan on t1 v1t1
761 -> Index Scan using t1_i1 on t1 v1t1_
762 Index Cond: (c1 = v1t1.c1)
766 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);
768 -----------------------------------------------------------
770 InitPlan 1 (returns $0)
773 Merge Cond: (st1.c1 = st2.c1)
774 -> Index Only Scan using t1_i1 on t1 st1
777 -> Seq Scan on t2 st2
778 -> Index Scan using t1_i1 on t1
779 Index Cond: (c1 = $0)
784 /*+MergeJoin(t1 t2)NestLoop(st1 st2)*/
785 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);
795 ---------------------------------------------------------------------------------------------
796 Nested Loop (cost=10000000074.46..10000000084.99 rows=1 width=29)
797 InitPlan 1 (returns $1)
798 -> Aggregate (cost=74.45..74.46 rows=1 width=4)
799 -> Nested Loop (cost=0.00..74.20 rows=100 width=4)
800 -> Seq Scan on t2 st2 (cost=0.00..2.00 rows=100 width=4)
801 -> Index Only Scan using t1_i1 on t1 st1 (cost=0.00..0.71 rows=1 width=4)
802 Index Cond: (c1 = st2.c1)
803 -> Index Scan using t1_i1 on t1 (cost=0.00..8.27 rows=1 width=15)
804 Index Cond: (c1 = $1)
805 -> Seq Scan on t2 (cost=0.00..2.25 rows=1 width=14)
809 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
811 ------------------------------------
813 Merge Cond: (t1.c1 = t2.c1)
814 -> Index Scan using t1_i1 on t1
820 /*+HashJoin(t1 st2)*/
821 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
830 ------------------------------------
832 Merge Cond: (t1.c1 = t2.c1)
833 -> Index Scan using t1_i1 on t1
840 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
849 ------------------------------
851 Hash Cond: (t1.c1 = t2.c1)
858 ---- No. J-2-1 some complexity query blocks
861 EXPLAIN (COSTS false)
862 SELECT max(bmt1.c1), (
863 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)'
865 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)'
867 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)'
870 -------------------------------------------------------------------
872 InitPlan 1 (returns $0)
875 Join Filter: (b1t1.c1 = b1t4.c1)
877 Join Filter: (b1t1.c1 = b1t3.c1)
879 Join Filter: (b1t1.c1 = b1t2.c1)
880 -> Tid Scan on t1 b1t1
881 TID Cond: (ctid = '(1,1)'::tid)
882 -> Seq Scan on t2 b1t2
883 Filter: (ctid = '(1,1)'::tid)
884 -> Tid Scan on t3 b1t3
885 TID Cond: (ctid = '(1,1)'::tid)
886 -> Tid Scan on t4 b1t4
887 TID Cond: (ctid = '(1,1)'::tid)
888 InitPlan 2 (returns $1)
891 Join Filter: (b2t1.c1 = b2t4.c1)
893 Join Filter: (b2t1.c1 = b2t3.c1)
895 Join Filter: (b2t1.c1 = b2t2.c1)
896 -> Tid Scan on t1 b2t1
897 TID Cond: (ctid = '(1,1)'::tid)
898 -> Seq Scan on t2 b2t2
899 Filter: (ctid = '(1,1)'::tid)
900 -> Tid Scan on t3 b2t3
901 TID Cond: (ctid = '(1,1)'::tid)
902 -> Tid Scan on t4 b2t4
903 TID Cond: (ctid = '(1,1)'::tid)
905 Join Filter: (bmt1.c1 = bmt4.c1)
907 Join Filter: (bmt1.c1 = bmt3.c1)
909 Join Filter: (bmt1.c1 = bmt2.c1)
910 -> Tid Scan on t1 bmt1
911 TID Cond: (ctid = '(1,1)'::tid)
912 -> Seq Scan on t2 bmt2
913 Filter: (ctid = '(1,1)'::tid)
914 -> Tid Scan on t3 bmt3
915 TID Cond: (ctid = '(1,1)'::tid)
916 -> Tid Scan on t4 bmt4
917 TID Cond: (ctid = '(1,1)'::tid)
921 Leading(bmt1 bmt2 bmt3 bmt4)
922 Leading(b1t2 b1t3 b1t4 b1t1)
923 Leading(b2t3 b2t4 b2t1 b2t2)
924 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
925 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
926 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
928 EXPLAIN (COSTS false)
929 SELECT max(bmt1.c1), (
930 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)'
932 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)'
934 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)'
941 HashJoin(b1t2 b1t3 b1t4)
942 HashJoin(b2t1 b2t3 b2t4)
943 HashJoin(bmt1 bmt2 bmt3)
944 NestLoop(b1t1 b1t2 b1t3 b1t4)
945 NestLoop(b2t1 b2t2 b2t3 b2t4)
946 NestLoop(bmt1 bmt2 bmt3 bmt4)
947 Leading(bmt1 bmt2 bmt3 bmt4)
948 Leading(b1t2 b1t3 b1t4 b1t1)
949 Leading(b2t3 b2t4 b2t1 b2t2)
955 -------------------------------------------------------------------------------
957 InitPlan 1 (returns $0)
960 Join Filter: (b1t2.c1 = b1t1.c1)
962 Hash Cond: (b1t4.c1 = b1t2.c1)
963 -> Tid Scan on t4 b1t4
964 TID Cond: (ctid = '(1,1)'::tid)
967 Merge Cond: (b1t2.c1 = b1t3.c1)
970 -> Seq Scan on t2 b1t2
971 Filter: (ctid = '(1,1)'::tid)
974 -> Tid Scan on t3 b1t3
975 TID Cond: (ctid = '(1,1)'::tid)
976 -> Tid Scan on t1 b1t1
977 TID Cond: (ctid = '(1,1)'::tid)
978 InitPlan 2 (returns $1)
981 Join Filter: (b2t1.c1 = b2t2.c1)
983 Hash Cond: (b2t1.c1 = b2t3.c1)
984 -> Tid Scan on t1 b2t1
985 TID Cond: (ctid = '(1,1)'::tid)
988 Merge Cond: (b2t3.c1 = b2t4.c1)
991 -> Tid Scan on t3 b2t3
992 TID Cond: (ctid = '(1,1)'::tid)
995 -> Tid Scan on t4 b2t4
996 TID Cond: (ctid = '(1,1)'::tid)
997 -> Seq Scan on t2 b2t2
998 Filter: (ctid = '(1,1)'::tid)
1000 Join Filter: (bmt1.c1 = bmt4.c1)
1002 Hash Cond: (bmt3.c1 = bmt1.c1)
1003 -> Tid Scan on t3 bmt3
1004 TID Cond: (ctid = '(1,1)'::tid)
1007 Merge Cond: (bmt1.c1 = bmt2.c1)
1010 -> Tid Scan on t1 bmt1
1011 TID Cond: (ctid = '(1,1)'::tid)
1014 -> Seq Scan on t2 bmt2
1015 Filter: (ctid = '(1,1)'::tid)
1016 -> Tid Scan on t4 bmt4
1017 TID Cond: (ctid = '(1,1)'::tid)
1021 EXPLAIN (COSTS false)
1022 SELECT max(bmt1.c1), (
1023 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)'
1025 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)'
1027 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)'
1029 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)'
1032 -------------------------------------------------------------------
1034 InitPlan 1 (returns $0)
1037 Join Filter: (b1t1.c1 = b1t4.c1)
1039 Join Filter: (b1t1.c1 = b1t3.c1)
1041 Join Filter: (b1t1.c1 = b1t2.c1)
1042 -> Tid Scan on t1 b1t1
1043 TID Cond: (ctid = '(1,1)'::tid)
1044 -> Seq Scan on t2 b1t2
1045 Filter: (ctid = '(1,1)'::tid)
1046 -> Tid Scan on t3 b1t3
1047 TID Cond: (ctid = '(1,1)'::tid)
1048 -> Tid Scan on t4 b1t4
1049 TID Cond: (ctid = '(1,1)'::tid)
1050 InitPlan 2 (returns $1)
1053 Join Filter: (b2t1.c1 = b2t4.c1)
1055 Join Filter: (b2t1.c1 = b2t3.c1)
1057 Join Filter: (b2t1.c1 = b2t2.c1)
1058 -> Tid Scan on t1 b2t1
1059 TID Cond: (ctid = '(1,1)'::tid)
1060 -> Seq Scan on t2 b2t2
1061 Filter: (ctid = '(1,1)'::tid)
1062 -> Tid Scan on t3 b2t3
1063 TID Cond: (ctid = '(1,1)'::tid)
1064 -> Tid Scan on t4 b2t4
1065 TID Cond: (ctid = '(1,1)'::tid)
1066 InitPlan 3 (returns $2)
1069 Join Filter: (b3t1.c1 = b3t4.c1)
1071 Join Filter: (b3t1.c1 = b3t3.c1)
1073 Join Filter: (b3t1.c1 = b3t2.c1)
1074 -> Tid Scan on t1 b3t1
1075 TID Cond: (ctid = '(1,1)'::tid)
1076 -> Seq Scan on t2 b3t2
1077 Filter: (ctid = '(1,1)'::tid)
1078 -> Tid Scan on t3 b3t3
1079 TID Cond: (ctid = '(1,1)'::tid)
1080 -> Tid Scan on t4 b3t4
1081 TID Cond: (ctid = '(1,1)'::tid)
1083 Join Filter: (bmt1.c1 = bmt4.c1)
1085 Join Filter: (bmt1.c1 = bmt3.c1)
1087 Join Filter: (bmt1.c1 = bmt2.c1)
1088 -> Tid Scan on t1 bmt1
1089 TID Cond: (ctid = '(1,1)'::tid)
1090 -> Seq Scan on t2 bmt2
1091 Filter: (ctid = '(1,1)'::tid)
1092 -> Tid Scan on t3 bmt3
1093 TID Cond: (ctid = '(1,1)'::tid)
1094 -> Tid Scan on t4 bmt4
1095 TID Cond: (ctid = '(1,1)'::tid)
1099 Leading(bmt1 bmt2 bmt3 bmt4)
1100 Leading(b1t2 b1t3 b1t4 b1t1)
1101 Leading(b2t3 b2t4 b2t1 b2t2)
1102 Leading(b3t4 b3t1 b3t2 b3t3)
1103 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1104 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1105 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1106 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1108 EXPLAIN (COSTS false)
1109 SELECT max(bmt1.c1), (
1110 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)'
1112 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)'
1114 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)'
1116 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)'
1120 MergeJoin(b1t2 b1t3)
1121 MergeJoin(b2t3 b2t4)
1122 MergeJoin(b3t1 b3t4)
1123 MergeJoin(bmt1 bmt2)
1124 HashJoin(b1t2 b1t3 b1t4)
1125 HashJoin(b2t1 b2t3 b2t4)
1126 HashJoin(b3t1 b3t2 b3t4)
1127 HashJoin(bmt1 bmt2 bmt3)
1128 NestLoop(b1t1 b1t2 b1t3 b1t4)
1129 NestLoop(b2t1 b2t2 b2t3 b2t4)
1130 NestLoop(b3t1 b3t2 b3t3 b3t4)
1131 NestLoop(bmt1 bmt2 bmt3 bmt4)
1132 Leading(bmt1 bmt2 bmt3 bmt4)
1133 Leading(b1t2 b1t3 b1t4 b1t1)
1134 Leading(b2t3 b2t4 b2t1 b2t2)
1135 Leading(b3t4 b3t1 b3t2 b3t3)
1141 -------------------------------------------------------------------------------
1143 InitPlan 1 (returns $0)
1146 Join Filter: (b1t2.c1 = b1t1.c1)
1148 Hash Cond: (b1t4.c1 = b1t2.c1)
1149 -> Tid Scan on t4 b1t4
1150 TID Cond: (ctid = '(1,1)'::tid)
1153 Merge Cond: (b1t2.c1 = b1t3.c1)
1156 -> Seq Scan on t2 b1t2
1157 Filter: (ctid = '(1,1)'::tid)
1160 -> Tid Scan on t3 b1t3
1161 TID Cond: (ctid = '(1,1)'::tid)
1162 -> Tid Scan on t1 b1t1
1163 TID Cond: (ctid = '(1,1)'::tid)
1164 InitPlan 2 (returns $1)
1167 Join Filter: (b2t1.c1 = b2t2.c1)
1169 Hash Cond: (b2t1.c1 = b2t3.c1)
1170 -> Tid Scan on t1 b2t1
1171 TID Cond: (ctid = '(1,1)'::tid)
1174 Merge Cond: (b2t3.c1 = b2t4.c1)
1177 -> Tid Scan on t3 b2t3
1178 TID Cond: (ctid = '(1,1)'::tid)
1181 -> Tid Scan on t4 b2t4
1182 TID Cond: (ctid = '(1,1)'::tid)
1183 -> Seq Scan on t2 b2t2
1184 Filter: (ctid = '(1,1)'::tid)
1185 InitPlan 3 (returns $2)
1188 Join Filter: (b3t1.c1 = b3t3.c1)
1190 Hash Cond: (b3t2.c1 = b3t1.c1)
1191 -> Seq Scan on t2 b3t2
1192 Filter: (ctid = '(1,1)'::tid)
1195 Merge Cond: (b3t1.c1 = b3t4.c1)
1198 -> Tid Scan on t1 b3t1
1199 TID Cond: (ctid = '(1,1)'::tid)
1202 -> Tid Scan on t4 b3t4
1203 TID Cond: (ctid = '(1,1)'::tid)
1204 -> Tid Scan on t3 b3t3
1205 TID Cond: (ctid = '(1,1)'::tid)
1207 Join Filter: (bmt1.c1 = bmt4.c1)
1209 Hash Cond: (bmt3.c1 = bmt1.c1)
1210 -> Tid Scan on t3 bmt3
1211 TID Cond: (ctid = '(1,1)'::tid)
1214 Merge Cond: (bmt1.c1 = bmt2.c1)
1217 -> Tid Scan on t1 bmt1
1218 TID Cond: (ctid = '(1,1)'::tid)
1221 -> Seq Scan on t2 bmt2
1222 Filter: (ctid = '(1,1)'::tid)
1223 -> Tid Scan on t4 bmt4
1224 TID Cond: (ctid = '(1,1)'::tid)
1228 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)';
1230 -----------------------------------------------------------
1233 Join Filter: (bmt1.c1 = bmt4.c1)
1235 Join Filter: (bmt1.c1 = bmt3.c1)
1237 Join Filter: (bmt1.c1 = bmt2.c1)
1238 -> Tid Scan on t1 bmt1
1239 TID Cond: (ctid = '(1,1)'::tid)
1240 -> Seq Scan on t2 bmt2
1241 Filter: (ctid = '(1,1)'::tid)
1242 -> Tid Scan on t3 bmt3
1243 TID Cond: (ctid = '(1,1)'::tid)
1244 -> Tid Scan on t4 bmt4
1245 TID Cond: (ctid = '(1,1)'::tid)
1249 Leading(bmt4 bmt3 bmt2 bmt1)
1250 MergeJoin(bmt4 bmt3)HashJoin(bmt4 bmt3 bmt2)NestLoop(bmt1 bmt2 bmt3 bmt4)
1252 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)';
1255 MergeJoin(bmt3 bmt4)
1256 HashJoin(bmt2 bmt3 bmt4)
1257 NestLoop(bmt1 bmt2 bmt3 bmt4)
1258 Leading(bmt4 bmt3 bmt2 bmt1)
1264 -----------------------------------------------------------------------
1267 Join Filter: (bmt2.c1 = bmt1.c1)
1269 Hash Cond: (bmt2.c1 = bmt3.c1)
1270 -> Seq Scan on t2 bmt2
1271 Filter: (ctid = '(1,1)'::tid)
1274 Merge Cond: (bmt3.c1 = bmt4.c1)
1277 -> Tid Scan on t3 bmt3
1278 TID Cond: (ctid = '(1,1)'::tid)
1281 -> Tid Scan on t4 bmt4
1282 TID Cond: (ctid = '(1,1)'::tid)
1283 -> Tid Scan on t1 bmt1
1284 TID Cond: (ctid = '(1,1)'::tid)
1288 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)';
1290 -----------------------------------------------------------
1293 Join Filter: (bmt1.c1 = bmt4.c1)
1295 Join Filter: (bmt1.c1 = bmt3.c1)
1297 Join Filter: (bmt1.c1 = bmt2.c1)
1298 -> Tid Scan on t1 bmt1
1299 TID Cond: (ctid = '(1,1)'::tid)
1300 -> Seq Scan on t2 bmt2
1301 Filter: (ctid = '(1,1)'::tid)
1302 -> Tid Scan on t3 bmt3
1303 TID Cond: (ctid = '(1,1)'::tid)
1304 -> Tid Scan on t4 bmt4
1305 TID Cond: (ctid = '(1,1)'::tid)
1309 Leading(bmt4 bmt3 bmt2 bmt1)
1310 MergeJoin(bmt4 bmt3)HashJoin(bmt4 bmt3 bmt2)NestLoop(bmt1 bmt2 bmt3 bmt4)
1312 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)';
1315 MergeJoin(bmt3 bmt4)
1316 HashJoin(bmt2 bmt3 bmt4)
1317 NestLoop(bmt1 bmt2 bmt3 bmt4)
1318 Leading(bmt4 bmt3 bmt2 bmt1)
1324 -----------------------------------------------------------------------
1327 Join Filter: (bmt2.c1 = bmt1.c1)
1329 Hash Cond: (bmt2.c1 = bmt3.c1)
1330 -> Seq Scan on t2 bmt2
1331 Filter: (ctid = '(1,1)'::tid)
1334 Merge Cond: (bmt3.c1 = bmt4.c1)
1337 -> Tid Scan on t3 bmt3
1338 TID Cond: (ctid = '(1,1)'::tid)
1341 -> Tid Scan on t4 bmt4
1342 TID Cond: (ctid = '(1,1)'::tid)
1343 -> Tid Scan on t1 bmt1
1344 TID Cond: (ctid = '(1,1)'::tid)
1348 EXPLAIN (COSTS false)
1349 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)'
1351 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)'
1353 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)'
1357 -------------------------------------------------------------------
1359 InitPlan 1 (returns $0)
1362 Join Filter: (b1t1.c1 = b1t4.c1)
1364 Join Filter: (b1t1.c1 = b1t3.c1)
1366 Join Filter: (b1t1.c1 = b1t2.c1)
1367 -> Tid Scan on t1 b1t1
1368 TID Cond: (ctid = '(1,1)'::tid)
1369 -> Seq Scan on t2 b1t2
1370 Filter: (ctid = '(1,1)'::tid)
1371 -> Tid Scan on t3 b1t3
1372 TID Cond: (ctid = '(1,1)'::tid)
1373 -> Tid Scan on t4 b1t4
1374 TID Cond: (ctid = '(1,1)'::tid)
1375 InitPlan 2 (returns $1)
1378 Join Filter: (b2t1.c1 = b2t4.c1)
1380 Join Filter: (b2t1.c1 = b2t3.c1)
1382 Join Filter: (b2t1.c1 = b2t2.c1)
1383 -> Tid Scan on t1 b2t1
1384 TID Cond: (ctid = '(1,1)'::tid)
1385 -> Seq Scan on t2 b2t2
1386 Filter: (ctid = '(1,1)'::tid)
1387 -> Tid Scan on t3 b2t3
1388 TID Cond: (ctid = '(1,1)'::tid)
1389 -> Tid Scan on t4 b2t4
1390 TID Cond: (ctid = '(1,1)'::tid)
1392 Join Filter: (bmt1.c1 = bmt4.c1)
1394 Join Filter: (bmt1.c1 = bmt3.c1)
1396 Join Filter: (bmt1.c1 = bmt2.c1)
1397 -> Tid Scan on t1 bmt1
1398 TID Cond: (ctid = '(1,1)'::tid)
1399 Filter: ((c1 <> $0) AND (c1 <> $1))
1400 -> Seq Scan on t2 bmt2
1401 Filter: (ctid = '(1,1)'::tid)
1402 -> Tid Scan on t3 bmt3
1403 TID Cond: (ctid = '(1,1)'::tid)
1404 -> Tid Scan on t4 bmt4
1405 TID Cond: (ctid = '(1,1)'::tid)
1409 Leading(bmt1 bmt2 bmt3 bmt4)
1410 Leading(b1t2 b1t3 b1t4 b1t1)
1411 Leading(b2t3 b2t4 b2t1 b2t2)
1412 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1413 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1414 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1416 EXPLAIN (COSTS false)
1417 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)'
1419 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)'
1421 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)'
1426 MergeJoin(b1t2 b1t3)
1427 MergeJoin(b2t3 b2t4)
1428 MergeJoin(bmt1 bmt2)
1429 HashJoin(b1t2 b1t3 b1t4)
1430 HashJoin(b2t1 b2t3 b2t4)
1431 HashJoin(bmt1 bmt2 bmt3)
1432 NestLoop(b1t1 b1t2 b1t3 b1t4)
1433 NestLoop(b2t1 b2t2 b2t3 b2t4)
1434 NestLoop(bmt1 bmt2 bmt3 bmt4)
1435 Leading(bmt1 bmt2 bmt3 bmt4)
1436 Leading(b1t2 b1t3 b1t4 b1t1)
1437 Leading(b2t3 b2t4 b2t1 b2t2)
1443 -------------------------------------------------------------------------------
1445 InitPlan 1 (returns $0)
1448 Join Filter: (b1t2.c1 = b1t1.c1)
1450 Hash Cond: (b1t4.c1 = b1t2.c1)
1451 -> Tid Scan on t4 b1t4
1452 TID Cond: (ctid = '(1,1)'::tid)
1455 Merge Cond: (b1t2.c1 = b1t3.c1)
1458 -> Seq Scan on t2 b1t2
1459 Filter: (ctid = '(1,1)'::tid)
1462 -> Tid Scan on t3 b1t3
1463 TID Cond: (ctid = '(1,1)'::tid)
1464 -> Tid Scan on t1 b1t1
1465 TID Cond: (ctid = '(1,1)'::tid)
1466 InitPlan 2 (returns $1)
1469 Join Filter: (b2t1.c1 = b2t2.c1)
1471 Hash Cond: (b2t1.c1 = b2t3.c1)
1472 -> Tid Scan on t1 b2t1
1473 TID Cond: (ctid = '(1,1)'::tid)
1476 Merge Cond: (b2t3.c1 = b2t4.c1)
1479 -> Tid Scan on t3 b2t3
1480 TID Cond: (ctid = '(1,1)'::tid)
1483 -> Tid Scan on t4 b2t4
1484 TID Cond: (ctid = '(1,1)'::tid)
1485 -> Seq Scan on t2 b2t2
1486 Filter: (ctid = '(1,1)'::tid)
1488 Join Filter: (bmt1.c1 = bmt4.c1)
1490 Hash Cond: (bmt3.c1 = bmt1.c1)
1491 -> Tid Scan on t3 bmt3
1492 TID Cond: (ctid = '(1,1)'::tid)
1495 Merge Cond: (bmt1.c1 = bmt2.c1)
1498 -> Tid Scan on t1 bmt1
1499 TID Cond: (ctid = '(1,1)'::tid)
1500 Filter: ((c1 <> $0) AND (c1 <> $1))
1503 -> Seq Scan on t2 bmt2
1504 Filter: (ctid = '(1,1)'::tid)
1505 -> Tid Scan on t4 bmt4
1506 TID Cond: (ctid = '(1,1)'::tid)
1510 EXPLAIN (COSTS false)
1511 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)'
1513 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)'
1515 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)'
1517 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)'
1521 ------------------------------------------------------------------------------
1523 InitPlan 1 (returns $0)
1526 Join Filter: (b1t1.c1 = b1t4.c1)
1528 Join Filter: (b1t1.c1 = b1t3.c1)
1530 Join Filter: (b1t1.c1 = b1t2.c1)
1531 -> Tid Scan on t1 b1t1
1532 TID Cond: (ctid = '(1,1)'::tid)
1533 -> Seq Scan on t2 b1t2
1534 Filter: (ctid = '(1,1)'::tid)
1535 -> Tid Scan on t3 b1t3
1536 TID Cond: (ctid = '(1,1)'::tid)
1537 -> Tid Scan on t4 b1t4
1538 TID Cond: (ctid = '(1,1)'::tid)
1539 InitPlan 2 (returns $1)
1542 Join Filter: (b2t1.c1 = b2t4.c1)
1544 Join Filter: (b2t1.c1 = b2t3.c1)
1546 Join Filter: (b2t1.c1 = b2t2.c1)
1547 -> Tid Scan on t1 b2t1
1548 TID Cond: (ctid = '(1,1)'::tid)
1549 -> Seq Scan on t2 b2t2
1550 Filter: (ctid = '(1,1)'::tid)
1551 -> Tid Scan on t3 b2t3
1552 TID Cond: (ctid = '(1,1)'::tid)
1553 -> Tid Scan on t4 b2t4
1554 TID Cond: (ctid = '(1,1)'::tid)
1555 InitPlan 3 (returns $2)
1558 Join Filter: (b3t1.c1 = b3t4.c1)
1560 Join Filter: (b3t1.c1 = b3t3.c1)
1562 Join Filter: (b3t1.c1 = b3t2.c1)
1563 -> Tid Scan on t1 b3t1
1564 TID Cond: (ctid = '(1,1)'::tid)
1565 -> Seq Scan on t2 b3t2
1566 Filter: (ctid = '(1,1)'::tid)
1567 -> Tid Scan on t3 b3t3
1568 TID Cond: (ctid = '(1,1)'::tid)
1569 -> Tid Scan on t4 b3t4
1570 TID Cond: (ctid = '(1,1)'::tid)
1572 Join Filter: (bmt1.c1 = bmt4.c1)
1574 Join Filter: (bmt1.c1 = bmt3.c1)
1576 Join Filter: (bmt1.c1 = bmt2.c1)
1577 -> Tid Scan on t1 bmt1
1578 TID Cond: (ctid = '(1,1)'::tid)
1579 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1580 -> Seq Scan on t2 bmt2
1581 Filter: (ctid = '(1,1)'::tid)
1582 -> Tid Scan on t3 bmt3
1583 TID Cond: (ctid = '(1,1)'::tid)
1584 -> Tid Scan on t4 bmt4
1585 TID Cond: (ctid = '(1,1)'::tid)
1589 Leading(bmt1 bmt2 bmt3 bmt4)
1590 Leading(b1t2 b1t3 b1t4 b1t1)
1591 Leading(b2t3 b2t4 b2t1 b2t2)
1592 Leading(b3t4 b3t1 b3t2 b3t3)
1593 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1594 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1595 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1596 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1598 EXPLAIN (COSTS false)
1599 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)'
1601 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)'
1603 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)'
1605 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)'
1610 MergeJoin(b1t2 b1t3)
1611 MergeJoin(b2t3 b2t4)
1612 MergeJoin(b3t1 b3t4)
1613 MergeJoin(bmt1 bmt2)
1614 HashJoin(b1t2 b1t3 b1t4)
1615 HashJoin(b2t1 b2t3 b2t4)
1616 HashJoin(b3t1 b3t2 b3t4)
1617 HashJoin(bmt1 bmt2 bmt3)
1618 NestLoop(b1t1 b1t2 b1t3 b1t4)
1619 NestLoop(b2t1 b2t2 b2t3 b2t4)
1620 NestLoop(b3t1 b3t2 b3t3 b3t4)
1621 NestLoop(bmt1 bmt2 bmt3 bmt4)
1622 Leading(bmt1 bmt2 bmt3 bmt4)
1623 Leading(b1t2 b1t3 b1t4 b1t1)
1624 Leading(b2t3 b2t4 b2t1 b2t2)
1625 Leading(b3t4 b3t1 b3t2 b3t3)
1631 ------------------------------------------------------------------------------------------
1633 InitPlan 1 (returns $0)
1636 Join Filter: (b1t2.c1 = b1t1.c1)
1638 Hash Cond: (b1t4.c1 = b1t2.c1)
1639 -> Tid Scan on t4 b1t4
1640 TID Cond: (ctid = '(1,1)'::tid)
1643 Merge Cond: (b1t2.c1 = b1t3.c1)
1646 -> Seq Scan on t2 b1t2
1647 Filter: (ctid = '(1,1)'::tid)
1650 -> Tid Scan on t3 b1t3
1651 TID Cond: (ctid = '(1,1)'::tid)
1652 -> Tid Scan on t1 b1t1
1653 TID Cond: (ctid = '(1,1)'::tid)
1654 InitPlan 2 (returns $1)
1657 Join Filter: (b2t1.c1 = b2t2.c1)
1659 Hash Cond: (b2t1.c1 = b2t3.c1)
1660 -> Tid Scan on t1 b2t1
1661 TID Cond: (ctid = '(1,1)'::tid)
1664 Merge Cond: (b2t3.c1 = b2t4.c1)
1667 -> Tid Scan on t3 b2t3
1668 TID Cond: (ctid = '(1,1)'::tid)
1671 -> Tid Scan on t4 b2t4
1672 TID Cond: (ctid = '(1,1)'::tid)
1673 -> Seq Scan on t2 b2t2
1674 Filter: (ctid = '(1,1)'::tid)
1675 InitPlan 3 (returns $2)
1678 Join Filter: (b3t1.c1 = b3t3.c1)
1680 Hash Cond: (b3t2.c1 = b3t1.c1)
1681 -> Seq Scan on t2 b3t2
1682 Filter: (ctid = '(1,1)'::tid)
1685 Merge Cond: (b3t1.c1 = b3t4.c1)
1688 -> Tid Scan on t1 b3t1
1689 TID Cond: (ctid = '(1,1)'::tid)
1692 -> Tid Scan on t4 b3t4
1693 TID Cond: (ctid = '(1,1)'::tid)
1694 -> Tid Scan on t3 b3t3
1695 TID Cond: (ctid = '(1,1)'::tid)
1697 Join Filter: (bmt1.c1 = bmt4.c1)
1699 Hash Cond: (bmt3.c1 = bmt1.c1)
1700 -> Tid Scan on t3 bmt3
1701 TID Cond: (ctid = '(1,1)'::tid)
1704 Merge Cond: (bmt1.c1 = bmt2.c1)
1707 -> Tid Scan on t1 bmt1
1708 TID Cond: (ctid = '(1,1)'::tid)
1709 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1712 -> Seq Scan on t2 bmt2
1713 Filter: (ctid = '(1,1)'::tid)
1714 -> Tid Scan on t4 bmt4
1715 TID Cond: (ctid = '(1,1)'::tid)
1719 EXPLAIN (COSTS false)
1721 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)'
1724 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)'
1726 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1728 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)'
1733 -----------------------------------------------------------------------
1738 Join Filter: (b1t1.c1 = b1t4.c1)
1740 Join Filter: (b1t1.c1 = b1t3.c1)
1742 Join Filter: (b1t1.c1 = b1t2.c1)
1743 -> Tid Scan on t1 b1t1
1744 TID Cond: (ctid = '(1,1)'::tid)
1745 -> Seq Scan on t2 b1t2
1746 Filter: (ctid = '(1,1)'::tid)
1747 -> Tid Scan on t3 b1t3
1748 TID Cond: (ctid = '(1,1)'::tid)
1749 -> Tid Scan on t4 b1t4
1750 TID Cond: (ctid = '(1,1)'::tid)
1754 Join Filter: (b2t1.c1 = b2t4.c1)
1756 Join Filter: (b2t1.c1 = b2t3.c1)
1758 Join Filter: (b2t1.c1 = b2t2.c1)
1759 -> Tid Scan on t1 b2t1
1760 TID Cond: (ctid = '(1,1)'::tid)
1761 -> Seq Scan on t2 b2t2
1762 Filter: (ctid = '(1,1)'::tid)
1763 -> Tid Scan on t3 b2t3
1764 TID Cond: (ctid = '(1,1)'::tid)
1765 -> Tid Scan on t4 b2t4
1766 TID Cond: (ctid = '(1,1)'::tid)
1768 Join Filter: (bmt1.c1 = c2.c1)
1770 Join Filter: (bmt1.c1 = c1.c1)
1772 Join Filter: (bmt1.c1 = bmt4.c1)
1774 Join Filter: (bmt1.c1 = bmt3.c1)
1776 Join Filter: (bmt1.c1 = bmt2.c1)
1777 -> Tid Scan on t1 bmt1
1778 TID Cond: (ctid = '(1,1)'::tid)
1779 -> Seq Scan on t2 bmt2
1780 Filter: (ctid = '(1,1)'::tid)
1781 -> Tid Scan on t3 bmt3
1782 TID Cond: (ctid = '(1,1)'::tid)
1783 -> Tid Scan on t4 bmt4
1784 TID Cond: (ctid = '(1,1)'::tid)
1790 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1791 Leading(b1t2 b1t3 b1t4 b1t1)
1792 Leading(b2t3 b2t4 b2t1 b2t2)
1793 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)
1794 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1795 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1797 EXPLAIN (COSTS false)
1799 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)'
1802 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)'
1804 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1806 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)'
1812 MergeJoin(b1t2 b1t3)
1813 MergeJoin(b2t3 b2t4)
1815 HashJoin(b1t2 b1t3 b1t4)
1816 HashJoin(b2t1 b2t3 b2t4)
1817 HashJoin(bmt1 c1 c2)
1818 NestLoop(b1t1 b1t2 b1t3 b1t4)
1819 NestLoop(b2t1 b2t2 b2t3 b2t4)
1820 NestLoop(bmt1 bmt2 c1 c2)
1821 MergeJoin(bmt1 bmt2 bmt3 c1 c2)
1822 HashJoin(bmt1 bmt2 bmt3 bmt4 c1 c2)
1823 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1824 Leading(b1t2 b1t3 b1t4 b1t1)
1825 Leading(b2t3 b2t4 b2t1 b2t2)
1831 -------------------------------------------------------------------------------
1836 Join Filter: (b1t2.c1 = b1t1.c1)
1838 Hash Cond: (b1t4.c1 = b1t2.c1)
1839 -> Tid Scan on t4 b1t4
1840 TID Cond: (ctid = '(1,1)'::tid)
1843 Merge Cond: (b1t2.c1 = b1t3.c1)
1846 -> Seq Scan on t2 b1t2
1847 Filter: (ctid = '(1,1)'::tid)
1850 -> Tid Scan on t3 b1t3
1851 TID Cond: (ctid = '(1,1)'::tid)
1852 -> Tid Scan on t1 b1t1
1853 TID Cond: (ctid = '(1,1)'::tid)
1857 Join Filter: (b2t1.c1 = b2t2.c1)
1859 Hash Cond: (b2t1.c1 = b2t3.c1)
1860 -> Tid Scan on t1 b2t1
1861 TID Cond: (ctid = '(1,1)'::tid)
1864 Merge Cond: (b2t3.c1 = b2t4.c1)
1867 -> Tid Scan on t3 b2t3
1868 TID Cond: (ctid = '(1,1)'::tid)
1871 -> Tid Scan on t4 b2t4
1872 TID Cond: (ctid = '(1,1)'::tid)
1873 -> Seq Scan on t2 b2t2
1874 Filter: (ctid = '(1,1)'::tid)
1876 Hash Cond: (bmt4.c1 = bmt1.c1)
1877 -> Tid Scan on t4 bmt4
1878 TID Cond: (ctid = '(1,1)'::tid)
1881 Merge Cond: (bmt1.c1 = bmt3.c1)
1885 Join Filter: (bmt1.c1 = bmt2.c1)
1887 Hash Cond: (bmt1.c1 = c1.c1)
1888 -> Tid Scan on t1 bmt1
1889 TID Cond: (ctid = '(1,1)'::tid)
1892 Merge Cond: (c1.c1 = c2.c1)
1899 -> Seq Scan on t2 bmt2
1900 Filter: (ctid = '(1,1)'::tid)
1903 -> Tid Scan on t3 bmt3
1904 TID Cond: (ctid = '(1,1)'::tid)
1908 EXPLAIN (COSTS false)
1910 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)'
1913 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)'
1916 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)'
1918 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1920 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)'
1926 -----------------------------------------------------------------------------
1931 Join Filter: (b1t1.c1 = b1t4.c1)
1933 Join Filter: (b1t1.c1 = b1t3.c1)
1935 Join Filter: (b1t1.c1 = b1t2.c1)
1936 -> Tid Scan on t1 b1t1
1937 TID Cond: (ctid = '(1,1)'::tid)
1938 -> Seq Scan on t2 b1t2
1939 Filter: (ctid = '(1,1)'::tid)
1940 -> Tid Scan on t3 b1t3
1941 TID Cond: (ctid = '(1,1)'::tid)
1942 -> Tid Scan on t4 b1t4
1943 TID Cond: (ctid = '(1,1)'::tid)
1947 Join Filter: (b2t1.c1 = b2t4.c1)
1949 Join Filter: (b2t1.c1 = b2t3.c1)
1951 Join Filter: (b2t1.c1 = b2t2.c1)
1952 -> Tid Scan on t1 b2t1
1953 TID Cond: (ctid = '(1,1)'::tid)
1954 -> Seq Scan on t2 b2t2
1955 Filter: (ctid = '(1,1)'::tid)
1956 -> Tid Scan on t3 b2t3
1957 TID Cond: (ctid = '(1,1)'::tid)
1958 -> Tid Scan on t4 b2t4
1959 TID Cond: (ctid = '(1,1)'::tid)
1963 Join Filter: (b3t1.c1 = b3t4.c1)
1965 Join Filter: (b3t1.c1 = b3t3.c1)
1967 Join Filter: (b3t1.c1 = b3t2.c1)
1968 -> Tid Scan on t1 b3t1
1969 TID Cond: (ctid = '(1,1)'::tid)
1970 -> Seq Scan on t2 b3t2
1971 Filter: (ctid = '(1,1)'::tid)
1972 -> Tid Scan on t3 b3t3
1973 TID Cond: (ctid = '(1,1)'::tid)
1974 -> Tid Scan on t4 b3t4
1975 TID Cond: (ctid = '(1,1)'::tid)
1977 Join Filter: (bmt1.c1 = c3.c1)
1979 Join Filter: (bmt1.c1 = c2.c1)
1981 Join Filter: (bmt1.c1 = c1.c1)
1983 Join Filter: (bmt1.c1 = bmt4.c1)
1985 Join Filter: (bmt1.c1 = bmt3.c1)
1987 Join Filter: (bmt1.c1 = bmt2.c1)
1988 -> Tid Scan on t1 bmt1
1989 TID Cond: (ctid = '(1,1)'::tid)
1990 -> Seq Scan on t2 bmt2
1991 Filter: (ctid = '(1,1)'::tid)
1992 -> Tid Scan on t3 bmt3
1993 TID Cond: (ctid = '(1,1)'::tid)
1994 -> Tid Scan on t4 bmt4
1995 TID Cond: (ctid = '(1,1)'::tid)
2002 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2003 Leading(b1t2 b1t3 b1t4 b1t1)
2004 Leading(b2t3 b2t4 b2t1 b2t2)
2005 Leading(b3t4 b3t1 b3t2 b3t3)
2006 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)
2007 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
2008 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
2009 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
2011 EXPLAIN (COSTS false)
2013 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)'
2016 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)'
2019 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)'
2021 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2023 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)'
2030 MergeJoin(b1t2 b1t3)
2031 MergeJoin(b2t3 b2t4)
2032 MergeJoin(b3t1 b3t4)
2034 HashJoin(b1t2 b1t3 b1t4)
2035 HashJoin(b2t1 b2t3 b2t4)
2036 HashJoin(b3t1 b3t2 b3t4)
2038 NestLoop(b1t1 b1t2 b1t3 b1t4)
2039 NestLoop(b2t1 b2t2 b2t3 b2t4)
2040 NestLoop(b3t1 b3t2 b3t3 b3t4)
2041 NestLoop(bmt1 c1 c2 c3)
2042 MergeJoin(bmt1 bmt2 c1 c2 c3)
2043 HashJoin(bmt1 bmt2 bmt3 c1 c2 c3)
2044 NestLoop(bmt1 bmt2 bmt3 bmt4 c1 c2 c3)
2045 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2046 Leading(b1t2 b1t3 b1t4 b1t1)
2047 Leading(b2t3 b2t4 b2t1 b2t2)
2048 Leading(b3t4 b3t1 b3t2 b3t3)
2054 -------------------------------------------------------------------------------
2059 Join Filter: (b1t2.c1 = b1t1.c1)
2061 Hash Cond: (b1t4.c1 = b1t2.c1)
2062 -> Tid Scan on t4 b1t4
2063 TID Cond: (ctid = '(1,1)'::tid)
2066 Merge Cond: (b1t2.c1 = b1t3.c1)
2069 -> Seq Scan on t2 b1t2
2070 Filter: (ctid = '(1,1)'::tid)
2073 -> Tid Scan on t3 b1t3
2074 TID Cond: (ctid = '(1,1)'::tid)
2075 -> Tid Scan on t1 b1t1
2076 TID Cond: (ctid = '(1,1)'::tid)
2080 Join Filter: (b2t1.c1 = b2t2.c1)
2082 Hash Cond: (b2t1.c1 = b2t3.c1)
2083 -> Tid Scan on t1 b2t1
2084 TID Cond: (ctid = '(1,1)'::tid)
2087 Merge Cond: (b2t3.c1 = b2t4.c1)
2090 -> Tid Scan on t3 b2t3
2091 TID Cond: (ctid = '(1,1)'::tid)
2094 -> Tid Scan on t4 b2t4
2095 TID Cond: (ctid = '(1,1)'::tid)
2096 -> Seq Scan on t2 b2t2
2097 Filter: (ctid = '(1,1)'::tid)
2101 Join Filter: (b3t1.c1 = b3t3.c1)
2103 Hash Cond: (b3t2.c1 = b3t1.c1)
2104 -> Seq Scan on t2 b3t2
2105 Filter: (ctid = '(1,1)'::tid)
2108 Merge Cond: (b3t1.c1 = b3t4.c1)
2111 -> Tid Scan on t1 b3t1
2112 TID Cond: (ctid = '(1,1)'::tid)
2115 -> Tid Scan on t4 b3t4
2116 TID Cond: (ctid = '(1,1)'::tid)
2117 -> Tid Scan on t3 b3t3
2118 TID Cond: (ctid = '(1,1)'::tid)
2120 Join Filter: (bmt1.c1 = bmt4.c1)
2122 Hash Cond: (bmt3.c1 = bmt1.c1)
2123 -> Tid Scan on t3 bmt3
2124 TID Cond: (ctid = '(1,1)'::tid)
2127 Merge Cond: (bmt1.c1 = bmt2.c1)
2131 Join Filter: (c1.c1 = bmt1.c1)
2133 Hash Cond: (c2.c1 = c1.c1)
2135 Merge Cond: (c2.c1 = c3.c1)
2144 -> Tid Scan on t1 bmt1
2145 TID Cond: (ctid = '(1,1)'::tid)
2148 -> Seq Scan on t2 bmt2
2149 Filter: (ctid = '(1,1)'::tid)
2150 -> Tid Scan on t4 bmt4
2151 TID Cond: (ctid = '(1,1)'::tid)
2155 ---- No. J-2-2 the number of the tables per quiry block
2158 EXPLAIN (COSTS false)
2160 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2162 SELECT max(bmt1.c1), (
2163 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2165 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2168 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2172 -----------------------------------------------------------------
2176 InitPlan 1 (returns $0)
2178 -> Tid Scan on t1 b1t1
2179 TID Cond: (ctid = '(1,1)'::tid)
2180 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2181 InitPlan 4 (returns $3)
2183 InitPlan 3 (returns $2)
2185 -> Tid Scan on t1 b2t1
2186 TID Cond: (ctid = '(1,1)'::tid)
2187 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2188 InitPlan 6 (returns $5)
2190 InitPlan 5 (returns $4)
2192 -> Tid Scan on t1 b3t1
2193 TID Cond: (ctid = '(1,1)'::tid)
2194 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2196 -> Tid Scan on t1 bmt1
2197 TID Cond: (ctid = '(1,1)'::tid)
2198 Filter: ((c1 <> $5) AND (c1 = 1))
2210 EXPLAIN (COSTS false)
2212 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2214 SELECT max(bmt1.c1), (
2215 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2217 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2220 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2235 -----------------------------------------------------------------
2239 InitPlan 1 (returns $0)
2241 -> Tid Scan on t1 b1t1
2242 TID Cond: (ctid = '(1,1)'::tid)
2243 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2244 InitPlan 4 (returns $3)
2246 InitPlan 3 (returns $2)
2248 -> Tid Scan on t1 b2t1
2249 TID Cond: (ctid = '(1,1)'::tid)
2250 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2251 InitPlan 6 (returns $5)
2253 InitPlan 5 (returns $4)
2255 -> Tid Scan on t1 b3t1
2256 TID Cond: (ctid = '(1,1)'::tid)
2257 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2259 -> Tid Scan on t1 bmt1
2260 TID Cond: (ctid = '(1,1)'::tid)
2261 Filter: ((c1 <> $5) AND (c1 = 1))
2267 EXPLAIN (COSTS false)
2269 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)'
2271 SELECT max(bmt1.c1), (
2272 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)'
2274 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2277 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)'
2281 -------------------------------------------------------
2286 Join Filter: (b1t1.c1 = b1t2.c1)
2287 -> Tid Scan on t1 b1t1
2288 TID Cond: (ctid = '(1,1)'::tid)
2289 -> Seq Scan on t2 b1t2
2290 Filter: (ctid = '(1,1)'::tid)
2291 InitPlan 2 (returns $1)
2294 Join Filter: (b2t1.c1 = b2t2.c1)
2295 -> Tid Scan on t1 b2t1
2296 TID Cond: (ctid = '(1,1)'::tid)
2297 -> Seq Scan on t2 b2t2
2298 Filter: (ctid = '(1,1)'::tid)
2299 InitPlan 3 (returns $2)
2302 Join Filter: (b3t1.c1 = b3t2.c1)
2303 -> Tid Scan on t1 b3t1
2304 TID Cond: (ctid = '(1,1)'::tid)
2305 -> Seq Scan on t2 b3t2
2306 Filter: (ctid = '(1,1)'::tid)
2308 Join Filter: (bmt1.c1 = c1.c1)
2310 Join Filter: (bmt1.c1 = bmt2.c1)
2311 -> Tid Scan on t1 bmt1
2312 TID Cond: (ctid = '(1,1)'::tid)
2314 -> Seq Scan on t2 bmt2
2315 Filter: (ctid = '(1,1)'::tid)
2320 Leading(c1 bmt2 bmt1)
2325 HashJoin(c1 bmt1 bmt2)
2326 MergeJoin(b1t1 b1t2)
2327 MergeJoin(b2t1 b2t2)
2328 MergeJoin(b3t1 b3t2)
2330 EXPLAIN (COSTS false)
2332 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)'
2334 SELECT max(bmt1.c1), (
2335 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)'
2337 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2340 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)'
2345 MergeJoin(b1t1 b1t2)
2346 MergeJoin(b2t1 b2t2)
2347 MergeJoin(b3t1 b3t2)
2349 HashJoin(bmt1 bmt2 c1)
2350 Leading(c1 bmt2 bmt1)
2359 ---------------------------------------------------------------
2364 Merge Cond: (b1t1.c1 = b1t2.c1)
2367 -> Tid Scan on t1 b1t1
2368 TID Cond: (ctid = '(1,1)'::tid)
2371 -> Seq Scan on t2 b1t2
2372 Filter: (ctid = '(1,1)'::tid)
2373 InitPlan 2 (returns $1)
2376 Merge Cond: (b2t1.c1 = b2t2.c1)
2379 -> Tid Scan on t1 b2t1
2380 TID Cond: (ctid = '(1,1)'::tid)
2383 -> Seq Scan on t2 b2t2
2384 Filter: (ctid = '(1,1)'::tid)
2385 InitPlan 3 (returns $2)
2388 Merge Cond: (b3t1.c1 = b3t2.c1)
2391 -> Tid Scan on t1 b3t1
2392 TID Cond: (ctid = '(1,1)'::tid)
2395 -> Seq Scan on t2 b3t2
2396 Filter: (ctid = '(1,1)'::tid)
2398 Hash Cond: (bmt1.c1 = bmt2.c1)
2399 -> Tid Scan on t1 bmt1
2400 TID Cond: (ctid = '(1,1)'::tid)
2404 Merge Cond: (bmt2.c1 = c1.c1)
2407 -> Seq Scan on t2 bmt2
2408 Filter: (ctid = '(1,1)'::tid)
2415 EXPLAIN (COSTS false)
2417 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)'
2419 SELECT max(bmt1.c1), (
2420 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)'
2422 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
2424 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)'
2428 -------------------------------------------------------------------
2433 Join Filter: (b1t1.c1 = b1t4.c1)
2435 Join Filter: (b1t1.c1 = b1t3.c1)
2437 Join Filter: (b1t1.c1 = b1t2.c1)
2438 -> Tid Scan on t1 b1t1
2439 TID Cond: (ctid = '(1,1)'::tid)
2440 -> Seq Scan on t2 b1t2
2441 Filter: (ctid = '(1,1)'::tid)
2442 -> Tid Scan on t3 b1t3
2443 TID Cond: (ctid = '(1,1)'::tid)
2444 -> Tid Scan on t4 b1t4
2445 TID Cond: (ctid = '(1,1)'::tid)
2446 InitPlan 2 (returns $1)
2449 Join Filter: (b2t1.c1 = b2t4.c1)
2451 Join Filter: (b2t1.c1 = b2t3.c1)
2453 Join Filter: (b2t1.c1 = b2t2.c1)
2454 -> Tid Scan on t1 b2t1
2455 TID Cond: (ctid = '(1,1)'::tid)
2456 -> Seq Scan on t2 b2t2
2457 Filter: (ctid = '(1,1)'::tid)
2458 -> Tid Scan on t3 b2t3
2459 TID Cond: (ctid = '(1,1)'::tid)
2460 -> Tid Scan on t4 b2t4
2461 TID Cond: (ctid = '(1,1)'::tid)
2462 InitPlan 3 (returns $2)
2465 Join Filter: (b3t1.c1 = b3t4.c1)
2467 Join Filter: (b3t1.c1 = b3t3.c1)
2469 Join Filter: (b3t1.c1 = b3t2.c1)
2470 -> Tid Scan on t1 b3t1
2471 TID Cond: (ctid = '(1,1)'::tid)
2472 -> Seq Scan on t2 b3t2
2473 Filter: (ctid = '(1,1)'::tid)
2474 -> Tid Scan on t3 b3t3
2475 TID Cond: (ctid = '(1,1)'::tid)
2476 -> Tid Scan on t4 b3t4
2477 TID Cond: (ctid = '(1,1)'::tid)
2479 Join Filter: (bmt1.c1 = c1.c1)
2481 Join Filter: (bmt1.c1 = bmt4.c1)
2483 Join Filter: (bmt1.c1 = bmt3.c1)
2485 Join Filter: (bmt1.c1 = bmt2.c1)
2486 -> Tid Scan on t1 bmt1
2487 TID Cond: (ctid = '(1,1)'::tid)
2489 -> Seq Scan on t2 bmt2
2490 Filter: (ctid = '(1,1)'::tid)
2491 -> Tid Scan on t3 bmt3
2492 TID Cond: (ctid = '(1,1)'::tid)
2493 -> Tid Scan on t4 bmt4
2494 TID Cond: (ctid = '(1,1)'::tid)
2499 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2500 Leading(b1t4 b1t3 b1t2 b1t1)
2501 Leading(b2t4 b2t3 b2t2 b2t1)
2502 Leading(b3t4 b3t3 b3t2 b3t1)
2504 HashJoin(c1 bmt4 bmt3)
2505 NestLoop(c1 bmt4 bmt3 bmt2)
2506 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2508 NestLoop(b1t4 b1t3 b1t2)
2509 MergeJoin(b1t4 b1t3 b1t2 b1t1)
2511 NestLoop(b2t4 b2t3 b2t2)
2512 MergeJoin(b2t4 b2t3 b2t2 b2t1)
2514 NestLoop(b3t4 b3t3 b3t2)
2515 MergeJoin(b3t4 b3t3 b3t2 b3t1)
2517 EXPLAIN (COSTS false)
2519 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)'
2521 SELECT max(bmt1.c1), (
2522 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)'
2524 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
2526 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)'
2535 NestLoop(b1t2 b1t3 b1t4)
2536 NestLoop(b2t2 b2t3 b2t4)
2537 NestLoop(b3t2 b3t3 b3t4)
2538 HashJoin(bmt3 bmt4 c1)
2539 MergeJoin(b1t1 b1t2 b1t3 b1t4)
2540 MergeJoin(b2t1 b2t2 b2t3 b2t4)
2541 MergeJoin(b3t1 b3t2 b3t3 b3t4)
2542 NestLoop(bmt2 bmt3 bmt4 c1)
2543 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2544 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2545 Leading(b1t4 b1t3 b1t2 b1t1)
2546 Leading(b2t4 b2t3 b2t2 b2t1)
2547 Leading(b3t4 b3t3 b3t2 b3t1)
2553 -----------------------------------------------------------------------------------
2558 Merge Cond: (b1t2.c1 = b1t1.c1)
2562 Join Filter: (b1t3.c1 = b1t2.c1)
2564 Hash Cond: (b1t3.c1 = b1t4.c1)
2565 -> Tid Scan on t3 b1t3
2566 TID Cond: (ctid = '(1,1)'::tid)
2568 -> Tid Scan on t4 b1t4
2569 TID Cond: (ctid = '(1,1)'::tid)
2570 -> Seq Scan on t2 b1t2
2571 Filter: (ctid = '(1,1)'::tid)
2574 -> Tid Scan on t1 b1t1
2575 TID Cond: (ctid = '(1,1)'::tid)
2576 InitPlan 2 (returns $1)
2579 Merge Cond: (b2t2.c1 = b2t1.c1)
2583 Join Filter: (b2t3.c1 = b2t2.c1)
2585 Hash Cond: (b2t3.c1 = b2t4.c1)
2586 -> Tid Scan on t3 b2t3
2587 TID Cond: (ctid = '(1,1)'::tid)
2589 -> Tid Scan on t4 b2t4
2590 TID Cond: (ctid = '(1,1)'::tid)
2591 -> Seq Scan on t2 b2t2
2592 Filter: (ctid = '(1,1)'::tid)
2595 -> Tid Scan on t1 b2t1
2596 TID Cond: (ctid = '(1,1)'::tid)
2597 InitPlan 3 (returns $2)
2600 Merge Cond: (b3t2.c1 = b3t1.c1)
2604 Join Filter: (b3t3.c1 = b3t2.c1)
2606 Hash Cond: (b3t3.c1 = b3t4.c1)
2607 -> Tid Scan on t3 b3t3
2608 TID Cond: (ctid = '(1,1)'::tid)
2610 -> Tid Scan on t4 b3t4
2611 TID Cond: (ctid = '(1,1)'::tid)
2612 -> Seq Scan on t2 b3t2
2613 Filter: (ctid = '(1,1)'::tid)
2616 -> Tid Scan on t1 b3t1
2617 TID Cond: (ctid = '(1,1)'::tid)
2619 Merge Cond: (bmt2.c1 = bmt1.c1)
2623 Join Filter: (bmt3.c1 = bmt2.c1)
2625 Hash Cond: (bmt3.c1 = bmt4.c1)
2626 -> Tid Scan on t3 bmt3
2627 TID Cond: (ctid = '(1,1)'::tid)
2630 Merge Cond: (bmt4.c1 = c1.c1)
2633 -> Tid Scan on t4 bmt4
2634 TID Cond: (ctid = '(1,1)'::tid)
2638 -> Seq Scan on t2 bmt2
2639 Filter: (ctid = '(1,1)'::tid)
2642 -> Tid Scan on t1 bmt1
2643 TID Cond: (ctid = '(1,1)'::tid)
2648 EXPLAIN (COSTS false)
2650 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)'
2652 SELECT max(bmt1.c1), (
2653 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2655 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
2657 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2661 -------------------------------------------------------------------
2666 Join Filter: (b1t1.c1 = b1t4.c1)
2668 Join Filter: (b1t1.c1 = b1t3.c1)
2670 Join Filter: (b1t1.c1 = b1t2.c1)
2671 -> Tid Scan on t1 b1t1
2672 TID Cond: (ctid = '(1,1)'::tid)
2673 -> Seq Scan on t2 b1t2
2674 Filter: (ctid = '(1,1)'::tid)
2675 -> Tid Scan on t3 b1t3
2676 TID Cond: (ctid = '(1,1)'::tid)
2677 -> Tid Scan on t4 b1t4
2678 TID Cond: (ctid = '(1,1)'::tid)
2679 InitPlan 3 (returns $2)
2681 InitPlan 2 (returns $1)
2683 -> Tid Scan on t1 b2t1
2684 TID Cond: (ctid = '(1,1)'::tid)
2685 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2686 InitPlan 4 (returns $3)
2688 -> Tid Scan on t1 b3t1
2689 TID Cond: (ctid = '(1,1)'::tid)
2691 Join Filter: (bmt1.c1 = c1.c1)
2693 Join Filter: (bmt1.c1 = bmt4.c1)
2695 Join Filter: (bmt1.c1 = bmt3.c1)
2697 Join Filter: (bmt1.c1 = bmt2.c1)
2698 -> Tid Scan on t1 bmt1
2699 TID Cond: (ctid = '(1,1)'::tid)
2701 -> Seq Scan on t2 bmt2
2702 Filter: (ctid = '(1,1)'::tid)
2703 -> Tid Scan on t3 bmt3
2704 TID Cond: (ctid = '(1,1)'::tid)
2705 -> Tid Scan on t4 bmt4
2706 TID Cond: (ctid = '(1,1)'::tid)
2711 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2712 Leading(b1t4 b1t3 b1t2 b1t1)
2714 HashJoin(c1 bmt4 bmt3)
2715 NestLoop(c1 bmt4 bmt3 bmt2)
2716 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2717 MergeJoin(b1t4 b1t3)
2718 HashJoin(b1t4 b1t3 b1t2)
2719 NestLoop(b1t4 b1t3 b1t2 b1t1)
2721 EXPLAIN (COSTS false)
2723 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)'
2725 SELECT max(bmt1.c1), (
2726 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2728 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
2730 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2735 MergeJoin(b1t3 b1t4)
2737 HashJoin(b1t2 b1t3 b1t4)
2738 HashJoin(bmt3 bmt4 c1)
2739 NestLoop(b1t1 b1t2 b1t3 b1t4)
2740 NestLoop(bmt2 bmt3 bmt4 c1)
2741 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2742 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2743 Leading(b1t4 b1t3 b1t2 b1t1)
2749 -----------------------------------------------------------------------------------
2754 Join Filter: (b1t2.c1 = b1t1.c1)
2756 Hash Cond: (b1t2.c1 = b1t3.c1)
2757 -> Seq Scan on t2 b1t2
2758 Filter: (ctid = '(1,1)'::tid)
2761 Merge Cond: (b1t3.c1 = b1t4.c1)
2764 -> Tid Scan on t3 b1t3
2765 TID Cond: (ctid = '(1,1)'::tid)
2768 -> Tid Scan on t4 b1t4
2769 TID Cond: (ctid = '(1,1)'::tid)
2770 -> Tid Scan on t1 b1t1
2771 TID Cond: (ctid = '(1,1)'::tid)
2772 InitPlan 3 (returns $2)
2774 InitPlan 2 (returns $1)
2776 -> Tid Scan on t1 b2t1
2777 TID Cond: (ctid = '(1,1)'::tid)
2778 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2779 InitPlan 4 (returns $3)
2781 -> Tid Scan on t1 b3t1
2782 TID Cond: (ctid = '(1,1)'::tid)
2784 Merge Cond: (bmt2.c1 = bmt1.c1)
2788 Join Filter: (bmt3.c1 = bmt2.c1)
2790 Hash Cond: (bmt3.c1 = bmt4.c1)
2791 -> Tid Scan on t3 bmt3
2792 TID Cond: (ctid = '(1,1)'::tid)
2795 Merge Cond: (bmt4.c1 = c1.c1)
2798 -> Tid Scan on t4 bmt4
2799 TID Cond: (ctid = '(1,1)'::tid)
2803 -> Seq Scan on t2 bmt2
2804 Filter: (ctid = '(1,1)'::tid)
2807 -> Tid Scan on t1 bmt1
2808 TID Cond: (ctid = '(1,1)'::tid)
2813 ---- No. J-2-3 RULE or VIEW
2816 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2818 -----------------------------------------------------------------
2821 Join Filter: (t1.c1 = t4.c1)
2823 Join Filter: (t1.c1 = t3.c1)
2825 Join Filter: (t1.c1 = t2.c1)
2828 TID Cond: (ctid = '(1,1)'::tid)
2831 TID Cond: (ctid = '(1,1)'::tid)
2833 Filter: (ctid = '(1,1)'::tid)
2835 TID Cond: (ctid = '(1,1)'::tid)
2837 TID Cond: (ctid = '(1,1)'::tid)
2841 Leading(t4 t3 t2 t1 r1)
2842 MergeJoin(t4 t3 t2 t1 r1)
2843 HashJoin(t4 t3 t2 t1)
2847 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2852 HashJoin(t1 t2 t3 t4)
2853 MergeJoin(r1 t1 t2 t3 t4)
2854 Leading(t4 t3 t2 t1 r1)
2860 -----------------------------------------------------------------------------
2864 Hash Cond: (t1.c1 = t2.c1)
2866 TID Cond: (ctid = '(1,1)'::tid)
2869 Join Filter: (t3.c1 = t2.c1)
2871 Merge Cond: (t3.c1 = t4.c1)
2875 TID Cond: (ctid = '(1,1)'::tid)
2879 TID Cond: (ctid = '(1,1)'::tid)
2881 Filter: (ctid = '(1,1)'::tid)
2883 TID Cond: (ctid = '(1,1)'::tid)
2887 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2889 -----------------------------------------------------------------
2892 Join Filter: (b1t1.c1 = b1t4.c1)
2894 Join Filter: (b1t1.c1 = b1t3.c1)
2896 Join Filter: (b1t1.c1 = b1t2.c1)
2899 TID Cond: (ctid = '(1,1)'::tid)
2901 -> Tid Scan on t1 b1t1
2902 TID Cond: (ctid = '(1,1)'::tid)
2903 -> Seq Scan on t2 b1t2
2904 Filter: (ctid = '(1,1)'::tid)
2905 -> Tid Scan on t3 b1t3
2906 TID Cond: (ctid = '(1,1)'::tid)
2907 -> Tid Scan on t4 b1t4
2908 TID Cond: (ctid = '(1,1)'::tid)
2912 Leading(b1t4 b1t3 b1t2 b1t1 r1_)
2913 MergeJoin(b1t4 b1t3 b1t2 b1t1 r1_)
2914 HashJoin(b1t4 b1t3 b1t2 b1t1)
2915 NestLoop(b1t4 b1t3 b1t2)
2916 MergeJoin(b1t4 b1t3)
2918 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2921 MergeJoin(b1t3 b1t4)
2922 NestLoop(b1t2 b1t3 b1t4)
2923 HashJoin(b1t1 b1t2 b1t3 b1t4)
2924 MergeJoin(b1t1 b1t2 b1t3 b1t4 r1_)
2925 Leading(b1t4 b1t3 b1t2 b1t1 r1_)
2931 -----------------------------------------------------------------------------
2935 Hash Cond: (b1t1.c1 = b1t2.c1)
2936 -> Tid Scan on t1 b1t1
2937 TID Cond: (ctid = '(1,1)'::tid)
2940 Join Filter: (b1t3.c1 = b1t2.c1)
2942 Merge Cond: (b1t3.c1 = b1t4.c1)
2945 -> Tid Scan on t3 b1t3
2946 TID Cond: (ctid = '(1,1)'::tid)
2949 -> Tid Scan on t4 b1t4
2950 TID Cond: (ctid = '(1,1)'::tid)
2951 -> Seq Scan on t2 b1t2
2952 Filter: (ctid = '(1,1)'::tid)
2954 TID Cond: (ctid = '(1,1)'::tid)
2959 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2961 -----------------------------------------------------------------
2964 Join Filter: (t1.c1 = t4.c1)
2966 Join Filter: (t1.c1 = t3.c1)
2968 Join Filter: (t1.c1 = t2.c1)
2971 TID Cond: (ctid = '(1,1)'::tid)
2974 TID Cond: (ctid = '(1,1)'::tid)
2976 Filter: (ctid = '(1,1)'::tid)
2978 TID Cond: (ctid = '(1,1)'::tid)
2980 TID Cond: (ctid = '(1,1)'::tid)
2984 Join Filter: (t1.c1 = t4.c1)
2986 Join Filter: (t1.c1 = t3.c1)
2988 Join Filter: (t1.c1 = t2.c1)
2991 TID Cond: (ctid = '(1,1)'::tid)
2994 TID Cond: (ctid = '(1,1)'::tid)
2996 Filter: (ctid = '(1,1)'::tid)
2998 TID Cond: (ctid = '(1,1)'::tid)
3000 TID Cond: (ctid = '(1,1)'::tid)
3004 Leading(t4 t3 t2 t1 r2)
3005 MergeJoin(t4 t3 t2 t1 r2)
3006 HashJoin(t4 t3 t2 t1)
3010 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3015 HashJoin(t1 t2 t3 t4)
3016 MergeJoin(r2 t1 t2 t3 t4)
3017 Leading(t4 t3 t2 t1 r2)
3026 HashJoin(t1 t2 t3 t4)
3027 MergeJoin(r2 t1 t2 t3 t4)
3028 Leading(t4 t3 t2 t1 r2)
3034 -----------------------------------------------------------------------------
3038 Hash Cond: (t1.c1 = t2.c1)
3040 TID Cond: (ctid = '(1,1)'::tid)
3043 Join Filter: (t3.c1 = t2.c1)
3045 Merge Cond: (t3.c1 = t4.c1)
3049 TID Cond: (ctid = '(1,1)'::tid)
3053 TID Cond: (ctid = '(1,1)'::tid)
3055 Filter: (ctid = '(1,1)'::tid)
3057 TID Cond: (ctid = '(1,1)'::tid)
3063 Hash Cond: (t1.c1 = t2.c1)
3065 TID Cond: (ctid = '(1,1)'::tid)
3068 Join Filter: (t3.c1 = t2.c1)
3070 Merge Cond: (t3.c1 = t4.c1)
3074 TID Cond: (ctid = '(1,1)'::tid)
3078 TID Cond: (ctid = '(1,1)'::tid)
3080 Filter: (ctid = '(1,1)'::tid)
3082 TID Cond: (ctid = '(1,1)'::tid)
3086 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3088 -----------------------------------------------------------------
3091 Join Filter: (b1t1.c1 = b1t4.c1)
3093 Join Filter: (b1t1.c1 = b1t3.c1)
3095 Join Filter: (b1t1.c1 = b1t2.c1)
3098 TID Cond: (ctid = '(1,1)'::tid)
3100 -> Tid Scan on t1 b1t1
3101 TID Cond: (ctid = '(1,1)'::tid)
3102 -> Seq Scan on t2 b1t2
3103 Filter: (ctid = '(1,1)'::tid)
3104 -> Tid Scan on t3 b1t3
3105 TID Cond: (ctid = '(1,1)'::tid)
3106 -> Tid Scan on t4 b1t4
3107 TID Cond: (ctid = '(1,1)'::tid)
3111 Join Filter: (b2t1.c1 = b2t4.c1)
3113 Join Filter: (b2t1.c1 = b2t3.c1)
3115 Join Filter: (b2t1.c1 = b2t2.c1)
3118 TID Cond: (ctid = '(1,1)'::tid)
3120 -> Tid Scan on t1 b2t1
3121 TID Cond: (ctid = '(1,1)'::tid)
3122 -> Seq Scan on t2 b2t2
3123 Filter: (ctid = '(1,1)'::tid)
3124 -> Tid Scan on t3 b2t3
3125 TID Cond: (ctid = '(1,1)'::tid)
3126 -> Tid Scan on t4 b2t4
3127 TID Cond: (ctid = '(1,1)'::tid)
3131 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3132 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3133 MergeJoin(b1t1 b1t2)
3134 HashJoin(b1t1 b1t2 b1t3)
3135 NestLoop(b1t1 b1t2 b1t3 b1t4)
3136 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3137 MergeJoin(b2t1 b2t2)
3138 HashJoin(b2t1 b2t2 b2t3)
3139 NestLoop(b2t1 b2t2 b2t3 b2t4)
3140 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3142 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3145 MergeJoin(b1t1 b1t2)
3146 HashJoin(b1t1 b1t2 b1t3)
3147 NestLoop(b1t1 b1t2 b1t3 b1t4)
3148 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3149 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3151 MergeJoin(b2t1 b2t2)
3152 HashJoin(b2t1 b2t2 b2t3)
3153 NestLoop(b2t1 b2t2 b2t3 b2t4)
3154 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3155 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3161 MergeJoin(b2t1 b2t2)
3162 HashJoin(b2t1 b2t2 b2t3)
3163 NestLoop(b2t1 b2t2 b2t3 b2t4)
3164 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3165 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3167 MergeJoin(b1t1 b1t2)
3168 HashJoin(b1t1 b1t2 b1t3)
3169 NestLoop(b1t1 b1t2 b1t3 b1t4)
3170 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3171 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3176 -----------------------------------------------------------------------------
3180 Join Filter: (b1t1.c1 = b1t4.c1)
3182 Hash Cond: (b1t3.c1 = b1t1.c1)
3183 -> Tid Scan on t3 b1t3
3184 TID Cond: (ctid = '(1,1)'::tid)
3187 Merge Cond: (b1t1.c1 = b1t2.c1)
3190 -> Tid Scan on t1 b1t1
3191 TID Cond: (ctid = '(1,1)'::tid)
3194 -> Seq Scan on t2 b1t2
3195 Filter: (ctid = '(1,1)'::tid)
3196 -> Tid Scan on t4 b1t4
3197 TID Cond: (ctid = '(1,1)'::tid)
3199 TID Cond: (ctid = '(1,1)'::tid)
3205 Join Filter: (b2t1.c1 = b2t4.c1)
3207 Hash Cond: (b2t3.c1 = b2t1.c1)
3208 -> Tid Scan on t3 b2t3
3209 TID Cond: (ctid = '(1,1)'::tid)
3212 Merge Cond: (b2t1.c1 = b2t2.c1)
3215 -> Tid Scan on t1 b2t1
3216 TID Cond: (ctid = '(1,1)'::tid)
3219 -> Seq Scan on t2 b2t2
3220 Filter: (ctid = '(1,1)'::tid)
3221 -> Tid Scan on t4 b2t4
3222 TID Cond: (ctid = '(1,1)'::tid)
3224 TID Cond: (ctid = '(1,1)'::tid)
3229 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3231 -----------------------------------------------------------------
3234 Join Filter: (t1.c1 = t4.c1)
3236 Join Filter: (t1.c1 = t3.c1)
3238 Join Filter: (t1.c1 = t2.c1)
3241 TID Cond: (ctid = '(1,1)'::tid)
3244 TID Cond: (ctid = '(1,1)'::tid)
3246 Filter: (ctid = '(1,1)'::tid)
3248 TID Cond: (ctid = '(1,1)'::tid)
3250 TID Cond: (ctid = '(1,1)'::tid)
3254 Join Filter: (t1.c1 = t4.c1)
3256 Join Filter: (t1.c1 = t3.c1)
3258 Join Filter: (t1.c1 = t2.c1)
3261 TID Cond: (ctid = '(1,1)'::tid)
3264 TID Cond: (ctid = '(1,1)'::tid)
3266 Filter: (ctid = '(1,1)'::tid)
3268 TID Cond: (ctid = '(1,1)'::tid)
3270 TID Cond: (ctid = '(1,1)'::tid)
3274 Join Filter: (t1.c1 = t4.c1)
3276 Join Filter: (t1.c1 = t3.c1)
3278 Join Filter: (t1.c1 = t2.c1)
3281 TID Cond: (ctid = '(1,1)'::tid)
3284 TID Cond: (ctid = '(1,1)'::tid)
3286 Filter: (ctid = '(1,1)'::tid)
3288 TID Cond: (ctid = '(1,1)'::tid)
3290 TID Cond: (ctid = '(1,1)'::tid)
3294 Leading(t4 t3 t2 t1 r3)
3295 MergeJoin(t4 t3 t2 t1 r3)
3296 HashJoin(t4 t3 t2 t1)
3300 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3305 HashJoin(t1 t2 t3 t4)
3306 MergeJoin(r3 t1 t2 t3 t4)
3307 Leading(t4 t3 t2 t1 r3)
3316 HashJoin(t1 t2 t3 t4)
3317 MergeJoin(r3 t1 t2 t3 t4)
3318 Leading(t4 t3 t2 t1 r3)
3327 HashJoin(t1 t2 t3 t4)
3328 MergeJoin(r3 t1 t2 t3 t4)
3329 Leading(t4 t3 t2 t1 r3)
3335 -----------------------------------------------------------------------------
3339 Hash Cond: (t1.c1 = t2.c1)
3341 TID Cond: (ctid = '(1,1)'::tid)
3344 Join Filter: (t3.c1 = t2.c1)
3346 Merge Cond: (t3.c1 = t4.c1)
3350 TID Cond: (ctid = '(1,1)'::tid)
3354 TID Cond: (ctid = '(1,1)'::tid)
3356 Filter: (ctid = '(1,1)'::tid)
3358 TID Cond: (ctid = '(1,1)'::tid)
3364 Hash Cond: (t1.c1 = t2.c1)
3366 TID Cond: (ctid = '(1,1)'::tid)
3369 Join Filter: (t3.c1 = t2.c1)
3371 Merge Cond: (t3.c1 = t4.c1)
3375 TID Cond: (ctid = '(1,1)'::tid)
3379 TID Cond: (ctid = '(1,1)'::tid)
3381 Filter: (ctid = '(1,1)'::tid)
3383 TID Cond: (ctid = '(1,1)'::tid)
3389 Hash Cond: (t1.c1 = t2.c1)
3391 TID Cond: (ctid = '(1,1)'::tid)
3394 Join Filter: (t3.c1 = t2.c1)
3396 Merge Cond: (t3.c1 = t4.c1)
3400 TID Cond: (ctid = '(1,1)'::tid)
3404 TID Cond: (ctid = '(1,1)'::tid)
3406 Filter: (ctid = '(1,1)'::tid)
3408 TID Cond: (ctid = '(1,1)'::tid)
3412 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3414 -----------------------------------------------------------------
3417 Join Filter: (b1t1.c1 = b1t4.c1)
3419 Join Filter: (b1t1.c1 = b1t3.c1)
3421 Join Filter: (b1t1.c1 = b1t2.c1)
3424 TID Cond: (ctid = '(1,1)'::tid)
3426 -> Tid Scan on t1 b1t1
3427 TID Cond: (ctid = '(1,1)'::tid)
3428 -> Seq Scan on t2 b1t2
3429 Filter: (ctid = '(1,1)'::tid)
3430 -> Tid Scan on t3 b1t3
3431 TID Cond: (ctid = '(1,1)'::tid)
3432 -> Tid Scan on t4 b1t4
3433 TID Cond: (ctid = '(1,1)'::tid)
3437 Join Filter: (b2t1.c1 = b2t4.c1)
3439 Join Filter: (b2t1.c1 = b2t3.c1)
3441 Join Filter: (b2t1.c1 = b2t2.c1)
3444 TID Cond: (ctid = '(1,1)'::tid)
3446 -> Tid Scan on t1 b2t1
3447 TID Cond: (ctid = '(1,1)'::tid)
3448 -> Seq Scan on t2 b2t2
3449 Filter: (ctid = '(1,1)'::tid)
3450 -> Tid Scan on t3 b2t3
3451 TID Cond: (ctid = '(1,1)'::tid)
3452 -> Tid Scan on t4 b2t4
3453 TID Cond: (ctid = '(1,1)'::tid)
3457 Join Filter: (b3t1.c1 = b3t4.c1)
3459 Join Filter: (b3t1.c1 = b3t3.c1)
3461 Join Filter: (b3t1.c1 = b3t2.c1)
3464 TID Cond: (ctid = '(1,1)'::tid)
3466 -> Tid Scan on t1 b3t1
3467 TID Cond: (ctid = '(1,1)'::tid)
3468 -> Seq Scan on t2 b3t2
3469 Filter: (ctid = '(1,1)'::tid)
3470 -> Tid Scan on t3 b3t3
3471 TID Cond: (ctid = '(1,1)'::tid)
3472 -> Tid Scan on t4 b3t4
3473 TID Cond: (ctid = '(1,1)'::tid)
3477 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3478 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3479 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3480 MergeJoin(b1t1 b1t2)
3481 HashJoin(b1t1 b1t2 b1t3)
3482 NestLoop(b1t1 b1t2 b1t3 b1t4)
3483 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3484 MergeJoin(b2t1 b2t2)
3485 HashJoin(b2t1 b2t2 b2t3)
3486 NestLoop(b2t1 b2t2 b2t3 b2t4)
3487 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3488 MergeJoin(b3t1 b3t2)
3489 HashJoin(b3t1 b3t2 b3t3)
3490 NestLoop(b3t1 b3t2 b3t3 b3t4)
3491 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3493 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3496 MergeJoin(b1t1 b1t2)
3497 HashJoin(b1t1 b1t2 b1t3)
3498 NestLoop(b1t1 b1t2 b1t3 b1t4)
3499 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3500 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3502 MergeJoin(b2t1 b2t2)
3503 MergeJoin(b3t1 b3t2)
3504 HashJoin(b2t1 b2t2 b2t3)
3505 HashJoin(b3t1 b3t2 b3t3)
3506 NestLoop(b2t1 b2t2 b2t3 b2t4)
3507 NestLoop(b3t1 b3t2 b3t3 b3t4)
3508 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3509 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3510 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3511 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3517 MergeJoin(b2t1 b2t2)
3518 HashJoin(b2t1 b2t2 b2t3)
3519 NestLoop(b2t1 b2t2 b2t3 b2t4)
3520 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3521 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3523 MergeJoin(b1t1 b1t2)
3524 MergeJoin(b3t1 b3t2)
3525 HashJoin(b1t1 b1t2 b1t3)
3526 HashJoin(b3t1 b3t2 b3t3)
3527 NestLoop(b1t1 b1t2 b1t3 b1t4)
3528 NestLoop(b3t1 b3t2 b3t3 b3t4)
3529 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3530 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3531 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3532 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3538 MergeJoin(b3t1 b3t2)
3539 HashJoin(b3t1 b3t2 b3t3)
3540 NestLoop(b3t1 b3t2 b3t3 b3t4)
3541 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3542 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3544 MergeJoin(b1t1 b1t2)
3545 MergeJoin(b2t1 b2t2)
3546 HashJoin(b1t1 b1t2 b1t3)
3547 HashJoin(b2t1 b2t2 b2t3)
3548 NestLoop(b1t1 b1t2 b1t3 b1t4)
3549 NestLoop(b2t1 b2t2 b2t3 b2t4)
3550 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3551 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3552 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3553 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3558 -----------------------------------------------------------------------------
3562 Join Filter: (b1t1.c1 = b1t4.c1)
3564 Hash Cond: (b1t3.c1 = b1t1.c1)
3565 -> Tid Scan on t3 b1t3
3566 TID Cond: (ctid = '(1,1)'::tid)
3569 Merge Cond: (b1t1.c1 = b1t2.c1)
3572 -> Tid Scan on t1 b1t1
3573 TID Cond: (ctid = '(1,1)'::tid)
3576 -> Seq Scan on t2 b1t2
3577 Filter: (ctid = '(1,1)'::tid)
3578 -> Tid Scan on t4 b1t4
3579 TID Cond: (ctid = '(1,1)'::tid)
3581 TID Cond: (ctid = '(1,1)'::tid)
3587 Join Filter: (b2t1.c1 = b2t4.c1)
3589 Hash Cond: (b2t3.c1 = b2t1.c1)
3590 -> Tid Scan on t3 b2t3
3591 TID Cond: (ctid = '(1,1)'::tid)
3594 Merge Cond: (b2t1.c1 = b2t2.c1)
3597 -> Tid Scan on t1 b2t1
3598 TID Cond: (ctid = '(1,1)'::tid)
3601 -> Seq Scan on t2 b2t2
3602 Filter: (ctid = '(1,1)'::tid)
3603 -> Tid Scan on t4 b2t4
3604 TID Cond: (ctid = '(1,1)'::tid)
3606 TID Cond: (ctid = '(1,1)'::tid)
3612 Join Filter: (b3t1.c1 = b3t4.c1)
3614 Hash Cond: (b3t3.c1 = b3t1.c1)
3615 -> Tid Scan on t3 b3t3
3616 TID Cond: (ctid = '(1,1)'::tid)
3619 Merge Cond: (b3t1.c1 = b3t2.c1)
3622 -> Tid Scan on t1 b3t1
3623 TID Cond: (ctid = '(1,1)'::tid)
3626 -> Seq Scan on t2 b3t2
3627 Filter: (ctid = '(1,1)'::tid)
3628 -> Tid Scan on t4 b3t4
3629 TID Cond: (ctid = '(1,1)'::tid)
3631 TID Cond: (ctid = '(1,1)'::tid)
3636 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3638 ------------------------------------
3640 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3641 -> Seq Scan on t1 v1t1
3643 -> Seq Scan on t1 v1t1_1
3646 /*+HashJoin(v1t1 v1t1)*/
3647 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3648 INFO: hint syntax error at or near "HashJoin(v1t1 v1t1)"
3649 DETAIL: Relation name "v1t1" is ambiguous.
3658 ------------------------------------
3660 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3661 -> Seq Scan on t1 v1t1
3663 -> Seq Scan on t1 v1t1_1
3667 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3669 -----------------------------------
3671 Hash Cond: (v1t1.c1 = v1t1_.c1)
3672 -> Seq Scan on t1 v1t1
3674 -> Seq Scan on t1 v1t1_
3677 /*+NestLoop(v1t1 v1t1_)*/
3678 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3681 NestLoop(v1t1 v1t1_)
3687 ------------------------------------------
3689 -> Seq Scan on t1 v1t1
3690 -> Index Scan using t1_i1 on t1 v1t1_
3691 Index Cond: (c1 = v1t1.c1)
3695 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3697 ------------------------------------
3699 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3700 -> Seq Scan on t1 r4t1
3702 -> Seq Scan on t1 r4t1_1
3705 /*+HashJoin(r4t1 r4t1)*/
3706 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3707 INFO: hint syntax error at or near "HashJoin(r4t1 r4t1)"
3708 DETAIL: Relation name "r4t1" is ambiguous.
3717 ------------------------------------
3719 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3720 -> Seq Scan on t1 r4t1
3722 -> Seq Scan on t1 r4t1_1
3726 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3728 ----------------------------------
3730 Hash Cond: (r4t1.c1 = r5t1.c1)
3731 -> Seq Scan on t1 r4t1
3733 -> Seq Scan on t1 r5t1
3736 /*+NestLoop(r4t1 r5t1)*/
3737 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3746 -----------------------------------------
3748 -> Seq Scan on t1 r4t1
3749 -> Index Scan using t1_i1 on t1 r5t1
3750 Index Cond: (c1 = r4t1.c1)
3754 ---- No. J-2-4 VALUES clause
3757 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;
3759 -------------------------------------------------
3762 Hash Cond: (t2.c1 = "*VALUES*".column1)
3765 -> Values Scan on "*VALUES*"
3766 -> Index Scan using t1_i1 on t1
3767 Index Cond: (c1 = t2.c1)
3770 /*+ Leading(t3 t1 t2) HashJoin(t3 t1)NestLoop(t3 t1 t2)*/
3771 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;
3782 -------------------------------------------------
3785 Hash Cond: (t2.c1 = "*VALUES*".column1)
3788 -> Values Scan on "*VALUES*"
3789 -> Index Scan using t1_i1 on t1
3790 Index Cond: (c1 = t2.c1)
3793 /*+ Leading(*VALUES* t1 t2) HashJoin(*VALUES* t1)NestLoop(*VALUES* t1 t2)*/
3794 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;
3797 HashJoin(*VALUES* t1)
3798 NestLoop(*VALUES* t1 t2)
3799 Leading(*VALUES* t1 t2)
3805 -------------------------------------------------
3808 Hash Cond: (t1.c1 = "*VALUES*".column1)
3811 -> Values Scan on "*VALUES*"
3812 -> Index Scan using t2_i1 on t2
3813 Index Cond: (c1 = t1.c1)
3817 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;
3819 -------------------------------------------------------
3821 Join Filter: (t1.c1 = "*VALUES*_1".column1)
3824 Hash Cond: (t2.c1 = "*VALUES*".column1)
3827 -> Values Scan on "*VALUES*"
3828 -> Index Scan using t1_i1 on t1
3829 Index Cond: (c1 = t2.c1)
3830 -> Values Scan on "*VALUES*_1"
3833 /*+ Leading(t4 t3 t2 t1) NestLoop(t4 t3)HashJoin(t4 t3 t2)MergeJoin(t4 t3 t2 t1)*/
3834 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;
3840 MergeJoin(t1 t2 t3 t4)
3841 Leading(t4 t3 t2 t1)
3846 -------------------------------------------------------
3848 Join Filter: (t1.c1 = "*VALUES*_1".column1)
3851 Hash Cond: (t2.c1 = "*VALUES*".column1)
3854 -> Values Scan on "*VALUES*"
3855 -> Index Scan using t1_i1 on t1
3856 Index Cond: (c1 = t2.c1)
3857 -> Values Scan on "*VALUES*_1"
3860 /*+ Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)*/
3861 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;
3862 INFO: hint syntax error at or near "HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)"
3863 DETAIL: Relation name "*VALUES*" is ambiguous.
3864 INFO: hint syntax error at or near "MergeJoin(*VALUES* t3 t2 t1)"
3865 DETAIL: Relation name "*VALUES*" is ambiguous.
3866 INFO: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)"
3867 DETAIL: Relation name "*VALUES*" is ambiguous.
3874 HashJoin(*VALUES* t2 t3)
3875 MergeJoin(*VALUES* t1 t2 t3)
3876 Leading(*VALUES* t3 t2 t1)
3879 -------------------------------------------------------
3881 Join Filter: (t1.c1 = "*VALUES*_1".column1)
3884 Hash Cond: (t2.c1 = "*VALUES*".column1)
3887 -> Values Scan on "*VALUES*"
3888 -> Index Scan using t1_i1 on t1
3889 Index Cond: (c1 = t2.c1)
3890 -> Values Scan on "*VALUES*_1"
3894 ---- No. J-3-1 join method hint
3897 SET enable_nestloop TO on;
3898 SET enable_mergejoin TO off;
3899 SET enable_hashjoin TO off;
3900 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3902 ------------------------------------
3905 -> Index Scan using t1_i1 on t1
3906 Index Cond: (c1 = t2.c1)
3909 /*+NestLoop(t1 t2)*/
3910 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3919 ------------------------------------
3922 -> Index Scan using t1_i1 on t1
3923 Index Cond: (c1 = t2.c1)
3926 /*+HashJoin(t1 t2)*/
3927 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3936 ------------------------------
3938 Hash Cond: (t1.c1 = t2.c1)
3944 /*+MergeJoin(t1 t2)*/
3945 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3954 ------------------------------------
3956 Merge Cond: (t1.c1 = t2.c1)
3957 -> Index Scan using t1_i1 on t1
3963 SET enable_mergejoin TO on;
3964 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';;
3966 -----------------------------------------
3968 Join Filter: (t1.c1 = t2.c1)
3970 TID Cond: (ctid = '(1,1)'::tid)
3974 /*+NoNestLoop(t1 t2)*/
3975 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';;
3984 -----------------------------------------------
3986 Merge Cond: (t1.c1 = t2.c1)
3990 TID Cond: (ctid = '(1,1)'::tid)
3996 SET enable_mergejoin TO off;
3997 /*+NoHashJoin(t1 t2)*/
3998 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4007 ------------------------------------
4010 -> Index Scan using t1_i1 on t1
4011 Index Cond: (c1 = t2.c1)
4014 /*+NoMergeJoin(t1 t2)*/
4015 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4024 ------------------------------------
4027 -> Index Scan using t1_i1 on t1
4028 Index Cond: (c1 = t2.c1)
4032 SET enable_nestloop TO off;
4033 SET enable_mergejoin TO off;
4034 SET enable_hashjoin TO on;
4035 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4037 ------------------------------
4039 Hash Cond: (t1.c1 = t2.c1)
4045 /*+NestLoop(t1 t2)*/
4046 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4055 ------------------------------------
4058 -> Index Scan using t1_i1 on t1
4059 Index Cond: (c1 = t2.c1)
4062 /*+HashJoin(t1 t2)*/
4063 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4072 ------------------------------
4074 Hash Cond: (t1.c1 = t2.c1)
4080 /*+MergeJoin(t1 t2)*/
4081 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4090 ------------------------------------
4092 Merge Cond: (t1.c1 = t2.c1)
4093 -> Index Scan using t1_i1 on t1
4099 /*+NoNestLoop(t1 t2)*/
4100 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4109 ------------------------------
4111 Hash Cond: (t1.c1 = t2.c1)
4117 /*+NoHashJoin(t1 t2)*/
4118 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4127 ------------------------------------
4130 -> Index Scan using t1_i1 on t1
4131 Index Cond: (c1 = t2.c1)
4134 /*+NoMergeJoin(t1 t2)*/
4135 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4144 ------------------------------
4146 Hash Cond: (t1.c1 = t2.c1)
4153 SET enable_nestloop TO off;
4154 SET enable_mergejoin TO on;
4155 SET enable_hashjoin TO off;
4156 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4158 ------------------------------------
4160 Merge Cond: (t1.c1 = t2.c1)
4161 -> Index Scan using t1_i1 on t1
4167 /*+NestLoop(t1 t2)*/
4168 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4177 ------------------------------------
4180 -> Index Scan using t1_i1 on t1
4181 Index Cond: (c1 = t2.c1)
4184 /*+HashJoin(t1 t2)*/
4185 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4194 ------------------------------
4196 Hash Cond: (t1.c1 = t2.c1)
4202 /*+MergeJoin(t1 t2)*/
4203 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4212 ------------------------------------
4214 Merge Cond: (t1.c1 = t2.c1)
4215 -> Index Scan using t1_i1 on t1
4221 /*+NoNestLoop(t1 t2)*/
4222 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4231 ------------------------------------
4233 Merge Cond: (t1.c1 = t2.c1)
4234 -> Index Scan using t1_i1 on t1
4240 /*+NoHashJoin(t1 t2)*/
4241 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4250 ------------------------------------
4252 Merge Cond: (t1.c1 = t2.c1)
4253 -> Index Scan using t1_i1 on t1
4259 /*+NoMergeJoin(t1 t2)*/
4260 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4269 ------------------------------------
4272 -> Index Scan using t1_i1 on t1
4273 Index Cond: (c1 = t2.c1)
4276 SET enable_nestloop TO on;
4277 SET enable_mergejoin TO on;
4278 SET enable_hashjoin TO on;
4280 ---- No. J-3-2 join inherit tables
4282 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4284 ---------------------------------------
4286 Hash Cond: (p2.c1 = p1.c1)
4289 -> Seq Scan on p2c1 p2
4290 -> Seq Scan on p2c2 p2
4291 -> Seq Scan on p2c3 p2
4292 -> Seq Scan on p2c1c1 p2
4293 -> Seq Scan on p2c1c2 p2
4294 -> Seq Scan on p2c2c1 p2
4295 -> Seq Scan on p2c2c2 p2
4296 -> Seq Scan on p2c3c1 p2
4297 -> Seq Scan on p2c3c2 p2
4301 -> Seq Scan on p1c1 p1
4302 -> Seq Scan on p1c2 p1
4303 -> Seq Scan on p1c3 p1
4307 /*+MergeJoin(p1 p2)*/
4308 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4317 -----------------------------------------
4319 Merge Cond: (p1.c1 = p2.c1)
4324 -> Seq Scan on p1c1 p1
4325 -> Seq Scan on p1c2 p1
4326 -> Seq Scan on p1c3 p1
4331 -> Seq Scan on p2c1 p2
4332 -> Seq Scan on p2c2 p2
4333 -> Seq Scan on p2c3 p2
4334 -> Seq Scan on p2c1c1 p2
4335 -> Seq Scan on p2c1c2 p2
4336 -> Seq Scan on p2c2c1 p2
4337 -> Seq Scan on p2c2c2 p2
4338 -> Seq Scan on p2c3c1 p2
4339 -> Seq Scan on p2c3c2 p2
4343 /*+MergeJoin(p1c1 p2c1)*/
4344 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4348 MergeJoin(p1c1 p2c1)
4353 ---------------------------------------
4355 Hash Cond: (p2.c1 = p1.c1)
4358 -> Seq Scan on p2c1 p2
4359 -> Seq Scan on p2c2 p2
4360 -> Seq Scan on p2c3 p2
4361 -> Seq Scan on p2c1c1 p2
4362 -> Seq Scan on p2c1c2 p2
4363 -> Seq Scan on p2c2c1 p2
4364 -> Seq Scan on p2c2c2 p2
4365 -> Seq Scan on p2c3c1 p2
4366 -> Seq Scan on p2c3c2 p2
4370 -> Seq Scan on p1c1 p1
4371 -> Seq Scan on p1c2 p1
4372 -> Seq Scan on p1c3 p1
4376 ---- No. J-3-3 conflict join method hint
4378 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4380 ------------------------------------
4382 Merge Cond: (t1.c1 = t2.c1)
4383 -> Index Scan using t1_i1 on t1
4390 /*+HashJoin(t1 t2)NestLoop(t1 t2)*/
4391 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4392 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t1 t2)"
4393 DETAIL: Conflict join method hint.
4403 ------------------------------------
4406 -> Index Scan using t1_i1 on t1
4407 Index Cond: (c1 = t2.c1)
4411 /*+MergeJoin(t1 t2)HashJoin(t1 t2)NestLoop(t1 t2)*/
4412 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4413 INFO: hint syntax error at or near "MergeJoin(t1 t2)HashJoin(t1 t2)NestLoop(t1 t2)"
4414 DETAIL: Conflict join method hint.
4415 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t1 t2)"
4416 DETAIL: Conflict join method hint.
4427 ------------------------------------
4430 -> Index Scan using t1_i1 on t1
4431 Index Cond: (c1 = t2.c1)
4435 /*+HashJoin(t1 t2)NestLoop(t2 t1)*/
4436 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4437 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)"
4438 DETAIL: Conflict join method hint.
4448 ------------------------------------
4451 -> Index Scan using t1_i1 on t1
4452 Index Cond: (c1 = t2.c1)
4456 /*+MergeJoin(t2 t1)HashJoin(t1 t2)NestLoop(t2 t1)*/
4457 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4458 INFO: hint syntax error at or near "MergeJoin(t2 t1)HashJoin(t1 t2)NestLoop(t2 t1)"
4459 DETAIL: Conflict join method hint.
4460 INFO: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)"
4461 DETAIL: Conflict join method hint.
4472 ------------------------------------
4475 -> Index Scan using t1_i1 on t1
4476 Index Cond: (c1 = t2.c1)
4480 ---- No. J-3-4 hint state output
4483 /*+NestLoop(t1 t2)*/
4484 SELECT * FROM s1.t1, s1.t2 WHERE false;
4492 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4493 ----+----+----+----+----+----+----+----
4497 /*+HashJoin(t1 t2)*/
4498 SELECT * FROM s1.t1, s1.t2 WHERE false;
4506 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4507 ----+----+----+----+----+----+----+----
4511 /*+MergeJoin(t1 t2)*/
4512 SELECT * FROM s1.t1, s1.t2 WHERE false;
4520 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4521 ----+----+----+----+----+----+----+----
4525 /*+NoNestLoop(t1 t2)*/
4526 SELECT * FROM s1.t1, s1.t2 WHERE false;
4534 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4535 ----+----+----+----+----+----+----+----
4539 /*+NoHashJoin(t1 t2)*/
4540 SELECT * FROM s1.t1, s1.t2 WHERE false;
4548 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4549 ----+----+----+----+----+----+----+----
4553 /*+NoMergeJoin(t1 t2)*/
4554 SELECT * FROM s1.t1, s1.t2 WHERE false;
4562 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4563 ----+----+----+----+----+----+----+----
4568 SELECT * FROM s1.t1 WHERE false;
4569 INFO: hint syntax error at or near ""
4570 DETAIL: NestLoop hint requires at least two relations.
4584 SELECT * FROM s1.t1 WHERE false;
4585 INFO: hint syntax error at or near ""
4586 DETAIL: NestLoop hint requires at least two relations.
4599 /*+NestLoop(t1 t2)*/
4600 SELECT * FROM s1.t1, s1.t2 WHERE false;
4608 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4609 ----+----+----+----+----+----+----+----
4613 /*+NestLoop(t1 t2 t3)*/
4614 SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE false;
4622 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4623 ----+----+----+----+----+----+----+----+----+----+----+----
4627 ---- No. J-3-5 not used hint
4630 EXPLAIN (COSTS false) SELECT * FROM s1.t1 FULL OUTER JOIN s1.t2 ON (t1.c1 = t2.c1);
4632 ------------------------------
4634 Hash Cond: (t1.c1 = t2.c1)
4640 /*+NestLoop(t1 t2)*/
4641 EXPLAIN (COSTS true) SELECT * FROM s1.t1 FULL OUTER JOIN s1.t2 ON (t1.c1 = t2.c1);
4650 --------------------------------------------------------------------------
4651 Hash Full Join (cost=10000000003.25..10000000024.00 rows=1000 width=29)
4652 Hash Cond: (t1.c1 = t2.c1)
4653 -> Seq Scan on t1 (cost=0.00..16.00 rows=1000 width=15)
4654 -> Hash (cost=2.00..2.00 rows=100 width=14)
4655 -> Seq Scan on t2 (cost=0.00..2.00 rows=100 width=14)