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)
884 -> Tid Scan on t4 b1t4
885 TID Cond: (ctid = '(1,1)'::tid)
887 Join Filter: (b1t1.c1 = b1t3.c1)
888 -> Tid Scan on t3 b1t3
889 TID Cond: (ctid = '(1,1)'::tid)
891 Join Filter: (b1t1.c1 = b1t2.c1)
892 -> Tid Scan on t1 b1t1
893 TID Cond: (ctid = '(1,1)'::tid)
895 -> Seq Scan on t2 b1t2
896 Filter: (ctid = '(1,1)'::tid)
897 InitPlan 2 (returns $1)
900 Join Filter: (b2t1.c1 = b2t4.c1)
901 -> Tid Scan on t4 b2t4
902 TID Cond: (ctid = '(1,1)'::tid)
904 Join Filter: (b2t1.c1 = b2t3.c1)
905 -> Tid Scan on t3 b2t3
906 TID Cond: (ctid = '(1,1)'::tid)
908 Join Filter: (b2t1.c1 = b2t2.c1)
909 -> Tid Scan on t1 b2t1
910 TID Cond: (ctid = '(1,1)'::tid)
912 -> Seq Scan on t2 b2t2
913 Filter: (ctid = '(1,1)'::tid)
915 Join Filter: (bmt1.c1 = bmt4.c1)
916 -> Tid Scan on t4 bmt4
917 TID Cond: (ctid = '(1,1)'::tid)
919 Join Filter: (bmt1.c1 = bmt3.c1)
920 -> Tid Scan on t3 bmt3
921 TID Cond: (ctid = '(1,1)'::tid)
923 Join Filter: (bmt1.c1 = bmt2.c1)
924 -> Tid Scan on t1 bmt1
925 TID Cond: (ctid = '(1,1)'::tid)
927 -> Seq Scan on t2 bmt2
928 Filter: (ctid = '(1,1)'::tid)
932 Leading(bmt1 bmt2 bmt3 bmt4)
933 Leading(b1t2 b1t3 b1t4 b1t1)
934 Leading(b2t3 b2t4 b2t1 b2t2)
935 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
936 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
937 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
939 EXPLAIN (COSTS false)
940 SELECT max(bmt1.c1), (
941 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)'
943 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)'
945 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)'
952 HashJoin(b1t2 b1t3 b1t4)
953 HashJoin(b2t1 b2t3 b2t4)
954 HashJoin(bmt1 bmt2 bmt3)
955 NestLoop(b1t1 b1t2 b1t3 b1t4)
956 NestLoop(b2t1 b2t2 b2t3 b2t4)
957 NestLoop(bmt1 bmt2 bmt3 bmt4)
958 Leading(bmt1 bmt2 bmt3 bmt4)
959 Leading(b1t2 b1t3 b1t4 b1t1)
960 Leading(b2t3 b2t4 b2t1 b2t2)
966 -------------------------------------------------------------------------------
968 InitPlan 1 (returns $0)
971 Join Filter: (b1t2.c1 = b1t1.c1)
972 -> Tid Scan on t1 b1t1
973 TID Cond: (ctid = '(1,1)'::tid)
975 Hash Cond: (b1t4.c1 = b1t2.c1)
976 -> Tid Scan on t4 b1t4
977 TID Cond: (ctid = '(1,1)'::tid)
980 Merge Cond: (b1t2.c1 = b1t3.c1)
983 -> Seq Scan on t2 b1t2
984 Filter: (ctid = '(1,1)'::tid)
987 -> Tid Scan on t3 b1t3
988 TID Cond: (ctid = '(1,1)'::tid)
989 InitPlan 2 (returns $1)
992 Join Filter: (b2t1.c1 = b2t2.c1)
993 -> Seq Scan on t2 b2t2
994 Filter: (ctid = '(1,1)'::tid)
996 Hash Cond: (b2t1.c1 = b2t3.c1)
997 -> Tid Scan on t1 b2t1
998 TID Cond: (ctid = '(1,1)'::tid)
1001 Merge Cond: (b2t3.c1 = b2t4.c1)
1004 -> Tid Scan on t3 b2t3
1005 TID Cond: (ctid = '(1,1)'::tid)
1008 -> Tid Scan on t4 b2t4
1009 TID Cond: (ctid = '(1,1)'::tid)
1011 Join Filter: (bmt1.c1 = bmt4.c1)
1012 -> Tid Scan on t4 bmt4
1013 TID Cond: (ctid = '(1,1)'::tid)
1015 Hash Cond: (bmt3.c1 = bmt1.c1)
1016 -> Tid Scan on t3 bmt3
1017 TID Cond: (ctid = '(1,1)'::tid)
1020 Merge Cond: (bmt1.c1 = bmt2.c1)
1023 -> Tid Scan on t1 bmt1
1024 TID Cond: (ctid = '(1,1)'::tid)
1027 -> Seq Scan on t2 bmt2
1028 Filter: (ctid = '(1,1)'::tid)
1032 EXPLAIN (COSTS false)
1033 SELECT max(bmt1.c1), (
1034 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)'
1036 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)'
1038 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)'
1040 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)'
1043 -----------------------------------------------------------------------
1045 InitPlan 1 (returns $0)
1048 Join Filter: (b1t1.c1 = b1t4.c1)
1049 -> Tid Scan on t4 b1t4
1050 TID Cond: (ctid = '(1,1)'::tid)
1052 Join Filter: (b1t1.c1 = b1t3.c1)
1053 -> Tid Scan on t3 b1t3
1054 TID Cond: (ctid = '(1,1)'::tid)
1056 Join Filter: (b1t1.c1 = b1t2.c1)
1057 -> Tid Scan on t1 b1t1
1058 TID Cond: (ctid = '(1,1)'::tid)
1060 -> Seq Scan on t2 b1t2
1061 Filter: (ctid = '(1,1)'::tid)
1062 InitPlan 2 (returns $1)
1065 Join Filter: (b2t1.c1 = b2t4.c1)
1066 -> Tid Scan on t4 b2t4
1067 TID Cond: (ctid = '(1,1)'::tid)
1069 Join Filter: (b2t1.c1 = b2t3.c1)
1070 -> Tid Scan on t3 b2t3
1071 TID Cond: (ctid = '(1,1)'::tid)
1073 Join Filter: (b2t1.c1 = b2t2.c1)
1074 -> Tid Scan on t1 b2t1
1075 TID Cond: (ctid = '(1,1)'::tid)
1077 -> Seq Scan on t2 b2t2
1078 Filter: (ctid = '(1,1)'::tid)
1079 InitPlan 3 (returns $2)
1082 Join Filter: (b3t1.c1 = b3t4.c1)
1083 -> Tid Scan on t4 b3t4
1084 TID Cond: (ctid = '(1,1)'::tid)
1086 Join Filter: (b3t1.c1 = b3t3.c1)
1087 -> Tid Scan on t3 b3t3
1088 TID Cond: (ctid = '(1,1)'::tid)
1090 Join Filter: (b3t1.c1 = b3t2.c1)
1091 -> Tid Scan on t1 b3t1
1092 TID Cond: (ctid = '(1,1)'::tid)
1094 -> Seq Scan on t2 b3t2
1095 Filter: (ctid = '(1,1)'::tid)
1097 Join Filter: (bmt1.c1 = bmt4.c1)
1098 -> Tid Scan on t4 bmt4
1099 TID Cond: (ctid = '(1,1)'::tid)
1101 Join Filter: (bmt1.c1 = bmt3.c1)
1102 -> Tid Scan on t3 bmt3
1103 TID Cond: (ctid = '(1,1)'::tid)
1105 Join Filter: (bmt1.c1 = bmt2.c1)
1106 -> Tid Scan on t1 bmt1
1107 TID Cond: (ctid = '(1,1)'::tid)
1109 -> Seq Scan on t2 bmt2
1110 Filter: (ctid = '(1,1)'::tid)
1114 Leading(bmt1 bmt2 bmt3 bmt4)
1115 Leading(b1t2 b1t3 b1t4 b1t1)
1116 Leading(b2t3 b2t4 b2t1 b2t2)
1117 Leading(b3t4 b3t1 b3t2 b3t3)
1118 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1119 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1120 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1121 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1123 EXPLAIN (COSTS false)
1124 SELECT max(bmt1.c1), (
1125 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)'
1127 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)'
1129 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)'
1131 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)'
1135 MergeJoin(b1t2 b1t3)
1136 MergeJoin(b2t3 b2t4)
1137 MergeJoin(b3t1 b3t4)
1138 MergeJoin(bmt1 bmt2)
1139 HashJoin(b1t2 b1t3 b1t4)
1140 HashJoin(b2t1 b2t3 b2t4)
1141 HashJoin(b3t1 b3t2 b3t4)
1142 HashJoin(bmt1 bmt2 bmt3)
1143 NestLoop(b1t1 b1t2 b1t3 b1t4)
1144 NestLoop(b2t1 b2t2 b2t3 b2t4)
1145 NestLoop(b3t1 b3t2 b3t3 b3t4)
1146 NestLoop(bmt1 bmt2 bmt3 bmt4)
1147 Leading(bmt1 bmt2 bmt3 bmt4)
1148 Leading(b1t2 b1t3 b1t4 b1t1)
1149 Leading(b2t3 b2t4 b2t1 b2t2)
1150 Leading(b3t4 b3t1 b3t2 b3t3)
1156 -------------------------------------------------------------------------------
1158 InitPlan 1 (returns $0)
1161 Join Filter: (b1t2.c1 = b1t1.c1)
1162 -> Tid Scan on t1 b1t1
1163 TID Cond: (ctid = '(1,1)'::tid)
1165 Hash Cond: (b1t4.c1 = b1t2.c1)
1166 -> Tid Scan on t4 b1t4
1167 TID Cond: (ctid = '(1,1)'::tid)
1170 Merge Cond: (b1t2.c1 = b1t3.c1)
1173 -> Seq Scan on t2 b1t2
1174 Filter: (ctid = '(1,1)'::tid)
1177 -> Tid Scan on t3 b1t3
1178 TID Cond: (ctid = '(1,1)'::tid)
1179 InitPlan 2 (returns $1)
1182 Join Filter: (b2t1.c1 = b2t2.c1)
1183 -> Seq Scan on t2 b2t2
1184 Filter: (ctid = '(1,1)'::tid)
1186 Hash Cond: (b2t1.c1 = b2t3.c1)
1187 -> Tid Scan on t1 b2t1
1188 TID Cond: (ctid = '(1,1)'::tid)
1191 Merge Cond: (b2t3.c1 = b2t4.c1)
1194 -> Tid Scan on t3 b2t3
1195 TID Cond: (ctid = '(1,1)'::tid)
1198 -> Tid Scan on t4 b2t4
1199 TID Cond: (ctid = '(1,1)'::tid)
1200 InitPlan 3 (returns $2)
1203 Join Filter: (b3t1.c1 = b3t3.c1)
1204 -> Tid Scan on t3 b3t3
1205 TID Cond: (ctid = '(1,1)'::tid)
1207 Hash Cond: (b3t2.c1 = b3t1.c1)
1208 -> Seq Scan on t2 b3t2
1209 Filter: (ctid = '(1,1)'::tid)
1212 Merge Cond: (b3t1.c1 = b3t4.c1)
1215 -> Tid Scan on t1 b3t1
1216 TID Cond: (ctid = '(1,1)'::tid)
1219 -> Tid Scan on t4 b3t4
1220 TID Cond: (ctid = '(1,1)'::tid)
1222 Join Filter: (bmt1.c1 = bmt4.c1)
1223 -> Tid Scan on t4 bmt4
1224 TID Cond: (ctid = '(1,1)'::tid)
1226 Hash Cond: (bmt3.c1 = bmt1.c1)
1227 -> Tid Scan on t3 bmt3
1228 TID Cond: (ctid = '(1,1)'::tid)
1231 Merge Cond: (bmt1.c1 = bmt2.c1)
1234 -> Tid Scan on t1 bmt1
1235 TID Cond: (ctid = '(1,1)'::tid)
1238 -> Seq Scan on t2 bmt2
1239 Filter: (ctid = '(1,1)'::tid)
1243 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, (SELECT ctid, * FROM s1.t3 bmt3) sbmt3, (SELECT ctid, * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)' AND bmt1.c1 = sbmt3.c1 AND sbmt3.ctid = '(1,1)' AND bmt1.c1 = sbmt4.c1 AND sbmt4.ctid = '(1,1)';
1245 ---------------------------------------------------------------
1248 Join Filter: (bmt1.c1 = bmt4.c1)
1249 -> Tid Scan on t4 bmt4
1250 TID Cond: (ctid = '(1,1)'::tid)
1252 Join Filter: (bmt1.c1 = bmt3.c1)
1253 -> Tid Scan on t3 bmt3
1254 TID Cond: (ctid = '(1,1)'::tid)
1256 Join Filter: (bmt1.c1 = bmt2.c1)
1257 -> Tid Scan on t1 bmt1
1258 TID Cond: (ctid = '(1,1)'::tid)
1260 -> Seq Scan on t2 bmt2
1261 Filter: (ctid = '(1,1)'::tid)
1265 Leading(bmt4 bmt3 bmt2 bmt1)
1266 MergeJoin(bmt4 bmt3)HashJoin(bmt4 bmt3 bmt2)NestLoop(bmt1 bmt2 bmt3 bmt4)
1268 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)';
1271 MergeJoin(bmt3 bmt4)
1272 HashJoin(bmt2 bmt3 bmt4)
1273 NestLoop(bmt1 bmt2 bmt3 bmt4)
1274 Leading(bmt4 bmt3 bmt2 bmt1)
1280 -----------------------------------------------------------------------
1283 Join Filter: (bmt2.c1 = bmt1.c1)
1284 -> Tid Scan on t1 bmt1
1285 TID Cond: (ctid = '(1,1)'::tid)
1287 Hash Cond: (bmt2.c1 = bmt3.c1)
1288 -> Seq Scan on t2 bmt2
1289 Filter: (ctid = '(1,1)'::tid)
1292 Merge Cond: (bmt3.c1 = bmt4.c1)
1295 -> Tid Scan on t3 bmt3
1296 TID Cond: (ctid = '(1,1)'::tid)
1299 -> Tid Scan on t4 bmt4
1300 TID Cond: (ctid = '(1,1)'::tid)
1304 EXPLAIN (COSTS false) SELECT max(bmt1.c1) FROM s1.t1 bmt1, (SELECT ctid, * FROM s1.t2 bmt2) sbmt2, (SELECT ctid, * FROM s1.t3 bmt3) sbmt3, (SELECT ctid, * FROM s1.t4 bmt4) sbmt4 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = sbmt2.c1 AND sbmt2.ctid = '(1,1)' AND bmt1.c1 = sbmt3.c1 AND sbmt3.ctid = '(1,1)' AND bmt1.c1 = sbmt4.c1 AND sbmt4.ctid = '(1,1)';
1306 ---------------------------------------------------------------
1309 Join Filter: (bmt1.c1 = bmt4.c1)
1310 -> Tid Scan on t4 bmt4
1311 TID Cond: (ctid = '(1,1)'::tid)
1313 Join Filter: (bmt1.c1 = bmt3.c1)
1314 -> Tid Scan on t3 bmt3
1315 TID Cond: (ctid = '(1,1)'::tid)
1317 Join Filter: (bmt1.c1 = bmt2.c1)
1318 -> Tid Scan on t1 bmt1
1319 TID Cond: (ctid = '(1,1)'::tid)
1321 -> Seq Scan on t2 bmt2
1322 Filter: (ctid = '(1,1)'::tid)
1326 Leading(bmt4 bmt3 bmt2 bmt1)
1327 MergeJoin(bmt4 bmt3)HashJoin(bmt4 bmt3 bmt2)NestLoop(bmt1 bmt2 bmt3 bmt4)
1329 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)';
1332 MergeJoin(bmt3 bmt4)
1333 HashJoin(bmt2 bmt3 bmt4)
1334 NestLoop(bmt1 bmt2 bmt3 bmt4)
1335 Leading(bmt4 bmt3 bmt2 bmt1)
1341 -----------------------------------------------------------------------
1344 Join Filter: (bmt2.c1 = bmt1.c1)
1345 -> Tid Scan on t1 bmt1
1346 TID Cond: (ctid = '(1,1)'::tid)
1348 Hash Cond: (bmt2.c1 = bmt3.c1)
1349 -> Seq Scan on t2 bmt2
1350 Filter: (ctid = '(1,1)'::tid)
1353 Merge Cond: (bmt3.c1 = bmt4.c1)
1356 -> Tid Scan on t3 bmt3
1357 TID Cond: (ctid = '(1,1)'::tid)
1360 -> Tid Scan on t4 bmt4
1361 TID Cond: (ctid = '(1,1)'::tid)
1365 EXPLAIN (COSTS false)
1366 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)'
1368 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)'
1370 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)'
1374 -----------------------------------------------------------------------
1376 InitPlan 1 (returns $0)
1379 Join Filter: (b1t1.c1 = b1t4.c1)
1380 -> Tid Scan on t4 b1t4
1381 TID Cond: (ctid = '(1,1)'::tid)
1383 Join Filter: (b1t1.c1 = b1t3.c1)
1384 -> Tid Scan on t3 b1t3
1385 TID Cond: (ctid = '(1,1)'::tid)
1387 Join Filter: (b1t1.c1 = b1t2.c1)
1388 -> Tid Scan on t1 b1t1
1389 TID Cond: (ctid = '(1,1)'::tid)
1391 -> Seq Scan on t2 b1t2
1392 Filter: (ctid = '(1,1)'::tid)
1393 InitPlan 2 (returns $1)
1396 Join Filter: (b2t1.c1 = b2t4.c1)
1397 -> Tid Scan on t4 b2t4
1398 TID Cond: (ctid = '(1,1)'::tid)
1400 Join Filter: (b2t1.c1 = b2t3.c1)
1401 -> Tid Scan on t3 b2t3
1402 TID Cond: (ctid = '(1,1)'::tid)
1404 Join Filter: (b2t1.c1 = b2t2.c1)
1405 -> Tid Scan on t1 b2t1
1406 TID Cond: (ctid = '(1,1)'::tid)
1408 -> Seq Scan on t2 b2t2
1409 Filter: (ctid = '(1,1)'::tid)
1411 Join Filter: (bmt1.c1 = bmt4.c1)
1412 -> Tid Scan on t4 bmt4
1413 TID Cond: (ctid = '(1,1)'::tid)
1415 Join Filter: (bmt1.c1 = bmt3.c1)
1416 -> Tid Scan on t3 bmt3
1417 TID Cond: (ctid = '(1,1)'::tid)
1419 Join Filter: (bmt1.c1 = bmt2.c1)
1420 -> Tid Scan on t1 bmt1
1421 TID Cond: (ctid = '(1,1)'::tid)
1422 Filter: ((c1 <> $0) AND (c1 <> $1))
1424 -> Seq Scan on t2 bmt2
1425 Filter: (ctid = '(1,1)'::tid)
1429 Leading(bmt1 bmt2 bmt3 bmt4)
1430 Leading(b1t2 b1t3 b1t4 b1t1)
1431 Leading(b2t3 b2t4 b2t1 b2t2)
1432 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1433 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1434 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1436 EXPLAIN (COSTS false)
1437 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)'
1439 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)'
1441 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)'
1446 MergeJoin(b1t2 b1t3)
1447 MergeJoin(b2t3 b2t4)
1448 MergeJoin(bmt1 bmt2)
1449 HashJoin(b1t2 b1t3 b1t4)
1450 HashJoin(b2t1 b2t3 b2t4)
1451 HashJoin(bmt1 bmt2 bmt3)
1452 NestLoop(b1t1 b1t2 b1t3 b1t4)
1453 NestLoop(b2t1 b2t2 b2t3 b2t4)
1454 NestLoop(bmt1 bmt2 bmt3 bmt4)
1455 Leading(bmt1 bmt2 bmt3 bmt4)
1456 Leading(b1t2 b1t3 b1t4 b1t1)
1457 Leading(b2t3 b2t4 b2t1 b2t2)
1463 -------------------------------------------------------------------------------
1465 InitPlan 1 (returns $0)
1468 Join Filter: (b1t2.c1 = b1t1.c1)
1469 -> Tid Scan on t1 b1t1
1470 TID Cond: (ctid = '(1,1)'::tid)
1472 Hash Cond: (b1t4.c1 = b1t2.c1)
1473 -> Tid Scan on t4 b1t4
1474 TID Cond: (ctid = '(1,1)'::tid)
1477 Merge Cond: (b1t2.c1 = b1t3.c1)
1480 -> Seq Scan on t2 b1t2
1481 Filter: (ctid = '(1,1)'::tid)
1484 -> Tid Scan on t3 b1t3
1485 TID Cond: (ctid = '(1,1)'::tid)
1486 InitPlan 2 (returns $1)
1489 Join Filter: (b2t1.c1 = b2t2.c1)
1490 -> Seq Scan on t2 b2t2
1491 Filter: (ctid = '(1,1)'::tid)
1493 Hash Cond: (b2t1.c1 = b2t3.c1)
1494 -> Tid Scan on t1 b2t1
1495 TID Cond: (ctid = '(1,1)'::tid)
1498 Merge Cond: (b2t3.c1 = b2t4.c1)
1501 -> Tid Scan on t3 b2t3
1502 TID Cond: (ctid = '(1,1)'::tid)
1505 -> Tid Scan on t4 b2t4
1506 TID Cond: (ctid = '(1,1)'::tid)
1508 Join Filter: (bmt1.c1 = bmt4.c1)
1509 -> Tid Scan on t4 bmt4
1510 TID Cond: (ctid = '(1,1)'::tid)
1512 Hash Cond: (bmt3.c1 = bmt1.c1)
1513 -> Tid Scan on t3 bmt3
1514 TID Cond: (ctid = '(1,1)'::tid)
1517 Merge Cond: (bmt1.c1 = bmt2.c1)
1520 -> Tid Scan on t1 bmt1
1521 TID Cond: (ctid = '(1,1)'::tid)
1522 Filter: ((c1 <> $0) AND (c1 <> $1))
1525 -> Seq Scan on t2 bmt2
1526 Filter: (ctid = '(1,1)'::tid)
1530 EXPLAIN (COSTS false)
1531 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)'
1533 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)'
1535 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)'
1537 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)'
1541 ------------------------------------------------------------------------------
1543 InitPlan 1 (returns $0)
1546 Join Filter: (b1t1.c1 = b1t4.c1)
1547 -> Tid Scan on t4 b1t4
1548 TID Cond: (ctid = '(1,1)'::tid)
1550 Join Filter: (b1t1.c1 = b1t3.c1)
1551 -> Tid Scan on t3 b1t3
1552 TID Cond: (ctid = '(1,1)'::tid)
1554 Join Filter: (b1t1.c1 = b1t2.c1)
1555 -> Tid Scan on t1 b1t1
1556 TID Cond: (ctid = '(1,1)'::tid)
1558 -> Seq Scan on t2 b1t2
1559 Filter: (ctid = '(1,1)'::tid)
1560 InitPlan 2 (returns $1)
1563 Join Filter: (b2t1.c1 = b2t4.c1)
1564 -> Tid Scan on t4 b2t4
1565 TID Cond: (ctid = '(1,1)'::tid)
1567 Join Filter: (b2t1.c1 = b2t3.c1)
1568 -> Tid Scan on t3 b2t3
1569 TID Cond: (ctid = '(1,1)'::tid)
1571 Join Filter: (b2t1.c1 = b2t2.c1)
1572 -> Tid Scan on t1 b2t1
1573 TID Cond: (ctid = '(1,1)'::tid)
1575 -> Seq Scan on t2 b2t2
1576 Filter: (ctid = '(1,1)'::tid)
1577 InitPlan 3 (returns $2)
1580 Join Filter: (b3t1.c1 = b3t4.c1)
1581 -> Tid Scan on t4 b3t4
1582 TID Cond: (ctid = '(1,1)'::tid)
1584 Join Filter: (b3t1.c1 = b3t3.c1)
1585 -> Tid Scan on t3 b3t3
1586 TID Cond: (ctid = '(1,1)'::tid)
1588 Join Filter: (b3t1.c1 = b3t2.c1)
1589 -> Tid Scan on t1 b3t1
1590 TID Cond: (ctid = '(1,1)'::tid)
1592 -> Seq Scan on t2 b3t2
1593 Filter: (ctid = '(1,1)'::tid)
1595 Join Filter: (bmt1.c1 = bmt4.c1)
1596 -> Tid Scan on t4 bmt4
1597 TID Cond: (ctid = '(1,1)'::tid)
1599 Join Filter: (bmt1.c1 = bmt3.c1)
1600 -> Tid Scan on t3 bmt3
1601 TID Cond: (ctid = '(1,1)'::tid)
1603 Join Filter: (bmt1.c1 = bmt2.c1)
1604 -> Tid Scan on t1 bmt1
1605 TID Cond: (ctid = '(1,1)'::tid)
1606 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1608 -> Seq Scan on t2 bmt2
1609 Filter: (ctid = '(1,1)'::tid)
1613 Leading(bmt1 bmt2 bmt3 bmt4)
1614 Leading(b1t2 b1t3 b1t4 b1t1)
1615 Leading(b2t3 b2t4 b2t1 b2t2)
1616 Leading(b3t4 b3t1 b3t2 b3t3)
1617 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1618 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1619 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1620 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1622 EXPLAIN (COSTS false)
1623 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)'
1625 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)'
1627 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)'
1629 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)'
1634 MergeJoin(b1t2 b1t3)
1635 MergeJoin(b2t3 b2t4)
1636 MergeJoin(b3t1 b3t4)
1637 MergeJoin(bmt1 bmt2)
1638 HashJoin(b1t2 b1t3 b1t4)
1639 HashJoin(b2t1 b2t3 b2t4)
1640 HashJoin(b3t1 b3t2 b3t4)
1641 HashJoin(bmt1 bmt2 bmt3)
1642 NestLoop(b1t1 b1t2 b1t3 b1t4)
1643 NestLoop(b2t1 b2t2 b2t3 b2t4)
1644 NestLoop(b3t1 b3t2 b3t3 b3t4)
1645 NestLoop(bmt1 bmt2 bmt3 bmt4)
1646 Leading(bmt1 bmt2 bmt3 bmt4)
1647 Leading(b1t2 b1t3 b1t4 b1t1)
1648 Leading(b2t3 b2t4 b2t1 b2t2)
1649 Leading(b3t4 b3t1 b3t2 b3t3)
1655 ------------------------------------------------------------------------------------------
1657 InitPlan 1 (returns $0)
1660 Join Filter: (b1t2.c1 = b1t1.c1)
1661 -> Tid Scan on t1 b1t1
1662 TID Cond: (ctid = '(1,1)'::tid)
1664 Hash Cond: (b1t4.c1 = b1t2.c1)
1665 -> Tid Scan on t4 b1t4
1666 TID Cond: (ctid = '(1,1)'::tid)
1669 Merge Cond: (b1t2.c1 = b1t3.c1)
1672 -> Seq Scan on t2 b1t2
1673 Filter: (ctid = '(1,1)'::tid)
1676 -> Tid Scan on t3 b1t3
1677 TID Cond: (ctid = '(1,1)'::tid)
1678 InitPlan 2 (returns $1)
1681 Join Filter: (b2t1.c1 = b2t2.c1)
1682 -> Seq Scan on t2 b2t2
1683 Filter: (ctid = '(1,1)'::tid)
1685 Hash Cond: (b2t1.c1 = b2t3.c1)
1686 -> Tid Scan on t1 b2t1
1687 TID Cond: (ctid = '(1,1)'::tid)
1690 Merge Cond: (b2t3.c1 = b2t4.c1)
1693 -> Tid Scan on t3 b2t3
1694 TID Cond: (ctid = '(1,1)'::tid)
1697 -> Tid Scan on t4 b2t4
1698 TID Cond: (ctid = '(1,1)'::tid)
1699 InitPlan 3 (returns $2)
1702 Join Filter: (b3t1.c1 = b3t3.c1)
1703 -> Tid Scan on t3 b3t3
1704 TID Cond: (ctid = '(1,1)'::tid)
1706 Hash Cond: (b3t2.c1 = b3t1.c1)
1707 -> Seq Scan on t2 b3t2
1708 Filter: (ctid = '(1,1)'::tid)
1711 Merge Cond: (b3t1.c1 = b3t4.c1)
1714 -> Tid Scan on t1 b3t1
1715 TID Cond: (ctid = '(1,1)'::tid)
1718 -> Tid Scan on t4 b3t4
1719 TID Cond: (ctid = '(1,1)'::tid)
1721 Join Filter: (bmt1.c1 = bmt4.c1)
1722 -> Tid Scan on t4 bmt4
1723 TID Cond: (ctid = '(1,1)'::tid)
1725 Hash Cond: (bmt3.c1 = bmt1.c1)
1726 -> Tid Scan on t3 bmt3
1727 TID Cond: (ctid = '(1,1)'::tid)
1730 Merge Cond: (bmt1.c1 = bmt2.c1)
1733 -> Tid Scan on t1 bmt1
1734 TID Cond: (ctid = '(1,1)'::tid)
1735 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1738 -> Seq Scan on t2 bmt2
1739 Filter: (ctid = '(1,1)'::tid)
1743 EXPLAIN (COSTS false)
1745 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)'
1748 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)'
1750 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1752 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)'
1757 -----------------------------------------------------------------------
1762 Join Filter: (b1t1.c1 = b1t4.c1)
1763 -> Tid Scan on t4 b1t4
1764 TID Cond: (ctid = '(1,1)'::tid)
1766 Join Filter: (b1t1.c1 = b1t3.c1)
1767 -> Tid Scan on t3 b1t3
1768 TID Cond: (ctid = '(1,1)'::tid)
1770 Join Filter: (b1t1.c1 = b1t2.c1)
1771 -> Tid Scan on t1 b1t1
1772 TID Cond: (ctid = '(1,1)'::tid)
1774 -> Seq Scan on t2 b1t2
1775 Filter: (ctid = '(1,1)'::tid)
1779 Join Filter: (b2t1.c1 = b2t4.c1)
1780 -> Tid Scan on t4 b2t4
1781 TID Cond: (ctid = '(1,1)'::tid)
1783 Join Filter: (b2t1.c1 = b2t3.c1)
1784 -> Tid Scan on t3 b2t3
1785 TID Cond: (ctid = '(1,1)'::tid)
1787 Join Filter: (b2t1.c1 = b2t2.c1)
1788 -> Tid Scan on t1 b2t1
1789 TID Cond: (ctid = '(1,1)'::tid)
1791 -> Seq Scan on t2 b2t2
1792 Filter: (ctid = '(1,1)'::tid)
1794 Join Filter: (bmt1.c1 = c2.c1)
1796 Join Filter: (bmt1.c1 = bmt4.c1)
1797 -> Tid Scan on t4 bmt4
1798 TID Cond: (ctid = '(1,1)'::tid)
1800 Join Filter: (bmt1.c1 = bmt3.c1)
1801 -> Tid Scan on t3 bmt3
1802 TID Cond: (ctid = '(1,1)'::tid)
1804 Join Filter: (bmt1.c1 = bmt2.c1)
1805 -> Seq Scan on t2 bmt2
1806 Filter: (ctid = '(1,1)'::tid)
1808 Join Filter: (bmt1.c1 = c1.c1)
1809 -> Tid Scan on t1 bmt1
1810 TID Cond: (ctid = '(1,1)'::tid)
1816 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1817 Leading(b1t2 b1t3 b1t4 b1t1)
1818 Leading(b2t3 b2t4 b2t1 b2t2)
1819 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)
1820 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1821 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1823 EXPLAIN (COSTS false)
1825 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)'
1828 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)'
1830 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1832 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)'
1838 MergeJoin(b1t2 b1t3)
1839 MergeJoin(b2t3 b2t4)
1841 HashJoin(b1t2 b1t3 b1t4)
1842 HashJoin(b2t1 b2t3 b2t4)
1843 HashJoin(bmt1 c1 c2)
1844 NestLoop(b1t1 b1t2 b1t3 b1t4)
1845 NestLoop(b2t1 b2t2 b2t3 b2t4)
1846 NestLoop(bmt1 bmt2 c1 c2)
1847 MergeJoin(bmt1 bmt2 bmt3 c1 c2)
1848 HashJoin(bmt1 bmt2 bmt3 bmt4 c1 c2)
1849 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1850 Leading(b1t2 b1t3 b1t4 b1t1)
1851 Leading(b2t3 b2t4 b2t1 b2t2)
1857 -------------------------------------------------------------------------------
1862 Join Filter: (b1t2.c1 = b1t1.c1)
1863 -> Tid Scan on t1 b1t1
1864 TID Cond: (ctid = '(1,1)'::tid)
1866 Hash Cond: (b1t4.c1 = b1t2.c1)
1867 -> Tid Scan on t4 b1t4
1868 TID Cond: (ctid = '(1,1)'::tid)
1871 Merge Cond: (b1t2.c1 = b1t3.c1)
1874 -> Seq Scan on t2 b1t2
1875 Filter: (ctid = '(1,1)'::tid)
1878 -> Tid Scan on t3 b1t3
1879 TID Cond: (ctid = '(1,1)'::tid)
1883 Join Filter: (b2t1.c1 = b2t2.c1)
1884 -> Seq Scan on t2 b2t2
1885 Filter: (ctid = '(1,1)'::tid)
1887 Hash Cond: (b2t1.c1 = b2t3.c1)
1888 -> Tid Scan on t1 b2t1
1889 TID Cond: (ctid = '(1,1)'::tid)
1892 Merge Cond: (b2t3.c1 = b2t4.c1)
1895 -> Tid Scan on t3 b2t3
1896 TID Cond: (ctid = '(1,1)'::tid)
1899 -> Tid Scan on t4 b2t4
1900 TID Cond: (ctid = '(1,1)'::tid)
1902 Hash Cond: (bmt4.c1 = bmt1.c1)
1903 -> Tid Scan on t4 bmt4
1904 TID Cond: (ctid = '(1,1)'::tid)
1907 Merge Cond: (bmt1.c1 = bmt3.c1)
1911 Join Filter: (bmt1.c1 = bmt2.c1)
1912 -> Seq Scan on t2 bmt2
1913 Filter: (ctid = '(1,1)'::tid)
1915 Hash Cond: (bmt1.c1 = c1.c1)
1916 -> Tid Scan on t1 bmt1
1917 TID Cond: (ctid = '(1,1)'::tid)
1920 Merge Cond: (c1.c1 = c2.c1)
1929 -> Tid Scan on t3 bmt3
1930 TID Cond: (ctid = '(1,1)'::tid)
1934 EXPLAIN (COSTS false)
1936 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)'
1939 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)'
1942 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)'
1944 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1946 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)'
1952 -----------------------------------------------------------------------------
1957 Join Filter: (b1t1.c1 = b1t4.c1)
1958 -> Tid Scan on t4 b1t4
1959 TID Cond: (ctid = '(1,1)'::tid)
1961 Join Filter: (b1t1.c1 = b1t3.c1)
1962 -> Tid Scan on t3 b1t3
1963 TID Cond: (ctid = '(1,1)'::tid)
1965 Join Filter: (b1t1.c1 = b1t2.c1)
1966 -> Tid Scan on t1 b1t1
1967 TID Cond: (ctid = '(1,1)'::tid)
1969 -> Seq Scan on t2 b1t2
1970 Filter: (ctid = '(1,1)'::tid)
1974 Join Filter: (b2t1.c1 = b2t4.c1)
1975 -> Tid Scan on t4 b2t4
1976 TID Cond: (ctid = '(1,1)'::tid)
1978 Join Filter: (b2t1.c1 = b2t3.c1)
1979 -> Tid Scan on t3 b2t3
1980 TID Cond: (ctid = '(1,1)'::tid)
1982 Join Filter: (b2t1.c1 = b2t2.c1)
1983 -> Tid Scan on t1 b2t1
1984 TID Cond: (ctid = '(1,1)'::tid)
1986 -> Seq Scan on t2 b2t2
1987 Filter: (ctid = '(1,1)'::tid)
1991 Join Filter: (b3t1.c1 = b3t4.c1)
1992 -> Tid Scan on t4 b3t4
1993 TID Cond: (ctid = '(1,1)'::tid)
1995 Join Filter: (b3t1.c1 = b3t3.c1)
1996 -> Tid Scan on t3 b3t3
1997 TID Cond: (ctid = '(1,1)'::tid)
1999 Join Filter: (b3t1.c1 = b3t2.c1)
2000 -> Tid Scan on t1 b3t1
2001 TID Cond: (ctid = '(1,1)'::tid)
2003 -> Seq Scan on t2 b3t2
2004 Filter: (ctid = '(1,1)'::tid)
2006 Join Filter: (bmt1.c1 = c3.c1)
2008 Join Filter: (bmt1.c1 = c2.c1)
2010 Join Filter: (bmt1.c1 = bmt4.c1)
2011 -> Tid Scan on t4 bmt4
2012 TID Cond: (ctid = '(1,1)'::tid)
2014 Join Filter: (bmt1.c1 = bmt3.c1)
2015 -> Tid Scan on t3 bmt3
2016 TID Cond: (ctid = '(1,1)'::tid)
2018 Join Filter: (bmt1.c1 = bmt2.c1)
2019 -> Seq Scan on t2 bmt2
2020 Filter: (ctid = '(1,1)'::tid)
2022 Join Filter: (bmt1.c1 = c1.c1)
2023 -> Tid Scan on t1 bmt1
2024 TID Cond: (ctid = '(1,1)'::tid)
2031 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2032 Leading(b1t2 b1t3 b1t4 b1t1)
2033 Leading(b2t3 b2t4 b2t1 b2t2)
2034 Leading(b3t4 b3t1 b3t2 b3t3)
2035 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)
2036 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
2037 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
2038 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
2040 EXPLAIN (COSTS false)
2042 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)'
2045 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)'
2048 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)'
2050 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2052 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)'
2059 MergeJoin(b1t2 b1t3)
2060 MergeJoin(b2t3 b2t4)
2061 MergeJoin(b3t1 b3t4)
2063 HashJoin(b1t2 b1t3 b1t4)
2064 HashJoin(b2t1 b2t3 b2t4)
2065 HashJoin(b3t1 b3t2 b3t4)
2067 NestLoop(b1t1 b1t2 b1t3 b1t4)
2068 NestLoop(b2t1 b2t2 b2t3 b2t4)
2069 NestLoop(b3t1 b3t2 b3t3 b3t4)
2070 NestLoop(bmt1 c1 c2 c3)
2071 MergeJoin(bmt1 bmt2 c1 c2 c3)
2072 HashJoin(bmt1 bmt2 bmt3 c1 c2 c3)
2073 NestLoop(bmt1 bmt2 bmt3 bmt4 c1 c2 c3)
2074 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2075 Leading(b1t2 b1t3 b1t4 b1t1)
2076 Leading(b2t3 b2t4 b2t1 b2t2)
2077 Leading(b3t4 b3t1 b3t2 b3t3)
2083 -------------------------------------------------------------------------------
2088 Join Filter: (b1t2.c1 = b1t1.c1)
2089 -> Tid Scan on t1 b1t1
2090 TID Cond: (ctid = '(1,1)'::tid)
2092 Hash Cond: (b1t4.c1 = b1t2.c1)
2093 -> Tid Scan on t4 b1t4
2094 TID Cond: (ctid = '(1,1)'::tid)
2097 Merge Cond: (b1t2.c1 = b1t3.c1)
2100 -> Seq Scan on t2 b1t2
2101 Filter: (ctid = '(1,1)'::tid)
2104 -> Tid Scan on t3 b1t3
2105 TID Cond: (ctid = '(1,1)'::tid)
2109 Join Filter: (b2t1.c1 = b2t2.c1)
2110 -> Seq Scan on t2 b2t2
2111 Filter: (ctid = '(1,1)'::tid)
2113 Hash Cond: (b2t1.c1 = b2t3.c1)
2114 -> Tid Scan on t1 b2t1
2115 TID Cond: (ctid = '(1,1)'::tid)
2118 Merge Cond: (b2t3.c1 = b2t4.c1)
2121 -> Tid Scan on t3 b2t3
2122 TID Cond: (ctid = '(1,1)'::tid)
2125 -> Tid Scan on t4 b2t4
2126 TID Cond: (ctid = '(1,1)'::tid)
2130 Join Filter: (b3t1.c1 = b3t3.c1)
2131 -> Tid Scan on t3 b3t3
2132 TID Cond: (ctid = '(1,1)'::tid)
2134 Hash Cond: (b3t2.c1 = b3t1.c1)
2135 -> Seq Scan on t2 b3t2
2136 Filter: (ctid = '(1,1)'::tid)
2139 Merge Cond: (b3t1.c1 = b3t4.c1)
2142 -> Tid Scan on t1 b3t1
2143 TID Cond: (ctid = '(1,1)'::tid)
2146 -> Tid Scan on t4 b3t4
2147 TID Cond: (ctid = '(1,1)'::tid)
2149 Join Filter: (bmt1.c1 = bmt4.c1)
2150 -> Tid Scan on t4 bmt4
2151 TID Cond: (ctid = '(1,1)'::tid)
2153 Hash Cond: (bmt3.c1 = bmt1.c1)
2154 -> Tid Scan on t3 bmt3
2155 TID Cond: (ctid = '(1,1)'::tid)
2158 Merge Cond: (bmt1.c1 = bmt2.c1)
2162 Join Filter: (c1.c1 = bmt1.c1)
2163 -> Tid Scan on t1 bmt1
2164 TID Cond: (ctid = '(1,1)'::tid)
2166 Hash Cond: (c2.c1 = c1.c1)
2168 Merge Cond: (c2.c1 = c3.c1)
2179 -> Seq Scan on t2 bmt2
2180 Filter: (ctid = '(1,1)'::tid)
2184 ---- No. J-2-2 the number of the tables per quiry block
2187 EXPLAIN (COSTS false)
2189 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2191 SELECT max(bmt1.c1), (
2192 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2194 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2197 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2201 -----------------------------------------------------------------
2205 InitPlan 1 (returns $0)
2207 -> Tid Scan on t1 b1t1
2208 TID Cond: (ctid = '(1,1)'::tid)
2209 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2210 InitPlan 4 (returns $3)
2212 InitPlan 3 (returns $2)
2214 -> Tid Scan on t1 b2t1
2215 TID Cond: (ctid = '(1,1)'::tid)
2216 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2217 InitPlan 6 (returns $5)
2219 InitPlan 5 (returns $4)
2221 -> Tid Scan on t1 b3t1
2222 TID Cond: (ctid = '(1,1)'::tid)
2223 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2225 -> Tid Scan on t1 bmt1
2226 TID Cond: (ctid = '(1,1)'::tid)
2227 Filter: ((c1 <> $5) AND (c1 = 1))
2239 EXPLAIN (COSTS false)
2241 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2243 SELECT max(bmt1.c1), (
2244 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2246 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2249 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2264 -----------------------------------------------------------------
2268 InitPlan 1 (returns $0)
2270 -> Tid Scan on t1 b1t1
2271 TID Cond: (ctid = '(1,1)'::tid)
2272 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2273 InitPlan 4 (returns $3)
2275 InitPlan 3 (returns $2)
2277 -> Tid Scan on t1 b2t1
2278 TID Cond: (ctid = '(1,1)'::tid)
2279 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2280 InitPlan 6 (returns $5)
2282 InitPlan 5 (returns $4)
2284 -> Tid Scan on t1 b3t1
2285 TID Cond: (ctid = '(1,1)'::tid)
2286 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2288 -> Tid Scan on t1 bmt1
2289 TID Cond: (ctid = '(1,1)'::tid)
2290 Filter: ((c1 <> $5) AND (c1 = 1))
2296 EXPLAIN (COSTS false)
2298 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)'
2300 SELECT max(bmt1.c1), (
2301 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)'
2303 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2306 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)'
2310 -----------------------------------------------------------
2315 Join Filter: (b1t1.c1 = b1t2.c1)
2316 -> Tid Scan on t1 b1t1
2317 TID Cond: (ctid = '(1,1)'::tid)
2319 -> Seq Scan on t2 b1t2
2320 Filter: (ctid = '(1,1)'::tid)
2321 InitPlan 2 (returns $1)
2324 Join Filter: (b2t1.c1 = b2t2.c1)
2325 -> Tid Scan on t1 b2t1
2326 TID Cond: (ctid = '(1,1)'::tid)
2328 -> Seq Scan on t2 b2t2
2329 Filter: (ctid = '(1,1)'::tid)
2330 InitPlan 3 (returns $2)
2333 Join Filter: (b3t1.c1 = b3t2.c1)
2334 -> Tid Scan on t1 b3t1
2335 TID Cond: (ctid = '(1,1)'::tid)
2337 -> Seq Scan on t2 b3t2
2338 Filter: (ctid = '(1,1)'::tid)
2340 Join Filter: (bmt1.c1 = bmt2.c1)
2341 -> Seq Scan on t2 bmt2
2342 Filter: (ctid = '(1,1)'::tid)
2344 Join Filter: (bmt1.c1 = c1.c1)
2345 -> Tid Scan on t1 bmt1
2346 TID Cond: (ctid = '(1,1)'::tid)
2352 Leading(c1 bmt2 bmt1)
2357 HashJoin(c1 bmt1 bmt2)
2358 MergeJoin(b1t1 b1t2)
2359 MergeJoin(b2t1 b2t2)
2360 MergeJoin(b3t1 b3t2)
2362 EXPLAIN (COSTS false)
2364 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)'
2366 SELECT max(bmt1.c1), (
2367 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)'
2369 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2372 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)'
2377 MergeJoin(b1t1 b1t2)
2378 MergeJoin(b2t1 b2t2)
2379 MergeJoin(b3t1 b3t2)
2381 HashJoin(bmt1 bmt2 c1)
2382 Leading(c1 bmt2 bmt1)
2391 ---------------------------------------------------------------
2396 Merge Cond: (b1t1.c1 = b1t2.c1)
2399 -> Tid Scan on t1 b1t1
2400 TID Cond: (ctid = '(1,1)'::tid)
2403 -> Seq Scan on t2 b1t2
2404 Filter: (ctid = '(1,1)'::tid)
2405 InitPlan 2 (returns $1)
2408 Merge Cond: (b2t1.c1 = b2t2.c1)
2411 -> Tid Scan on t1 b2t1
2412 TID Cond: (ctid = '(1,1)'::tid)
2415 -> Seq Scan on t2 b2t2
2416 Filter: (ctid = '(1,1)'::tid)
2417 InitPlan 3 (returns $2)
2420 Merge Cond: (b3t1.c1 = b3t2.c1)
2423 -> Tid Scan on t1 b3t1
2424 TID Cond: (ctid = '(1,1)'::tid)
2427 -> Seq Scan on t2 b3t2
2428 Filter: (ctid = '(1,1)'::tid)
2430 Hash Cond: (bmt1.c1 = bmt2.c1)
2431 -> Tid Scan on t1 bmt1
2432 TID Cond: (ctid = '(1,1)'::tid)
2436 Merge Cond: (bmt2.c1 = c1.c1)
2439 -> Seq Scan on t2 bmt2
2440 Filter: (ctid = '(1,1)'::tid)
2447 EXPLAIN (COSTS false)
2449 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)'
2451 SELECT max(bmt1.c1), (
2452 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)'
2454 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
2456 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)'
2460 -----------------------------------------------------------------------
2465 Join Filter: (b1t1.c1 = b1t4.c1)
2466 -> Tid Scan on t4 b1t4
2467 TID Cond: (ctid = '(1,1)'::tid)
2469 Join Filter: (b1t1.c1 = b1t3.c1)
2470 -> Tid Scan on t3 b1t3
2471 TID Cond: (ctid = '(1,1)'::tid)
2473 Join Filter: (b1t1.c1 = b1t2.c1)
2474 -> Tid Scan on t1 b1t1
2475 TID Cond: (ctid = '(1,1)'::tid)
2477 -> Seq Scan on t2 b1t2
2478 Filter: (ctid = '(1,1)'::tid)
2479 InitPlan 2 (returns $1)
2482 Join Filter: (b2t1.c1 = b2t4.c1)
2483 -> Tid Scan on t4 b2t4
2484 TID Cond: (ctid = '(1,1)'::tid)
2486 Join Filter: (b2t1.c1 = b2t3.c1)
2487 -> Tid Scan on t3 b2t3
2488 TID Cond: (ctid = '(1,1)'::tid)
2490 Join Filter: (b2t1.c1 = b2t2.c1)
2491 -> Tid Scan on t1 b2t1
2492 TID Cond: (ctid = '(1,1)'::tid)
2494 -> Seq Scan on t2 b2t2
2495 Filter: (ctid = '(1,1)'::tid)
2496 InitPlan 3 (returns $2)
2499 Join Filter: (b3t1.c1 = b3t4.c1)
2500 -> Tid Scan on t4 b3t4
2501 TID Cond: (ctid = '(1,1)'::tid)
2503 Join Filter: (b3t1.c1 = b3t3.c1)
2504 -> Tid Scan on t3 b3t3
2505 TID Cond: (ctid = '(1,1)'::tid)
2507 Join Filter: (b3t1.c1 = b3t2.c1)
2508 -> Tid Scan on t1 b3t1
2509 TID Cond: (ctid = '(1,1)'::tid)
2511 -> Seq Scan on t2 b3t2
2512 Filter: (ctid = '(1,1)'::tid)
2514 Join Filter: (bmt1.c1 = bmt4.c1)
2515 -> Tid Scan on t4 bmt4
2516 TID Cond: (ctid = '(1,1)'::tid)
2518 Join Filter: (bmt1.c1 = bmt3.c1)
2519 -> Tid Scan on t3 bmt3
2520 TID Cond: (ctid = '(1,1)'::tid)
2522 Join Filter: (bmt1.c1 = bmt2.c1)
2523 -> Seq Scan on t2 bmt2
2524 Filter: (ctid = '(1,1)'::tid)
2526 Join Filter: (bmt1.c1 = c1.c1)
2527 -> Tid Scan on t1 bmt1
2528 TID Cond: (ctid = '(1,1)'::tid)
2534 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2535 Leading(b1t4 b1t3 b1t2 b1t1)
2536 Leading(b2t4 b2t3 b2t2 b2t1)
2537 Leading(b3t4 b3t3 b3t2 b3t1)
2539 HashJoin(c1 bmt4 bmt3)
2540 NestLoop(c1 bmt4 bmt3 bmt2)
2541 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2543 NestLoop(b1t4 b1t3 b1t2)
2544 MergeJoin(b1t4 b1t3 b1t2 b1t1)
2546 NestLoop(b2t4 b2t3 b2t2)
2547 MergeJoin(b2t4 b2t3 b2t2 b2t1)
2549 NestLoop(b3t4 b3t3 b3t2)
2550 MergeJoin(b3t4 b3t3 b3t2 b3t1)
2552 EXPLAIN (COSTS false)
2554 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)'
2556 SELECT max(bmt1.c1), (
2557 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)'
2559 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
2561 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)'
2570 NestLoop(b1t2 b1t3 b1t4)
2571 NestLoop(b2t2 b2t3 b2t4)
2572 NestLoop(b3t2 b3t3 b3t4)
2573 HashJoin(bmt3 bmt4 c1)
2574 MergeJoin(b1t1 b1t2 b1t3 b1t4)
2575 MergeJoin(b2t1 b2t2 b2t3 b2t4)
2576 MergeJoin(b3t1 b3t2 b3t3 b3t4)
2577 NestLoop(bmt2 bmt3 bmt4 c1)
2578 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2579 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2580 Leading(b1t4 b1t3 b1t2 b1t1)
2581 Leading(b2t4 b2t3 b2t2 b2t1)
2582 Leading(b3t4 b3t3 b3t2 b3t1)
2588 -----------------------------------------------------------------------------------
2593 Merge Cond: (b1t2.c1 = b1t1.c1)
2597 Join Filter: (b1t3.c1 = b1t2.c1)
2598 -> Seq Scan on t2 b1t2
2599 Filter: (ctid = '(1,1)'::tid)
2601 Hash Cond: (b1t3.c1 = b1t4.c1)
2602 -> Tid Scan on t3 b1t3
2603 TID Cond: (ctid = '(1,1)'::tid)
2605 -> Tid Scan on t4 b1t4
2606 TID Cond: (ctid = '(1,1)'::tid)
2609 -> Tid Scan on t1 b1t1
2610 TID Cond: (ctid = '(1,1)'::tid)
2611 InitPlan 2 (returns $1)
2614 Merge Cond: (b2t2.c1 = b2t1.c1)
2618 Join Filter: (b2t3.c1 = b2t2.c1)
2619 -> Seq Scan on t2 b2t2
2620 Filter: (ctid = '(1,1)'::tid)
2622 Hash Cond: (b2t3.c1 = b2t4.c1)
2623 -> Tid Scan on t3 b2t3
2624 TID Cond: (ctid = '(1,1)'::tid)
2626 -> Tid Scan on t4 b2t4
2627 TID Cond: (ctid = '(1,1)'::tid)
2630 -> Tid Scan on t1 b2t1
2631 TID Cond: (ctid = '(1,1)'::tid)
2632 InitPlan 3 (returns $2)
2635 Merge Cond: (b3t2.c1 = b3t1.c1)
2639 Join Filter: (b3t3.c1 = b3t2.c1)
2640 -> Seq Scan on t2 b3t2
2641 Filter: (ctid = '(1,1)'::tid)
2643 Hash Cond: (b3t3.c1 = b3t4.c1)
2644 -> Tid Scan on t3 b3t3
2645 TID Cond: (ctid = '(1,1)'::tid)
2647 -> Tid Scan on t4 b3t4
2648 TID Cond: (ctid = '(1,1)'::tid)
2651 -> Tid Scan on t1 b3t1
2652 TID Cond: (ctid = '(1,1)'::tid)
2654 Merge Cond: (bmt2.c1 = bmt1.c1)
2658 Join Filter: (bmt3.c1 = bmt2.c1)
2659 -> Seq Scan on t2 bmt2
2660 Filter: (ctid = '(1,1)'::tid)
2662 Hash Cond: (bmt3.c1 = bmt4.c1)
2663 -> Tid Scan on t3 bmt3
2664 TID Cond: (ctid = '(1,1)'::tid)
2667 Merge Cond: (bmt4.c1 = c1.c1)
2670 -> Tid Scan on t4 bmt4
2671 TID Cond: (ctid = '(1,1)'::tid)
2677 -> Tid Scan on t1 bmt1
2678 TID Cond: (ctid = '(1,1)'::tid)
2683 EXPLAIN (COSTS false)
2685 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)'
2687 SELECT max(bmt1.c1), (
2688 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2690 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
2692 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2696 -----------------------------------------------------------------------
2701 Join Filter: (b1t1.c1 = b1t4.c1)
2702 -> Tid Scan on t4 b1t4
2703 TID Cond: (ctid = '(1,1)'::tid)
2705 Join Filter: (b1t1.c1 = b1t3.c1)
2706 -> Tid Scan on t3 b1t3
2707 TID Cond: (ctid = '(1,1)'::tid)
2709 Join Filter: (b1t1.c1 = b1t2.c1)
2710 -> Tid Scan on t1 b1t1
2711 TID Cond: (ctid = '(1,1)'::tid)
2713 -> Seq Scan on t2 b1t2
2714 Filter: (ctid = '(1,1)'::tid)
2715 InitPlan 3 (returns $2)
2717 InitPlan 2 (returns $1)
2719 -> Tid Scan on t1 b2t1
2720 TID Cond: (ctid = '(1,1)'::tid)
2721 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2722 InitPlan 4 (returns $4)
2724 -> Tid Scan on t1 b3t1
2725 TID Cond: (ctid = '(1,1)'::tid)
2727 Join Filter: (bmt1.c1 = bmt4.c1)
2728 -> Tid Scan on t4 bmt4
2729 TID Cond: (ctid = '(1,1)'::tid)
2731 Join Filter: (bmt1.c1 = bmt3.c1)
2732 -> Tid Scan on t3 bmt3
2733 TID Cond: (ctid = '(1,1)'::tid)
2735 Join Filter: (bmt1.c1 = bmt2.c1)
2736 -> Seq Scan on t2 bmt2
2737 Filter: (ctid = '(1,1)'::tid)
2739 Join Filter: (bmt1.c1 = c1.c1)
2740 -> Tid Scan on t1 bmt1
2741 TID Cond: (ctid = '(1,1)'::tid)
2747 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2748 Leading(b1t4 b1t3 b1t2 b1t1)
2750 HashJoin(c1 bmt4 bmt3)
2751 NestLoop(c1 bmt4 bmt3 bmt2)
2752 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2753 MergeJoin(b1t4 b1t3)
2754 HashJoin(b1t4 b1t3 b1t2)
2755 NestLoop(b1t4 b1t3 b1t2 b1t1)
2757 EXPLAIN (COSTS false)
2759 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)'
2761 SELECT max(bmt1.c1), (
2762 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2764 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
2766 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2771 MergeJoin(b1t3 b1t4)
2773 HashJoin(b1t2 b1t3 b1t4)
2774 HashJoin(bmt3 bmt4 c1)
2775 NestLoop(b1t1 b1t2 b1t3 b1t4)
2776 NestLoop(bmt2 bmt3 bmt4 c1)
2777 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2778 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2779 Leading(b1t4 b1t3 b1t2 b1t1)
2785 -----------------------------------------------------------------------------------
2790 Join Filter: (b1t2.c1 = b1t1.c1)
2791 -> Tid Scan on t1 b1t1
2792 TID Cond: (ctid = '(1,1)'::tid)
2794 Hash Cond: (b1t2.c1 = b1t3.c1)
2795 -> Seq Scan on t2 b1t2
2796 Filter: (ctid = '(1,1)'::tid)
2799 Merge Cond: (b1t3.c1 = b1t4.c1)
2802 -> Tid Scan on t3 b1t3
2803 TID Cond: (ctid = '(1,1)'::tid)
2806 -> Tid Scan on t4 b1t4
2807 TID Cond: (ctid = '(1,1)'::tid)
2808 InitPlan 3 (returns $2)
2810 InitPlan 2 (returns $1)
2812 -> Tid Scan on t1 b2t1
2813 TID Cond: (ctid = '(1,1)'::tid)
2814 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2815 InitPlan 4 (returns $4)
2817 -> Tid Scan on t1 b3t1
2818 TID Cond: (ctid = '(1,1)'::tid)
2820 Merge Cond: (bmt2.c1 = bmt1.c1)
2824 Join Filter: (bmt3.c1 = bmt2.c1)
2825 -> Seq Scan on t2 bmt2
2826 Filter: (ctid = '(1,1)'::tid)
2828 Hash Cond: (bmt3.c1 = bmt4.c1)
2829 -> Tid Scan on t3 bmt3
2830 TID Cond: (ctid = '(1,1)'::tid)
2833 Merge Cond: (bmt4.c1 = c1.c1)
2836 -> Tid Scan on t4 bmt4
2837 TID Cond: (ctid = '(1,1)'::tid)
2843 -> Tid Scan on t1 bmt1
2844 TID Cond: (ctid = '(1,1)'::tid)
2849 ---- No. J-2-3 RULE or VIEW
2852 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2854 -----------------------------------------------------------------
2857 Join Filter: (t1.c1 = t4.c1)
2859 TID Cond: (ctid = '(1,1)'::tid)
2861 Join Filter: (t1.c1 = t3.c1)
2863 TID Cond: (ctid = '(1,1)'::tid)
2865 Join Filter: (t1.c1 = t2.c1)
2867 Filter: (ctid = '(1,1)'::tid)
2870 TID Cond: (ctid = '(1,1)'::tid)
2873 TID Cond: (ctid = '(1,1)'::tid)
2877 Leading(t4 t3 t2 t1 r1)
2878 MergeJoin(t4 t3 t2 t1 r1)
2879 HashJoin(t4 t3 t2 t1)
2883 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2888 HashJoin(t1 t2 t3 t4)
2889 MergeJoin(r1 t1 t2 t3 t4)
2890 Leading(t4 t3 t2 t1 r1)
2896 -----------------------------------------------------------------------------
2900 Hash Cond: (t1.c1 = t2.c1)
2902 TID Cond: (ctid = '(1,1)'::tid)
2905 Join Filter: (t3.c1 = t2.c1)
2907 Merge Cond: (t3.c1 = t4.c1)
2911 TID Cond: (ctid = '(1,1)'::tid)
2915 TID Cond: (ctid = '(1,1)'::tid)
2918 Filter: (ctid = '(1,1)'::tid)
2920 TID Cond: (ctid = '(1,1)'::tid)
2924 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2926 -----------------------------------------------------------------
2929 Join Filter: (b1t1.c1 = b1t4.c1)
2930 -> Tid Scan on t4 b1t4
2931 TID Cond: (ctid = '(1,1)'::tid)
2933 Join Filter: (b1t1.c1 = b1t3.c1)
2934 -> Tid Scan on t3 b1t3
2935 TID Cond: (ctid = '(1,1)'::tid)
2937 Join Filter: (b1t1.c1 = b1t2.c1)
2938 -> Seq Scan on t2 b1t2
2939 Filter: (ctid = '(1,1)'::tid)
2942 TID Cond: (ctid = '(1,1)'::tid)
2944 -> Tid Scan on t1 b1t1
2945 TID Cond: (ctid = '(1,1)'::tid)
2949 Leading(b1t4 b1t3 b1t2 b1t1 r1_)
2950 MergeJoin(b1t4 b1t3 b1t2 b1t1 r1_)
2951 HashJoin(b1t4 b1t3 b1t2 b1t1)
2952 NestLoop(b1t4 b1t3 b1t2)
2953 MergeJoin(b1t4 b1t3)
2955 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2958 MergeJoin(b1t3 b1t4)
2959 NestLoop(b1t2 b1t3 b1t4)
2960 HashJoin(b1t1 b1t2 b1t3 b1t4)
2961 MergeJoin(b1t1 b1t2 b1t3 b1t4 r1_)
2962 Leading(b1t4 b1t3 b1t2 b1t1 r1_)
2968 -----------------------------------------------------------------------------
2972 Hash Cond: (b1t1.c1 = b1t2.c1)
2973 -> Tid Scan on t1 b1t1
2974 TID Cond: (ctid = '(1,1)'::tid)
2977 Join Filter: (b1t3.c1 = b1t2.c1)
2979 Merge Cond: (b1t3.c1 = b1t4.c1)
2982 -> Tid Scan on t3 b1t3
2983 TID Cond: (ctid = '(1,1)'::tid)
2986 -> Tid Scan on t4 b1t4
2987 TID Cond: (ctid = '(1,1)'::tid)
2989 -> Seq Scan on t2 b1t2
2990 Filter: (ctid = '(1,1)'::tid)
2992 TID Cond: (ctid = '(1,1)'::tid)
2997 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2999 -----------------------------------------------------------------
3002 Join Filter: (t1.c1 = t4.c1)
3004 TID Cond: (ctid = '(1,1)'::tid)
3006 Join Filter: (t1.c1 = t3.c1)
3008 TID Cond: (ctid = '(1,1)'::tid)
3010 Join Filter: (t1.c1 = t2.c1)
3012 Filter: (ctid = '(1,1)'::tid)
3015 TID Cond: (ctid = '(1,1)'::tid)
3018 TID Cond: (ctid = '(1,1)'::tid)
3022 Join Filter: (t1.c1 = t4.c1)
3024 TID Cond: (ctid = '(1,1)'::tid)
3026 Join Filter: (t1.c1 = t3.c1)
3028 TID Cond: (ctid = '(1,1)'::tid)
3030 Join Filter: (t1.c1 = t2.c1)
3032 Filter: (ctid = '(1,1)'::tid)
3035 TID Cond: (ctid = '(1,1)'::tid)
3038 TID Cond: (ctid = '(1,1)'::tid)
3042 Leading(t4 t3 t2 t1 r2)
3043 MergeJoin(t4 t3 t2 t1 r2)
3044 HashJoin(t4 t3 t2 t1)
3048 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3053 HashJoin(t1 t2 t3 t4)
3054 MergeJoin(r2 t1 t2 t3 t4)
3055 Leading(t4 t3 t2 t1 r2)
3064 HashJoin(t1 t2 t3 t4)
3065 MergeJoin(r2 t1 t2 t3 t4)
3066 Leading(t4 t3 t2 t1 r2)
3072 -----------------------------------------------------------------------------
3076 Hash Cond: (t1.c1 = t2.c1)
3078 TID Cond: (ctid = '(1,1)'::tid)
3081 Join Filter: (t3.c1 = t2.c1)
3083 Merge Cond: (t3.c1 = t4.c1)
3087 TID Cond: (ctid = '(1,1)'::tid)
3091 TID Cond: (ctid = '(1,1)'::tid)
3094 Filter: (ctid = '(1,1)'::tid)
3096 TID Cond: (ctid = '(1,1)'::tid)
3102 Hash Cond: (t1.c1 = t2.c1)
3104 TID Cond: (ctid = '(1,1)'::tid)
3107 Join Filter: (t3.c1 = t2.c1)
3109 Merge Cond: (t3.c1 = t4.c1)
3113 TID Cond: (ctid = '(1,1)'::tid)
3117 TID Cond: (ctid = '(1,1)'::tid)
3120 Filter: (ctid = '(1,1)'::tid)
3122 TID Cond: (ctid = '(1,1)'::tid)
3126 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3128 -----------------------------------------------------------------
3131 Join Filter: (b1t1.c1 = b1t4.c1)
3132 -> Tid Scan on t4 b1t4
3133 TID Cond: (ctid = '(1,1)'::tid)
3135 Join Filter: (b1t1.c1 = b1t3.c1)
3136 -> Tid Scan on t3 b1t3
3137 TID Cond: (ctid = '(1,1)'::tid)
3139 Join Filter: (b1t1.c1 = b1t2.c1)
3140 -> Seq Scan on t2 b1t2
3141 Filter: (ctid = '(1,1)'::tid)
3144 TID Cond: (ctid = '(1,1)'::tid)
3146 -> Tid Scan on t1 b1t1
3147 TID Cond: (ctid = '(1,1)'::tid)
3151 Join Filter: (b2t1.c1 = b2t4.c1)
3152 -> Tid Scan on t4 b2t4
3153 TID Cond: (ctid = '(1,1)'::tid)
3155 Join Filter: (b2t1.c1 = b2t3.c1)
3156 -> Tid Scan on t3 b2t3
3157 TID Cond: (ctid = '(1,1)'::tid)
3159 Join Filter: (b2t1.c1 = b2t2.c1)
3160 -> Seq Scan on t2 b2t2
3161 Filter: (ctid = '(1,1)'::tid)
3164 TID Cond: (ctid = '(1,1)'::tid)
3166 -> Tid Scan on t1 b2t1
3167 TID Cond: (ctid = '(1,1)'::tid)
3171 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3172 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3173 MergeJoin(b1t1 b1t2)
3174 HashJoin(b1t1 b1t2 b1t3)
3175 NestLoop(b1t1 b1t2 b1t3 b1t4)
3176 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3177 MergeJoin(b2t1 b2t2)
3178 HashJoin(b2t1 b2t2 b2t3)
3179 NestLoop(b2t1 b2t2 b2t3 b2t4)
3180 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3182 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3185 MergeJoin(b1t1 b1t2)
3186 HashJoin(b1t1 b1t2 b1t3)
3187 NestLoop(b1t1 b1t2 b1t3 b1t4)
3188 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3189 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3191 MergeJoin(b2t1 b2t2)
3192 HashJoin(b2t1 b2t2 b2t3)
3193 NestLoop(b2t1 b2t2 b2t3 b2t4)
3194 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3195 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3201 MergeJoin(b2t1 b2t2)
3202 HashJoin(b2t1 b2t2 b2t3)
3203 NestLoop(b2t1 b2t2 b2t3 b2t4)
3204 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3205 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3207 MergeJoin(b1t1 b1t2)
3208 HashJoin(b1t1 b1t2 b1t3)
3209 NestLoop(b1t1 b1t2 b1t3 b1t4)
3210 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3211 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3216 -----------------------------------------------------------------------------
3220 Join Filter: (b1t1.c1 = b1t4.c1)
3221 -> Tid Scan on t4 b1t4
3222 TID Cond: (ctid = '(1,1)'::tid)
3224 Hash Cond: (b1t3.c1 = b1t1.c1)
3225 -> Tid Scan on t3 b1t3
3226 TID Cond: (ctid = '(1,1)'::tid)
3229 Merge Cond: (b1t1.c1 = b1t2.c1)
3232 -> Tid Scan on t1 b1t1
3233 TID Cond: (ctid = '(1,1)'::tid)
3236 -> Seq Scan on t2 b1t2
3237 Filter: (ctid = '(1,1)'::tid)
3239 TID Cond: (ctid = '(1,1)'::tid)
3245 Join Filter: (b2t1.c1 = b2t4.c1)
3246 -> Tid Scan on t4 b2t4
3247 TID Cond: (ctid = '(1,1)'::tid)
3249 Hash Cond: (b2t3.c1 = b2t1.c1)
3250 -> Tid Scan on t3 b2t3
3251 TID Cond: (ctid = '(1,1)'::tid)
3254 Merge Cond: (b2t1.c1 = b2t2.c1)
3257 -> Tid Scan on t1 b2t1
3258 TID Cond: (ctid = '(1,1)'::tid)
3261 -> Seq Scan on t2 b2t2
3262 Filter: (ctid = '(1,1)'::tid)
3264 TID Cond: (ctid = '(1,1)'::tid)
3269 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3271 -----------------------------------------------------------------
3274 Join Filter: (t1.c1 = t4.c1)
3276 TID Cond: (ctid = '(1,1)'::tid)
3278 Join Filter: (t1.c1 = t3.c1)
3280 TID Cond: (ctid = '(1,1)'::tid)
3282 Join Filter: (t1.c1 = t2.c1)
3284 Filter: (ctid = '(1,1)'::tid)
3287 TID Cond: (ctid = '(1,1)'::tid)
3290 TID Cond: (ctid = '(1,1)'::tid)
3294 Join Filter: (t1.c1 = t4.c1)
3296 TID Cond: (ctid = '(1,1)'::tid)
3298 Join Filter: (t1.c1 = t3.c1)
3300 TID Cond: (ctid = '(1,1)'::tid)
3302 Join Filter: (t1.c1 = t2.c1)
3304 Filter: (ctid = '(1,1)'::tid)
3307 TID Cond: (ctid = '(1,1)'::tid)
3310 TID Cond: (ctid = '(1,1)'::tid)
3314 Join Filter: (t1.c1 = t4.c1)
3316 TID Cond: (ctid = '(1,1)'::tid)
3318 Join Filter: (t1.c1 = t3.c1)
3320 TID Cond: (ctid = '(1,1)'::tid)
3322 Join Filter: (t1.c1 = t2.c1)
3324 Filter: (ctid = '(1,1)'::tid)
3327 TID Cond: (ctid = '(1,1)'::tid)
3330 TID Cond: (ctid = '(1,1)'::tid)
3334 Leading(t4 t3 t2 t1 r3)
3335 MergeJoin(t4 t3 t2 t1 r3)
3336 HashJoin(t4 t3 t2 t1)
3340 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3345 HashJoin(t1 t2 t3 t4)
3346 MergeJoin(r3 t1 t2 t3 t4)
3347 Leading(t4 t3 t2 t1 r3)
3356 HashJoin(t1 t2 t3 t4)
3357 MergeJoin(r3 t1 t2 t3 t4)
3358 Leading(t4 t3 t2 t1 r3)
3367 HashJoin(t1 t2 t3 t4)
3368 MergeJoin(r3 t1 t2 t3 t4)
3369 Leading(t4 t3 t2 t1 r3)
3375 -----------------------------------------------------------------------------
3379 Hash Cond: (t1.c1 = t2.c1)
3381 TID Cond: (ctid = '(1,1)'::tid)
3384 Join Filter: (t3.c1 = t2.c1)
3386 Merge Cond: (t3.c1 = t4.c1)
3390 TID Cond: (ctid = '(1,1)'::tid)
3394 TID Cond: (ctid = '(1,1)'::tid)
3397 Filter: (ctid = '(1,1)'::tid)
3399 TID Cond: (ctid = '(1,1)'::tid)
3405 Hash Cond: (t1.c1 = t2.c1)
3407 TID Cond: (ctid = '(1,1)'::tid)
3410 Join Filter: (t3.c1 = t2.c1)
3412 Merge Cond: (t3.c1 = t4.c1)
3416 TID Cond: (ctid = '(1,1)'::tid)
3420 TID Cond: (ctid = '(1,1)'::tid)
3423 Filter: (ctid = '(1,1)'::tid)
3425 TID Cond: (ctid = '(1,1)'::tid)
3431 Hash Cond: (t1.c1 = t2.c1)
3433 TID Cond: (ctid = '(1,1)'::tid)
3436 Join Filter: (t3.c1 = t2.c1)
3438 Merge Cond: (t3.c1 = t4.c1)
3442 TID Cond: (ctid = '(1,1)'::tid)
3446 TID Cond: (ctid = '(1,1)'::tid)
3449 Filter: (ctid = '(1,1)'::tid)
3451 TID Cond: (ctid = '(1,1)'::tid)
3455 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3457 -----------------------------------------------------------------
3460 Join Filter: (b1t1.c1 = b1t4.c1)
3461 -> Tid Scan on t4 b1t4
3462 TID Cond: (ctid = '(1,1)'::tid)
3464 Join Filter: (b1t1.c1 = b1t3.c1)
3465 -> Tid Scan on t3 b1t3
3466 TID Cond: (ctid = '(1,1)'::tid)
3468 Join Filter: (b1t1.c1 = b1t2.c1)
3469 -> Seq Scan on t2 b1t2
3470 Filter: (ctid = '(1,1)'::tid)
3473 TID Cond: (ctid = '(1,1)'::tid)
3475 -> Tid Scan on t1 b1t1
3476 TID Cond: (ctid = '(1,1)'::tid)
3480 Join Filter: (b2t1.c1 = b2t4.c1)
3481 -> Tid Scan on t4 b2t4
3482 TID Cond: (ctid = '(1,1)'::tid)
3484 Join Filter: (b2t1.c1 = b2t3.c1)
3485 -> Tid Scan on t3 b2t3
3486 TID Cond: (ctid = '(1,1)'::tid)
3488 Join Filter: (b2t1.c1 = b2t2.c1)
3489 -> Seq Scan on t2 b2t2
3490 Filter: (ctid = '(1,1)'::tid)
3493 TID Cond: (ctid = '(1,1)'::tid)
3495 -> Tid Scan on t1 b2t1
3496 TID Cond: (ctid = '(1,1)'::tid)
3500 Join Filter: (b3t1.c1 = b3t4.c1)
3501 -> Tid Scan on t4 b3t4
3502 TID Cond: (ctid = '(1,1)'::tid)
3504 Join Filter: (b3t1.c1 = b3t3.c1)
3505 -> Tid Scan on t3 b3t3
3506 TID Cond: (ctid = '(1,1)'::tid)
3508 Join Filter: (b3t1.c1 = b3t2.c1)
3509 -> Seq Scan on t2 b3t2
3510 Filter: (ctid = '(1,1)'::tid)
3513 TID Cond: (ctid = '(1,1)'::tid)
3515 -> Tid Scan on t1 b3t1
3516 TID Cond: (ctid = '(1,1)'::tid)
3520 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3521 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3522 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3523 MergeJoin(b1t1 b1t2)
3524 HashJoin(b1t1 b1t2 b1t3)
3525 NestLoop(b1t1 b1t2 b1t3 b1t4)
3526 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3527 MergeJoin(b2t1 b2t2)
3528 HashJoin(b2t1 b2t2 b2t3)
3529 NestLoop(b2t1 b2t2 b2t3 b2t4)
3530 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3531 MergeJoin(b3t1 b3t2)
3532 HashJoin(b3t1 b3t2 b3t3)
3533 NestLoop(b3t1 b3t2 b3t3 b3t4)
3534 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3536 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3539 MergeJoin(b1t1 b1t2)
3540 HashJoin(b1t1 b1t2 b1t3)
3541 NestLoop(b1t1 b1t2 b1t3 b1t4)
3542 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3543 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3545 MergeJoin(b2t1 b2t2)
3546 MergeJoin(b3t1 b3t2)
3547 HashJoin(b2t1 b2t2 b2t3)
3548 HashJoin(b3t1 b3t2 b3t3)
3549 NestLoop(b2t1 b2t2 b2t3 b2t4)
3550 NestLoop(b3t1 b3t2 b3t3 b3t4)
3551 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3552 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3553 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3554 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3560 MergeJoin(b2t1 b2t2)
3561 HashJoin(b2t1 b2t2 b2t3)
3562 NestLoop(b2t1 b2t2 b2t3 b2t4)
3563 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3564 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3566 MergeJoin(b1t1 b1t2)
3567 MergeJoin(b3t1 b3t2)
3568 HashJoin(b1t1 b1t2 b1t3)
3569 HashJoin(b3t1 b3t2 b3t3)
3570 NestLoop(b1t1 b1t2 b1t3 b1t4)
3571 NestLoop(b3t1 b3t2 b3t3 b3t4)
3572 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3573 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3574 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3575 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3581 MergeJoin(b3t1 b3t2)
3582 HashJoin(b3t1 b3t2 b3t3)
3583 NestLoop(b3t1 b3t2 b3t3 b3t4)
3584 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3585 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3587 MergeJoin(b1t1 b1t2)
3588 MergeJoin(b2t1 b2t2)
3589 HashJoin(b1t1 b1t2 b1t3)
3590 HashJoin(b2t1 b2t2 b2t3)
3591 NestLoop(b1t1 b1t2 b1t3 b1t4)
3592 NestLoop(b2t1 b2t2 b2t3 b2t4)
3593 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3594 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3595 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3596 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3601 -----------------------------------------------------------------------------
3605 Join Filter: (b1t1.c1 = b1t4.c1)
3606 -> Tid Scan on t4 b1t4
3607 TID Cond: (ctid = '(1,1)'::tid)
3609 Hash Cond: (b1t3.c1 = b1t1.c1)
3610 -> Tid Scan on t3 b1t3
3611 TID Cond: (ctid = '(1,1)'::tid)
3614 Merge Cond: (b1t1.c1 = b1t2.c1)
3617 -> Tid Scan on t1 b1t1
3618 TID Cond: (ctid = '(1,1)'::tid)
3621 -> Seq Scan on t2 b1t2
3622 Filter: (ctid = '(1,1)'::tid)
3624 TID Cond: (ctid = '(1,1)'::tid)
3630 Join Filter: (b2t1.c1 = b2t4.c1)
3631 -> Tid Scan on t4 b2t4
3632 TID Cond: (ctid = '(1,1)'::tid)
3634 Hash Cond: (b2t3.c1 = b2t1.c1)
3635 -> Tid Scan on t3 b2t3
3636 TID Cond: (ctid = '(1,1)'::tid)
3639 Merge Cond: (b2t1.c1 = b2t2.c1)
3642 -> Tid Scan on t1 b2t1
3643 TID Cond: (ctid = '(1,1)'::tid)
3646 -> Seq Scan on t2 b2t2
3647 Filter: (ctid = '(1,1)'::tid)
3649 TID Cond: (ctid = '(1,1)'::tid)
3655 Join Filter: (b3t1.c1 = b3t4.c1)
3656 -> Tid Scan on t4 b3t4
3657 TID Cond: (ctid = '(1,1)'::tid)
3659 Hash Cond: (b3t3.c1 = b3t1.c1)
3660 -> Tid Scan on t3 b3t3
3661 TID Cond: (ctid = '(1,1)'::tid)
3664 Merge Cond: (b3t1.c1 = b3t2.c1)
3667 -> Tid Scan on t1 b3t1
3668 TID Cond: (ctid = '(1,1)'::tid)
3671 -> Seq Scan on t2 b3t2
3672 Filter: (ctid = '(1,1)'::tid)
3674 TID Cond: (ctid = '(1,1)'::tid)
3679 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3681 ------------------------------------
3683 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3684 -> Seq Scan on t1 v1t1
3686 -> Seq Scan on t1 v1t1_1
3689 /*+HashJoin(v1t1 v1t1)*/
3690 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3691 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(v1t1 v1t1)"
3692 DETAIL: Relation name "v1t1" is ambiguous.
3701 ------------------------------------
3703 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3704 -> Seq Scan on t1 v1t1
3706 -> Seq Scan on t1 v1t1_1
3710 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3712 -----------------------------------
3714 Hash Cond: (v1t1.c1 = v1t1_.c1)
3715 -> Seq Scan on t1 v1t1
3717 -> Seq Scan on t1 v1t1_
3720 /*+NestLoop(v1t1 v1t1_)*/
3721 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3724 NestLoop(v1t1 v1t1_)
3730 ------------------------------------------
3732 -> Seq Scan on t1 v1t1
3733 -> Index Scan using t1_i1 on t1 v1t1_
3734 Index Cond: (c1 = v1t1.c1)
3738 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3740 ------------------------------------
3742 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3743 -> Seq Scan on t1 r4t1
3745 -> Seq Scan on t1 r4t1_1
3748 /*+HashJoin(r4t1 r4t1)*/
3749 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3750 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(r4t1 r4t1)"
3751 DETAIL: Relation name "r4t1" is ambiguous.
3760 ------------------------------------
3762 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3763 -> Seq Scan on t1 r4t1
3765 -> Seq Scan on t1 r4t1_1
3769 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3771 ----------------------------------
3773 Hash Cond: (r4t1.c1 = r5t1.c1)
3774 -> Seq Scan on t1 r4t1
3776 -> Seq Scan on t1 r5t1
3779 /*+NestLoop(r4t1 r5t1)*/
3780 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3789 -----------------------------------------
3791 -> Seq Scan on t1 r4t1
3792 -> Index Scan using t1_i1 on t1 r5t1
3793 Index Cond: (c1 = r4t1.c1)
3797 ---- No. J-2-4 VALUES clause
3800 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2, (VALUES(1,1,1,'1')) AS t3 (c1, c2, c3, c4) WHERE t1.c1 = t2.c1 AND t1.c1 = t3.c1;
3802 ------------------------------------
3804 -> Index Scan using t1_i1 on t1
3805 Index Cond: (c1 = 1)
3810 /*+ Leading(t3 t1 t2) HashJoin(t3 t1)NestLoop(t3 t1 t2)*/
3811 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;
3822 ------------------------------------
3824 -> Index Scan using t1_i1 on t1
3825 Index Cond: (c1 = 1)
3830 /*+ Leading(*VALUES* t1 t2) HashJoin(*VALUES* t1)NestLoop(*VALUES* t1 t2)*/
3831 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;
3834 HashJoin(*VALUES* t1)
3835 NestLoop(*VALUES* t1 t2)
3836 Leading(*VALUES* t1 t2)
3842 -------------------------------------------------
3845 Hash Cond: (t1.c1 = "*VALUES*".column1)
3848 -> Values Scan on "*VALUES*"
3849 -> Index Scan using t2_i1 on t2
3850 Index Cond: (c1 = t1.c1)
3854 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;
3856 -------------------------------------------------------
3859 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3861 Hash Cond: (t2.c1 = "*VALUES*".column1)
3864 -> Values Scan on "*VALUES*"
3866 -> Values Scan on "*VALUES*_1"
3867 -> Index Scan using t1_i1 on t1
3868 Index Cond: (c1 = t2.c1)
3871 /*+ Leading(t4 t3 t2 t1) NestLoop(t4 t3)HashJoin(t4 t3 t2)MergeJoin(t4 t3 t2 t1)*/
3872 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;
3878 MergeJoin(t1 t2 t3 t4)
3879 Leading(t4 t3 t2 t1)
3884 -------------------------------------------------------
3887 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3889 Hash Cond: (t2.c1 = "*VALUES*".column1)
3892 -> Values Scan on "*VALUES*"
3894 -> Values Scan on "*VALUES*_1"
3895 -> Index Scan using t1_i1 on t1
3896 Index Cond: (c1 = t2.c1)
3899 /*+ Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)*/
3900 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;
3901 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)"
3902 DETAIL: Relation name "*VALUES*" is ambiguous.
3903 INFO: pg_hint_plan: hint syntax error at or near "MergeJoin(*VALUES* t3 t2 t1)"
3904 DETAIL: Relation name "*VALUES*" is ambiguous.
3905 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)"
3906 DETAIL: Relation name "*VALUES*" is ambiguous.
3913 HashJoin(*VALUES* t2 t3)
3914 MergeJoin(*VALUES* t1 t2 t3)
3915 Leading(*VALUES* t3 t2 t1)
3918 -------------------------------------------------------
3921 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3923 Hash Cond: (t2.c1 = "*VALUES*".column1)
3926 -> Values Scan on "*VALUES*"
3928 -> Values Scan on "*VALUES*_1"
3929 -> Index Scan using t1_i1 on t1
3930 Index Cond: (c1 = t2.c1)
3934 ---- No. J-3-1 join method hint
3937 SET enable_nestloop TO on;
3938 SET enable_mergejoin TO off;
3939 SET enable_hashjoin TO off;
3940 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3942 ------------------------------------
3945 -> Index Scan using t1_i1 on t1
3946 Index Cond: (c1 = t2.c1)
3949 /*+NestLoop(t1 t2)*/
3950 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3959 ------------------------------------
3962 -> Index Scan using t1_i1 on t1
3963 Index Cond: (c1 = t2.c1)
3966 /*+HashJoin(t1 t2)*/
3967 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3976 ------------------------------
3978 Hash Cond: (t1.c1 = t2.c1)
3984 /*+MergeJoin(t1 t2)*/
3985 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3994 ------------------------------------
3996 Merge Cond: (t1.c1 = t2.c1)
3997 -> Index Scan using t1_i1 on t1
4003 SET enable_mergejoin TO on;
4004 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';;
4006 -----------------------------------------------
4008 Join Filter: (t1.c1 = t2.c1)
4012 TID Cond: (ctid = '(1,1)'::tid)
4015 /*+NoNestLoop(t1 t2)*/
4016 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';;
4025 -----------------------------------------------
4027 Merge Cond: (t1.c1 = t2.c1)
4031 TID Cond: (ctid = '(1,1)'::tid)
4037 SET enable_mergejoin TO off;
4038 /*+NoHashJoin(t1 t2)*/
4039 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4048 ------------------------------------
4051 -> Index Scan using t1_i1 on t1
4052 Index Cond: (c1 = t2.c1)
4055 /*+NoMergeJoin(t1 t2)*/
4056 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4065 ------------------------------------
4068 -> Index Scan using t1_i1 on t1
4069 Index Cond: (c1 = t2.c1)
4073 SET enable_nestloop TO off;
4074 SET enable_mergejoin TO off;
4075 SET enable_hashjoin TO on;
4076 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4078 ------------------------------
4080 Hash Cond: (t1.c1 = t2.c1)
4086 /*+NestLoop(t1 t2)*/
4087 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4096 ------------------------------------
4099 -> Index Scan using t1_i1 on t1
4100 Index Cond: (c1 = t2.c1)
4103 /*+HashJoin(t1 t2)*/
4104 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4113 ------------------------------
4115 Hash Cond: (t1.c1 = t2.c1)
4121 /*+MergeJoin(t1 t2)*/
4122 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4131 ------------------------------------
4133 Merge Cond: (t1.c1 = t2.c1)
4134 -> Index Scan using t1_i1 on t1
4140 /*+NoNestLoop(t1 t2)*/
4141 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4150 ------------------------------
4152 Hash Cond: (t1.c1 = t2.c1)
4158 /*+NoHashJoin(t1 t2)*/
4159 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4168 ------------------------------------
4171 -> Index Scan using t1_i1 on t1
4172 Index Cond: (c1 = t2.c1)
4175 /*+NoMergeJoin(t1 t2)*/
4176 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4185 ------------------------------
4187 Hash Cond: (t1.c1 = t2.c1)
4194 SET enable_nestloop TO off;
4195 SET enable_mergejoin TO on;
4196 SET enable_hashjoin TO off;
4197 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4199 ------------------------------------
4201 Merge Cond: (t1.c1 = t2.c1)
4202 -> Index Scan using t1_i1 on t1
4208 /*+NestLoop(t1 t2)*/
4209 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4218 ------------------------------------
4221 -> Index Scan using t1_i1 on t1
4222 Index Cond: (c1 = t2.c1)
4225 /*+HashJoin(t1 t2)*/
4226 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4235 ------------------------------
4237 Hash Cond: (t1.c1 = t2.c1)
4243 /*+MergeJoin(t1 t2)*/
4244 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4253 ------------------------------------
4255 Merge Cond: (t1.c1 = t2.c1)
4256 -> Index Scan using t1_i1 on t1
4262 /*+NoNestLoop(t1 t2)*/
4263 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4272 ------------------------------------
4274 Merge Cond: (t1.c1 = t2.c1)
4275 -> Index Scan using t1_i1 on t1
4281 /*+NoHashJoin(t1 t2)*/
4282 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4291 ------------------------------------
4293 Merge Cond: (t1.c1 = t2.c1)
4294 -> Index Scan using t1_i1 on t1
4300 /*+NoMergeJoin(t1 t2)*/
4301 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4310 ------------------------------------
4313 -> Index Scan using t1_i1 on t1
4314 Index Cond: (c1 = t2.c1)
4317 SET enable_nestloop TO on;
4318 SET enable_mergejoin TO on;
4319 SET enable_hashjoin TO on;
4321 ---- No. J-3-2 join inherit tables
4323 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4325 ------------------------------------
4327 Hash Cond: (p2.c1 = p1.c1)
4333 -> Seq Scan on p2c1c1
4334 -> Seq Scan on p2c1c2
4335 -> Seq Scan on p2c2c1
4336 -> Seq Scan on p2c2c2
4337 -> Seq Scan on p2c3c1
4338 -> Seq Scan on p2c3c2
4348 /*+MergeJoin(p1 p2)*/
4349 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4358 --------------------------------------
4360 Merge Cond: (p1.c1 = p2.c1)
4375 -> Seq Scan on p2c1c1
4376 -> Seq Scan on p2c1c2
4377 -> Seq Scan on p2c2c1
4378 -> Seq Scan on p2c2c2
4379 -> Seq Scan on p2c3c1
4380 -> Seq Scan on p2c3c2
4384 /*+MergeJoin(p1c1 p2c1)*/
4385 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4389 MergeJoin(p1c1 p2c1)
4394 ------------------------------------
4396 Hash Cond: (p2.c1 = p1.c1)
4402 -> Seq Scan on p2c1c1
4403 -> Seq Scan on p2c1c2
4404 -> Seq Scan on p2c2c1
4405 -> Seq Scan on p2c2c2
4406 -> Seq Scan on p2c3c1
4407 -> Seq Scan on p2c3c2
4417 ---- No. J-3-3 conflict join method hint
4419 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4421 ------------------------------------
4423 Merge Cond: (t1.c1 = t2.c1)
4424 -> Index Scan using t1_i1 on t1
4431 /*+HashJoin(t1 t2)NestLoop(t1 t2)*/
4432 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4433 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t1 t2)"
4434 DETAIL: Conflict join method hint.
4444 ------------------------------------
4447 -> Index Scan using t1_i1 on t1
4448 Index Cond: (c1 = t2.c1)
4452 /*+MergeJoin(t1 t2)HashJoin(t1 t2)NestLoop(t1 t2)*/
4453 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4454 INFO: pg_hint_plan: hint syntax error at or near "MergeJoin(t1 t2)HashJoin(t1 t2)NestLoop(t1 t2)"
4455 DETAIL: Conflict join method hint.
4456 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t1 t2)"
4457 DETAIL: Conflict join method hint.
4468 ------------------------------------
4471 -> Index Scan using t1_i1 on t1
4472 Index Cond: (c1 = t2.c1)
4476 /*+HashJoin(t1 t2)NestLoop(t2 t1)*/
4477 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4478 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)"
4479 DETAIL: Conflict join method hint.
4489 ------------------------------------
4492 -> Index Scan using t1_i1 on t1
4493 Index Cond: (c1 = t2.c1)
4497 /*+MergeJoin(t2 t1)HashJoin(t1 t2)NestLoop(t2 t1)*/
4498 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4499 INFO: pg_hint_plan: hint syntax error at or near "MergeJoin(t2 t1)HashJoin(t1 t2)NestLoop(t2 t1)"
4500 DETAIL: Conflict join method hint.
4501 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)"
4502 DETAIL: Conflict join method hint.
4513 ------------------------------------
4516 -> Index Scan using t1_i1 on t1
4517 Index Cond: (c1 = t2.c1)
4521 ---- No. J-3-4 hint state output
4524 /*+NestLoop(t1 t2)*/
4525 SELECT * FROM s1.t1, s1.t2 WHERE false;
4533 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4534 ----+----+----+----+----+----+----+----
4538 /*+HashJoin(t1 t2)*/
4539 SELECT * FROM s1.t1, s1.t2 WHERE false;
4547 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4548 ----+----+----+----+----+----+----+----
4552 /*+MergeJoin(t1 t2)*/
4553 SELECT * FROM s1.t1, s1.t2 WHERE false;
4561 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4562 ----+----+----+----+----+----+----+----
4566 /*+NoNestLoop(t1 t2)*/
4567 SELECT * FROM s1.t1, s1.t2 WHERE false;
4575 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4576 ----+----+----+----+----+----+----+----
4580 /*+NoHashJoin(t1 t2)*/
4581 SELECT * FROM s1.t1, s1.t2 WHERE false;
4589 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4590 ----+----+----+----+----+----+----+----
4594 /*+NoMergeJoin(t1 t2)*/
4595 SELECT * FROM s1.t1, s1.t2 WHERE false;
4603 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4604 ----+----+----+----+----+----+----+----
4609 SELECT * FROM s1.t1 WHERE false;
4610 INFO: pg_hint_plan: hint syntax error at or near ""
4611 DETAIL: NestLoop hint requires at least two relations.
4625 SELECT * FROM s1.t1 WHERE false;
4626 INFO: pg_hint_plan: hint syntax error at or near ""
4627 DETAIL: NestLoop hint requires at least two relations.
4640 /*+NestLoop(t1 t2)*/
4641 SELECT * FROM s1.t1, s1.t2 WHERE false;
4649 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4650 ----+----+----+----+----+----+----+----
4654 /*+NestLoop(t1 t2 t3)*/
4655 SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE false;
4663 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4664 ----+----+----+----+----+----+----+----+----+----+----+----
4668 ---- No. J-3-5 not used hint
4671 EXPLAIN (COSTS false) SELECT * FROM s1.t1 FULL OUTER JOIN s1.t2 ON (t1.c1 = t2.c1);
4673 ------------------------------
4675 Hash Cond: (t1.c1 = t2.c1)
4681 \o results/ut-J.tmpout
4682 /*+NestLoop(t1 t2)*/
4683 EXPLAIN (COSTS true) SELECT * FROM s1.t1 FULL OUTER JOIN s1.t2 ON (t1.c1 = t2.c1);
4692 \! sql/maskout.sh results/ut-J.tmpout
4694 --------------------------------------------------------------------------
4695 Hash Full Join (cost=xxx rows=1000 width=xxx)
4696 Hash Cond: (t1.c1 = t2.c1)
4697 -> Seq Scan on t1 (cost=xxx rows=1000 width=xxx)
4698 -> Hash (cost=xxx rows=100 width=xxx)
4699 -> Seq Scan on t2 (cost=xxx rows=100 width=xxx)
4702 \! rm results/ut-J.tmpout