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 SET max_parallel_workers_per_gather TO 0;
7 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
9 ------------------------------------
11 Merge Cond: (t1.c1 = t2.c1)
12 -> Index Scan using t1_i1 on t1
19 ---- No. J-1-1 specified pattern of the object name
23 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
32 ------------------------------
34 Hash Cond: (t1.c1 = t2.c1)
42 EXPLAIN (COSTS false) SELECT * FROM s1.t1 t_1, s1.t2 t_2 WHERE t_1.c1 = t_2.c1;
51 ----------------------------------------
53 Merge Cond: (t_1.c1 = t_2.c1)
54 -> Index Scan using t1_i1 on t1 t_1
61 /*+HashJoin(t_1 t_2)*/
62 EXPLAIN (COSTS false) SELECT * FROM s1.t1 t_1, s1.t2 t_2 WHERE t_1.c1 = t_2.c1;
71 --------------------------------
73 Hash Cond: (t_1.c1 = t_2.c1)
80 ---- No. J-1-2 specified schema name in the hint option
84 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
93 ------------------------------
95 Hash Cond: (t1.c1 = t2.c1)
102 /*+HashJoin(s1.t1 s1.t2)*/
103 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
107 HashJoin(s1.t1 s1.t2)
112 ------------------------------------
114 Merge Cond: (t1.c1 = t2.c1)
115 -> Index Scan using t1_i1 on t1
122 ---- No. J-1-3 table doesn't exist in the hint option
126 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
135 ------------------------------
137 Hash Cond: (t1.c1 = t2.c1)
145 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
154 ------------------------------------
156 Merge Cond: (t1.c1 = t2.c1)
157 -> Index Scan using t1_i1 on t1
164 ---- No. J-1-4 conflict table name
168 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
177 ------------------------------
179 Hash Cond: (t1.c1 = t2.c1)
186 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = s2.t1.c1;
188 ------------------------------------
190 Merge Cond: (t1.c1 = t1_1.c1)
191 -> Index Scan using t1_i1 on t1
194 -> Seq Scan on t1 t1_1
198 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = s2.t1.c1;
199 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t1)"
200 DETAIL: Relation name "t1" is ambiguous.
209 ------------------------------------
211 Merge Cond: (t1.c1 = t1_1.c1)
212 -> Index Scan using t1_i1 on t1
215 -> Seq Scan on t1 t1_1
218 /*+HashJoin(s1.t1 s2.t1)*/
219 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 WHERE s1.t1.c1 = s2.t1.c1;
223 HashJoin(s1.t1 s2.t1)
228 ------------------------------------
230 Merge Cond: (t1.c1 = t1_1.c1)
231 -> Index Scan using t1_i1 on t1
234 -> Seq Scan on t1 t1_1
237 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 s2t1 WHERE s1.t1.c1 = s2t1.c1;
239 ------------------------------------
241 Merge Cond: (t1.c1 = s2t1.c1)
242 -> Index Scan using t1_i1 on t1
245 -> Seq Scan on t1 s2t1
248 /*+HashJoin(t1 s2t1)*/
249 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s2.t1 s2t1 WHERE s1.t1.c1 = s2t1.c1;
258 ---------------------------------
260 Hash Cond: (t1.c1 = s2t1.c1)
263 -> Seq Scan on t1 s2t1
267 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;
269 ------------------------------------------------------------
271 Merge Cond: (t1.c1 = t2.c1)
272 InitPlan 1 (returns $0)
275 Merge Cond: (t1_1.c1 = t2_1.c1)
276 -> Index Only Scan using t1_i1 on t1 t1_1
279 -> Seq Scan on t2 t2_1
280 -> Index Scan using t1_i1 on t1
287 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;
296 ------------------------------------------------
298 Hash Cond: (t1.c1 = t2.c1)
299 InitPlan 1 (returns $0)
302 Hash Cond: (t1_1.c1 = t2_1.c1)
303 -> Seq Scan on t1 t1_1
305 -> Seq Scan on t2 t2_1
311 /*+NestLoop(st1 st2)HashJoin(t1 t2)*/
312 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;
322 -----------------------------------------------------------
324 Hash Cond: (t1.c1 = t2.c1)
325 InitPlan 1 (returns $1)
328 -> Seq Scan on t2 st2
329 -> Index Only Scan using t1_i1 on t1 st1
330 Index Cond: (c1 = st2.c1)
337 ---- No. J-1-5 conflict table name
341 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
350 ------------------------------
352 Hash Cond: (t1.c1 = t2.c1)
360 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
361 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t1)"
362 DETAIL: Relation name "t1" is duplicated.
371 ------------------------------------
373 Merge Cond: (t1.c1 = t2.c1)
374 -> Index Scan using t1_i1 on t1
381 /*+HashJoin(t1 t1)HashJoin(t2 t2)*/
382 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
383 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t1)HashJoin(t2 t2)"
384 DETAIL: Relation name "t1" is duplicated.
385 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t2 t2)"
386 DETAIL: Relation name "t2" is duplicated.
396 ------------------------------------
398 Merge Cond: (t1.c1 = t2.c1)
399 -> Index Scan using t1_i1 on t1
405 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
407 ------------------------------------------
409 Merge Cond: (t1.c1 = t2.c1)
411 Merge Cond: (t1.c1 = t3.c1)
412 -> Index Scan using t1_i1 on t1
413 -> Index Scan using t3_i1 on t3
419 /*+HashJoin(t1 t2 t1 t2)*/
420 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;
421 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t2 t1 t2)"
422 DETAIL: Relation name "t1" is duplicated.
428 HashJoin(t1 t1 t2 t2)
431 ------------------------------------------------
434 Merge Cond: (t1.c1 = t2.c1)
436 Merge Cond: (t1.c1 = t3.c1)
437 -> Index Scan using t1_i1 on t1
438 -> Index Scan using t3_i1 on t3
442 -> Index Scan using t4_i1 on t4
443 Index Cond: (c1 = t1.c1)
447 ---- No. J-1-6 object type for the hint
451 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
460 ------------------------------
462 Hash Cond: (t1.c1 = t2.c1)
469 EXPLAIN (COSTS false) SELECT * FROM s1.p1 t1, s1.p1 t2 WHERE t1.c1 = t2.c1;
471 -----------------------------------------
473 Hash Cond: (t1.c1 = t2.c1)
476 -> Seq Scan on p1c1 t1_1
477 -> Seq Scan on p1c2 t1_2
478 -> Seq Scan on p1c3 t1_3
482 -> Seq Scan on p1c1 t2_1
483 -> Seq Scan on p1c2 t2_2
484 -> Seq Scan on p1c3 t2_3
488 EXPLAIN (COSTS false) SELECT * FROM s1.p1 t1, s1.p1 t2 WHERE t1.c1 = t2.c1;
497 --------------------------------------------------
501 -> Seq Scan on p1c1 t1_1
502 -> Seq Scan on p1c2 t1_2
503 -> Seq Scan on p1c3 t1_3
507 -> Index Scan using p1c1_i on p1c1 t2_1
508 Index Cond: (c1 = t1.c1)
509 -> Index Scan using p1c2_i on p1c2 t2_2
510 Index Cond: (c1 = t1.c1)
511 -> Index Scan using p1c3_i on p1c3 t2_3
512 Index Cond: (c1 = t1.c1)
516 EXPLAIN (COSTS false) SELECT * FROM s1.ul1 t1, s1.ul1 t2 WHERE t1.c1 = t2.c1;
518 --------------------------------
520 Hash Cond: (t1.c1 = t2.c1)
521 -> Seq Scan on ul1 t1
523 -> Seq Scan on ul1 t2
527 EXPLAIN (COSTS false) SELECT * FROM s1.ul1 t1, s1.ul1 t2 WHERE t1.c1 = t2.c1;
536 -------------------------------------------
538 -> Seq Scan on ul1 t1
539 -> Index Scan using ul1_pkey on ul1 t2
540 Index Cond: (c1 = t1.c1)
544 CREATE TEMP TABLE tm1 (LIKE s1.t1 INCLUDING ALL);
545 EXPLAIN (COSTS false) SELECT * FROM tm1 t1, tm1 t2 WHERE t1.c1 = t2.c1;
547 --------------------------------
549 Hash Cond: (t1.c1 = t2.c1)
550 -> Seq Scan on tm1 t1
552 -> Seq Scan on tm1 t2
556 EXPLAIN (COSTS false) SELECT * FROM tm1 t1, tm1 t2 WHERE t1.c1 = t2.c1;
565 -------------------------------------------
567 -> Seq Scan on tm1 t1
568 -> Index Scan using tm1_pkey on tm1 t2
569 Index Cond: (c1 = t1.c1)
573 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class t1, pg_catalog.pg_class t2 WHERE t1.oid = t2.oid;
575 -------------------------------------
577 Hash Cond: (t1.oid = t2.oid)
578 -> Seq Scan on pg_class t1
580 -> Seq Scan on pg_class t2
584 EXPLAIN (COSTS false) SELECT * FROM pg_catalog.pg_class t1, pg_catalog.pg_class t2 WHERE t1.oid = t2.oid;
593 ----------------------------------------------------------
595 -> Seq Scan on pg_class t1
596 -> Index Scan using pg_class_oid_index on pg_class t2
597 Index Cond: (oid = t1.oid)
603 EXPLAIN (COSTS false) SELECT * FROM s1.f1() t1, s1.f1() t2 WHERE t1.c1 = t2.c1;
605 --------------------------------
607 Join Filter: (t1.c1 = t2.c1)
608 -> Function Scan on f1 t1
609 -> Function Scan on f1 t2
613 EXPLAIN (COSTS false) SELECT * FROM s1.f1() t1, s1.f1() t2 WHERE t1.c1 = t2.c1;
622 ------------------------------------
624 Hash Cond: (t1.c1 = t2.c1)
625 -> Function Scan on f1 t1
627 -> Function Scan on f1 t2
631 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), s1.t2 WHERE t1.c1 = t2.c1;
633 -------------------------------------------
635 Hash Cond: (t2.c1 = "*VALUES*".column1)
638 -> Values Scan on "*VALUES*"
642 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), s1.t2 WHERE t1.c1 = t2.c1;
651 -------------------------------------------
653 Hash Cond: (t2.c1 = "*VALUES*".column1)
656 -> Values Scan on "*VALUES*"
659 /*+NestLoop(*VALUES* t2)*/
660 EXPLAIN (COSTS false) SELECT * FROM (VALUES(1,1,1,'1'), (2,2,2,'2'), (3,3,3,'3')) AS t1 (c1, c2, c3, c4), s1.t2 WHERE t1.c1 = t2.c1;
663 NestLoop(*VALUES* t2)
669 ---------------------------------------------
671 Join Filter: ("*VALUES*".column1 = t2.c1)
674 -> Values Scan on "*VALUES*"
678 EXPLAIN (COSTS false) WITH c1(c1) AS (SELECT max(t1.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1) SELECT * FROM s1.t1, c1 WHERE t1.c1 = c1.c1;
680 ------------------------------------------------------------
685 Merge Cond: (t1_1.c1 = t2.c1)
686 -> Index Only Scan using t1_i1 on t1 t1_1
691 -> Index Scan using t1_i1 on t1
692 Index Cond: (c1 = c1.c1)
695 /*+NestLoop(t1 t2)HashJoin(t1 c1)*/
696 EXPLAIN (COSTS false) WITH c1(c1) AS (SELECT max(t1.c1) FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1) SELECT * FROM s1.t1, c1 WHERE t1.c1 = c1.c1;
706 ------------------------------------------------------------
708 Hash Cond: (t1.c1 = c1.c1)
713 -> Index Only Scan using t1_i1 on t1 t1_1
714 Index Cond: (c1 = t2.c1)
721 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
723 ------------------------------------
725 Hash Cond: (v1t1.c1 = v1t1_1.c1)
726 -> Seq Scan on t1 v1t1
728 -> Seq Scan on t1 v1t1_1
732 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
741 ------------------------------------
743 Hash Cond: (v1t1.c1 = v1t1_1.c1)
744 -> Seq Scan on t1 v1t1
746 -> Seq Scan on t1 v1t1_1
749 /*+NestLoop(v1t1 v1t1_)*/
750 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1_ t2 WHERE t1.c1 = t2.c1;
759 ------------------------------------------
761 -> Seq Scan on t1 v1t1
762 -> Index Scan using t1_i1 on t1 v1t1_
763 Index Cond: (c1 = v1t1.c1)
767 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.c1 = (SELECT max(st1.c1) FROM s1.t1 st1, s1.t2 st2 WHERE st1.c1 = st2.c1);
769 -----------------------------------------------------------
771 InitPlan 1 (returns $0)
774 Merge Cond: (st1.c1 = st2.c1)
775 -> Index Only Scan using t1_i1 on t1 st1
778 -> Seq Scan on t2 st2
779 -> Index Scan using t1_i1 on t1
780 Index Cond: (c1 = $0)
785 \o results/ut-J.tmpout
786 /*+MergeJoin(t1 t2)NestLoop(st1 st2)*/
787 EXPLAIN (COSTS true) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.c1 = (SELECT max(st1.c1) FROM s1.t1 st1, s1.t2 st2 WHERE st1.c1 = st2.c1);
797 \! sql/maskout.sh results/ut-J.tmpout
799 ---------------------------------------------------------------------------------------------
800 Nested Loop (cost=xxx rows=1 width=xxx)
801 InitPlan 1 (returns $1)
802 -> Aggregate (cost=xxx rows=1 width=xxx)
803 -> Nested Loop (cost=xxx rows=100 width=xxx)
804 -> Seq Scan on t2 st2 (cost=xxx rows=100 width=xxx)
805 -> Index Only Scan using t1_i1 on t1 st1 (cost=xxx rows=1 width=xxx)
806 Index Cond: (c1 = st2.c1)
807 -> Index Scan using t1_i1 on t1 (cost=xxx rows=1 width=xxx)
808 Index Cond: (c1 = $1)
809 -> Seq Scan on t2 (cost=xxx rows=1 width=xxx)
814 -- There are cases where difference in the measured value and predicted value
815 -- depending upon the version of PostgreSQL
817 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
819 ------------------------------------
821 Merge Cond: (t1.c1 = t2.c1)
822 -> Index Scan using t1_i1 on t1
828 /*+HashJoin(t1 st2)*/
829 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
838 ------------------------------------
840 Merge Cond: (t1.c1 = t2.c1)
841 -> Index Scan using t1_i1 on t1
848 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
857 ------------------------------
859 Hash Cond: (t1.c1 = t2.c1)
866 ---- No. J-2-1 some complexity query blocks
869 EXPLAIN (COSTS false)
870 SELECT max(bmt1.c1), (
871 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)'
873 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)'
875 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)'
878 -------------------------------------------------------------------
880 InitPlan 1 (returns $0)
883 Join Filter: (b1t1.c1 = b1t4.c1)
885 Join Filter: (b1t1.c1 = b1t3.c1)
887 Join Filter: (b1t1.c1 = b1t2.c1)
888 -> Tid Scan on t1 b1t1
889 TID Cond: (ctid = '(1,1)'::tid)
890 -> Seq Scan on t2 b1t2
891 Filter: (ctid = '(1,1)'::tid)
892 -> Tid Scan on t3 b1t3
893 TID Cond: (ctid = '(1,1)'::tid)
894 -> Tid Scan on t4 b1t4
895 TID Cond: (ctid = '(1,1)'::tid)
896 InitPlan 2 (returns $1)
899 Join Filter: (b2t1.c1 = b2t4.c1)
901 Join Filter: (b2t1.c1 = b2t3.c1)
903 Join Filter: (b2t1.c1 = b2t2.c1)
904 -> Tid Scan on t1 b2t1
905 TID Cond: (ctid = '(1,1)'::tid)
906 -> Seq Scan on t2 b2t2
907 Filter: (ctid = '(1,1)'::tid)
908 -> Tid Scan on t3 b2t3
909 TID Cond: (ctid = '(1,1)'::tid)
910 -> Tid Scan on t4 b2t4
911 TID Cond: (ctid = '(1,1)'::tid)
913 Join Filter: (bmt1.c1 = bmt4.c1)
915 Join Filter: (bmt1.c1 = bmt3.c1)
917 Join Filter: (bmt1.c1 = bmt2.c1)
918 -> Tid Scan on t1 bmt1
919 TID Cond: (ctid = '(1,1)'::tid)
920 -> Seq Scan on t2 bmt2
921 Filter: (ctid = '(1,1)'::tid)
922 -> Tid Scan on t3 bmt3
923 TID Cond: (ctid = '(1,1)'::tid)
924 -> Tid Scan on t4 bmt4
925 TID Cond: (ctid = '(1,1)'::tid)
929 Leading(bmt1 bmt2 bmt3 bmt4)
930 Leading(b1t2 b1t3 b1t4 b1t1)
931 Leading(b2t3 b2t4 b2t1 b2t2)
932 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
933 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
934 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
936 EXPLAIN (COSTS false)
937 SELECT max(bmt1.c1), (
938 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)'
940 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)'
942 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)'
949 HashJoin(b1t2 b1t3 b1t4)
950 HashJoin(b2t1 b2t3 b2t4)
951 HashJoin(bmt1 bmt2 bmt3)
952 NestLoop(b1t1 b1t2 b1t3 b1t4)
953 NestLoop(b2t1 b2t2 b2t3 b2t4)
954 NestLoop(bmt1 bmt2 bmt3 bmt4)
955 Leading(bmt1 bmt2 bmt3 bmt4)
956 Leading(b1t2 b1t3 b1t4 b1t1)
957 Leading(b2t3 b2t4 b2t1 b2t2)
963 -------------------------------------------------------------------------------
965 InitPlan 1 (returns $0)
968 Join Filter: (b1t2.c1 = b1t1.c1)
970 Hash Cond: (b1t4.c1 = b1t2.c1)
971 -> Tid Scan on t4 b1t4
972 TID Cond: (ctid = '(1,1)'::tid)
975 Merge Cond: (b1t2.c1 = b1t3.c1)
978 -> Seq Scan on t2 b1t2
979 Filter: (ctid = '(1,1)'::tid)
982 -> Tid Scan on t3 b1t3
983 TID Cond: (ctid = '(1,1)'::tid)
984 -> Tid Scan on t1 b1t1
985 TID Cond: (ctid = '(1,1)'::tid)
986 InitPlan 2 (returns $1)
989 Join Filter: (b2t1.c1 = b2t2.c1)
991 Hash Cond: (b2t1.c1 = b2t3.c1)
992 -> Tid Scan on t1 b2t1
993 TID Cond: (ctid = '(1,1)'::tid)
996 Merge Cond: (b2t3.c1 = b2t4.c1)
999 -> Tid Scan on t3 b2t3
1000 TID Cond: (ctid = '(1,1)'::tid)
1003 -> Tid Scan on t4 b2t4
1004 TID Cond: (ctid = '(1,1)'::tid)
1005 -> Seq Scan on t2 b2t2
1006 Filter: (ctid = '(1,1)'::tid)
1008 Join Filter: (bmt1.c1 = bmt4.c1)
1010 Hash Cond: (bmt3.c1 = bmt1.c1)
1011 -> Tid Scan on t3 bmt3
1012 TID Cond: (ctid = '(1,1)'::tid)
1015 Merge Cond: (bmt1.c1 = bmt2.c1)
1018 -> Tid Scan on t1 bmt1
1019 TID Cond: (ctid = '(1,1)'::tid)
1022 -> Seq Scan on t2 bmt2
1023 Filter: (ctid = '(1,1)'::tid)
1024 -> Tid Scan on t4 bmt4
1025 TID Cond: (ctid = '(1,1)'::tid)
1029 EXPLAIN (COSTS false)
1030 SELECT max(bmt1.c1), (
1031 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)'
1033 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)'
1035 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)'
1037 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)'
1040 -------------------------------------------------------------------
1042 InitPlan 1 (returns $0)
1045 Join Filter: (b1t1.c1 = b1t4.c1)
1047 Join Filter: (b1t1.c1 = b1t3.c1)
1049 Join Filter: (b1t1.c1 = b1t2.c1)
1050 -> Tid Scan on t1 b1t1
1051 TID Cond: (ctid = '(1,1)'::tid)
1052 -> Seq Scan on t2 b1t2
1053 Filter: (ctid = '(1,1)'::tid)
1054 -> Tid Scan on t3 b1t3
1055 TID Cond: (ctid = '(1,1)'::tid)
1056 -> Tid Scan on t4 b1t4
1057 TID Cond: (ctid = '(1,1)'::tid)
1058 InitPlan 2 (returns $1)
1061 Join Filter: (b2t1.c1 = b2t4.c1)
1063 Join Filter: (b2t1.c1 = b2t3.c1)
1065 Join Filter: (b2t1.c1 = b2t2.c1)
1066 -> Tid Scan on t1 b2t1
1067 TID Cond: (ctid = '(1,1)'::tid)
1068 -> Seq Scan on t2 b2t2
1069 Filter: (ctid = '(1,1)'::tid)
1070 -> Tid Scan on t3 b2t3
1071 TID Cond: (ctid = '(1,1)'::tid)
1072 -> Tid Scan on t4 b2t4
1073 TID Cond: (ctid = '(1,1)'::tid)
1074 InitPlan 3 (returns $2)
1077 Join Filter: (b3t1.c1 = b3t4.c1)
1079 Join Filter: (b3t1.c1 = b3t3.c1)
1081 Join Filter: (b3t1.c1 = b3t2.c1)
1082 -> Tid Scan on t1 b3t1
1083 TID Cond: (ctid = '(1,1)'::tid)
1084 -> Seq Scan on t2 b3t2
1085 Filter: (ctid = '(1,1)'::tid)
1086 -> Tid Scan on t3 b3t3
1087 TID Cond: (ctid = '(1,1)'::tid)
1088 -> Tid Scan on t4 b3t4
1089 TID Cond: (ctid = '(1,1)'::tid)
1091 Join Filter: (bmt1.c1 = bmt4.c1)
1093 Join Filter: (bmt1.c1 = bmt3.c1)
1095 Join Filter: (bmt1.c1 = bmt2.c1)
1096 -> Tid Scan on t1 bmt1
1097 TID Cond: (ctid = '(1,1)'::tid)
1098 -> Seq Scan on t2 bmt2
1099 Filter: (ctid = '(1,1)'::tid)
1100 -> Tid Scan on t3 bmt3
1101 TID Cond: (ctid = '(1,1)'::tid)
1102 -> Tid Scan on t4 bmt4
1103 TID Cond: (ctid = '(1,1)'::tid)
1107 Leading(bmt1 bmt2 bmt3 bmt4)
1108 Leading(b1t2 b1t3 b1t4 b1t1)
1109 Leading(b2t3 b2t4 b2t1 b2t2)
1110 Leading(b3t4 b3t1 b3t2 b3t3)
1111 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1112 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1113 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1114 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1116 EXPLAIN (COSTS false)
1117 SELECT max(bmt1.c1), (
1118 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)'
1120 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)'
1122 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)'
1124 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)'
1128 MergeJoin(b1t2 b1t3)
1129 MergeJoin(b2t3 b2t4)
1130 MergeJoin(b3t1 b3t4)
1131 MergeJoin(bmt1 bmt2)
1132 HashJoin(b1t2 b1t3 b1t4)
1133 HashJoin(b2t1 b2t3 b2t4)
1134 HashJoin(b3t1 b3t2 b3t4)
1135 HashJoin(bmt1 bmt2 bmt3)
1136 NestLoop(b1t1 b1t2 b1t3 b1t4)
1137 NestLoop(b2t1 b2t2 b2t3 b2t4)
1138 NestLoop(b3t1 b3t2 b3t3 b3t4)
1139 NestLoop(bmt1 bmt2 bmt3 bmt4)
1140 Leading(bmt1 bmt2 bmt3 bmt4)
1141 Leading(b1t2 b1t3 b1t4 b1t1)
1142 Leading(b2t3 b2t4 b2t1 b2t2)
1143 Leading(b3t4 b3t1 b3t2 b3t3)
1149 -------------------------------------------------------------------------------
1151 InitPlan 1 (returns $0)
1154 Join Filter: (b1t2.c1 = b1t1.c1)
1156 Hash Cond: (b1t4.c1 = b1t2.c1)
1157 -> Tid Scan on t4 b1t4
1158 TID Cond: (ctid = '(1,1)'::tid)
1161 Merge Cond: (b1t2.c1 = b1t3.c1)
1164 -> Seq Scan on t2 b1t2
1165 Filter: (ctid = '(1,1)'::tid)
1168 -> Tid Scan on t3 b1t3
1169 TID Cond: (ctid = '(1,1)'::tid)
1170 -> Tid Scan on t1 b1t1
1171 TID Cond: (ctid = '(1,1)'::tid)
1172 InitPlan 2 (returns $1)
1175 Join Filter: (b2t1.c1 = b2t2.c1)
1177 Hash Cond: (b2t1.c1 = b2t3.c1)
1178 -> Tid Scan on t1 b2t1
1179 TID Cond: (ctid = '(1,1)'::tid)
1182 Merge Cond: (b2t3.c1 = b2t4.c1)
1185 -> Tid Scan on t3 b2t3
1186 TID Cond: (ctid = '(1,1)'::tid)
1189 -> Tid Scan on t4 b2t4
1190 TID Cond: (ctid = '(1,1)'::tid)
1191 -> Seq Scan on t2 b2t2
1192 Filter: (ctid = '(1,1)'::tid)
1193 InitPlan 3 (returns $2)
1196 Join Filter: (b3t1.c1 = b3t3.c1)
1198 Hash Cond: (b3t2.c1 = b3t1.c1)
1199 -> Seq Scan on t2 b3t2
1200 Filter: (ctid = '(1,1)'::tid)
1203 Merge Cond: (b3t1.c1 = b3t4.c1)
1206 -> Tid Scan on t1 b3t1
1207 TID Cond: (ctid = '(1,1)'::tid)
1210 -> Tid Scan on t4 b3t4
1211 TID Cond: (ctid = '(1,1)'::tid)
1212 -> Tid Scan on t3 b3t3
1213 TID Cond: (ctid = '(1,1)'::tid)
1215 Join Filter: (bmt1.c1 = bmt4.c1)
1217 Hash Cond: (bmt3.c1 = bmt1.c1)
1218 -> Tid Scan on t3 bmt3
1219 TID Cond: (ctid = '(1,1)'::tid)
1222 Merge Cond: (bmt1.c1 = bmt2.c1)
1225 -> Tid Scan on t1 bmt1
1226 TID Cond: (ctid = '(1,1)'::tid)
1229 -> Seq Scan on t2 bmt2
1230 Filter: (ctid = '(1,1)'::tid)
1231 -> Tid Scan on t4 bmt4
1232 TID Cond: (ctid = '(1,1)'::tid)
1236 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)';
1238 -----------------------------------------------------------
1241 Join Filter: (bmt1.c1 = bmt4.c1)
1243 Join Filter: (bmt1.c1 = bmt3.c1)
1245 Join Filter: (bmt1.c1 = bmt2.c1)
1246 -> Tid Scan on t1 bmt1
1247 TID Cond: (ctid = '(1,1)'::tid)
1248 -> Seq Scan on t2 bmt2
1249 Filter: (ctid = '(1,1)'::tid)
1250 -> Tid Scan on t3 bmt3
1251 TID Cond: (ctid = '(1,1)'::tid)
1252 -> Tid Scan on t4 bmt4
1253 TID Cond: (ctid = '(1,1)'::tid)
1257 Leading(bmt4 bmt3 bmt2 bmt1)
1258 MergeJoin(bmt4 bmt3)HashJoin(bmt4 bmt3 bmt2)NestLoop(bmt1 bmt2 bmt3 bmt4)
1260 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)';
1263 MergeJoin(bmt3 bmt4)
1264 HashJoin(bmt2 bmt3 bmt4)
1265 NestLoop(bmt1 bmt2 bmt3 bmt4)
1266 Leading(bmt4 bmt3 bmt2 bmt1)
1272 -----------------------------------------------------------------------
1275 Join Filter: (bmt2.c1 = bmt1.c1)
1277 Hash Cond: (bmt2.c1 = bmt3.c1)
1278 -> Seq Scan on t2 bmt2
1279 Filter: (ctid = '(1,1)'::tid)
1282 Merge Cond: (bmt3.c1 = bmt4.c1)
1285 -> Tid Scan on t3 bmt3
1286 TID Cond: (ctid = '(1,1)'::tid)
1289 -> Tid Scan on t4 bmt4
1290 TID Cond: (ctid = '(1,1)'::tid)
1291 -> Tid Scan on t1 bmt1
1292 TID Cond: (ctid = '(1,1)'::tid)
1296 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)';
1298 -----------------------------------------------------------
1301 Join Filter: (bmt1.c1 = bmt4.c1)
1303 Join Filter: (bmt1.c1 = bmt3.c1)
1305 Join Filter: (bmt1.c1 = bmt2.c1)
1306 -> Tid Scan on t1 bmt1
1307 TID Cond: (ctid = '(1,1)'::tid)
1308 -> Seq Scan on t2 bmt2
1309 Filter: (ctid = '(1,1)'::tid)
1310 -> Tid Scan on t3 bmt3
1311 TID Cond: (ctid = '(1,1)'::tid)
1312 -> Tid Scan on t4 bmt4
1313 TID Cond: (ctid = '(1,1)'::tid)
1317 Leading(bmt4 bmt3 bmt2 bmt1)
1318 MergeJoin(bmt4 bmt3)HashJoin(bmt4 bmt3 bmt2)NestLoop(bmt1 bmt2 bmt3 bmt4)
1320 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)';
1323 MergeJoin(bmt3 bmt4)
1324 HashJoin(bmt2 bmt3 bmt4)
1325 NestLoop(bmt1 bmt2 bmt3 bmt4)
1326 Leading(bmt4 bmt3 bmt2 bmt1)
1332 -----------------------------------------------------------------------
1335 Join Filter: (bmt2.c1 = bmt1.c1)
1337 Hash Cond: (bmt2.c1 = bmt3.c1)
1338 -> Seq Scan on t2 bmt2
1339 Filter: (ctid = '(1,1)'::tid)
1342 Merge Cond: (bmt3.c1 = bmt4.c1)
1345 -> Tid Scan on t3 bmt3
1346 TID Cond: (ctid = '(1,1)'::tid)
1349 -> Tid Scan on t4 bmt4
1350 TID Cond: (ctid = '(1,1)'::tid)
1351 -> Tid Scan on t1 bmt1
1352 TID Cond: (ctid = '(1,1)'::tid)
1356 EXPLAIN (COSTS false)
1357 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)'
1359 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)'
1361 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)'
1365 -------------------------------------------------------------------
1367 InitPlan 1 (returns $0)
1370 Join Filter: (b1t1.c1 = b1t4.c1)
1372 Join Filter: (b1t1.c1 = b1t3.c1)
1374 Join Filter: (b1t1.c1 = b1t2.c1)
1375 -> Tid Scan on t1 b1t1
1376 TID Cond: (ctid = '(1,1)'::tid)
1377 -> Seq Scan on t2 b1t2
1378 Filter: (ctid = '(1,1)'::tid)
1379 -> Tid Scan on t3 b1t3
1380 TID Cond: (ctid = '(1,1)'::tid)
1381 -> Tid Scan on t4 b1t4
1382 TID Cond: (ctid = '(1,1)'::tid)
1383 InitPlan 2 (returns $1)
1386 Join Filter: (b2t1.c1 = b2t4.c1)
1388 Join Filter: (b2t1.c1 = b2t3.c1)
1390 Join Filter: (b2t1.c1 = b2t2.c1)
1391 -> Tid Scan on t1 b2t1
1392 TID Cond: (ctid = '(1,1)'::tid)
1393 -> Seq Scan on t2 b2t2
1394 Filter: (ctid = '(1,1)'::tid)
1395 -> Tid Scan on t3 b2t3
1396 TID Cond: (ctid = '(1,1)'::tid)
1397 -> Tid Scan on t4 b2t4
1398 TID Cond: (ctid = '(1,1)'::tid)
1400 Join Filter: (bmt1.c1 = bmt4.c1)
1402 Join Filter: (bmt1.c1 = bmt3.c1)
1404 Join Filter: (bmt1.c1 = bmt2.c1)
1405 -> Tid Scan on t1 bmt1
1406 TID Cond: (ctid = '(1,1)'::tid)
1407 Filter: ((c1 <> $0) AND (c1 <> $1))
1408 -> Seq Scan on t2 bmt2
1409 Filter: (ctid = '(1,1)'::tid)
1410 -> Tid Scan on t3 bmt3
1411 TID Cond: (ctid = '(1,1)'::tid)
1412 -> Tid Scan on t4 bmt4
1413 TID Cond: (ctid = '(1,1)'::tid)
1417 Leading(bmt1 bmt2 bmt3 bmt4)
1418 Leading(b1t2 b1t3 b1t4 b1t1)
1419 Leading(b2t3 b2t4 b2t1 b2t2)
1420 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1421 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1422 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1424 EXPLAIN (COSTS false)
1425 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)'
1427 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)'
1429 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)'
1434 MergeJoin(b1t2 b1t3)
1435 MergeJoin(b2t3 b2t4)
1436 MergeJoin(bmt1 bmt2)
1437 HashJoin(b1t2 b1t3 b1t4)
1438 HashJoin(b2t1 b2t3 b2t4)
1439 HashJoin(bmt1 bmt2 bmt3)
1440 NestLoop(b1t1 b1t2 b1t3 b1t4)
1441 NestLoop(b2t1 b2t2 b2t3 b2t4)
1442 NestLoop(bmt1 bmt2 bmt3 bmt4)
1443 Leading(bmt1 bmt2 bmt3 bmt4)
1444 Leading(b1t2 b1t3 b1t4 b1t1)
1445 Leading(b2t3 b2t4 b2t1 b2t2)
1451 -------------------------------------------------------------------------------
1453 InitPlan 1 (returns $0)
1456 Join Filter: (b1t2.c1 = b1t1.c1)
1458 Hash Cond: (b1t4.c1 = b1t2.c1)
1459 -> Tid Scan on t4 b1t4
1460 TID Cond: (ctid = '(1,1)'::tid)
1463 Merge Cond: (b1t2.c1 = b1t3.c1)
1466 -> Seq Scan on t2 b1t2
1467 Filter: (ctid = '(1,1)'::tid)
1470 -> Tid Scan on t3 b1t3
1471 TID Cond: (ctid = '(1,1)'::tid)
1472 -> Tid Scan on t1 b1t1
1473 TID Cond: (ctid = '(1,1)'::tid)
1474 InitPlan 2 (returns $1)
1477 Join Filter: (b2t1.c1 = b2t2.c1)
1479 Hash Cond: (b2t1.c1 = b2t3.c1)
1480 -> Tid Scan on t1 b2t1
1481 TID Cond: (ctid = '(1,1)'::tid)
1484 Merge Cond: (b2t3.c1 = b2t4.c1)
1487 -> Tid Scan on t3 b2t3
1488 TID Cond: (ctid = '(1,1)'::tid)
1491 -> Tid Scan on t4 b2t4
1492 TID Cond: (ctid = '(1,1)'::tid)
1493 -> Seq Scan on t2 b2t2
1494 Filter: (ctid = '(1,1)'::tid)
1496 Join Filter: (bmt1.c1 = bmt4.c1)
1498 Hash Cond: (bmt3.c1 = bmt1.c1)
1499 -> Tid Scan on t3 bmt3
1500 TID Cond: (ctid = '(1,1)'::tid)
1503 Merge Cond: (bmt1.c1 = bmt2.c1)
1506 -> Tid Scan on t1 bmt1
1507 TID Cond: (ctid = '(1,1)'::tid)
1508 Filter: ((c1 <> $0) AND (c1 <> $1))
1511 -> Seq Scan on t2 bmt2
1512 Filter: (ctid = '(1,1)'::tid)
1513 -> Tid Scan on t4 bmt4
1514 TID Cond: (ctid = '(1,1)'::tid)
1518 EXPLAIN (COSTS false)
1519 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)'
1521 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)'
1523 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)'
1525 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)'
1529 ------------------------------------------------------------------------------
1531 InitPlan 1 (returns $0)
1534 Join Filter: (b1t1.c1 = b1t4.c1)
1536 Join Filter: (b1t1.c1 = b1t3.c1)
1538 Join Filter: (b1t1.c1 = b1t2.c1)
1539 -> Tid Scan on t1 b1t1
1540 TID Cond: (ctid = '(1,1)'::tid)
1541 -> Seq Scan on t2 b1t2
1542 Filter: (ctid = '(1,1)'::tid)
1543 -> Tid Scan on t3 b1t3
1544 TID Cond: (ctid = '(1,1)'::tid)
1545 -> Tid Scan on t4 b1t4
1546 TID Cond: (ctid = '(1,1)'::tid)
1547 InitPlan 2 (returns $1)
1550 Join Filter: (b2t1.c1 = b2t4.c1)
1552 Join Filter: (b2t1.c1 = b2t3.c1)
1554 Join Filter: (b2t1.c1 = b2t2.c1)
1555 -> Tid Scan on t1 b2t1
1556 TID Cond: (ctid = '(1,1)'::tid)
1557 -> Seq Scan on t2 b2t2
1558 Filter: (ctid = '(1,1)'::tid)
1559 -> Tid Scan on t3 b2t3
1560 TID Cond: (ctid = '(1,1)'::tid)
1561 -> Tid Scan on t4 b2t4
1562 TID Cond: (ctid = '(1,1)'::tid)
1563 InitPlan 3 (returns $2)
1566 Join Filter: (b3t1.c1 = b3t4.c1)
1568 Join Filter: (b3t1.c1 = b3t3.c1)
1570 Join Filter: (b3t1.c1 = b3t2.c1)
1571 -> Tid Scan on t1 b3t1
1572 TID Cond: (ctid = '(1,1)'::tid)
1573 -> Seq Scan on t2 b3t2
1574 Filter: (ctid = '(1,1)'::tid)
1575 -> Tid Scan on t3 b3t3
1576 TID Cond: (ctid = '(1,1)'::tid)
1577 -> Tid Scan on t4 b3t4
1578 TID Cond: (ctid = '(1,1)'::tid)
1580 Join Filter: (bmt1.c1 = bmt4.c1)
1582 Join Filter: (bmt1.c1 = bmt3.c1)
1584 Join Filter: (bmt1.c1 = bmt2.c1)
1585 -> Tid Scan on t1 bmt1
1586 TID Cond: (ctid = '(1,1)'::tid)
1587 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1588 -> Seq Scan on t2 bmt2
1589 Filter: (ctid = '(1,1)'::tid)
1590 -> Tid Scan on t3 bmt3
1591 TID Cond: (ctid = '(1,1)'::tid)
1592 -> Tid Scan on t4 bmt4
1593 TID Cond: (ctid = '(1,1)'::tid)
1597 Leading(bmt1 bmt2 bmt3 bmt4)
1598 Leading(b1t2 b1t3 b1t4 b1t1)
1599 Leading(b2t3 b2t4 b2t1 b2t2)
1600 Leading(b3t4 b3t1 b3t2 b3t3)
1601 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1602 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1603 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1604 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1606 EXPLAIN (COSTS false)
1607 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)'
1609 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)'
1611 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)'
1613 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)'
1618 MergeJoin(b1t2 b1t3)
1619 MergeJoin(b2t3 b2t4)
1620 MergeJoin(b3t1 b3t4)
1621 MergeJoin(bmt1 bmt2)
1622 HashJoin(b1t2 b1t3 b1t4)
1623 HashJoin(b2t1 b2t3 b2t4)
1624 HashJoin(b3t1 b3t2 b3t4)
1625 HashJoin(bmt1 bmt2 bmt3)
1626 NestLoop(b1t1 b1t2 b1t3 b1t4)
1627 NestLoop(b2t1 b2t2 b2t3 b2t4)
1628 NestLoop(b3t1 b3t2 b3t3 b3t4)
1629 NestLoop(bmt1 bmt2 bmt3 bmt4)
1630 Leading(bmt1 bmt2 bmt3 bmt4)
1631 Leading(b1t2 b1t3 b1t4 b1t1)
1632 Leading(b2t3 b2t4 b2t1 b2t2)
1633 Leading(b3t4 b3t1 b3t2 b3t3)
1639 ------------------------------------------------------------------------------------------
1641 InitPlan 1 (returns $0)
1644 Join Filter: (b1t2.c1 = b1t1.c1)
1646 Hash Cond: (b1t4.c1 = b1t2.c1)
1647 -> Tid Scan on t4 b1t4
1648 TID Cond: (ctid = '(1,1)'::tid)
1651 Merge Cond: (b1t2.c1 = b1t3.c1)
1654 -> Seq Scan on t2 b1t2
1655 Filter: (ctid = '(1,1)'::tid)
1658 -> Tid Scan on t3 b1t3
1659 TID Cond: (ctid = '(1,1)'::tid)
1660 -> Tid Scan on t1 b1t1
1661 TID Cond: (ctid = '(1,1)'::tid)
1662 InitPlan 2 (returns $1)
1665 Join Filter: (b2t1.c1 = b2t2.c1)
1667 Hash Cond: (b2t1.c1 = b2t3.c1)
1668 -> Tid Scan on t1 b2t1
1669 TID Cond: (ctid = '(1,1)'::tid)
1672 Merge Cond: (b2t3.c1 = b2t4.c1)
1675 -> Tid Scan on t3 b2t3
1676 TID Cond: (ctid = '(1,1)'::tid)
1679 -> Tid Scan on t4 b2t4
1680 TID Cond: (ctid = '(1,1)'::tid)
1681 -> Seq Scan on t2 b2t2
1682 Filter: (ctid = '(1,1)'::tid)
1683 InitPlan 3 (returns $2)
1686 Join Filter: (b3t1.c1 = b3t3.c1)
1688 Hash Cond: (b3t2.c1 = b3t1.c1)
1689 -> Seq Scan on t2 b3t2
1690 Filter: (ctid = '(1,1)'::tid)
1693 Merge Cond: (b3t1.c1 = b3t4.c1)
1696 -> Tid Scan on t1 b3t1
1697 TID Cond: (ctid = '(1,1)'::tid)
1700 -> Tid Scan on t4 b3t4
1701 TID Cond: (ctid = '(1,1)'::tid)
1702 -> Tid Scan on t3 b3t3
1703 TID Cond: (ctid = '(1,1)'::tid)
1705 Join Filter: (bmt1.c1 = bmt4.c1)
1707 Hash Cond: (bmt3.c1 = bmt1.c1)
1708 -> Tid Scan on t3 bmt3
1709 TID Cond: (ctid = '(1,1)'::tid)
1712 Merge Cond: (bmt1.c1 = bmt2.c1)
1715 -> Tid Scan on t1 bmt1
1716 TID Cond: (ctid = '(1,1)'::tid)
1717 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1720 -> Seq Scan on t2 bmt2
1721 Filter: (ctid = '(1,1)'::tid)
1722 -> Tid Scan on t4 bmt4
1723 TID Cond: (ctid = '(1,1)'::tid)
1727 EXPLAIN (COSTS false)
1729 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)'
1732 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)'
1734 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1736 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)'
1741 -----------------------------------------------------------------------
1746 Join Filter: (b1t1.c1 = b1t4.c1)
1748 Join Filter: (b1t1.c1 = b1t3.c1)
1750 Join Filter: (b1t1.c1 = b1t2.c1)
1751 -> Tid Scan on t1 b1t1
1752 TID Cond: (ctid = '(1,1)'::tid)
1753 -> Seq Scan on t2 b1t2
1754 Filter: (ctid = '(1,1)'::tid)
1755 -> Tid Scan on t3 b1t3
1756 TID Cond: (ctid = '(1,1)'::tid)
1757 -> Tid Scan on t4 b1t4
1758 TID Cond: (ctid = '(1,1)'::tid)
1762 Join Filter: (b2t1.c1 = b2t4.c1)
1764 Join Filter: (b2t1.c1 = b2t3.c1)
1766 Join Filter: (b2t1.c1 = b2t2.c1)
1767 -> Tid Scan on t1 b2t1
1768 TID Cond: (ctid = '(1,1)'::tid)
1769 -> Seq Scan on t2 b2t2
1770 Filter: (ctid = '(1,1)'::tid)
1771 -> Tid Scan on t3 b2t3
1772 TID Cond: (ctid = '(1,1)'::tid)
1773 -> Tid Scan on t4 b2t4
1774 TID Cond: (ctid = '(1,1)'::tid)
1776 Join Filter: (bmt1.c1 = c2.c1)
1778 Join Filter: (bmt1.c1 = c1.c1)
1780 Join Filter: (bmt1.c1 = bmt4.c1)
1782 Join Filter: (bmt1.c1 = bmt3.c1)
1784 Join Filter: (bmt1.c1 = bmt2.c1)
1785 -> Tid Scan on t1 bmt1
1786 TID Cond: (ctid = '(1,1)'::tid)
1787 -> Seq Scan on t2 bmt2
1788 Filter: (ctid = '(1,1)'::tid)
1789 -> Tid Scan on t3 bmt3
1790 TID Cond: (ctid = '(1,1)'::tid)
1791 -> Tid Scan on t4 bmt4
1792 TID Cond: (ctid = '(1,1)'::tid)
1798 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1799 Leading(b1t2 b1t3 b1t4 b1t1)
1800 Leading(b2t3 b2t4 b2t1 b2t2)
1801 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)
1802 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1803 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1805 EXPLAIN (COSTS false)
1807 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)'
1810 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)'
1812 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1814 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)'
1820 MergeJoin(b1t2 b1t3)
1821 MergeJoin(b2t3 b2t4)
1823 HashJoin(b1t2 b1t3 b1t4)
1824 HashJoin(b2t1 b2t3 b2t4)
1825 HashJoin(bmt1 c1 c2)
1826 NestLoop(b1t1 b1t2 b1t3 b1t4)
1827 NestLoop(b2t1 b2t2 b2t3 b2t4)
1828 NestLoop(bmt1 bmt2 c1 c2)
1829 MergeJoin(bmt1 bmt2 bmt3 c1 c2)
1830 HashJoin(bmt1 bmt2 bmt3 bmt4 c1 c2)
1831 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1832 Leading(b1t2 b1t3 b1t4 b1t1)
1833 Leading(b2t3 b2t4 b2t1 b2t2)
1839 -------------------------------------------------------------------------------
1844 Join Filter: (b1t2.c1 = b1t1.c1)
1846 Hash Cond: (b1t4.c1 = b1t2.c1)
1847 -> Tid Scan on t4 b1t4
1848 TID Cond: (ctid = '(1,1)'::tid)
1851 Merge Cond: (b1t2.c1 = b1t3.c1)
1854 -> Seq Scan on t2 b1t2
1855 Filter: (ctid = '(1,1)'::tid)
1858 -> Tid Scan on t3 b1t3
1859 TID Cond: (ctid = '(1,1)'::tid)
1860 -> Tid Scan on t1 b1t1
1861 TID Cond: (ctid = '(1,1)'::tid)
1865 Join Filter: (b2t1.c1 = b2t2.c1)
1867 Hash Cond: (b2t1.c1 = b2t3.c1)
1868 -> Tid Scan on t1 b2t1
1869 TID Cond: (ctid = '(1,1)'::tid)
1872 Merge Cond: (b2t3.c1 = b2t4.c1)
1875 -> Tid Scan on t3 b2t3
1876 TID Cond: (ctid = '(1,1)'::tid)
1879 -> Tid Scan on t4 b2t4
1880 TID Cond: (ctid = '(1,1)'::tid)
1881 -> Seq Scan on t2 b2t2
1882 Filter: (ctid = '(1,1)'::tid)
1884 Hash Cond: (bmt4.c1 = bmt1.c1)
1885 -> Tid Scan on t4 bmt4
1886 TID Cond: (ctid = '(1,1)'::tid)
1889 Merge Cond: (bmt1.c1 = bmt3.c1)
1893 Join Filter: (bmt1.c1 = bmt2.c1)
1895 Hash Cond: (bmt1.c1 = c1.c1)
1896 -> Tid Scan on t1 bmt1
1897 TID Cond: (ctid = '(1,1)'::tid)
1900 Merge Cond: (c1.c1 = c2.c1)
1907 -> Seq Scan on t2 bmt2
1908 Filter: (ctid = '(1,1)'::tid)
1911 -> Tid Scan on t3 bmt3
1912 TID Cond: (ctid = '(1,1)'::tid)
1916 EXPLAIN (COSTS false)
1918 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)'
1921 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)'
1924 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)'
1926 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1928 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)'
1934 -----------------------------------------------------------------------------
1939 Join Filter: (b1t1.c1 = b1t4.c1)
1941 Join Filter: (b1t1.c1 = b1t3.c1)
1943 Join Filter: (b1t1.c1 = b1t2.c1)
1944 -> Tid Scan on t1 b1t1
1945 TID Cond: (ctid = '(1,1)'::tid)
1946 -> Seq Scan on t2 b1t2
1947 Filter: (ctid = '(1,1)'::tid)
1948 -> Tid Scan on t3 b1t3
1949 TID Cond: (ctid = '(1,1)'::tid)
1950 -> Tid Scan on t4 b1t4
1951 TID Cond: (ctid = '(1,1)'::tid)
1955 Join Filter: (b2t1.c1 = b2t4.c1)
1957 Join Filter: (b2t1.c1 = b2t3.c1)
1959 Join Filter: (b2t1.c1 = b2t2.c1)
1960 -> Tid Scan on t1 b2t1
1961 TID Cond: (ctid = '(1,1)'::tid)
1962 -> Seq Scan on t2 b2t2
1963 Filter: (ctid = '(1,1)'::tid)
1964 -> Tid Scan on t3 b2t3
1965 TID Cond: (ctid = '(1,1)'::tid)
1966 -> Tid Scan on t4 b2t4
1967 TID Cond: (ctid = '(1,1)'::tid)
1971 Join Filter: (b3t1.c1 = b3t4.c1)
1973 Join Filter: (b3t1.c1 = b3t3.c1)
1975 Join Filter: (b3t1.c1 = b3t2.c1)
1976 -> Tid Scan on t1 b3t1
1977 TID Cond: (ctid = '(1,1)'::tid)
1978 -> Seq Scan on t2 b3t2
1979 Filter: (ctid = '(1,1)'::tid)
1980 -> Tid Scan on t3 b3t3
1981 TID Cond: (ctid = '(1,1)'::tid)
1982 -> Tid Scan on t4 b3t4
1983 TID Cond: (ctid = '(1,1)'::tid)
1985 Join Filter: (bmt1.c1 = c3.c1)
1987 Join Filter: (bmt1.c1 = c2.c1)
1989 Join Filter: (bmt1.c1 = c1.c1)
1991 Join Filter: (bmt1.c1 = bmt4.c1)
1993 Join Filter: (bmt1.c1 = bmt3.c1)
1995 Join Filter: (bmt1.c1 = bmt2.c1)
1996 -> Tid Scan on t1 bmt1
1997 TID Cond: (ctid = '(1,1)'::tid)
1998 -> Seq Scan on t2 bmt2
1999 Filter: (ctid = '(1,1)'::tid)
2000 -> Tid Scan on t3 bmt3
2001 TID Cond: (ctid = '(1,1)'::tid)
2002 -> Tid Scan on t4 bmt4
2003 TID Cond: (ctid = '(1,1)'::tid)
2010 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2011 Leading(b1t2 b1t3 b1t4 b1t1)
2012 Leading(b2t3 b2t4 b2t1 b2t2)
2013 Leading(b3t4 b3t1 b3t2 b3t3)
2014 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)
2015 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
2016 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
2017 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
2019 EXPLAIN (COSTS false)
2021 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)'
2024 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)'
2027 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)'
2029 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2031 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)'
2038 MergeJoin(b1t2 b1t3)
2039 MergeJoin(b2t3 b2t4)
2040 MergeJoin(b3t1 b3t4)
2042 HashJoin(b1t2 b1t3 b1t4)
2043 HashJoin(b2t1 b2t3 b2t4)
2044 HashJoin(b3t1 b3t2 b3t4)
2046 NestLoop(b1t1 b1t2 b1t3 b1t4)
2047 NestLoop(b2t1 b2t2 b2t3 b2t4)
2048 NestLoop(b3t1 b3t2 b3t3 b3t4)
2049 NestLoop(bmt1 c1 c2 c3)
2050 MergeJoin(bmt1 bmt2 c1 c2 c3)
2051 HashJoin(bmt1 bmt2 bmt3 c1 c2 c3)
2052 NestLoop(bmt1 bmt2 bmt3 bmt4 c1 c2 c3)
2053 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2054 Leading(b1t2 b1t3 b1t4 b1t1)
2055 Leading(b2t3 b2t4 b2t1 b2t2)
2056 Leading(b3t4 b3t1 b3t2 b3t3)
2062 -------------------------------------------------------------------------------
2067 Join Filter: (b1t2.c1 = b1t1.c1)
2069 Hash Cond: (b1t4.c1 = b1t2.c1)
2070 -> Tid Scan on t4 b1t4
2071 TID Cond: (ctid = '(1,1)'::tid)
2074 Merge Cond: (b1t2.c1 = b1t3.c1)
2077 -> Seq Scan on t2 b1t2
2078 Filter: (ctid = '(1,1)'::tid)
2081 -> Tid Scan on t3 b1t3
2082 TID Cond: (ctid = '(1,1)'::tid)
2083 -> Tid Scan on t1 b1t1
2084 TID Cond: (ctid = '(1,1)'::tid)
2088 Join Filter: (b2t1.c1 = b2t2.c1)
2090 Hash Cond: (b2t1.c1 = b2t3.c1)
2091 -> Tid Scan on t1 b2t1
2092 TID Cond: (ctid = '(1,1)'::tid)
2095 Merge Cond: (b2t3.c1 = b2t4.c1)
2098 -> Tid Scan on t3 b2t3
2099 TID Cond: (ctid = '(1,1)'::tid)
2102 -> Tid Scan on t4 b2t4
2103 TID Cond: (ctid = '(1,1)'::tid)
2104 -> Seq Scan on t2 b2t2
2105 Filter: (ctid = '(1,1)'::tid)
2109 Join Filter: (b3t1.c1 = b3t3.c1)
2111 Hash Cond: (b3t2.c1 = b3t1.c1)
2112 -> Seq Scan on t2 b3t2
2113 Filter: (ctid = '(1,1)'::tid)
2116 Merge Cond: (b3t1.c1 = b3t4.c1)
2119 -> Tid Scan on t1 b3t1
2120 TID Cond: (ctid = '(1,1)'::tid)
2123 -> Tid Scan on t4 b3t4
2124 TID Cond: (ctid = '(1,1)'::tid)
2125 -> Tid Scan on t3 b3t3
2126 TID Cond: (ctid = '(1,1)'::tid)
2128 Join Filter: (bmt1.c1 = bmt4.c1)
2130 Hash Cond: (bmt3.c1 = bmt1.c1)
2131 -> Tid Scan on t3 bmt3
2132 TID Cond: (ctid = '(1,1)'::tid)
2135 Merge Cond: (bmt1.c1 = bmt2.c1)
2139 Join Filter: (c1.c1 = bmt1.c1)
2141 Hash Cond: (c2.c1 = c1.c1)
2143 Merge Cond: (c2.c1 = c3.c1)
2152 -> Tid Scan on t1 bmt1
2153 TID Cond: (ctid = '(1,1)'::tid)
2156 -> Seq Scan on t2 bmt2
2157 Filter: (ctid = '(1,1)'::tid)
2158 -> Tid Scan on t4 bmt4
2159 TID Cond: (ctid = '(1,1)'::tid)
2163 ---- No. J-2-2 the number of the tables per quiry block
2166 EXPLAIN (COSTS false)
2168 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2170 SELECT max(bmt1.c1), (
2171 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2173 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2176 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2180 -----------------------------------------------------------------
2184 InitPlan 1 (returns $0)
2186 -> Tid Scan on t1 b1t1
2187 TID Cond: (ctid = '(1,1)'::tid)
2188 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2189 InitPlan 4 (returns $3)
2191 InitPlan 3 (returns $2)
2193 -> Tid Scan on t1 b2t1
2194 TID Cond: (ctid = '(1,1)'::tid)
2195 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2196 InitPlan 6 (returns $5)
2198 InitPlan 5 (returns $4)
2200 -> Tid Scan on t1 b3t1
2201 TID Cond: (ctid = '(1,1)'::tid)
2202 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2204 -> Tid Scan on t1 bmt1
2205 TID Cond: (ctid = '(1,1)'::tid)
2206 Filter: ((c1 <> $5) AND (c1 = 1))
2218 EXPLAIN (COSTS false)
2220 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2222 SELECT max(bmt1.c1), (
2223 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2225 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2228 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2243 -----------------------------------------------------------------
2247 InitPlan 1 (returns $0)
2249 -> Tid Scan on t1 b1t1
2250 TID Cond: (ctid = '(1,1)'::tid)
2251 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2252 InitPlan 4 (returns $3)
2254 InitPlan 3 (returns $2)
2256 -> Tid Scan on t1 b2t1
2257 TID Cond: (ctid = '(1,1)'::tid)
2258 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2259 InitPlan 6 (returns $5)
2261 InitPlan 5 (returns $4)
2263 -> Tid Scan on t1 b3t1
2264 TID Cond: (ctid = '(1,1)'::tid)
2265 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2267 -> Tid Scan on t1 bmt1
2268 TID Cond: (ctid = '(1,1)'::tid)
2269 Filter: ((c1 <> $5) AND (c1 = 1))
2275 EXPLAIN (COSTS false)
2277 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)'
2279 SELECT max(bmt1.c1), (
2280 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)'
2282 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2285 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)'
2289 -------------------------------------------------------
2294 Join Filter: (b1t1.c1 = b1t2.c1)
2295 -> Tid Scan on t1 b1t1
2296 TID Cond: (ctid = '(1,1)'::tid)
2297 -> Seq Scan on t2 b1t2
2298 Filter: (ctid = '(1,1)'::tid)
2299 InitPlan 2 (returns $1)
2302 Join Filter: (b2t1.c1 = b2t2.c1)
2303 -> Tid Scan on t1 b2t1
2304 TID Cond: (ctid = '(1,1)'::tid)
2305 -> Seq Scan on t2 b2t2
2306 Filter: (ctid = '(1,1)'::tid)
2307 InitPlan 3 (returns $2)
2310 Join Filter: (b3t1.c1 = b3t2.c1)
2311 -> Tid Scan on t1 b3t1
2312 TID Cond: (ctid = '(1,1)'::tid)
2313 -> Seq Scan on t2 b3t2
2314 Filter: (ctid = '(1,1)'::tid)
2316 Join Filter: (bmt1.c1 = c1.c1)
2318 Join Filter: (bmt1.c1 = bmt2.c1)
2319 -> Tid Scan on t1 bmt1
2320 TID Cond: (ctid = '(1,1)'::tid)
2322 -> Seq Scan on t2 bmt2
2323 Filter: (ctid = '(1,1)'::tid)
2328 Leading(c1 bmt2 bmt1)
2333 HashJoin(c1 bmt1 bmt2)
2334 MergeJoin(b1t1 b1t2)
2335 MergeJoin(b2t1 b2t2)
2336 MergeJoin(b3t1 b3t2)
2338 EXPLAIN (COSTS false)
2340 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)'
2342 SELECT max(bmt1.c1), (
2343 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)'
2345 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2348 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)'
2353 MergeJoin(b1t1 b1t2)
2354 MergeJoin(b2t1 b2t2)
2355 MergeJoin(b3t1 b3t2)
2357 HashJoin(bmt1 bmt2 c1)
2358 Leading(c1 bmt2 bmt1)
2367 ---------------------------------------------------------------
2372 Merge Cond: (b1t1.c1 = b1t2.c1)
2375 -> Tid Scan on t1 b1t1
2376 TID Cond: (ctid = '(1,1)'::tid)
2379 -> Seq Scan on t2 b1t2
2380 Filter: (ctid = '(1,1)'::tid)
2381 InitPlan 2 (returns $1)
2384 Merge Cond: (b2t1.c1 = b2t2.c1)
2387 -> Tid Scan on t1 b2t1
2388 TID Cond: (ctid = '(1,1)'::tid)
2391 -> Seq Scan on t2 b2t2
2392 Filter: (ctid = '(1,1)'::tid)
2393 InitPlan 3 (returns $2)
2396 Merge Cond: (b3t1.c1 = b3t2.c1)
2399 -> Tid Scan on t1 b3t1
2400 TID Cond: (ctid = '(1,1)'::tid)
2403 -> Seq Scan on t2 b3t2
2404 Filter: (ctid = '(1,1)'::tid)
2406 Hash Cond: (bmt1.c1 = bmt2.c1)
2407 -> Tid Scan on t1 bmt1
2408 TID Cond: (ctid = '(1,1)'::tid)
2412 Merge Cond: (bmt2.c1 = c1.c1)
2415 -> Seq Scan on t2 bmt2
2416 Filter: (ctid = '(1,1)'::tid)
2423 EXPLAIN (COSTS false)
2425 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)'
2427 SELECT max(bmt1.c1), (
2428 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)'
2430 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
2432 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)'
2436 -------------------------------------------------------------------
2441 Join Filter: (b1t1.c1 = b1t4.c1)
2443 Join Filter: (b1t1.c1 = b1t3.c1)
2445 Join Filter: (b1t1.c1 = b1t2.c1)
2446 -> Tid Scan on t1 b1t1
2447 TID Cond: (ctid = '(1,1)'::tid)
2448 -> Seq Scan on t2 b1t2
2449 Filter: (ctid = '(1,1)'::tid)
2450 -> Tid Scan on t3 b1t3
2451 TID Cond: (ctid = '(1,1)'::tid)
2452 -> Tid Scan on t4 b1t4
2453 TID Cond: (ctid = '(1,1)'::tid)
2454 InitPlan 2 (returns $1)
2457 Join Filter: (b2t1.c1 = b2t4.c1)
2459 Join Filter: (b2t1.c1 = b2t3.c1)
2461 Join Filter: (b2t1.c1 = b2t2.c1)
2462 -> Tid Scan on t1 b2t1
2463 TID Cond: (ctid = '(1,1)'::tid)
2464 -> Seq Scan on t2 b2t2
2465 Filter: (ctid = '(1,1)'::tid)
2466 -> Tid Scan on t3 b2t3
2467 TID Cond: (ctid = '(1,1)'::tid)
2468 -> Tid Scan on t4 b2t4
2469 TID Cond: (ctid = '(1,1)'::tid)
2470 InitPlan 3 (returns $2)
2473 Join Filter: (b3t1.c1 = b3t4.c1)
2475 Join Filter: (b3t1.c1 = b3t3.c1)
2477 Join Filter: (b3t1.c1 = b3t2.c1)
2478 -> Tid Scan on t1 b3t1
2479 TID Cond: (ctid = '(1,1)'::tid)
2480 -> Seq Scan on t2 b3t2
2481 Filter: (ctid = '(1,1)'::tid)
2482 -> Tid Scan on t3 b3t3
2483 TID Cond: (ctid = '(1,1)'::tid)
2484 -> Tid Scan on t4 b3t4
2485 TID Cond: (ctid = '(1,1)'::tid)
2487 Join Filter: (bmt1.c1 = c1.c1)
2489 Join Filter: (bmt1.c1 = bmt4.c1)
2491 Join Filter: (bmt1.c1 = bmt3.c1)
2493 Join Filter: (bmt1.c1 = bmt2.c1)
2494 -> Tid Scan on t1 bmt1
2495 TID Cond: (ctid = '(1,1)'::tid)
2497 -> Seq Scan on t2 bmt2
2498 Filter: (ctid = '(1,1)'::tid)
2499 -> Tid Scan on t3 bmt3
2500 TID Cond: (ctid = '(1,1)'::tid)
2501 -> Tid Scan on t4 bmt4
2502 TID Cond: (ctid = '(1,1)'::tid)
2507 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2508 Leading(b1t4 b1t3 b1t2 b1t1)
2509 Leading(b2t4 b2t3 b2t2 b2t1)
2510 Leading(b3t4 b3t3 b3t2 b3t1)
2512 HashJoin(c1 bmt4 bmt3)
2513 NestLoop(c1 bmt4 bmt3 bmt2)
2514 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2516 NestLoop(b1t4 b1t3 b1t2)
2517 MergeJoin(b1t4 b1t3 b1t2 b1t1)
2519 NestLoop(b2t4 b2t3 b2t2)
2520 MergeJoin(b2t4 b2t3 b2t2 b2t1)
2522 NestLoop(b3t4 b3t3 b3t2)
2523 MergeJoin(b3t4 b3t3 b3t2 b3t1)
2525 EXPLAIN (COSTS false)
2527 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)'
2529 SELECT max(bmt1.c1), (
2530 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)'
2532 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
2534 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)'
2543 NestLoop(b1t2 b1t3 b1t4)
2544 NestLoop(b2t2 b2t3 b2t4)
2545 NestLoop(b3t2 b3t3 b3t4)
2546 HashJoin(bmt3 bmt4 c1)
2547 MergeJoin(b1t1 b1t2 b1t3 b1t4)
2548 MergeJoin(b2t1 b2t2 b2t3 b2t4)
2549 MergeJoin(b3t1 b3t2 b3t3 b3t4)
2550 NestLoop(bmt2 bmt3 bmt4 c1)
2551 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2552 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2553 Leading(b1t4 b1t3 b1t2 b1t1)
2554 Leading(b2t4 b2t3 b2t2 b2t1)
2555 Leading(b3t4 b3t3 b3t2 b3t1)
2561 -----------------------------------------------------------------------------------
2566 Merge Cond: (b1t2.c1 = b1t1.c1)
2570 Join Filter: (b1t3.c1 = b1t2.c1)
2572 Hash Cond: (b1t3.c1 = b1t4.c1)
2573 -> Tid Scan on t3 b1t3
2574 TID Cond: (ctid = '(1,1)'::tid)
2576 -> Tid Scan on t4 b1t4
2577 TID Cond: (ctid = '(1,1)'::tid)
2578 -> Seq Scan on t2 b1t2
2579 Filter: (ctid = '(1,1)'::tid)
2582 -> Tid Scan on t1 b1t1
2583 TID Cond: (ctid = '(1,1)'::tid)
2584 InitPlan 2 (returns $1)
2587 Merge Cond: (b2t2.c1 = b2t1.c1)
2591 Join Filter: (b2t3.c1 = b2t2.c1)
2593 Hash Cond: (b2t3.c1 = b2t4.c1)
2594 -> Tid Scan on t3 b2t3
2595 TID Cond: (ctid = '(1,1)'::tid)
2597 -> Tid Scan on t4 b2t4
2598 TID Cond: (ctid = '(1,1)'::tid)
2599 -> Seq Scan on t2 b2t2
2600 Filter: (ctid = '(1,1)'::tid)
2603 -> Tid Scan on t1 b2t1
2604 TID Cond: (ctid = '(1,1)'::tid)
2605 InitPlan 3 (returns $2)
2608 Merge Cond: (b3t2.c1 = b3t1.c1)
2612 Join Filter: (b3t3.c1 = b3t2.c1)
2614 Hash Cond: (b3t3.c1 = b3t4.c1)
2615 -> Tid Scan on t3 b3t3
2616 TID Cond: (ctid = '(1,1)'::tid)
2618 -> Tid Scan on t4 b3t4
2619 TID Cond: (ctid = '(1,1)'::tid)
2620 -> Seq Scan on t2 b3t2
2621 Filter: (ctid = '(1,1)'::tid)
2624 -> Tid Scan on t1 b3t1
2625 TID Cond: (ctid = '(1,1)'::tid)
2627 Merge Cond: (bmt2.c1 = bmt1.c1)
2631 Join Filter: (bmt3.c1 = bmt2.c1)
2633 Hash Cond: (bmt3.c1 = bmt4.c1)
2634 -> Tid Scan on t3 bmt3
2635 TID Cond: (ctid = '(1,1)'::tid)
2638 Merge Cond: (bmt4.c1 = c1.c1)
2641 -> Tid Scan on t4 bmt4
2642 TID Cond: (ctid = '(1,1)'::tid)
2646 -> Seq Scan on t2 bmt2
2647 Filter: (ctid = '(1,1)'::tid)
2650 -> Tid Scan on t1 bmt1
2651 TID Cond: (ctid = '(1,1)'::tid)
2656 EXPLAIN (COSTS false)
2658 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)'
2660 SELECT max(bmt1.c1), (
2661 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2663 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
2665 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2669 -------------------------------------------------------------------
2674 Join Filter: (b1t1.c1 = b1t4.c1)
2676 Join Filter: (b1t1.c1 = b1t3.c1)
2678 Join Filter: (b1t1.c1 = b1t2.c1)
2679 -> Tid Scan on t1 b1t1
2680 TID Cond: (ctid = '(1,1)'::tid)
2681 -> Seq Scan on t2 b1t2
2682 Filter: (ctid = '(1,1)'::tid)
2683 -> Tid Scan on t3 b1t3
2684 TID Cond: (ctid = '(1,1)'::tid)
2685 -> Tid Scan on t4 b1t4
2686 TID Cond: (ctid = '(1,1)'::tid)
2687 InitPlan 3 (returns $2)
2689 InitPlan 2 (returns $1)
2691 -> Tid Scan on t1 b2t1
2692 TID Cond: (ctid = '(1,1)'::tid)
2693 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2694 InitPlan 4 (returns $4)
2696 -> Tid Scan on t1 b3t1
2697 TID Cond: (ctid = '(1,1)'::tid)
2699 Join Filter: (bmt1.c1 = c1.c1)
2701 Join Filter: (bmt1.c1 = bmt4.c1)
2703 Join Filter: (bmt1.c1 = bmt3.c1)
2705 Join Filter: (bmt1.c1 = bmt2.c1)
2706 -> Tid Scan on t1 bmt1
2707 TID Cond: (ctid = '(1,1)'::tid)
2709 -> Seq Scan on t2 bmt2
2710 Filter: (ctid = '(1,1)'::tid)
2711 -> Tid Scan on t3 bmt3
2712 TID Cond: (ctid = '(1,1)'::tid)
2713 -> Tid Scan on t4 bmt4
2714 TID Cond: (ctid = '(1,1)'::tid)
2719 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2720 Leading(b1t4 b1t3 b1t2 b1t1)
2722 HashJoin(c1 bmt4 bmt3)
2723 NestLoop(c1 bmt4 bmt3 bmt2)
2724 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2725 MergeJoin(b1t4 b1t3)
2726 HashJoin(b1t4 b1t3 b1t2)
2727 NestLoop(b1t4 b1t3 b1t2 b1t1)
2729 EXPLAIN (COSTS false)
2731 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)'
2733 SELECT max(bmt1.c1), (
2734 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2736 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
2738 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2743 MergeJoin(b1t3 b1t4)
2745 HashJoin(b1t2 b1t3 b1t4)
2746 HashJoin(bmt3 bmt4 c1)
2747 NestLoop(b1t1 b1t2 b1t3 b1t4)
2748 NestLoop(bmt2 bmt3 bmt4 c1)
2749 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2750 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2751 Leading(b1t4 b1t3 b1t2 b1t1)
2757 -----------------------------------------------------------------------------------
2762 Join Filter: (b1t2.c1 = b1t1.c1)
2764 Hash Cond: (b1t2.c1 = b1t3.c1)
2765 -> Seq Scan on t2 b1t2
2766 Filter: (ctid = '(1,1)'::tid)
2769 Merge Cond: (b1t3.c1 = b1t4.c1)
2772 -> Tid Scan on t3 b1t3
2773 TID Cond: (ctid = '(1,1)'::tid)
2776 -> Tid Scan on t4 b1t4
2777 TID Cond: (ctid = '(1,1)'::tid)
2778 -> Tid Scan on t1 b1t1
2779 TID Cond: (ctid = '(1,1)'::tid)
2780 InitPlan 3 (returns $2)
2782 InitPlan 2 (returns $1)
2784 -> Tid Scan on t1 b2t1
2785 TID Cond: (ctid = '(1,1)'::tid)
2786 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2787 InitPlan 4 (returns $4)
2789 -> Tid Scan on t1 b3t1
2790 TID Cond: (ctid = '(1,1)'::tid)
2792 Merge Cond: (bmt2.c1 = bmt1.c1)
2796 Join Filter: (bmt3.c1 = bmt2.c1)
2798 Hash Cond: (bmt3.c1 = bmt4.c1)
2799 -> Tid Scan on t3 bmt3
2800 TID Cond: (ctid = '(1,1)'::tid)
2803 Merge Cond: (bmt4.c1 = c1.c1)
2806 -> Tid Scan on t4 bmt4
2807 TID Cond: (ctid = '(1,1)'::tid)
2811 -> Seq Scan on t2 bmt2
2812 Filter: (ctid = '(1,1)'::tid)
2815 -> Tid Scan on t1 bmt1
2816 TID Cond: (ctid = '(1,1)'::tid)
2821 ---- No. J-2-3 RULE or VIEW
2824 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2826 -----------------------------------------------------------------
2829 Join Filter: (t1.c1 = t4.c1)
2831 Join Filter: (t1.c1 = t3.c1)
2833 Join Filter: (t1.c1 = t2.c1)
2836 TID Cond: (ctid = '(1,1)'::tid)
2839 TID Cond: (ctid = '(1,1)'::tid)
2841 Filter: (ctid = '(1,1)'::tid)
2843 TID Cond: (ctid = '(1,1)'::tid)
2845 TID Cond: (ctid = '(1,1)'::tid)
2849 Leading(t4 t3 t2 t1 r1)
2850 MergeJoin(t4 t3 t2 t1 r1)
2851 HashJoin(t4 t3 t2 t1)
2855 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2860 HashJoin(t1 t2 t3 t4)
2861 MergeJoin(r1 t1 t2 t3 t4)
2862 Leading(t4 t3 t2 t1 r1)
2868 -----------------------------------------------------------------------------
2872 Hash Cond: (t1.c1 = t2.c1)
2874 TID Cond: (ctid = '(1,1)'::tid)
2877 Join Filter: (t3.c1 = t2.c1)
2879 Merge Cond: (t3.c1 = t4.c1)
2883 TID Cond: (ctid = '(1,1)'::tid)
2887 TID Cond: (ctid = '(1,1)'::tid)
2889 Filter: (ctid = '(1,1)'::tid)
2891 TID Cond: (ctid = '(1,1)'::tid)
2895 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2897 -----------------------------------------------------------------
2900 Join Filter: (b1t1.c1 = b1t4.c1)
2902 Join Filter: (b1t1.c1 = b1t3.c1)
2904 Join Filter: (b1t1.c1 = b1t2.c1)
2907 TID Cond: (ctid = '(1,1)'::tid)
2909 -> Tid Scan on t1 b1t1
2910 TID Cond: (ctid = '(1,1)'::tid)
2911 -> Seq Scan on t2 b1t2
2912 Filter: (ctid = '(1,1)'::tid)
2913 -> Tid Scan on t3 b1t3
2914 TID Cond: (ctid = '(1,1)'::tid)
2915 -> Tid Scan on t4 b1t4
2916 TID Cond: (ctid = '(1,1)'::tid)
2920 Leading(b1t4 b1t3 b1t2 b1t1 r1_)
2921 MergeJoin(b1t4 b1t3 b1t2 b1t1 r1_)
2922 HashJoin(b1t4 b1t3 b1t2 b1t1)
2923 NestLoop(b1t4 b1t3 b1t2)
2924 MergeJoin(b1t4 b1t3)
2926 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2929 MergeJoin(b1t3 b1t4)
2930 NestLoop(b1t2 b1t3 b1t4)
2931 HashJoin(b1t1 b1t2 b1t3 b1t4)
2932 MergeJoin(b1t1 b1t2 b1t3 b1t4 r1_)
2933 Leading(b1t4 b1t3 b1t2 b1t1 r1_)
2939 -----------------------------------------------------------------------------
2943 Hash Cond: (b1t1.c1 = b1t2.c1)
2944 -> Tid Scan on t1 b1t1
2945 TID Cond: (ctid = '(1,1)'::tid)
2948 Join Filter: (b1t3.c1 = b1t2.c1)
2950 Merge Cond: (b1t3.c1 = b1t4.c1)
2953 -> Tid Scan on t3 b1t3
2954 TID Cond: (ctid = '(1,1)'::tid)
2957 -> Tid Scan on t4 b1t4
2958 TID Cond: (ctid = '(1,1)'::tid)
2959 -> Seq Scan on t2 b1t2
2960 Filter: (ctid = '(1,1)'::tid)
2962 TID Cond: (ctid = '(1,1)'::tid)
2967 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2969 -----------------------------------------------------------------
2972 Join Filter: (t1.c1 = t4.c1)
2974 Join Filter: (t1.c1 = t3.c1)
2976 Join Filter: (t1.c1 = t2.c1)
2979 TID Cond: (ctid = '(1,1)'::tid)
2982 TID Cond: (ctid = '(1,1)'::tid)
2984 Filter: (ctid = '(1,1)'::tid)
2986 TID Cond: (ctid = '(1,1)'::tid)
2988 TID Cond: (ctid = '(1,1)'::tid)
2992 Join Filter: (t1.c1 = t4.c1)
2994 Join Filter: (t1.c1 = t3.c1)
2996 Join Filter: (t1.c1 = t2.c1)
2999 TID Cond: (ctid = '(1,1)'::tid)
3002 TID Cond: (ctid = '(1,1)'::tid)
3004 Filter: (ctid = '(1,1)'::tid)
3006 TID Cond: (ctid = '(1,1)'::tid)
3008 TID Cond: (ctid = '(1,1)'::tid)
3012 Leading(t4 t3 t2 t1 r2)
3013 MergeJoin(t4 t3 t2 t1 r2)
3014 HashJoin(t4 t3 t2 t1)
3018 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3023 HashJoin(t1 t2 t3 t4)
3024 MergeJoin(r2 t1 t2 t3 t4)
3025 Leading(t4 t3 t2 t1 r2)
3034 HashJoin(t1 t2 t3 t4)
3035 MergeJoin(r2 t1 t2 t3 t4)
3036 Leading(t4 t3 t2 t1 r2)
3042 -----------------------------------------------------------------------------
3046 Hash Cond: (t1.c1 = t2.c1)
3048 TID Cond: (ctid = '(1,1)'::tid)
3051 Join Filter: (t3.c1 = t2.c1)
3053 Merge Cond: (t3.c1 = t4.c1)
3057 TID Cond: (ctid = '(1,1)'::tid)
3061 TID Cond: (ctid = '(1,1)'::tid)
3063 Filter: (ctid = '(1,1)'::tid)
3065 TID Cond: (ctid = '(1,1)'::tid)
3071 Hash Cond: (t1.c1 = t2.c1)
3073 TID Cond: (ctid = '(1,1)'::tid)
3076 Join Filter: (t3.c1 = t2.c1)
3078 Merge Cond: (t3.c1 = t4.c1)
3082 TID Cond: (ctid = '(1,1)'::tid)
3086 TID Cond: (ctid = '(1,1)'::tid)
3088 Filter: (ctid = '(1,1)'::tid)
3090 TID Cond: (ctid = '(1,1)'::tid)
3094 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3096 -----------------------------------------------------------------
3099 Join Filter: (b1t1.c1 = b1t4.c1)
3101 Join Filter: (b1t1.c1 = b1t3.c1)
3103 Join Filter: (b1t1.c1 = b1t2.c1)
3106 TID Cond: (ctid = '(1,1)'::tid)
3108 -> Tid Scan on t1 b1t1
3109 TID Cond: (ctid = '(1,1)'::tid)
3110 -> Seq Scan on t2 b1t2
3111 Filter: (ctid = '(1,1)'::tid)
3112 -> Tid Scan on t3 b1t3
3113 TID Cond: (ctid = '(1,1)'::tid)
3114 -> Tid Scan on t4 b1t4
3115 TID Cond: (ctid = '(1,1)'::tid)
3119 Join Filter: (b2t1.c1 = b2t4.c1)
3121 Join Filter: (b2t1.c1 = b2t3.c1)
3123 Join Filter: (b2t1.c1 = b2t2.c1)
3126 TID Cond: (ctid = '(1,1)'::tid)
3128 -> Tid Scan on t1 b2t1
3129 TID Cond: (ctid = '(1,1)'::tid)
3130 -> Seq Scan on t2 b2t2
3131 Filter: (ctid = '(1,1)'::tid)
3132 -> Tid Scan on t3 b2t3
3133 TID Cond: (ctid = '(1,1)'::tid)
3134 -> Tid Scan on t4 b2t4
3135 TID Cond: (ctid = '(1,1)'::tid)
3139 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3140 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3141 MergeJoin(b1t1 b1t2)
3142 HashJoin(b1t1 b1t2 b1t3)
3143 NestLoop(b1t1 b1t2 b1t3 b1t4)
3144 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3145 MergeJoin(b2t1 b2t2)
3146 HashJoin(b2t1 b2t2 b2t3)
3147 NestLoop(b2t1 b2t2 b2t3 b2t4)
3148 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3150 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3153 MergeJoin(b1t1 b1t2)
3154 HashJoin(b1t1 b1t2 b1t3)
3155 NestLoop(b1t1 b1t2 b1t3 b1t4)
3156 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3157 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3159 MergeJoin(b2t1 b2t2)
3160 HashJoin(b2t1 b2t2 b2t3)
3161 NestLoop(b2t1 b2t2 b2t3 b2t4)
3162 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3163 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3169 MergeJoin(b2t1 b2t2)
3170 HashJoin(b2t1 b2t2 b2t3)
3171 NestLoop(b2t1 b2t2 b2t3 b2t4)
3172 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3173 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3175 MergeJoin(b1t1 b1t2)
3176 HashJoin(b1t1 b1t2 b1t3)
3177 NestLoop(b1t1 b1t2 b1t3 b1t4)
3178 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3179 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3184 -----------------------------------------------------------------------------
3188 Join Filter: (b1t1.c1 = b1t4.c1)
3190 Hash Cond: (b1t3.c1 = b1t1.c1)
3191 -> Tid Scan on t3 b1t3
3192 TID Cond: (ctid = '(1,1)'::tid)
3195 Merge Cond: (b1t1.c1 = b1t2.c1)
3198 -> Tid Scan on t1 b1t1
3199 TID Cond: (ctid = '(1,1)'::tid)
3202 -> Seq Scan on t2 b1t2
3203 Filter: (ctid = '(1,1)'::tid)
3204 -> Tid Scan on t4 b1t4
3205 TID Cond: (ctid = '(1,1)'::tid)
3207 TID Cond: (ctid = '(1,1)'::tid)
3213 Join Filter: (b2t1.c1 = b2t4.c1)
3215 Hash Cond: (b2t3.c1 = b2t1.c1)
3216 -> Tid Scan on t3 b2t3
3217 TID Cond: (ctid = '(1,1)'::tid)
3220 Merge Cond: (b2t1.c1 = b2t2.c1)
3223 -> Tid Scan on t1 b2t1
3224 TID Cond: (ctid = '(1,1)'::tid)
3227 -> Seq Scan on t2 b2t2
3228 Filter: (ctid = '(1,1)'::tid)
3229 -> Tid Scan on t4 b2t4
3230 TID Cond: (ctid = '(1,1)'::tid)
3232 TID Cond: (ctid = '(1,1)'::tid)
3237 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3239 -----------------------------------------------------------------
3242 Join Filter: (t1.c1 = t4.c1)
3244 Join Filter: (t1.c1 = t3.c1)
3246 Join Filter: (t1.c1 = t2.c1)
3249 TID Cond: (ctid = '(1,1)'::tid)
3252 TID Cond: (ctid = '(1,1)'::tid)
3254 Filter: (ctid = '(1,1)'::tid)
3256 TID Cond: (ctid = '(1,1)'::tid)
3258 TID Cond: (ctid = '(1,1)'::tid)
3262 Join Filter: (t1.c1 = t4.c1)
3264 Join Filter: (t1.c1 = t3.c1)
3266 Join Filter: (t1.c1 = t2.c1)
3269 TID Cond: (ctid = '(1,1)'::tid)
3272 TID Cond: (ctid = '(1,1)'::tid)
3274 Filter: (ctid = '(1,1)'::tid)
3276 TID Cond: (ctid = '(1,1)'::tid)
3278 TID Cond: (ctid = '(1,1)'::tid)
3282 Join Filter: (t1.c1 = t4.c1)
3284 Join Filter: (t1.c1 = t3.c1)
3286 Join Filter: (t1.c1 = t2.c1)
3289 TID Cond: (ctid = '(1,1)'::tid)
3292 TID Cond: (ctid = '(1,1)'::tid)
3294 Filter: (ctid = '(1,1)'::tid)
3296 TID Cond: (ctid = '(1,1)'::tid)
3298 TID Cond: (ctid = '(1,1)'::tid)
3302 Leading(t4 t3 t2 t1 r3)
3303 MergeJoin(t4 t3 t2 t1 r3)
3304 HashJoin(t4 t3 t2 t1)
3308 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3313 HashJoin(t1 t2 t3 t4)
3314 MergeJoin(r3 t1 t2 t3 t4)
3315 Leading(t4 t3 t2 t1 r3)
3324 HashJoin(t1 t2 t3 t4)
3325 MergeJoin(r3 t1 t2 t3 t4)
3326 Leading(t4 t3 t2 t1 r3)
3335 HashJoin(t1 t2 t3 t4)
3336 MergeJoin(r3 t1 t2 t3 t4)
3337 Leading(t4 t3 t2 t1 r3)
3343 -----------------------------------------------------------------------------
3347 Hash Cond: (t1.c1 = t2.c1)
3349 TID Cond: (ctid = '(1,1)'::tid)
3352 Join Filter: (t3.c1 = t2.c1)
3354 Merge Cond: (t3.c1 = t4.c1)
3358 TID Cond: (ctid = '(1,1)'::tid)
3362 TID Cond: (ctid = '(1,1)'::tid)
3364 Filter: (ctid = '(1,1)'::tid)
3366 TID Cond: (ctid = '(1,1)'::tid)
3372 Hash Cond: (t1.c1 = t2.c1)
3374 TID Cond: (ctid = '(1,1)'::tid)
3377 Join Filter: (t3.c1 = t2.c1)
3379 Merge Cond: (t3.c1 = t4.c1)
3383 TID Cond: (ctid = '(1,1)'::tid)
3387 TID Cond: (ctid = '(1,1)'::tid)
3389 Filter: (ctid = '(1,1)'::tid)
3391 TID Cond: (ctid = '(1,1)'::tid)
3397 Hash Cond: (t1.c1 = t2.c1)
3399 TID Cond: (ctid = '(1,1)'::tid)
3402 Join Filter: (t3.c1 = t2.c1)
3404 Merge Cond: (t3.c1 = t4.c1)
3408 TID Cond: (ctid = '(1,1)'::tid)
3412 TID Cond: (ctid = '(1,1)'::tid)
3414 Filter: (ctid = '(1,1)'::tid)
3416 TID Cond: (ctid = '(1,1)'::tid)
3420 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3422 -----------------------------------------------------------------
3425 Join Filter: (b1t1.c1 = b1t4.c1)
3427 Join Filter: (b1t1.c1 = b1t3.c1)
3429 Join Filter: (b1t1.c1 = b1t2.c1)
3432 TID Cond: (ctid = '(1,1)'::tid)
3434 -> Tid Scan on t1 b1t1
3435 TID Cond: (ctid = '(1,1)'::tid)
3436 -> Seq Scan on t2 b1t2
3437 Filter: (ctid = '(1,1)'::tid)
3438 -> Tid Scan on t3 b1t3
3439 TID Cond: (ctid = '(1,1)'::tid)
3440 -> Tid Scan on t4 b1t4
3441 TID Cond: (ctid = '(1,1)'::tid)
3445 Join Filter: (b2t1.c1 = b2t4.c1)
3447 Join Filter: (b2t1.c1 = b2t3.c1)
3449 Join Filter: (b2t1.c1 = b2t2.c1)
3452 TID Cond: (ctid = '(1,1)'::tid)
3454 -> Tid Scan on t1 b2t1
3455 TID Cond: (ctid = '(1,1)'::tid)
3456 -> Seq Scan on t2 b2t2
3457 Filter: (ctid = '(1,1)'::tid)
3458 -> Tid Scan on t3 b2t3
3459 TID Cond: (ctid = '(1,1)'::tid)
3460 -> Tid Scan on t4 b2t4
3461 TID Cond: (ctid = '(1,1)'::tid)
3465 Join Filter: (b3t1.c1 = b3t4.c1)
3467 Join Filter: (b3t1.c1 = b3t3.c1)
3469 Join Filter: (b3t1.c1 = b3t2.c1)
3472 TID Cond: (ctid = '(1,1)'::tid)
3474 -> Tid Scan on t1 b3t1
3475 TID Cond: (ctid = '(1,1)'::tid)
3476 -> Seq Scan on t2 b3t2
3477 Filter: (ctid = '(1,1)'::tid)
3478 -> Tid Scan on t3 b3t3
3479 TID Cond: (ctid = '(1,1)'::tid)
3480 -> Tid Scan on t4 b3t4
3481 TID Cond: (ctid = '(1,1)'::tid)
3485 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3486 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3487 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3488 MergeJoin(b1t1 b1t2)
3489 HashJoin(b1t1 b1t2 b1t3)
3490 NestLoop(b1t1 b1t2 b1t3 b1t4)
3491 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3492 MergeJoin(b2t1 b2t2)
3493 HashJoin(b2t1 b2t2 b2t3)
3494 NestLoop(b2t1 b2t2 b2t3 b2t4)
3495 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3496 MergeJoin(b3t1 b3t2)
3497 HashJoin(b3t1 b3t2 b3t3)
3498 NestLoop(b3t1 b3t2 b3t3 b3t4)
3499 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3501 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3504 MergeJoin(b1t1 b1t2)
3505 HashJoin(b1t1 b1t2 b1t3)
3506 NestLoop(b1t1 b1t2 b1t3 b1t4)
3507 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3508 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3510 MergeJoin(b2t1 b2t2)
3511 MergeJoin(b3t1 b3t2)
3512 HashJoin(b2t1 b2t2 b2t3)
3513 HashJoin(b3t1 b3t2 b3t3)
3514 NestLoop(b2t1 b2t2 b2t3 b2t4)
3515 NestLoop(b3t1 b3t2 b3t3 b3t4)
3516 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3517 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3518 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3519 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3525 MergeJoin(b2t1 b2t2)
3526 HashJoin(b2t1 b2t2 b2t3)
3527 NestLoop(b2t1 b2t2 b2t3 b2t4)
3528 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3529 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3531 MergeJoin(b1t1 b1t2)
3532 MergeJoin(b3t1 b3t2)
3533 HashJoin(b1t1 b1t2 b1t3)
3534 HashJoin(b3t1 b3t2 b3t3)
3535 NestLoop(b1t1 b1t2 b1t3 b1t4)
3536 NestLoop(b3t1 b3t2 b3t3 b3t4)
3537 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3538 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3539 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3540 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3546 MergeJoin(b3t1 b3t2)
3547 HashJoin(b3t1 b3t2 b3t3)
3548 NestLoop(b3t1 b3t2 b3t3 b3t4)
3549 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3550 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3552 MergeJoin(b1t1 b1t2)
3553 MergeJoin(b2t1 b2t2)
3554 HashJoin(b1t1 b1t2 b1t3)
3555 HashJoin(b2t1 b2t2 b2t3)
3556 NestLoop(b1t1 b1t2 b1t3 b1t4)
3557 NestLoop(b2t1 b2t2 b2t3 b2t4)
3558 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3559 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3560 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3561 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3566 -----------------------------------------------------------------------------
3570 Join Filter: (b1t1.c1 = b1t4.c1)
3572 Hash Cond: (b1t3.c1 = b1t1.c1)
3573 -> Tid Scan on t3 b1t3
3574 TID Cond: (ctid = '(1,1)'::tid)
3577 Merge Cond: (b1t1.c1 = b1t2.c1)
3580 -> Tid Scan on t1 b1t1
3581 TID Cond: (ctid = '(1,1)'::tid)
3584 -> Seq Scan on t2 b1t2
3585 Filter: (ctid = '(1,1)'::tid)
3586 -> Tid Scan on t4 b1t4
3587 TID Cond: (ctid = '(1,1)'::tid)
3589 TID Cond: (ctid = '(1,1)'::tid)
3595 Join Filter: (b2t1.c1 = b2t4.c1)
3597 Hash Cond: (b2t3.c1 = b2t1.c1)
3598 -> Tid Scan on t3 b2t3
3599 TID Cond: (ctid = '(1,1)'::tid)
3602 Merge Cond: (b2t1.c1 = b2t2.c1)
3605 -> Tid Scan on t1 b2t1
3606 TID Cond: (ctid = '(1,1)'::tid)
3609 -> Seq Scan on t2 b2t2
3610 Filter: (ctid = '(1,1)'::tid)
3611 -> Tid Scan on t4 b2t4
3612 TID Cond: (ctid = '(1,1)'::tid)
3614 TID Cond: (ctid = '(1,1)'::tid)
3620 Join Filter: (b3t1.c1 = b3t4.c1)
3622 Hash Cond: (b3t3.c1 = b3t1.c1)
3623 -> Tid Scan on t3 b3t3
3624 TID Cond: (ctid = '(1,1)'::tid)
3627 Merge Cond: (b3t1.c1 = b3t2.c1)
3630 -> Tid Scan on t1 b3t1
3631 TID Cond: (ctid = '(1,1)'::tid)
3634 -> Seq Scan on t2 b3t2
3635 Filter: (ctid = '(1,1)'::tid)
3636 -> Tid Scan on t4 b3t4
3637 TID Cond: (ctid = '(1,1)'::tid)
3639 TID Cond: (ctid = '(1,1)'::tid)
3644 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3646 ------------------------------------
3648 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3649 -> Seq Scan on t1 v1t1
3651 -> Seq Scan on t1 v1t1_1
3654 /*+HashJoin(v1t1 v1t1)*/
3655 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3656 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(v1t1 v1t1)"
3657 DETAIL: Relation name "v1t1" is ambiguous.
3666 ------------------------------------
3668 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3669 -> Seq Scan on t1 v1t1
3671 -> Seq Scan on t1 v1t1_1
3675 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3677 -----------------------------------
3679 Hash Cond: (v1t1.c1 = v1t1_.c1)
3680 -> Seq Scan on t1 v1t1
3682 -> Seq Scan on t1 v1t1_
3685 /*+NestLoop(v1t1 v1t1_)*/
3686 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3689 NestLoop(v1t1 v1t1_)
3695 ------------------------------------------
3697 -> Seq Scan on t1 v1t1
3698 -> Index Scan using t1_i1 on t1 v1t1_
3699 Index Cond: (c1 = v1t1.c1)
3703 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3705 ------------------------------------
3707 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3708 -> Seq Scan on t1 r4t1
3710 -> Seq Scan on t1 r4t1_1
3713 /*+HashJoin(r4t1 r4t1)*/
3714 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3715 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(r4t1 r4t1)"
3716 DETAIL: Relation name "r4t1" is ambiguous.
3725 ------------------------------------
3727 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3728 -> Seq Scan on t1 r4t1
3730 -> Seq Scan on t1 r4t1_1
3734 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3736 ----------------------------------
3738 Hash Cond: (r4t1.c1 = r5t1.c1)
3739 -> Seq Scan on t1 r4t1
3741 -> Seq Scan on t1 r5t1
3744 /*+NestLoop(r4t1 r5t1)*/
3745 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3754 -----------------------------------------
3756 -> Seq Scan on t1 r4t1
3757 -> Index Scan using t1_i1 on t1 r5t1
3758 Index Cond: (c1 = r4t1.c1)
3762 ---- No. J-2-4 VALUES clause
3765 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;
3767 ------------------------------------
3769 -> Index Scan using t1_i1 on t1
3770 Index Cond: (c1 = 1)
3775 /*+ Leading(t3 t1 t2) HashJoin(t3 t1)NestLoop(t3 t1 t2)*/
3776 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;
3787 ------------------------------------
3789 -> Index Scan using t1_i1 on t1
3790 Index Cond: (c1 = 1)
3795 /*+ Leading(*VALUES* t1 t2) HashJoin(*VALUES* t1)NestLoop(*VALUES* t1 t2)*/
3796 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3799 HashJoin(*VALUES* t1)
3800 NestLoop(*VALUES* t1 t2)
3801 Leading(*VALUES* t1 t2)
3807 -------------------------------------------------
3810 Hash Cond: (t1.c1 = "*VALUES*".column1)
3813 -> Values Scan on "*VALUES*"
3814 -> Index Scan using t2_i1 on t2
3815 Index Cond: (c1 = t1.c1)
3819 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) 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;
3821 -------------------------------------------------------
3824 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3826 Hash Cond: (t2.c1 = "*VALUES*".column1)
3829 -> Values Scan on "*VALUES*"
3831 -> Values Scan on "*VALUES*_1"
3832 -> Index Scan using t1_i1 on t1
3833 Index Cond: (c1 = t2.c1)
3836 /*+ Leading(t4 t3 t2 t1) NestLoop(t4 t3)HashJoin(t4 t3 t2)MergeJoin(t4 t3 t2 t1)*/
3837 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) 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;
3843 MergeJoin(t1 t2 t3 t4)
3844 Leading(t4 t3 t2 t1)
3849 -------------------------------------------------------
3852 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3854 Hash Cond: (t2.c1 = "*VALUES*".column1)
3857 -> Values Scan on "*VALUES*"
3859 -> Values Scan on "*VALUES*_1"
3860 -> Index Scan using t1_i1 on t1
3861 Index Cond: (c1 = t2.c1)
3864 /*+ Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)*/
3865 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1'), (2,2,2,'2')) 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;
3866 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)"
3867 DETAIL: Relation name "*VALUES*" is ambiguous.
3868 INFO: pg_hint_plan: hint syntax error at or near "MergeJoin(*VALUES* t3 t2 t1)"
3869 DETAIL: Relation name "*VALUES*" is ambiguous.
3870 INFO: pg_hint_plan: hint syntax error at or near "Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)"
3871 DETAIL: Relation name "*VALUES*" is ambiguous.
3878 HashJoin(*VALUES* t2 t3)
3879 MergeJoin(*VALUES* t1 t2 t3)
3880 Leading(*VALUES* t3 t2 t1)
3883 -------------------------------------------------------
3886 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3888 Hash Cond: (t2.c1 = "*VALUES*".column1)
3891 -> Values Scan on "*VALUES*"
3893 -> Values Scan on "*VALUES*_1"
3894 -> Index Scan using t1_i1 on t1
3895 Index Cond: (c1 = t2.c1)
3899 ---- No. J-3-1 join method hint
3902 SET enable_nestloop TO on;
3903 SET enable_mergejoin TO off;
3904 SET enable_hashjoin TO off;
3905 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3907 ------------------------------------
3910 -> Index Scan using t1_i1 on t1
3911 Index Cond: (c1 = t2.c1)
3914 /*+NestLoop(t1 t2)*/
3915 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3924 ------------------------------------
3927 -> Index Scan using t1_i1 on t1
3928 Index Cond: (c1 = t2.c1)
3931 /*+HashJoin(t1 t2)*/
3932 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3941 ------------------------------
3943 Hash Cond: (t1.c1 = t2.c1)
3949 /*+MergeJoin(t1 t2)*/
3950 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3959 ------------------------------------
3961 Merge Cond: (t1.c1 = t2.c1)
3962 -> Index Scan using t1_i1 on t1
3968 SET enable_mergejoin TO on;
3969 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';;
3971 -----------------------------------------
3973 Join Filter: (t1.c1 = t2.c1)
3975 TID Cond: (ctid = '(1,1)'::tid)
3979 /*+NoNestLoop(t1 t2)*/
3980 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';;
3989 -----------------------------------------------
3991 Merge Cond: (t1.c1 = t2.c1)
3995 TID Cond: (ctid = '(1,1)'::tid)
4001 SET enable_mergejoin TO off;
4002 /*+NoHashJoin(t1 t2)*/
4003 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4012 ------------------------------------
4015 -> Index Scan using t1_i1 on t1
4016 Index Cond: (c1 = t2.c1)
4019 /*+NoMergeJoin(t1 t2)*/
4020 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4029 ------------------------------------
4032 -> Index Scan using t1_i1 on t1
4033 Index Cond: (c1 = t2.c1)
4037 SET enable_nestloop TO off;
4038 SET enable_mergejoin TO off;
4039 SET enable_hashjoin TO on;
4040 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4042 ------------------------------
4044 Hash Cond: (t1.c1 = t2.c1)
4050 /*+NestLoop(t1 t2)*/
4051 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4060 ------------------------------------
4063 -> Index Scan using t1_i1 on t1
4064 Index Cond: (c1 = t2.c1)
4067 /*+HashJoin(t1 t2)*/
4068 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4077 ------------------------------
4079 Hash Cond: (t1.c1 = t2.c1)
4085 /*+MergeJoin(t1 t2)*/
4086 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4095 ------------------------------------
4097 Merge Cond: (t1.c1 = t2.c1)
4098 -> Index Scan using t1_i1 on t1
4104 /*+NoNestLoop(t1 t2)*/
4105 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4114 ------------------------------
4116 Hash Cond: (t1.c1 = t2.c1)
4122 /*+NoHashJoin(t1 t2)*/
4123 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4132 ------------------------------------
4135 -> Index Scan using t1_i1 on t1
4136 Index Cond: (c1 = t2.c1)
4139 /*+NoMergeJoin(t1 t2)*/
4140 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4149 ------------------------------
4151 Hash Cond: (t1.c1 = t2.c1)
4158 SET enable_nestloop TO off;
4159 SET enable_mergejoin TO on;
4160 SET enable_hashjoin TO off;
4161 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4163 ------------------------------------
4165 Merge Cond: (t1.c1 = t2.c1)
4166 -> Index Scan using t1_i1 on t1
4172 /*+NestLoop(t1 t2)*/
4173 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4182 ------------------------------------
4185 -> Index Scan using t1_i1 on t1
4186 Index Cond: (c1 = t2.c1)
4189 /*+HashJoin(t1 t2)*/
4190 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4199 ------------------------------
4201 Hash Cond: (t1.c1 = t2.c1)
4207 /*+MergeJoin(t1 t2)*/
4208 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4217 ------------------------------------
4219 Merge Cond: (t1.c1 = t2.c1)
4220 -> Index Scan using t1_i1 on t1
4226 /*+NoNestLoop(t1 t2)*/
4227 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4236 ------------------------------------
4238 Merge Cond: (t1.c1 = t2.c1)
4239 -> Index Scan using t1_i1 on t1
4245 /*+NoHashJoin(t1 t2)*/
4246 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4255 ------------------------------------
4257 Merge Cond: (t1.c1 = t2.c1)
4258 -> Index Scan using t1_i1 on t1
4264 /*+NoMergeJoin(t1 t2)*/
4265 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4274 ------------------------------------
4277 -> Index Scan using t1_i1 on t1
4278 Index Cond: (c1 = t2.c1)
4281 SET enable_nestloop TO on;
4282 SET enable_mergejoin TO on;
4283 SET enable_hashjoin TO on;
4285 ---- No. J-3-2 join inherit tables
4287 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4289 ------------------------------------
4291 Hash Cond: (p2.c1 = p1.c1)
4297 -> Seq Scan on p2c1c1
4298 -> Seq Scan on p2c1c2
4299 -> Seq Scan on p2c2c1
4300 -> Seq Scan on p2c2c2
4301 -> Seq Scan on p2c3c1
4302 -> Seq Scan on p2c3c2
4312 /*+MergeJoin(p1 p2)*/
4313 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4322 --------------------------------------
4324 Merge Cond: (p1.c1 = p2.c1)
4339 -> Seq Scan on p2c1c1
4340 -> Seq Scan on p2c1c2
4341 -> Seq Scan on p2c2c1
4342 -> Seq Scan on p2c2c2
4343 -> Seq Scan on p2c3c1
4344 -> Seq Scan on p2c3c2
4348 /*+MergeJoin(p1c1 p2c1)*/
4349 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4353 MergeJoin(p1c1 p2c1)
4358 ------------------------------------
4360 Hash Cond: (p2.c1 = p1.c1)
4366 -> Seq Scan on p2c1c1
4367 -> Seq Scan on p2c1c2
4368 -> Seq Scan on p2c2c1
4369 -> Seq Scan on p2c2c2
4370 -> Seq Scan on p2c3c1
4371 -> Seq Scan on p2c3c2
4381 ---- No. J-3-2-2 join partitioned tables
4383 EXPLAIN (COSTS false) SELECT * FROM s1.pt1, s1.p2 WHERE pt1.c1 = p2.c1;
4385 --------------------------------------
4387 Hash Cond: (p2.c1 = pt1_c1.c1)
4393 -> Seq Scan on p2c1c1
4394 -> Seq Scan on p2c1c2
4395 -> Seq Scan on p2c2c1
4396 -> Seq Scan on p2c2c2
4397 -> Seq Scan on p2c3c1
4398 -> Seq Scan on p2c3c2
4401 -> Seq Scan on pt1_c1
4402 -> Seq Scan on pt1_c2
4403 -> Seq Scan on pt1_c3
4406 /*+MergeJoin(pt1 p2)*/
4407 EXPLAIN (COSTS false) SELECT * FROM s1.pt1, s1.p2 WHERE pt1.c1 = p2.c1;
4416 --------------------------------------
4418 Merge Cond: (pt1_c1.c1 = p2.c1)
4422 -> Seq Scan on pt1_c1
4423 -> Seq Scan on pt1_c2
4424 -> Seq Scan on pt1_c3
4432 -> Seq Scan on p2c1c1
4433 -> Seq Scan on p2c1c2
4434 -> Seq Scan on p2c2c1
4435 -> Seq Scan on p2c2c2
4436 -> Seq Scan on p2c3c1
4437 -> Seq Scan on p2c3c2
4440 /*+MergeJoin(pt1_c1 p2c1)*/ /* will ignored */
4441 EXPLAIN (COSTS false) SELECT * FROM s1.pt1, s1.p2 WHERE pt1.c1 = p2.c1;
4445 MergeJoin(p2c1 pt1_c1)
4450 --------------------------------------
4452 Hash Cond: (p2.c1 = pt1_c1.c1)
4458 -> Seq Scan on p2c1c1
4459 -> Seq Scan on p2c1c2
4460 -> Seq Scan on p2c2c1
4461 -> Seq Scan on p2c2c2
4462 -> Seq Scan on p2c3c1
4463 -> Seq Scan on p2c3c2
4466 -> Seq Scan on pt1_c1
4467 -> Seq Scan on pt1_c2
4468 -> Seq Scan on pt1_c3
4472 ---- No. J-3-3 conflict join method hint
4474 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4476 ------------------------------------
4478 Merge Cond: (t1.c1 = t2.c1)
4479 -> Index Scan using t1_i1 on t1
4486 /*+HashJoin(t1 t2)NestLoop(t1 t2)*/
4487 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4488 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t1 t2)"
4489 DETAIL: Conflict join method hint.
4499 ------------------------------------
4502 -> Index Scan using t1_i1 on t1
4503 Index Cond: (c1 = t2.c1)
4507 /*+MergeJoin(t1 t2)HashJoin(t1 t2)NestLoop(t1 t2)*/
4508 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4509 INFO: pg_hint_plan: hint syntax error at or near "MergeJoin(t1 t2)HashJoin(t1 t2)NestLoop(t1 t2)"
4510 DETAIL: Conflict join method hint.
4511 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t1 t2)"
4512 DETAIL: Conflict join method hint.
4523 ------------------------------------
4526 -> Index Scan using t1_i1 on t1
4527 Index Cond: (c1 = t2.c1)
4531 /*+HashJoin(t1 t2)NestLoop(t2 t1)*/
4532 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4533 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)"
4534 DETAIL: Conflict join method hint.
4544 ------------------------------------
4547 -> Index Scan using t1_i1 on t1
4548 Index Cond: (c1 = t2.c1)
4552 /*+MergeJoin(t2 t1)HashJoin(t1 t2)NestLoop(t2 t1)*/
4553 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4554 INFO: pg_hint_plan: hint syntax error at or near "MergeJoin(t2 t1)HashJoin(t1 t2)NestLoop(t2 t1)"
4555 DETAIL: Conflict join method hint.
4556 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)"
4557 DETAIL: Conflict join method hint.
4568 ------------------------------------
4571 -> Index Scan using t1_i1 on t1
4572 Index Cond: (c1 = t2.c1)
4576 ---- No. J-3-4 hint state output
4579 /*+NestLoop(t1 t2)*/
4580 SELECT * FROM s1.t1, s1.t2 WHERE false;
4588 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4589 ----+----+----+----+----+----+----+----
4593 /*+HashJoin(t1 t2)*/
4594 SELECT * FROM s1.t1, s1.t2 WHERE false;
4602 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4603 ----+----+----+----+----+----+----+----
4607 /*+MergeJoin(t1 t2)*/
4608 SELECT * FROM s1.t1, s1.t2 WHERE false;
4616 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4617 ----+----+----+----+----+----+----+----
4621 /*+NoNestLoop(t1 t2)*/
4622 SELECT * FROM s1.t1, s1.t2 WHERE false;
4630 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4631 ----+----+----+----+----+----+----+----
4635 /*+NoHashJoin(t1 t2)*/
4636 SELECT * FROM s1.t1, s1.t2 WHERE false;
4644 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4645 ----+----+----+----+----+----+----+----
4649 /*+NoMergeJoin(t1 t2)*/
4650 SELECT * FROM s1.t1, s1.t2 WHERE false;
4658 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4659 ----+----+----+----+----+----+----+----
4664 SELECT * FROM s1.t1 WHERE false;
4665 INFO: pg_hint_plan: hint syntax error at or near ""
4666 DETAIL: NestLoop hint requires at least two relations.
4680 SELECT * FROM s1.t1 WHERE false;
4681 INFO: pg_hint_plan: hint syntax error at or near ""
4682 DETAIL: NestLoop hint requires at least two relations.
4695 /*+NestLoop(t1 t2)*/
4696 SELECT * FROM s1.t1, s1.t2 WHERE false;
4704 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4705 ----+----+----+----+----+----+----+----
4709 /*+NestLoop(t1 t2 t3)*/
4710 SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE false;
4718 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4719 ----+----+----+----+----+----+----+----+----+----+----+----
4723 ---- No. J-3-5 not used hint
4726 EXPLAIN (COSTS false) SELECT * FROM s1.t1 FULL OUTER JOIN s1.t2 ON (t1.c1 = t2.c1);
4728 ------------------------------
4730 Hash Cond: (t1.c1 = t2.c1)
4736 \o results/ut-J.tmpout
4737 /*+NestLoop(t1 t2)*/
4738 EXPLAIN (COSTS true) SELECT * FROM s1.t1 FULL OUTER JOIN s1.t2 ON (t1.c1 = t2.c1);
4747 \! sql/maskout.sh results/ut-J.tmpout
4749 --------------------------------------------------------------------------
4750 Hash Full Join (cost=xxx rows=1000 width=xxx)
4751 Hash Cond: (t1.c1 = t2.c1)
4752 -> Seq Scan on t1 (cost=xxx rows=1000 width=xxx)
4753 -> Hash (cost=xxx rows=100 width=xxx)
4754 -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
4757 \! rm results/ut-J.tmpout