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)
475 -> Seq Scan on p1 t1_1
476 -> Seq Scan on p1c1 t1_2
477 -> Seq Scan on p1c2 t1_3
478 -> Seq Scan on p1c3 t1_4
481 -> Seq Scan on p1 t2_1
482 -> Seq Scan on p1c1 t2_2
483 -> Seq Scan on p1c2 t2_3
484 -> Seq Scan on p1c3 t2_4
488 EXPLAIN (COSTS false) SELECT * FROM s1.p1 t1, s1.p1 t2 WHERE t1.c1 = t2.c1;
497 --------------------------------------------------
500 -> Seq Scan on p1 t1_1
501 -> Seq Scan on p1c1 t1_2
502 -> Seq Scan on p1c2 t1_3
503 -> Seq Scan on p1c3 t1_4
505 -> Seq Scan on p1 t2_1
507 -> Index Scan using p1c1_i on p1c1 t2_2
508 Index Cond: (c1 = t1.c1)
509 -> Index Scan using p1c2_i on p1c2 t2_3
510 Index Cond: (c1 = t1.c1)
511 -> Index Scan using p1c3_i on p1c3 t2_4
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_c1_idx 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 ----------------------------------------------------------
684 Merge Cond: (t1_1.c1 = t2.c1)
685 -> Index Only Scan using t1_i1 on t1 t1_1
689 -> Index Scan using t1_i1 on t1
690 Index Cond: (c1 = (max(t1_1.c1)))
693 /*+NestLoop(t1 t2)HashJoin(t1 c1)*/
694 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;
704 ----------------------------------------------------------------
706 Hash Cond: (t1.c1 = (max(t1_1.c1)))
712 -> Index Only Scan using t1_i1 on t1 t1_1
713 Index Cond: (c1 = t2.c1)
717 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
719 ------------------------------------
721 Hash Cond: (v1t1.c1 = v1t1_1.c1)
722 -> Seq Scan on t1 v1t1
724 -> Seq Scan on t1 v1t1_1
728 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1 t2 WHERE t1.c1 = t2.c1;
737 ------------------------------------
739 Hash Cond: (v1t1.c1 = v1t1_1.c1)
740 -> Seq Scan on t1 v1t1
742 -> Seq Scan on t1 v1t1_1
745 /*+NestLoop(v1t1 v1t1_)*/
746 EXPLAIN (COSTS false) SELECT * FROM s1.v1 t1, s1.v1_ t2 WHERE t1.c1 = t2.c1;
755 ------------------------------------------
757 -> Seq Scan on t1 v1t1
758 -> Index Scan using t1_i1 on t1 v1t1_
759 Index Cond: (c1 = v1t1.c1)
763 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);
765 -----------------------------------------------------------
767 InitPlan 1 (returns $0)
770 Merge Cond: (st1.c1 = st2.c1)
771 -> Index Only Scan using t1_i1 on t1 st1
774 -> Seq Scan on t2 st2
775 -> Index Scan using t1_i1 on t1
776 Index Cond: (c1 = $0)
781 \o results/ut-J.tmpout
782 /*+MergeJoin(t1 t2)NestLoop(st1 st2)*/
783 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);
793 \! sql/maskout.sh results/ut-J.tmpout
795 ---------------------------------------------------------------------------------------------
796 Nested Loop (cost={inf}..{inf} rows=1 width=xxx)
797 InitPlan 1 (returns $1)
798 -> Aggregate (cost=xxx..xxx rows=1 width=xxx)
799 -> Nested Loop (cost=xxx..xxx rows=100 width=xxx)
800 -> Seq Scan on t2 st2 (cost=xxx..xxx rows=100 width=xxx)
801 -> Index Only Scan using t1_i1 on t1 st1 (cost=xxx..xxx rows=1 width=xxx)
802 Index Cond: (c1 = st2.c1)
803 -> Index Scan using t1_i1 on t1 (cost=xxx..xxx rows=1 width=xxx)
804 Index Cond: (c1 = $1)
805 -> Seq Scan on t2 (cost=xxx..xxx rows=1 width=xxx)
809 -- There are cases where difference in the measured value and predicted value
810 -- depending upon the version of PostgreSQL
812 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
814 ------------------------------------
816 Merge Cond: (t1.c1 = t2.c1)
817 -> Index Scan using t1_i1 on t1
823 /*+HashJoin(t1 st2)*/
824 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
833 ------------------------------------
835 Merge Cond: (t1.c1 = t2.c1)
836 -> Index Scan using t1_i1 on t1
843 EXPLAIN (COSTS false) SELECT * FROM s1.t1, (SELECT t2.c1 FROM s1.t2) st2 WHERE t1.c1 = st2.c1;
852 ------------------------------
854 Hash Cond: (t1.c1 = t2.c1)
861 ---- No. J-2-1 some complexity query blocks
864 EXPLAIN (COSTS false)
865 SELECT max(bmt1.c1), (
866 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)'
868 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)'
870 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)'
873 -------------------------------------------------------------------
875 InitPlan 1 (returns $0)
878 Join Filter: (b1t1.c1 = b1t4.c1)
880 Join Filter: (b1t1.c1 = b1t3.c1)
882 Join Filter: (b1t1.c1 = b1t2.c1)
883 -> Tid Scan on t1 b1t1
884 TID Cond: (ctid = '(1,1)'::tid)
885 -> Seq Scan on t2 b1t2
886 Filter: (ctid = '(1,1)'::tid)
887 -> Tid Scan on t3 b1t3
888 TID Cond: (ctid = '(1,1)'::tid)
889 -> Tid Scan on t4 b1t4
890 TID Cond: (ctid = '(1,1)'::tid)
891 InitPlan 2 (returns $1)
894 Join Filter: (b2t1.c1 = b2t4.c1)
896 Join Filter: (b2t1.c1 = b2t3.c1)
898 Join Filter: (b2t1.c1 = b2t2.c1)
899 -> Tid Scan on t1 b2t1
900 TID Cond: (ctid = '(1,1)'::tid)
901 -> Seq Scan on t2 b2t2
902 Filter: (ctid = '(1,1)'::tid)
903 -> Tid Scan on t3 b2t3
904 TID Cond: (ctid = '(1,1)'::tid)
905 -> Tid Scan on t4 b2t4
906 TID Cond: (ctid = '(1,1)'::tid)
908 Join Filter: (bmt1.c1 = bmt4.c1)
910 Join Filter: (bmt1.c1 = bmt3.c1)
912 Join Filter: (bmt1.c1 = bmt2.c1)
913 -> Tid Scan on t1 bmt1
914 TID Cond: (ctid = '(1,1)'::tid)
915 -> Seq Scan on t2 bmt2
916 Filter: (ctid = '(1,1)'::tid)
917 -> Tid Scan on t3 bmt3
918 TID Cond: (ctid = '(1,1)'::tid)
919 -> Tid Scan on t4 bmt4
920 TID Cond: (ctid = '(1,1)'::tid)
924 Leading(bmt1 bmt2 bmt3 bmt4)
925 Leading(b1t2 b1t3 b1t4 b1t1)
926 Leading(b2t3 b2t4 b2t1 b2t2)
927 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
928 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
929 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
931 EXPLAIN (COSTS false)
932 SELECT max(bmt1.c1), (
933 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)'
935 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)'
937 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)'
944 HashJoin(b1t2 b1t3 b1t4)
945 HashJoin(b2t1 b2t3 b2t4)
946 HashJoin(bmt1 bmt2 bmt3)
947 NestLoop(b1t1 b1t2 b1t3 b1t4)
948 NestLoop(b2t1 b2t2 b2t3 b2t4)
949 NestLoop(bmt1 bmt2 bmt3 bmt4)
950 Leading(bmt1 bmt2 bmt3 bmt4)
951 Leading(b1t2 b1t3 b1t4 b1t1)
952 Leading(b2t3 b2t4 b2t1 b2t2)
958 -------------------------------------------------------------------------------
960 InitPlan 1 (returns $0)
963 Join Filter: (b1t2.c1 = b1t1.c1)
965 Hash Cond: (b1t4.c1 = b1t2.c1)
966 -> Tid Scan on t4 b1t4
967 TID Cond: (ctid = '(1,1)'::tid)
970 Merge Cond: (b1t2.c1 = b1t3.c1)
973 -> Seq Scan on t2 b1t2
974 Filter: (ctid = '(1,1)'::tid)
977 -> Tid Scan on t3 b1t3
978 TID Cond: (ctid = '(1,1)'::tid)
979 -> Tid Scan on t1 b1t1
980 TID Cond: (ctid = '(1,1)'::tid)
981 InitPlan 2 (returns $1)
984 Join Filter: (b2t1.c1 = b2t2.c1)
986 Hash Cond: (b2t1.c1 = b2t3.c1)
987 -> Tid Scan on t1 b2t1
988 TID Cond: (ctid = '(1,1)'::tid)
991 Merge Cond: (b2t3.c1 = b2t4.c1)
994 -> Tid Scan on t3 b2t3
995 TID Cond: (ctid = '(1,1)'::tid)
998 -> Tid Scan on t4 b2t4
999 TID Cond: (ctid = '(1,1)'::tid)
1000 -> Seq Scan on t2 b2t2
1001 Filter: (ctid = '(1,1)'::tid)
1003 Join Filter: (bmt1.c1 = bmt4.c1)
1005 Hash Cond: (bmt3.c1 = bmt1.c1)
1006 -> Tid Scan on t3 bmt3
1007 TID Cond: (ctid = '(1,1)'::tid)
1010 Merge Cond: (bmt1.c1 = bmt2.c1)
1013 -> Tid Scan on t1 bmt1
1014 TID Cond: (ctid = '(1,1)'::tid)
1017 -> Seq Scan on t2 bmt2
1018 Filter: (ctid = '(1,1)'::tid)
1019 -> Tid Scan on t4 bmt4
1020 TID Cond: (ctid = '(1,1)'::tid)
1024 EXPLAIN (COSTS false)
1025 SELECT max(bmt1.c1), (
1026 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)'
1028 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)'
1030 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)'
1032 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)'
1035 -------------------------------------------------------------------
1037 InitPlan 1 (returns $0)
1040 Join Filter: (b1t1.c1 = b1t4.c1)
1042 Join Filter: (b1t1.c1 = b1t3.c1)
1044 Join Filter: (b1t1.c1 = b1t2.c1)
1045 -> Tid Scan on t1 b1t1
1046 TID Cond: (ctid = '(1,1)'::tid)
1047 -> Seq Scan on t2 b1t2
1048 Filter: (ctid = '(1,1)'::tid)
1049 -> Tid Scan on t3 b1t3
1050 TID Cond: (ctid = '(1,1)'::tid)
1051 -> Tid Scan on t4 b1t4
1052 TID Cond: (ctid = '(1,1)'::tid)
1053 InitPlan 2 (returns $1)
1056 Join Filter: (b2t1.c1 = b2t4.c1)
1058 Join Filter: (b2t1.c1 = b2t3.c1)
1060 Join Filter: (b2t1.c1 = b2t2.c1)
1061 -> Tid Scan on t1 b2t1
1062 TID Cond: (ctid = '(1,1)'::tid)
1063 -> Seq Scan on t2 b2t2
1064 Filter: (ctid = '(1,1)'::tid)
1065 -> Tid Scan on t3 b2t3
1066 TID Cond: (ctid = '(1,1)'::tid)
1067 -> Tid Scan on t4 b2t4
1068 TID Cond: (ctid = '(1,1)'::tid)
1069 InitPlan 3 (returns $2)
1072 Join Filter: (b3t1.c1 = b3t4.c1)
1074 Join Filter: (b3t1.c1 = b3t3.c1)
1076 Join Filter: (b3t1.c1 = b3t2.c1)
1077 -> Tid Scan on t1 b3t1
1078 TID Cond: (ctid = '(1,1)'::tid)
1079 -> Seq Scan on t2 b3t2
1080 Filter: (ctid = '(1,1)'::tid)
1081 -> Tid Scan on t3 b3t3
1082 TID Cond: (ctid = '(1,1)'::tid)
1083 -> Tid Scan on t4 b3t4
1084 TID Cond: (ctid = '(1,1)'::tid)
1086 Join Filter: (bmt1.c1 = bmt4.c1)
1088 Join Filter: (bmt1.c1 = bmt3.c1)
1090 Join Filter: (bmt1.c1 = bmt2.c1)
1091 -> Tid Scan on t1 bmt1
1092 TID Cond: (ctid = '(1,1)'::tid)
1093 -> Seq Scan on t2 bmt2
1094 Filter: (ctid = '(1,1)'::tid)
1095 -> Tid Scan on t3 bmt3
1096 TID Cond: (ctid = '(1,1)'::tid)
1097 -> Tid Scan on t4 bmt4
1098 TID Cond: (ctid = '(1,1)'::tid)
1102 Leading(bmt1 bmt2 bmt3 bmt4)
1103 Leading(b1t2 b1t3 b1t4 b1t1)
1104 Leading(b2t3 b2t4 b2t1 b2t2)
1105 Leading(b3t4 b3t1 b3t2 b3t3)
1106 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1107 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1108 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1109 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1111 EXPLAIN (COSTS false)
1112 SELECT max(bmt1.c1), (
1113 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)'
1115 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)'
1117 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)'
1119 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)'
1123 MergeJoin(b1t2 b1t3)
1124 MergeJoin(b2t3 b2t4)
1125 MergeJoin(b3t1 b3t4)
1126 MergeJoin(bmt1 bmt2)
1127 HashJoin(b1t2 b1t3 b1t4)
1128 HashJoin(b2t1 b2t3 b2t4)
1129 HashJoin(b3t1 b3t2 b3t4)
1130 HashJoin(bmt1 bmt2 bmt3)
1131 NestLoop(b1t1 b1t2 b1t3 b1t4)
1132 NestLoop(b2t1 b2t2 b2t3 b2t4)
1133 NestLoop(b3t1 b3t2 b3t3 b3t4)
1134 NestLoop(bmt1 bmt2 bmt3 bmt4)
1135 Leading(bmt1 bmt2 bmt3 bmt4)
1136 Leading(b1t2 b1t3 b1t4 b1t1)
1137 Leading(b2t3 b2t4 b2t1 b2t2)
1138 Leading(b3t4 b3t1 b3t2 b3t3)
1144 -------------------------------------------------------------------------------
1146 InitPlan 1 (returns $0)
1149 Join Filter: (b1t2.c1 = b1t1.c1)
1151 Hash Cond: (b1t4.c1 = b1t2.c1)
1152 -> Tid Scan on t4 b1t4
1153 TID Cond: (ctid = '(1,1)'::tid)
1156 Merge Cond: (b1t2.c1 = b1t3.c1)
1159 -> Seq Scan on t2 b1t2
1160 Filter: (ctid = '(1,1)'::tid)
1163 -> Tid Scan on t3 b1t3
1164 TID Cond: (ctid = '(1,1)'::tid)
1165 -> Tid Scan on t1 b1t1
1166 TID Cond: (ctid = '(1,1)'::tid)
1167 InitPlan 2 (returns $1)
1170 Join Filter: (b2t1.c1 = b2t2.c1)
1172 Hash Cond: (b2t1.c1 = b2t3.c1)
1173 -> Tid Scan on t1 b2t1
1174 TID Cond: (ctid = '(1,1)'::tid)
1177 Merge Cond: (b2t3.c1 = b2t4.c1)
1180 -> Tid Scan on t3 b2t3
1181 TID Cond: (ctid = '(1,1)'::tid)
1184 -> Tid Scan on t4 b2t4
1185 TID Cond: (ctid = '(1,1)'::tid)
1186 -> Seq Scan on t2 b2t2
1187 Filter: (ctid = '(1,1)'::tid)
1188 InitPlan 3 (returns $2)
1191 Join Filter: (b3t1.c1 = b3t3.c1)
1193 Hash Cond: (b3t2.c1 = b3t1.c1)
1194 -> Seq Scan on t2 b3t2
1195 Filter: (ctid = '(1,1)'::tid)
1198 Merge Cond: (b3t1.c1 = b3t4.c1)
1201 -> Tid Scan on t1 b3t1
1202 TID Cond: (ctid = '(1,1)'::tid)
1205 -> Tid Scan on t4 b3t4
1206 TID Cond: (ctid = '(1,1)'::tid)
1207 -> Tid Scan on t3 b3t3
1208 TID Cond: (ctid = '(1,1)'::tid)
1210 Join Filter: (bmt1.c1 = bmt4.c1)
1212 Hash Cond: (bmt3.c1 = bmt1.c1)
1213 -> Tid Scan on t3 bmt3
1214 TID Cond: (ctid = '(1,1)'::tid)
1217 Merge Cond: (bmt1.c1 = bmt2.c1)
1220 -> Tid Scan on t1 bmt1
1221 TID Cond: (ctid = '(1,1)'::tid)
1224 -> Seq Scan on t2 bmt2
1225 Filter: (ctid = '(1,1)'::tid)
1226 -> Tid Scan on t4 bmt4
1227 TID Cond: (ctid = '(1,1)'::tid)
1231 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)';
1233 -----------------------------------------------------------
1236 Join Filter: (bmt1.c1 = bmt4.c1)
1238 Join Filter: (bmt1.c1 = bmt3.c1)
1240 Join Filter: (bmt1.c1 = bmt2.c1)
1241 -> Tid Scan on t1 bmt1
1242 TID Cond: (ctid = '(1,1)'::tid)
1243 -> Seq Scan on t2 bmt2
1244 Filter: (ctid = '(1,1)'::tid)
1245 -> Tid Scan on t3 bmt3
1246 TID Cond: (ctid = '(1,1)'::tid)
1247 -> Tid Scan on t4 bmt4
1248 TID Cond: (ctid = '(1,1)'::tid)
1252 Leading(bmt4 bmt3 bmt2 bmt1)
1253 MergeJoin(bmt4 bmt3)HashJoin(bmt4 bmt3 bmt2)NestLoop(bmt1 bmt2 bmt3 bmt4)
1255 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)';
1258 MergeJoin(bmt3 bmt4)
1259 HashJoin(bmt2 bmt3 bmt4)
1260 NestLoop(bmt1 bmt2 bmt3 bmt4)
1261 Leading(bmt4 bmt3 bmt2 bmt1)
1267 -----------------------------------------------------------------------
1270 Join Filter: (bmt2.c1 = bmt1.c1)
1272 Hash Cond: (bmt2.c1 = bmt3.c1)
1273 -> Seq Scan on t2 bmt2
1274 Filter: (ctid = '(1,1)'::tid)
1277 Merge Cond: (bmt3.c1 = bmt4.c1)
1280 -> Tid Scan on t3 bmt3
1281 TID Cond: (ctid = '(1,1)'::tid)
1284 -> Tid Scan on t4 bmt4
1285 TID Cond: (ctid = '(1,1)'::tid)
1286 -> Tid Scan on t1 bmt1
1287 TID Cond: (ctid = '(1,1)'::tid)
1291 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)';
1293 -----------------------------------------------------------
1296 Join Filter: (bmt1.c1 = bmt4.c1)
1298 Join Filter: (bmt1.c1 = bmt3.c1)
1300 Join Filter: (bmt1.c1 = bmt2.c1)
1301 -> Tid Scan on t1 bmt1
1302 TID Cond: (ctid = '(1,1)'::tid)
1303 -> Seq Scan on t2 bmt2
1304 Filter: (ctid = '(1,1)'::tid)
1305 -> Tid Scan on t3 bmt3
1306 TID Cond: (ctid = '(1,1)'::tid)
1307 -> Tid Scan on t4 bmt4
1308 TID Cond: (ctid = '(1,1)'::tid)
1312 Leading(bmt4 bmt3 bmt2 bmt1)
1313 MergeJoin(bmt4 bmt3)HashJoin(bmt4 bmt3 bmt2)NestLoop(bmt1 bmt2 bmt3 bmt4)
1315 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)';
1318 MergeJoin(bmt3 bmt4)
1319 HashJoin(bmt2 bmt3 bmt4)
1320 NestLoop(bmt1 bmt2 bmt3 bmt4)
1321 Leading(bmt4 bmt3 bmt2 bmt1)
1327 -----------------------------------------------------------------------
1330 Join Filter: (bmt2.c1 = bmt1.c1)
1332 Hash Cond: (bmt2.c1 = bmt3.c1)
1333 -> Seq Scan on t2 bmt2
1334 Filter: (ctid = '(1,1)'::tid)
1337 Merge Cond: (bmt3.c1 = bmt4.c1)
1340 -> Tid Scan on t3 bmt3
1341 TID Cond: (ctid = '(1,1)'::tid)
1344 -> Tid Scan on t4 bmt4
1345 TID Cond: (ctid = '(1,1)'::tid)
1346 -> Tid Scan on t1 bmt1
1347 TID Cond: (ctid = '(1,1)'::tid)
1351 EXPLAIN (COSTS false)
1352 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)'
1354 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)'
1356 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)'
1360 -------------------------------------------------------------------
1362 InitPlan 1 (returns $0)
1365 Join Filter: (b1t1.c1 = b1t4.c1)
1367 Join Filter: (b1t1.c1 = b1t3.c1)
1369 Join Filter: (b1t1.c1 = b1t2.c1)
1370 -> Tid Scan on t1 b1t1
1371 TID Cond: (ctid = '(1,1)'::tid)
1372 -> Seq Scan on t2 b1t2
1373 Filter: (ctid = '(1,1)'::tid)
1374 -> Tid Scan on t3 b1t3
1375 TID Cond: (ctid = '(1,1)'::tid)
1376 -> Tid Scan on t4 b1t4
1377 TID Cond: (ctid = '(1,1)'::tid)
1378 InitPlan 2 (returns $1)
1381 Join Filter: (b2t1.c1 = b2t4.c1)
1383 Join Filter: (b2t1.c1 = b2t3.c1)
1385 Join Filter: (b2t1.c1 = b2t2.c1)
1386 -> Tid Scan on t1 b2t1
1387 TID Cond: (ctid = '(1,1)'::tid)
1388 -> Seq Scan on t2 b2t2
1389 Filter: (ctid = '(1,1)'::tid)
1390 -> Tid Scan on t3 b2t3
1391 TID Cond: (ctid = '(1,1)'::tid)
1392 -> Tid Scan on t4 b2t4
1393 TID Cond: (ctid = '(1,1)'::tid)
1395 Join Filter: (bmt1.c1 = bmt4.c1)
1397 Join Filter: (bmt1.c1 = bmt3.c1)
1399 Join Filter: (bmt1.c1 = bmt2.c1)
1400 -> Tid Scan on t1 bmt1
1401 TID Cond: (ctid = '(1,1)'::tid)
1402 Filter: ((c1 <> $0) AND (c1 <> $1))
1403 -> Seq Scan on t2 bmt2
1404 Filter: (ctid = '(1,1)'::tid)
1405 -> Tid Scan on t3 bmt3
1406 TID Cond: (ctid = '(1,1)'::tid)
1407 -> Tid Scan on t4 bmt4
1408 TID Cond: (ctid = '(1,1)'::tid)
1412 Leading(bmt1 bmt2 bmt3 bmt4)
1413 Leading(b1t2 b1t3 b1t4 b1t1)
1414 Leading(b2t3 b2t4 b2t1 b2t2)
1415 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1416 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1417 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1419 EXPLAIN (COSTS false)
1420 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)'
1422 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)'
1424 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)'
1429 MergeJoin(b1t2 b1t3)
1430 MergeJoin(b2t3 b2t4)
1431 MergeJoin(bmt1 bmt2)
1432 HashJoin(b1t2 b1t3 b1t4)
1433 HashJoin(b2t1 b2t3 b2t4)
1434 HashJoin(bmt1 bmt2 bmt3)
1435 NestLoop(b1t1 b1t2 b1t3 b1t4)
1436 NestLoop(b2t1 b2t2 b2t3 b2t4)
1437 NestLoop(bmt1 bmt2 bmt3 bmt4)
1438 Leading(bmt1 bmt2 bmt3 bmt4)
1439 Leading(b1t2 b1t3 b1t4 b1t1)
1440 Leading(b2t3 b2t4 b2t1 b2t2)
1446 -------------------------------------------------------------------------------
1448 InitPlan 1 (returns $0)
1451 Join Filter: (b1t2.c1 = b1t1.c1)
1453 Hash Cond: (b1t4.c1 = b1t2.c1)
1454 -> Tid Scan on t4 b1t4
1455 TID Cond: (ctid = '(1,1)'::tid)
1458 Merge Cond: (b1t2.c1 = b1t3.c1)
1461 -> Seq Scan on t2 b1t2
1462 Filter: (ctid = '(1,1)'::tid)
1465 -> Tid Scan on t3 b1t3
1466 TID Cond: (ctid = '(1,1)'::tid)
1467 -> Tid Scan on t1 b1t1
1468 TID Cond: (ctid = '(1,1)'::tid)
1469 InitPlan 2 (returns $1)
1472 Join Filter: (b2t1.c1 = b2t2.c1)
1474 Hash Cond: (b2t1.c1 = b2t3.c1)
1475 -> Tid Scan on t1 b2t1
1476 TID Cond: (ctid = '(1,1)'::tid)
1479 Merge Cond: (b2t3.c1 = b2t4.c1)
1482 -> Tid Scan on t3 b2t3
1483 TID Cond: (ctid = '(1,1)'::tid)
1486 -> Tid Scan on t4 b2t4
1487 TID Cond: (ctid = '(1,1)'::tid)
1488 -> Seq Scan on t2 b2t2
1489 Filter: (ctid = '(1,1)'::tid)
1491 Join Filter: (bmt1.c1 = bmt4.c1)
1493 Hash Cond: (bmt3.c1 = bmt1.c1)
1494 -> Tid Scan on t3 bmt3
1495 TID Cond: (ctid = '(1,1)'::tid)
1498 Merge Cond: (bmt1.c1 = bmt2.c1)
1501 -> Tid Scan on t1 bmt1
1502 TID Cond: (ctid = '(1,1)'::tid)
1503 Filter: ((c1 <> $0) AND (c1 <> $1))
1506 -> Seq Scan on t2 bmt2
1507 Filter: (ctid = '(1,1)'::tid)
1508 -> Tid Scan on t4 bmt4
1509 TID Cond: (ctid = '(1,1)'::tid)
1513 EXPLAIN (COSTS false)
1514 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)'
1516 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)'
1518 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)'
1520 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)'
1524 ------------------------------------------------------------------------------
1526 InitPlan 1 (returns $0)
1529 Join Filter: (b1t1.c1 = b1t4.c1)
1531 Join Filter: (b1t1.c1 = b1t3.c1)
1533 Join Filter: (b1t1.c1 = b1t2.c1)
1534 -> Tid Scan on t1 b1t1
1535 TID Cond: (ctid = '(1,1)'::tid)
1536 -> Seq Scan on t2 b1t2
1537 Filter: (ctid = '(1,1)'::tid)
1538 -> Tid Scan on t3 b1t3
1539 TID Cond: (ctid = '(1,1)'::tid)
1540 -> Tid Scan on t4 b1t4
1541 TID Cond: (ctid = '(1,1)'::tid)
1542 InitPlan 2 (returns $1)
1545 Join Filter: (b2t1.c1 = b2t4.c1)
1547 Join Filter: (b2t1.c1 = b2t3.c1)
1549 Join Filter: (b2t1.c1 = b2t2.c1)
1550 -> Tid Scan on t1 b2t1
1551 TID Cond: (ctid = '(1,1)'::tid)
1552 -> Seq Scan on t2 b2t2
1553 Filter: (ctid = '(1,1)'::tid)
1554 -> Tid Scan on t3 b2t3
1555 TID Cond: (ctid = '(1,1)'::tid)
1556 -> Tid Scan on t4 b2t4
1557 TID Cond: (ctid = '(1,1)'::tid)
1558 InitPlan 3 (returns $2)
1561 Join Filter: (b3t1.c1 = b3t4.c1)
1563 Join Filter: (b3t1.c1 = b3t3.c1)
1565 Join Filter: (b3t1.c1 = b3t2.c1)
1566 -> Tid Scan on t1 b3t1
1567 TID Cond: (ctid = '(1,1)'::tid)
1568 -> Seq Scan on t2 b3t2
1569 Filter: (ctid = '(1,1)'::tid)
1570 -> Tid Scan on t3 b3t3
1571 TID Cond: (ctid = '(1,1)'::tid)
1572 -> Tid Scan on t4 b3t4
1573 TID Cond: (ctid = '(1,1)'::tid)
1575 Join Filter: (bmt1.c1 = bmt4.c1)
1577 Join Filter: (bmt1.c1 = bmt3.c1)
1579 Join Filter: (bmt1.c1 = bmt2.c1)
1580 -> Tid Scan on t1 bmt1
1581 TID Cond: (ctid = '(1,1)'::tid)
1582 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1583 -> Seq Scan on t2 bmt2
1584 Filter: (ctid = '(1,1)'::tid)
1585 -> Tid Scan on t3 bmt3
1586 TID Cond: (ctid = '(1,1)'::tid)
1587 -> Tid Scan on t4 bmt4
1588 TID Cond: (ctid = '(1,1)'::tid)
1592 Leading(bmt1 bmt2 bmt3 bmt4)
1593 Leading(b1t2 b1t3 b1t4 b1t1)
1594 Leading(b2t3 b2t4 b2t1 b2t2)
1595 Leading(b3t4 b3t1 b3t2 b3t3)
1596 MergeJoin(bmt1 bmt2)HashJoin(bmt1 bmt2 bmt3)NestLoop(bmt1 bmt2 bmt3 bmt4)
1597 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1598 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1599 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
1601 EXPLAIN (COSTS false)
1602 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)'
1604 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)'
1606 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)'
1608 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)'
1613 MergeJoin(b1t2 b1t3)
1614 MergeJoin(b2t3 b2t4)
1615 MergeJoin(b3t1 b3t4)
1616 MergeJoin(bmt1 bmt2)
1617 HashJoin(b1t2 b1t3 b1t4)
1618 HashJoin(b2t1 b2t3 b2t4)
1619 HashJoin(b3t1 b3t2 b3t4)
1620 HashJoin(bmt1 bmt2 bmt3)
1621 NestLoop(b1t1 b1t2 b1t3 b1t4)
1622 NestLoop(b2t1 b2t2 b2t3 b2t4)
1623 NestLoop(b3t1 b3t2 b3t3 b3t4)
1624 NestLoop(bmt1 bmt2 bmt3 bmt4)
1625 Leading(bmt1 bmt2 bmt3 bmt4)
1626 Leading(b1t2 b1t3 b1t4 b1t1)
1627 Leading(b2t3 b2t4 b2t1 b2t2)
1628 Leading(b3t4 b3t1 b3t2 b3t3)
1634 ------------------------------------------------------------------------------------------
1636 InitPlan 1 (returns $0)
1639 Join Filter: (b1t2.c1 = b1t1.c1)
1641 Hash Cond: (b1t4.c1 = b1t2.c1)
1642 -> Tid Scan on t4 b1t4
1643 TID Cond: (ctid = '(1,1)'::tid)
1646 Merge Cond: (b1t2.c1 = b1t3.c1)
1649 -> Seq Scan on t2 b1t2
1650 Filter: (ctid = '(1,1)'::tid)
1653 -> Tid Scan on t3 b1t3
1654 TID Cond: (ctid = '(1,1)'::tid)
1655 -> Tid Scan on t1 b1t1
1656 TID Cond: (ctid = '(1,1)'::tid)
1657 InitPlan 2 (returns $1)
1660 Join Filter: (b2t1.c1 = b2t2.c1)
1662 Hash Cond: (b2t1.c1 = b2t3.c1)
1663 -> Tid Scan on t1 b2t1
1664 TID Cond: (ctid = '(1,1)'::tid)
1667 Merge Cond: (b2t3.c1 = b2t4.c1)
1670 -> Tid Scan on t3 b2t3
1671 TID Cond: (ctid = '(1,1)'::tid)
1674 -> Tid Scan on t4 b2t4
1675 TID Cond: (ctid = '(1,1)'::tid)
1676 -> Seq Scan on t2 b2t2
1677 Filter: (ctid = '(1,1)'::tid)
1678 InitPlan 3 (returns $2)
1681 Join Filter: (b3t1.c1 = b3t3.c1)
1683 Hash Cond: (b3t2.c1 = b3t1.c1)
1684 -> Seq Scan on t2 b3t2
1685 Filter: (ctid = '(1,1)'::tid)
1688 Merge Cond: (b3t1.c1 = b3t4.c1)
1691 -> Tid Scan on t1 b3t1
1692 TID Cond: (ctid = '(1,1)'::tid)
1695 -> Tid Scan on t4 b3t4
1696 TID Cond: (ctid = '(1,1)'::tid)
1697 -> Tid Scan on t3 b3t3
1698 TID Cond: (ctid = '(1,1)'::tid)
1700 Join Filter: (bmt1.c1 = bmt4.c1)
1702 Hash Cond: (bmt3.c1 = bmt1.c1)
1703 -> Tid Scan on t3 bmt3
1704 TID Cond: (ctid = '(1,1)'::tid)
1707 Merge Cond: (bmt1.c1 = bmt2.c1)
1710 -> Tid Scan on t1 bmt1
1711 TID Cond: (ctid = '(1,1)'::tid)
1712 Filter: ((c1 <> $0) AND (c1 <> $1) AND (c1 <> $2))
1715 -> Seq Scan on t2 bmt2
1716 Filter: (ctid = '(1,1)'::tid)
1717 -> Tid Scan on t4 bmt4
1718 TID Cond: (ctid = '(1,1)'::tid)
1722 EXPLAIN (COSTS false)
1724 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)'
1727 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)'
1729 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1731 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)'
1736 -----------------------------------------------------------------------------
1739 Join Filter: (bmt1.c1 = (max(b2t1.c1)))
1741 Join Filter: (bmt1.c1 = (max(b1t1.c1)))
1743 Join Filter: (bmt1.c1 = bmt4.c1)
1745 Join Filter: (bmt1.c1 = bmt3.c1)
1747 Join Filter: (bmt1.c1 = bmt2.c1)
1748 -> Tid Scan on t1 bmt1
1749 TID Cond: (ctid = '(1,1)'::tid)
1750 -> Seq Scan on t2 bmt2
1751 Filter: (ctid = '(1,1)'::tid)
1752 -> Tid Scan on t3 bmt3
1753 TID Cond: (ctid = '(1,1)'::tid)
1754 -> Tid Scan on t4 bmt4
1755 TID Cond: (ctid = '(1,1)'::tid)
1758 Join Filter: (b1t1.c1 = b1t4.c1)
1760 Join Filter: (b1t1.c1 = b1t3.c1)
1762 Join Filter: (b1t1.c1 = b1t2.c1)
1763 -> Tid Scan on t1 b1t1
1764 TID Cond: (ctid = '(1,1)'::tid)
1765 -> Seq Scan on t2 b1t2
1766 Filter: (ctid = '(1,1)'::tid)
1767 -> Tid Scan on t3 b1t3
1768 TID Cond: (ctid = '(1,1)'::tid)
1769 -> Tid Scan on t4 b1t4
1770 TID Cond: (ctid = '(1,1)'::tid)
1773 Join Filter: (b2t1.c1 = b2t4.c1)
1775 Join Filter: (b2t1.c1 = b2t3.c1)
1777 Join Filter: (b2t1.c1 = b2t2.c1)
1778 -> Tid Scan on t1 b2t1
1779 TID Cond: (ctid = '(1,1)'::tid)
1780 -> Seq Scan on t2 b2t2
1781 Filter: (ctid = '(1,1)'::tid)
1782 -> Tid Scan on t3 b2t3
1783 TID Cond: (ctid = '(1,1)'::tid)
1784 -> Tid Scan on t4 b2t4
1785 TID Cond: (ctid = '(1,1)'::tid)
1789 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1790 Leading(b1t2 b1t3 b1t4 b1t1)
1791 Leading(b2t3 b2t4 b2t1 b2t2)
1792 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)
1793 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
1794 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
1796 EXPLAIN (COSTS false)
1798 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)'
1801 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)'
1803 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1805 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)'
1811 MergeJoin(b1t2 b1t3)
1812 MergeJoin(b2t3 b2t4)
1814 HashJoin(b1t2 b1t3 b1t4)
1815 HashJoin(b2t1 b2t3 b2t4)
1816 HashJoin(bmt1 c1 c2)
1817 NestLoop(b1t1 b1t2 b1t3 b1t4)
1818 NestLoop(b2t1 b2t2 b2t3 b2t4)
1819 NestLoop(bmt1 bmt2 c1 c2)
1820 MergeJoin(bmt1 bmt2 bmt3 c1 c2)
1821 HashJoin(bmt1 bmt2 bmt3 bmt4 c1 c2)
1822 Leading(c2 c1 bmt1 bmt2 bmt3 bmt4)
1823 Leading(b1t2 b1t3 b1t4 b1t1)
1824 Leading(b2t3 b2t4 b2t1 b2t2)
1830 -----------------------------------------------------------------------------------------------------------------------------------
1833 Hash Cond: (bmt4.c1 = bmt1.c1)
1834 -> Tid Scan on t4 bmt4
1835 TID Cond: (ctid = '(1,1)'::tid)
1838 Merge Cond: (bmt1.c1 = bmt3.c1)
1842 Join Filter: (bmt1.c1 = bmt2.c1)
1844 Hash Cond: (bmt1.c1 = (max(b1t1.c1)))
1845 -> Tid Scan on t1 bmt1
1846 TID Cond: (ctid = '(1,1)'::tid)
1849 Merge Cond: ((max(b1t1.c1)) = (max(b2t1.c1)))
1851 Sort Key: (max(b1t1.c1))
1854 Join Filter: (b1t2.c1 = b1t1.c1)
1856 Hash Cond: (b1t4.c1 = b1t2.c1)
1857 -> Tid Scan on t4 b1t4
1858 TID Cond: (ctid = '(1,1)'::tid)
1861 Merge Cond: (b1t2.c1 = b1t3.c1)
1864 -> Seq Scan on t2 b1t2
1865 Filter: (ctid = '(1,1)'::tid)
1868 -> Tid Scan on t3 b1t3
1869 TID Cond: (ctid = '(1,1)'::tid)
1870 -> Tid Scan on t1 b1t1
1871 TID Cond: (ctid = '(1,1)'::tid)
1873 Sort Key: (max(b2t1.c1))
1876 Join Filter: (b2t1.c1 = b2t2.c1)
1878 Hash Cond: (b2t1.c1 = b2t3.c1)
1879 -> Tid Scan on t1 b2t1
1880 TID Cond: (ctid = '(1,1)'::tid)
1883 Merge Cond: (b2t3.c1 = b2t4.c1)
1886 -> Tid Scan on t3 b2t3
1887 TID Cond: (ctid = '(1,1)'::tid)
1890 -> Tid Scan on t4 b2t4
1891 TID Cond: (ctid = '(1,1)'::tid)
1892 -> Seq Scan on t2 b2t2
1893 Filter: (ctid = '(1,1)'::tid)
1894 -> Seq Scan on t2 bmt2
1895 Filter: (ctid = '(1,1)'::tid)
1898 -> Tid Scan on t3 bmt3
1899 TID Cond: (ctid = '(1,1)'::tid)
1903 EXPLAIN (COSTS false)
1905 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)'
1908 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)'
1911 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)'
1913 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
1915 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)'
1921 -----------------------------------------------------------------------------------------------------------
1924 Join Filter: (bmt1.c1 = (max(b3t1.c1)))
1926 Join Filter: (bmt1.c1 = bmt4.c1)
1928 Join Filter: (bmt1.c1 = bmt3.c1)
1930 Join Filter: (bmt1.c1 = bmt2.c1)
1932 Join Filter: ((max(b1t1.c1)) = bmt1.c1)
1934 Merge Cond: ((max(b1t1.c1)) = (max(b2t1.c1)))
1936 Sort Key: (max(b1t1.c1))
1939 Join Filter: (b1t1.c1 = b1t4.c1)
1941 Join Filter: (b1t1.c1 = b1t3.c1)
1943 Join Filter: (b1t1.c1 = b1t2.c1)
1944 -> Tid Scan on t1 b1t1
1945 TID Cond: (ctid = '(1,1)'::tid)
1946 -> Seq Scan on t2 b1t2
1947 Filter: (ctid = '(1,1)'::tid)
1948 -> Tid Scan on t3 b1t3
1949 TID Cond: (ctid = '(1,1)'::tid)
1950 -> Tid Scan on t4 b1t4
1951 TID Cond: (ctid = '(1,1)'::tid)
1953 Sort Key: (max(b2t1.c1))
1956 Join Filter: (b2t1.c1 = b2t4.c1)
1958 Join Filter: (b2t1.c1 = b2t3.c1)
1960 Join Filter: (b2t1.c1 = b2t2.c1)
1961 -> Tid Scan on t1 b2t1
1962 TID Cond: (ctid = '(1,1)'::tid)
1963 -> Seq Scan on t2 b2t2
1964 Filter: (ctid = '(1,1)'::tid)
1965 -> Tid Scan on t3 b2t3
1966 TID Cond: (ctid = '(1,1)'::tid)
1967 -> Tid Scan on t4 b2t4
1968 TID Cond: (ctid = '(1,1)'::tid)
1969 -> Tid Scan on t1 bmt1
1970 TID Cond: (ctid = '(1,1)'::tid)
1971 -> Seq Scan on t2 bmt2
1972 Filter: (ctid = '(1,1)'::tid)
1973 -> Tid Scan on t3 bmt3
1974 TID Cond: (ctid = '(1,1)'::tid)
1975 -> Tid Scan on t4 bmt4
1976 TID Cond: (ctid = '(1,1)'::tid)
1979 Join Filter: (b3t1.c1 = b3t4.c1)
1981 Join Filter: (b3t1.c1 = b3t3.c1)
1983 Join Filter: (b3t1.c1 = b3t2.c1)
1984 -> Tid Scan on t1 b3t1
1985 TID Cond: (ctid = '(1,1)'::tid)
1986 -> Seq Scan on t2 b3t2
1987 Filter: (ctid = '(1,1)'::tid)
1988 -> Tid Scan on t3 b3t3
1989 TID Cond: (ctid = '(1,1)'::tid)
1990 -> Tid Scan on t4 b3t4
1991 TID Cond: (ctid = '(1,1)'::tid)
1995 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
1996 Leading(b1t2 b1t3 b1t4 b1t1)
1997 Leading(b2t3 b2t4 b2t1 b2t2)
1998 Leading(b3t4 b3t1 b3t2 b3t3)
1999 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)
2000 MergeJoin(b1t2 b1t3)HashJoin(b1t2 b1t3 b1t4)NestLoop(b1t2 b1t3 b1t4 b1t1)
2001 MergeJoin(b2t3 b2t4)HashJoin(b2t3 b2t4 b2t1)NestLoop(b2t3 b2t4 b2t1 b2t2)
2002 MergeJoin(b3t4 b3t1)HashJoin(b3t4 b3t1 b3t2)NestLoop(b3t1 b3t2 b3t3 b3t4)
2004 EXPLAIN (COSTS false)
2006 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)'
2009 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)'
2012 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)'
2014 SELECT max(bmt1.c1) FROM s1.t1 bmt1, s1.t2 bmt2, s1.t3 bmt3, s1.t4 bmt4
2016 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)'
2023 MergeJoin(b1t2 b1t3)
2024 MergeJoin(b2t3 b2t4)
2025 MergeJoin(b3t1 b3t4)
2027 HashJoin(b1t2 b1t3 b1t4)
2028 HashJoin(b2t1 b2t3 b2t4)
2029 HashJoin(b3t1 b3t2 b3t4)
2031 NestLoop(b1t1 b1t2 b1t3 b1t4)
2032 NestLoop(b2t1 b2t2 b2t3 b2t4)
2033 NestLoop(b3t1 b3t2 b3t3 b3t4)
2034 NestLoop(bmt1 c1 c2 c3)
2035 MergeJoin(bmt1 bmt2 c1 c2 c3)
2036 HashJoin(bmt1 bmt2 bmt3 c1 c2 c3)
2037 NestLoop(bmt1 bmt2 bmt3 bmt4 c1 c2 c3)
2038 Leading(c3 c2 c1 bmt1 bmt2 bmt3 bmt4)
2039 Leading(b1t2 b1t3 b1t4 b1t1)
2040 Leading(b2t3 b2t4 b2t1 b2t2)
2041 Leading(b3t4 b3t1 b3t2 b3t3)
2047 -----------------------------------------------------------------------------------------------------------------------------------
2050 Join Filter: (bmt1.c1 = bmt4.c1)
2052 Hash Cond: (bmt3.c1 = bmt1.c1)
2053 -> Tid Scan on t3 bmt3
2054 TID Cond: (ctid = '(1,1)'::tid)
2057 Merge Cond: (bmt1.c1 = bmt2.c1)
2061 Join Filter: ((max(b1t1.c1)) = bmt1.c1)
2063 Hash Cond: ((max(b2t1.c1)) = (max(b1t1.c1)))
2065 Merge Cond: ((max(b2t1.c1)) = (max(b3t1.c1)))
2067 Sort Key: (max(b2t1.c1))
2070 Join Filter: (b2t1.c1 = b2t2.c1)
2072 Hash Cond: (b2t1.c1 = b2t3.c1)
2073 -> Tid Scan on t1 b2t1
2074 TID Cond: (ctid = '(1,1)'::tid)
2077 Merge Cond: (b2t3.c1 = b2t4.c1)
2080 -> Tid Scan on t3 b2t3
2081 TID Cond: (ctid = '(1,1)'::tid)
2084 -> Tid Scan on t4 b2t4
2085 TID Cond: (ctid = '(1,1)'::tid)
2086 -> Seq Scan on t2 b2t2
2087 Filter: (ctid = '(1,1)'::tid)
2089 Sort Key: (max(b3t1.c1))
2092 Join Filter: (b3t1.c1 = b3t3.c1)
2094 Hash Cond: (b3t2.c1 = b3t1.c1)
2095 -> Seq Scan on t2 b3t2
2096 Filter: (ctid = '(1,1)'::tid)
2099 Merge Cond: (b3t1.c1 = b3t4.c1)
2102 -> Tid Scan on t1 b3t1
2103 TID Cond: (ctid = '(1,1)'::tid)
2106 -> Tid Scan on t4 b3t4
2107 TID Cond: (ctid = '(1,1)'::tid)
2108 -> Tid Scan on t3 b3t3
2109 TID Cond: (ctid = '(1,1)'::tid)
2113 Join Filter: (b1t2.c1 = b1t1.c1)
2115 Hash Cond: (b1t4.c1 = b1t2.c1)
2116 -> Tid Scan on t4 b1t4
2117 TID Cond: (ctid = '(1,1)'::tid)
2120 Merge Cond: (b1t2.c1 = b1t3.c1)
2123 -> Seq Scan on t2 b1t2
2124 Filter: (ctid = '(1,1)'::tid)
2127 -> Tid Scan on t3 b1t3
2128 TID Cond: (ctid = '(1,1)'::tid)
2129 -> Tid Scan on t1 b1t1
2130 TID Cond: (ctid = '(1,1)'::tid)
2131 -> Tid Scan on t1 bmt1
2132 TID Cond: (ctid = '(1,1)'::tid)
2135 -> Seq Scan on t2 bmt2
2136 Filter: (ctid = '(1,1)'::tid)
2137 -> Tid Scan on t4 bmt4
2138 TID Cond: (ctid = '(1,1)'::tid)
2142 ---- No. J-2-2 the number of the tables per quiry block
2145 EXPLAIN (COSTS false)
2147 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2149 SELECT max(bmt1.c1), (
2150 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2152 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2155 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2159 ---------------------------------------------------------------------
2161 InitPlan 2 (returns $1)
2163 InitPlan 1 (returns $0)
2165 -> Tid Scan on t1 b2t1
2166 TID Cond: (ctid = '(1,1)'::tid)
2167 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2168 InitPlan 4 (returns $3)
2170 InitPlan 3 (returns $2)
2172 -> Tid Scan on t1 b3t1
2173 TID Cond: (ctid = '(1,1)'::tid)
2174 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2176 -> Tid Scan on t1 bmt1
2177 TID Cond: (ctid = '(1,1)'::tid)
2178 Filter: ((c1 <> $3) AND (c1 = 1))
2180 One-Time Filter: ($4 = 1)
2181 InitPlan 5 (returns $4)
2183 -> Tid Scan on t1 b1t1
2184 TID Cond: (ctid = '(1,1)'::tid)
2185 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2195 EXPLAIN (COSTS false)
2197 SELECT max(b1t1.c1) FROM s1.t1 b1t1 WHERE b1t1.ctid = '(1,1)' AND b1t1.c1 = 1
2199 SELECT max(bmt1.c1), (
2200 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2202 FROM s1.t1 bmt1, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = 1
2205 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)' AND b3t1.c1 = 1
2220 ---------------------------------------------------------------------
2222 InitPlan 2 (returns $1)
2224 InitPlan 1 (returns $0)
2226 -> Tid Scan on t1 b2t1
2227 TID Cond: (ctid = '(1,1)'::tid)
2228 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2229 InitPlan 4 (returns $3)
2231 InitPlan 3 (returns $2)
2233 -> Tid Scan on t1 b3t1
2234 TID Cond: (ctid = '(1,1)'::tid)
2235 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2237 -> Tid Scan on t1 bmt1
2238 TID Cond: (ctid = '(1,1)'::tid)
2239 Filter: ((c1 <> $3) AND (c1 = 1))
2241 One-Time Filter: ($4 = 1)
2242 InitPlan 5 (returns $4)
2244 -> Tid Scan on t1 b1t1
2245 TID Cond: (ctid = '(1,1)'::tid)
2246 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2250 EXPLAIN (COSTS false)
2252 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)'
2254 SELECT max(bmt1.c1), (
2255 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)'
2257 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2260 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)'
2264 -----------------------------------------------------------
2266 InitPlan 1 (returns $0)
2269 Join Filter: (b2t1.c1 = b2t2.c1)
2270 -> Tid Scan on t1 b2t1
2271 TID Cond: (ctid = '(1,1)'::tid)
2272 -> Seq Scan on t2 b2t2
2273 Filter: (ctid = '(1,1)'::tid)
2274 InitPlan 2 (returns $1)
2277 Join Filter: (b3t1.c1 = b3t2.c1)
2278 -> Tid Scan on t1 b3t1
2279 TID Cond: (ctid = '(1,1)'::tid)
2280 -> Seq Scan on t2 b3t2
2281 Filter: (ctid = '(1,1)'::tid)
2283 Join Filter: (bmt1.c1 = (max(b1t1.c1)))
2285 Join Filter: (bmt1.c1 = bmt2.c1)
2286 -> Tid Scan on t1 bmt1
2287 TID Cond: (ctid = '(1,1)'::tid)
2289 -> Seq Scan on t2 bmt2
2290 Filter: (ctid = '(1,1)'::tid)
2293 Join Filter: (b1t1.c1 = b1t2.c1)
2294 -> Tid Scan on t1 b1t1
2295 TID Cond: (ctid = '(1,1)'::tid)
2296 -> Seq Scan on t2 b1t2
2297 Filter: (ctid = '(1,1)'::tid)
2301 Leading(c1 bmt2 bmt1)
2306 HashJoin(c1 bmt1 bmt2)
2307 MergeJoin(b1t1 b1t2)
2308 MergeJoin(b2t1 b2t2)
2309 MergeJoin(b3t1 b3t2)
2311 EXPLAIN (COSTS false)
2313 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)'
2315 SELECT max(bmt1.c1), (
2316 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)'
2318 FROM s1.t1 bmt1, s1.t2 bmt2, c1 WHERE bmt1.ctid = '(1,1)' AND bmt1.c1 = bmt2.c1 AND bmt2.ctid = '(1,1)'
2321 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)'
2326 MergeJoin(b1t1 b1t2)
2327 MergeJoin(b2t1 b2t2)
2328 MergeJoin(b3t1 b3t2)
2330 HashJoin(bmt1 bmt2 c1)
2331 Leading(c1 bmt2 bmt1)
2340 -----------------------------------------------------------------------------------
2342 InitPlan 1 (returns $0)
2345 Merge Cond: (b2t1.c1 = b2t2.c1)
2348 -> Tid Scan on t1 b2t1
2349 TID Cond: (ctid = '(1,1)'::tid)
2352 -> Seq Scan on t2 b2t2
2353 Filter: (ctid = '(1,1)'::tid)
2354 InitPlan 2 (returns $1)
2357 Merge Cond: (b3t1.c1 = b3t2.c1)
2360 -> Tid Scan on t1 b3t1
2361 TID Cond: (ctid = '(1,1)'::tid)
2364 -> Seq Scan on t2 b3t2
2365 Filter: (ctid = '(1,1)'::tid)
2367 Hash Cond: (bmt1.c1 = bmt2.c1)
2368 -> Tid Scan on t1 bmt1
2369 TID Cond: (ctid = '(1,1)'::tid)
2373 Merge Cond: (bmt2.c1 = (max(b1t1.c1)))
2376 -> Seq Scan on t2 bmt2
2377 Filter: (ctid = '(1,1)'::tid)
2379 Sort Key: (max(b1t1.c1))
2382 Merge Cond: (b1t1.c1 = b1t2.c1)
2385 -> Tid Scan on t1 b1t1
2386 TID Cond: (ctid = '(1,1)'::tid)
2389 -> Seq Scan on t2 b1t2
2390 Filter: (ctid = '(1,1)'::tid)
2394 EXPLAIN (COSTS false)
2396 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)'
2398 SELECT max(bmt1.c1), (
2399 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)'
2401 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
2403 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)'
2407 -----------------------------------------------------------------------
2409 InitPlan 1 (returns $0)
2412 Join Filter: (b2t1.c1 = b2t4.c1)
2414 Join Filter: (b2t1.c1 = b2t3.c1)
2416 Join Filter: (b2t1.c1 = b2t2.c1)
2417 -> Tid Scan on t1 b2t1
2418 TID Cond: (ctid = '(1,1)'::tid)
2419 -> Seq Scan on t2 b2t2
2420 Filter: (ctid = '(1,1)'::tid)
2421 -> Tid Scan on t3 b2t3
2422 TID Cond: (ctid = '(1,1)'::tid)
2423 -> Tid Scan on t4 b2t4
2424 TID Cond: (ctid = '(1,1)'::tid)
2425 InitPlan 2 (returns $1)
2428 Join Filter: (b3t1.c1 = b3t4.c1)
2430 Join Filter: (b3t1.c1 = b3t3.c1)
2432 Join Filter: (b3t1.c1 = b3t2.c1)
2433 -> Tid Scan on t1 b3t1
2434 TID Cond: (ctid = '(1,1)'::tid)
2435 -> Seq Scan on t2 b3t2
2436 Filter: (ctid = '(1,1)'::tid)
2437 -> Tid Scan on t3 b3t3
2438 TID Cond: (ctid = '(1,1)'::tid)
2439 -> Tid Scan on t4 b3t4
2440 TID Cond: (ctid = '(1,1)'::tid)
2442 Join Filter: (bmt1.c1 = (max(b1t1.c1)))
2444 Join Filter: (bmt1.c1 = bmt4.c1)
2446 Join Filter: (bmt1.c1 = bmt3.c1)
2448 Join Filter: (bmt1.c1 = bmt2.c1)
2449 -> Tid Scan on t1 bmt1
2450 TID Cond: (ctid = '(1,1)'::tid)
2452 -> Seq Scan on t2 bmt2
2453 Filter: (ctid = '(1,1)'::tid)
2454 -> Tid Scan on t3 bmt3
2455 TID Cond: (ctid = '(1,1)'::tid)
2456 -> Tid Scan on t4 bmt4
2457 TID Cond: (ctid = '(1,1)'::tid)
2460 Join Filter: (b1t1.c1 = b1t4.c1)
2462 Join Filter: (b1t1.c1 = b1t3.c1)
2464 Join Filter: (b1t1.c1 = b1t2.c1)
2465 -> Tid Scan on t1 b1t1
2466 TID Cond: (ctid = '(1,1)'::tid)
2467 -> Seq Scan on t2 b1t2
2468 Filter: (ctid = '(1,1)'::tid)
2469 -> Tid Scan on t3 b1t3
2470 TID Cond: (ctid = '(1,1)'::tid)
2471 -> Tid Scan on t4 b1t4
2472 TID Cond: (ctid = '(1,1)'::tid)
2476 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2477 Leading(b1t4 b1t3 b1t2 b1t1)
2478 Leading(b2t4 b2t3 b2t2 b2t1)
2479 Leading(b3t4 b3t3 b3t2 b3t1)
2481 HashJoin(c1 bmt4 bmt3)
2482 NestLoop(c1 bmt4 bmt3 bmt2)
2483 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2485 NestLoop(b1t4 b1t3 b1t2)
2486 MergeJoin(b1t4 b1t3 b1t2 b1t1)
2488 NestLoop(b2t4 b2t3 b2t2)
2489 MergeJoin(b2t4 b2t3 b2t2 b2t1)
2491 NestLoop(b3t4 b3t3 b3t2)
2492 MergeJoin(b3t4 b3t3 b3t2 b3t1)
2494 EXPLAIN (COSTS false)
2496 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)'
2498 SELECT max(bmt1.c1), (
2499 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)'
2501 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
2503 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)'
2512 NestLoop(b1t2 b1t3 b1t4)
2513 NestLoop(b2t2 b2t3 b2t4)
2514 NestLoop(b3t2 b3t3 b3t4)
2515 HashJoin(bmt3 bmt4 c1)
2516 MergeJoin(b1t1 b1t2 b1t3 b1t4)
2517 MergeJoin(b2t1 b2t2 b2t3 b2t4)
2518 MergeJoin(b3t1 b3t2 b3t3 b3t4)
2519 NestLoop(bmt2 bmt3 bmt4 c1)
2520 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2521 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2522 Leading(b1t4 b1t3 b1t2 b1t1)
2523 Leading(b2t4 b2t3 b2t2 b2t1)
2524 Leading(b3t4 b3t3 b3t2 b3t1)
2530 -----------------------------------------------------------------------------------------------------------------------
2532 InitPlan 1 (returns $0)
2535 Merge Cond: (b2t2.c1 = b2t1.c1)
2539 Join Filter: (b2t3.c1 = b2t2.c1)
2541 Hash Cond: (b2t3.c1 = b2t4.c1)
2542 -> Tid Scan on t3 b2t3
2543 TID Cond: (ctid = '(1,1)'::tid)
2545 -> Tid Scan on t4 b2t4
2546 TID Cond: (ctid = '(1,1)'::tid)
2547 -> Seq Scan on t2 b2t2
2548 Filter: (ctid = '(1,1)'::tid)
2551 -> Tid Scan on t1 b2t1
2552 TID Cond: (ctid = '(1,1)'::tid)
2553 InitPlan 2 (returns $1)
2556 Merge Cond: (b3t2.c1 = b3t1.c1)
2560 Join Filter: (b3t3.c1 = b3t2.c1)
2562 Hash Cond: (b3t3.c1 = b3t4.c1)
2563 -> Tid Scan on t3 b3t3
2564 TID Cond: (ctid = '(1,1)'::tid)
2566 -> Tid Scan on t4 b3t4
2567 TID Cond: (ctid = '(1,1)'::tid)
2568 -> Seq Scan on t2 b3t2
2569 Filter: (ctid = '(1,1)'::tid)
2572 -> Tid Scan on t1 b3t1
2573 TID Cond: (ctid = '(1,1)'::tid)
2575 Merge Cond: (bmt2.c1 = bmt1.c1)
2579 Join Filter: (bmt3.c1 = bmt2.c1)
2581 Hash Cond: (bmt3.c1 = bmt4.c1)
2582 -> Tid Scan on t3 bmt3
2583 TID Cond: (ctid = '(1,1)'::tid)
2586 Merge Cond: (bmt4.c1 = (max(b1t1.c1)))
2589 -> Tid Scan on t4 bmt4
2590 TID Cond: (ctid = '(1,1)'::tid)
2592 Sort Key: (max(b1t1.c1))
2595 Merge Cond: (b1t2.c1 = b1t1.c1)
2599 Join Filter: (b1t3.c1 = b1t2.c1)
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)
2607 -> Seq Scan on t2 b1t2
2608 Filter: (ctid = '(1,1)'::tid)
2611 -> Tid Scan on t1 b1t1
2612 TID Cond: (ctid = '(1,1)'::tid)
2613 -> Seq Scan on t2 bmt2
2614 Filter: (ctid = '(1,1)'::tid)
2617 -> Tid Scan on t1 bmt1
2618 TID Cond: (ctid = '(1,1)'::tid)
2623 EXPLAIN (COSTS false)
2625 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)'
2627 SELECT max(bmt1.c1), (
2628 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2630 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
2632 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2636 -----------------------------------------------------------------------
2638 InitPlan 2 (returns $1)
2640 InitPlan 1 (returns $0)
2642 -> Tid Scan on t1 b2t1
2643 TID Cond: (ctid = '(1,1)'::tid)
2644 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2645 InitPlan 3 (returns $3)
2647 -> Tid Scan on t1 b3t1
2648 TID Cond: (ctid = '(1,1)'::tid)
2650 Join Filter: (bmt1.c1 = (max(b1t1.c1)))
2652 Join Filter: (bmt1.c1 = bmt4.c1)
2654 Join Filter: (bmt1.c1 = bmt3.c1)
2656 Join Filter: (bmt1.c1 = bmt2.c1)
2657 -> Tid Scan on t1 bmt1
2658 TID Cond: (ctid = '(1,1)'::tid)
2660 -> Seq Scan on t2 bmt2
2661 Filter: (ctid = '(1,1)'::tid)
2662 -> Tid Scan on t3 bmt3
2663 TID Cond: (ctid = '(1,1)'::tid)
2664 -> Tid Scan on t4 bmt4
2665 TID Cond: (ctid = '(1,1)'::tid)
2668 Join Filter: (b1t1.c1 = b1t4.c1)
2670 Join Filter: (b1t1.c1 = b1t3.c1)
2672 Join Filter: (b1t1.c1 = b1t2.c1)
2673 -> Tid Scan on t1 b1t1
2674 TID Cond: (ctid = '(1,1)'::tid)
2675 -> Seq Scan on t2 b1t2
2676 Filter: (ctid = '(1,1)'::tid)
2677 -> Tid Scan on t3 b1t3
2678 TID Cond: (ctid = '(1,1)'::tid)
2679 -> Tid Scan on t4 b1t4
2680 TID Cond: (ctid = '(1,1)'::tid)
2684 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2685 Leading(b1t4 b1t3 b1t2 b1t1)
2687 HashJoin(c1 bmt4 bmt3)
2688 NestLoop(c1 bmt4 bmt3 bmt2)
2689 MergeJoin(c1 bmt4 bmt3 bmt2 bmt1)
2690 MergeJoin(b1t4 b1t3)
2691 HashJoin(b1t4 b1t3 b1t2)
2692 NestLoop(b1t4 b1t3 b1t2 b1t1)
2694 EXPLAIN (COSTS false)
2696 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)'
2698 SELECT max(bmt1.c1), (
2699 SELECT max(b2t1.c1) FROM s1.t1 b2t1 WHERE b2t1.ctid = '(1,1)' AND b2t1.c1 = 1
2701 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
2703 SELECT max(b3t1.c1) FROM s1.t1 b3t1 WHERE b3t1.ctid = '(1,1)'
2708 MergeJoin(b1t3 b1t4)
2710 HashJoin(b1t2 b1t3 b1t4)
2711 HashJoin(bmt3 bmt4 c1)
2712 NestLoop(b1t1 b1t2 b1t3 b1t4)
2713 NestLoop(bmt2 bmt3 bmt4 c1)
2714 MergeJoin(bmt1 bmt2 bmt3 bmt4 c1)
2715 Leading(c1 bmt4 bmt3 bmt2 bmt1)
2716 Leading(b1t4 b1t3 b1t2 b1t1)
2722 -----------------------------------------------------------------------------------------------------------------------
2724 InitPlan 2 (returns $1)
2726 InitPlan 1 (returns $0)
2728 -> Tid Scan on t1 b2t1
2729 TID Cond: (ctid = '(1,1)'::tid)
2730 Filter: ((c1 IS NOT NULL) AND (c1 = 1))
2731 InitPlan 3 (returns $3)
2733 -> Tid Scan on t1 b3t1
2734 TID Cond: (ctid = '(1,1)'::tid)
2736 Merge Cond: (bmt2.c1 = bmt1.c1)
2740 Join Filter: (bmt3.c1 = bmt2.c1)
2742 Hash Cond: (bmt3.c1 = bmt4.c1)
2743 -> Tid Scan on t3 bmt3
2744 TID Cond: (ctid = '(1,1)'::tid)
2747 Merge Cond: (bmt4.c1 = (max(b1t1.c1)))
2750 -> Tid Scan on t4 bmt4
2751 TID Cond: (ctid = '(1,1)'::tid)
2753 Sort Key: (max(b1t1.c1))
2756 Join Filter: (b1t2.c1 = b1t1.c1)
2758 Hash Cond: (b1t2.c1 = b1t3.c1)
2759 -> Seq Scan on t2 b1t2
2760 Filter: (ctid = '(1,1)'::tid)
2763 Merge Cond: (b1t3.c1 = b1t4.c1)
2766 -> Tid Scan on t3 b1t3
2767 TID Cond: (ctid = '(1,1)'::tid)
2770 -> Tid Scan on t4 b1t4
2771 TID Cond: (ctid = '(1,1)'::tid)
2772 -> Tid Scan on t1 b1t1
2773 TID Cond: (ctid = '(1,1)'::tid)
2774 -> Seq Scan on t2 bmt2
2775 Filter: (ctid = '(1,1)'::tid)
2778 -> Tid Scan on t1 bmt1
2779 TID Cond: (ctid = '(1,1)'::tid)
2784 ---- No. J-2-3 RULE or VIEW
2787 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2789 -----------------------------------------------------------------
2792 Join Filter: (t1.c1 = t4.c1)
2794 Join Filter: (t1.c1 = t3.c1)
2796 Join Filter: (t1.c1 = t2.c1)
2799 TID Cond: (ctid = '(1,1)'::tid)
2802 TID Cond: (ctid = '(1,1)'::tid)
2804 Filter: (ctid = '(1,1)'::tid)
2806 TID Cond: (ctid = '(1,1)'::tid)
2808 TID Cond: (ctid = '(1,1)'::tid)
2812 Leading(t4 t3 t2 t1 r1)
2813 MergeJoin(t4 t3 t2 t1 r1)
2814 HashJoin(t4 t3 t2 t1)
2818 EXPLAIN (COSTS false) UPDATE s1.r1 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2823 HashJoin(t1 t2 t3 t4)
2824 MergeJoin(r1 t1 t2 t3 t4)
2825 Leading(t4 t3 t2 t1 r1)
2831 -----------------------------------------------------------------------------
2835 Hash Cond: (t1.c1 = t2.c1)
2837 TID Cond: (ctid = '(1,1)'::tid)
2840 Join Filter: (t3.c1 = t2.c1)
2842 Merge Cond: (t3.c1 = t4.c1)
2846 TID Cond: (ctid = '(1,1)'::tid)
2850 TID Cond: (ctid = '(1,1)'::tid)
2852 Filter: (ctid = '(1,1)'::tid)
2854 TID Cond: (ctid = '(1,1)'::tid)
2858 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2860 -----------------------------------------------------------------
2863 Join Filter: (b1t1.c1 = b1t4.c1)
2865 Join Filter: (b1t1.c1 = b1t3.c1)
2867 Join Filter: (b1t1.c1 = b1t2.c1)
2870 TID Cond: (ctid = '(1,1)'::tid)
2872 -> Tid Scan on t1 b1t1
2873 TID Cond: (ctid = '(1,1)'::tid)
2874 -> Seq Scan on t2 b1t2
2875 Filter: (ctid = '(1,1)'::tid)
2876 -> Tid Scan on t3 b1t3
2877 TID Cond: (ctid = '(1,1)'::tid)
2878 -> Tid Scan on t4 b1t4
2879 TID Cond: (ctid = '(1,1)'::tid)
2883 Leading(b1t4 b1t3 b1t2 b1t1 r1_)
2884 MergeJoin(b1t4 b1t3 b1t2 b1t1 r1_)
2885 HashJoin(b1t4 b1t3 b1t2 b1t1)
2886 NestLoop(b1t4 b1t3 b1t2)
2887 MergeJoin(b1t4 b1t3)
2889 EXPLAIN (COSTS false) UPDATE s1.r1_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2892 MergeJoin(b1t3 b1t4)
2893 NestLoop(b1t2 b1t3 b1t4)
2894 HashJoin(b1t1 b1t2 b1t3 b1t4)
2895 MergeJoin(b1t1 b1t2 b1t3 b1t4 r1_)
2896 Leading(b1t4 b1t3 b1t2 b1t1 r1_)
2902 -----------------------------------------------------------------------------
2906 Hash Cond: (b1t1.c1 = b1t2.c1)
2907 -> Tid Scan on t1 b1t1
2908 TID Cond: (ctid = '(1,1)'::tid)
2911 Join Filter: (b1t3.c1 = b1t2.c1)
2913 Merge Cond: (b1t3.c1 = b1t4.c1)
2916 -> Tid Scan on t3 b1t3
2917 TID Cond: (ctid = '(1,1)'::tid)
2920 -> Tid Scan on t4 b1t4
2921 TID Cond: (ctid = '(1,1)'::tid)
2922 -> Seq Scan on t2 b1t2
2923 Filter: (ctid = '(1,1)'::tid)
2925 TID Cond: (ctid = '(1,1)'::tid)
2930 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2932 -----------------------------------------------------------------
2935 Join Filter: (t1.c1 = t4.c1)
2937 Join Filter: (t1.c1 = t3.c1)
2939 Join Filter: (t1.c1 = t2.c1)
2942 TID Cond: (ctid = '(1,1)'::tid)
2945 TID Cond: (ctid = '(1,1)'::tid)
2947 Filter: (ctid = '(1,1)'::tid)
2949 TID Cond: (ctid = '(1,1)'::tid)
2951 TID Cond: (ctid = '(1,1)'::tid)
2955 Join Filter: (t1.c1 = t4.c1)
2957 Join Filter: (t1.c1 = t3.c1)
2959 Join Filter: (t1.c1 = t2.c1)
2962 TID Cond: (ctid = '(1,1)'::tid)
2965 TID Cond: (ctid = '(1,1)'::tid)
2967 Filter: (ctid = '(1,1)'::tid)
2969 TID Cond: (ctid = '(1,1)'::tid)
2971 TID Cond: (ctid = '(1,1)'::tid)
2975 Leading(t4 t3 t2 t1 r2)
2976 MergeJoin(t4 t3 t2 t1 r2)
2977 HashJoin(t4 t3 t2 t1)
2981 EXPLAIN (COSTS false) UPDATE s1.r2 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
2986 HashJoin(t1 t2 t3 t4)
2987 MergeJoin(r2 t1 t2 t3 t4)
2988 Leading(t4 t3 t2 t1 r2)
2997 HashJoin(t1 t2 t3 t4)
2998 MergeJoin(r2 t1 t2 t3 t4)
2999 Leading(t4 t3 t2 t1 r2)
3005 -----------------------------------------------------------------------------
3009 Hash Cond: (t1.c1 = t2.c1)
3011 TID Cond: (ctid = '(1,1)'::tid)
3014 Join Filter: (t3.c1 = t2.c1)
3016 Merge Cond: (t3.c1 = t4.c1)
3020 TID Cond: (ctid = '(1,1)'::tid)
3024 TID Cond: (ctid = '(1,1)'::tid)
3026 Filter: (ctid = '(1,1)'::tid)
3028 TID Cond: (ctid = '(1,1)'::tid)
3034 Hash Cond: (t1.c1 = t2.c1)
3036 TID Cond: (ctid = '(1,1)'::tid)
3039 Join Filter: (t3.c1 = t2.c1)
3041 Merge Cond: (t3.c1 = t4.c1)
3045 TID Cond: (ctid = '(1,1)'::tid)
3049 TID Cond: (ctid = '(1,1)'::tid)
3051 Filter: (ctid = '(1,1)'::tid)
3053 TID Cond: (ctid = '(1,1)'::tid)
3057 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3059 -----------------------------------------------------------------
3062 Join Filter: (b1t1.c1 = b1t4.c1)
3064 Join Filter: (b1t1.c1 = b1t3.c1)
3066 Join Filter: (b1t1.c1 = b1t2.c1)
3069 TID Cond: (ctid = '(1,1)'::tid)
3071 -> Tid Scan on t1 b1t1
3072 TID Cond: (ctid = '(1,1)'::tid)
3073 -> Seq Scan on t2 b1t2
3074 Filter: (ctid = '(1,1)'::tid)
3075 -> Tid Scan on t3 b1t3
3076 TID Cond: (ctid = '(1,1)'::tid)
3077 -> Tid Scan on t4 b1t4
3078 TID Cond: (ctid = '(1,1)'::tid)
3082 Join Filter: (b2t1.c1 = b2t4.c1)
3084 Join Filter: (b2t1.c1 = b2t3.c1)
3086 Join Filter: (b2t1.c1 = b2t2.c1)
3089 TID Cond: (ctid = '(1,1)'::tid)
3091 -> Tid Scan on t1 b2t1
3092 TID Cond: (ctid = '(1,1)'::tid)
3093 -> Seq Scan on t2 b2t2
3094 Filter: (ctid = '(1,1)'::tid)
3095 -> Tid Scan on t3 b2t3
3096 TID Cond: (ctid = '(1,1)'::tid)
3097 -> Tid Scan on t4 b2t4
3098 TID Cond: (ctid = '(1,1)'::tid)
3102 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3103 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3104 MergeJoin(b1t1 b1t2)
3105 HashJoin(b1t1 b1t2 b1t3)
3106 NestLoop(b1t1 b1t2 b1t3 b1t4)
3107 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3108 MergeJoin(b2t1 b2t2)
3109 HashJoin(b2t1 b2t2 b2t3)
3110 NestLoop(b2t1 b2t2 b2t3 b2t4)
3111 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3113 EXPLAIN (COSTS false) UPDATE s1.r2_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3116 MergeJoin(b1t1 b1t2)
3117 HashJoin(b1t1 b1t2 b1t3)
3118 NestLoop(b1t1 b1t2 b1t3 b1t4)
3119 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3120 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3122 MergeJoin(b2t1 b2t2)
3123 HashJoin(b2t1 b2t2 b2t3)
3124 NestLoop(b2t1 b2t2 b2t3 b2t4)
3125 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3126 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3132 MergeJoin(b2t1 b2t2)
3133 HashJoin(b2t1 b2t2 b2t3)
3134 NestLoop(b2t1 b2t2 b2t3 b2t4)
3135 MergeJoin(b2t1 b2t2 b2t3 b2t4 r2_)
3136 Leading(b2t1 b2t2 b2t3 b2t4 r2_)
3138 MergeJoin(b1t1 b1t2)
3139 HashJoin(b1t1 b1t2 b1t3)
3140 NestLoop(b1t1 b1t2 b1t3 b1t4)
3141 MergeJoin(b1t1 b1t2 b1t3 b1t4 r2_)
3142 Leading(b1t1 b1t2 b1t3 b1t4 r2_)
3147 -----------------------------------------------------------------------------
3151 Join Filter: (b1t1.c1 = b1t4.c1)
3153 Hash Cond: (b1t3.c1 = b1t1.c1)
3154 -> Tid Scan on t3 b1t3
3155 TID Cond: (ctid = '(1,1)'::tid)
3158 Merge Cond: (b1t1.c1 = b1t2.c1)
3161 -> Tid Scan on t1 b1t1
3162 TID Cond: (ctid = '(1,1)'::tid)
3165 -> Seq Scan on t2 b1t2
3166 Filter: (ctid = '(1,1)'::tid)
3167 -> Tid Scan on t4 b1t4
3168 TID Cond: (ctid = '(1,1)'::tid)
3170 TID Cond: (ctid = '(1,1)'::tid)
3176 Join Filter: (b2t1.c1 = b2t4.c1)
3178 Hash Cond: (b2t3.c1 = b2t1.c1)
3179 -> Tid Scan on t3 b2t3
3180 TID Cond: (ctid = '(1,1)'::tid)
3183 Merge Cond: (b2t1.c1 = b2t2.c1)
3186 -> Tid Scan on t1 b2t1
3187 TID Cond: (ctid = '(1,1)'::tid)
3190 -> Seq Scan on t2 b2t2
3191 Filter: (ctid = '(1,1)'::tid)
3192 -> Tid Scan on t4 b2t4
3193 TID Cond: (ctid = '(1,1)'::tid)
3195 TID Cond: (ctid = '(1,1)'::tid)
3200 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3202 -----------------------------------------------------------------
3205 Join Filter: (t1.c1 = t4.c1)
3207 Join Filter: (t1.c1 = t3.c1)
3209 Join Filter: (t1.c1 = t2.c1)
3212 TID Cond: (ctid = '(1,1)'::tid)
3215 TID Cond: (ctid = '(1,1)'::tid)
3217 Filter: (ctid = '(1,1)'::tid)
3219 TID Cond: (ctid = '(1,1)'::tid)
3221 TID Cond: (ctid = '(1,1)'::tid)
3225 Join Filter: (t1.c1 = t4.c1)
3227 Join Filter: (t1.c1 = t3.c1)
3229 Join Filter: (t1.c1 = t2.c1)
3232 TID Cond: (ctid = '(1,1)'::tid)
3235 TID Cond: (ctid = '(1,1)'::tid)
3237 Filter: (ctid = '(1,1)'::tid)
3239 TID Cond: (ctid = '(1,1)'::tid)
3241 TID Cond: (ctid = '(1,1)'::tid)
3245 Join Filter: (t1.c1 = t4.c1)
3247 Join Filter: (t1.c1 = t3.c1)
3249 Join Filter: (t1.c1 = t2.c1)
3252 TID Cond: (ctid = '(1,1)'::tid)
3255 TID Cond: (ctid = '(1,1)'::tid)
3257 Filter: (ctid = '(1,1)'::tid)
3259 TID Cond: (ctid = '(1,1)'::tid)
3261 TID Cond: (ctid = '(1,1)'::tid)
3265 Leading(t4 t3 t2 t1 r3)
3266 MergeJoin(t4 t3 t2 t1 r3)
3267 HashJoin(t4 t3 t2 t1)
3271 EXPLAIN (COSTS false) UPDATE s1.r3 SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3276 HashJoin(t1 t2 t3 t4)
3277 MergeJoin(r3 t1 t2 t3 t4)
3278 Leading(t4 t3 t2 t1 r3)
3287 HashJoin(t1 t2 t3 t4)
3288 MergeJoin(r3 t1 t2 t3 t4)
3289 Leading(t4 t3 t2 t1 r3)
3298 HashJoin(t1 t2 t3 t4)
3299 MergeJoin(r3 t1 t2 t3 t4)
3300 Leading(t4 t3 t2 t1 r3)
3306 -----------------------------------------------------------------------------
3310 Hash Cond: (t1.c1 = t2.c1)
3312 TID Cond: (ctid = '(1,1)'::tid)
3315 Join Filter: (t3.c1 = t2.c1)
3317 Merge Cond: (t3.c1 = t4.c1)
3321 TID Cond: (ctid = '(1,1)'::tid)
3325 TID Cond: (ctid = '(1,1)'::tid)
3327 Filter: (ctid = '(1,1)'::tid)
3329 TID Cond: (ctid = '(1,1)'::tid)
3335 Hash Cond: (t1.c1 = t2.c1)
3337 TID Cond: (ctid = '(1,1)'::tid)
3340 Join Filter: (t3.c1 = t2.c1)
3342 Merge Cond: (t3.c1 = t4.c1)
3346 TID Cond: (ctid = '(1,1)'::tid)
3350 TID Cond: (ctid = '(1,1)'::tid)
3352 Filter: (ctid = '(1,1)'::tid)
3354 TID Cond: (ctid = '(1,1)'::tid)
3360 Hash Cond: (t1.c1 = t2.c1)
3362 TID Cond: (ctid = '(1,1)'::tid)
3365 Join Filter: (t3.c1 = t2.c1)
3367 Merge Cond: (t3.c1 = t4.c1)
3371 TID Cond: (ctid = '(1,1)'::tid)
3375 TID Cond: (ctid = '(1,1)'::tid)
3377 Filter: (ctid = '(1,1)'::tid)
3379 TID Cond: (ctid = '(1,1)'::tid)
3383 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3385 -----------------------------------------------------------------
3388 Join Filter: (b1t1.c1 = b1t4.c1)
3390 Join Filter: (b1t1.c1 = b1t3.c1)
3392 Join Filter: (b1t1.c1 = b1t2.c1)
3395 TID Cond: (ctid = '(1,1)'::tid)
3397 -> Tid Scan on t1 b1t1
3398 TID Cond: (ctid = '(1,1)'::tid)
3399 -> Seq Scan on t2 b1t2
3400 Filter: (ctid = '(1,1)'::tid)
3401 -> Tid Scan on t3 b1t3
3402 TID Cond: (ctid = '(1,1)'::tid)
3403 -> Tid Scan on t4 b1t4
3404 TID Cond: (ctid = '(1,1)'::tid)
3408 Join Filter: (b2t1.c1 = b2t4.c1)
3410 Join Filter: (b2t1.c1 = b2t3.c1)
3412 Join Filter: (b2t1.c1 = b2t2.c1)
3415 TID Cond: (ctid = '(1,1)'::tid)
3417 -> Tid Scan on t1 b2t1
3418 TID Cond: (ctid = '(1,1)'::tid)
3419 -> Seq Scan on t2 b2t2
3420 Filter: (ctid = '(1,1)'::tid)
3421 -> Tid Scan on t3 b2t3
3422 TID Cond: (ctid = '(1,1)'::tid)
3423 -> Tid Scan on t4 b2t4
3424 TID Cond: (ctid = '(1,1)'::tid)
3428 Join Filter: (b3t1.c1 = b3t4.c1)
3430 Join Filter: (b3t1.c1 = b3t3.c1)
3432 Join Filter: (b3t1.c1 = b3t2.c1)
3435 TID Cond: (ctid = '(1,1)'::tid)
3437 -> Tid Scan on t1 b3t1
3438 TID Cond: (ctid = '(1,1)'::tid)
3439 -> Seq Scan on t2 b3t2
3440 Filter: (ctid = '(1,1)'::tid)
3441 -> Tid Scan on t3 b3t3
3442 TID Cond: (ctid = '(1,1)'::tid)
3443 -> Tid Scan on t4 b3t4
3444 TID Cond: (ctid = '(1,1)'::tid)
3448 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3449 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3450 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3451 MergeJoin(b1t1 b1t2)
3452 HashJoin(b1t1 b1t2 b1t3)
3453 NestLoop(b1t1 b1t2 b1t3 b1t4)
3454 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3455 MergeJoin(b2t1 b2t2)
3456 HashJoin(b2t1 b2t2 b2t3)
3457 NestLoop(b2t1 b2t2 b2t3 b2t4)
3458 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3459 MergeJoin(b3t1 b3t2)
3460 HashJoin(b3t1 b3t2 b3t3)
3461 NestLoop(b3t1 b3t2 b3t3 b3t4)
3462 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3464 EXPLAIN (COSTS false) UPDATE s1.r3_ SET c1 = c1 WHERE c1 = 1 AND ctid = '(1,1)';
3467 MergeJoin(b1t1 b1t2)
3468 HashJoin(b1t1 b1t2 b1t3)
3469 NestLoop(b1t1 b1t2 b1t3 b1t4)
3470 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3471 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3473 MergeJoin(b2t1 b2t2)
3474 MergeJoin(b3t1 b3t2)
3475 HashJoin(b2t1 b2t2 b2t3)
3476 HashJoin(b3t1 b3t2 b3t3)
3477 NestLoop(b2t1 b2t2 b2t3 b2t4)
3478 NestLoop(b3t1 b3t2 b3t3 b3t4)
3479 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3480 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3481 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3482 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3488 MergeJoin(b2t1 b2t2)
3489 HashJoin(b2t1 b2t2 b2t3)
3490 NestLoop(b2t1 b2t2 b2t3 b2t4)
3491 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3492 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3494 MergeJoin(b1t1 b1t2)
3495 MergeJoin(b3t1 b3t2)
3496 HashJoin(b1t1 b1t2 b1t3)
3497 HashJoin(b3t1 b3t2 b3t3)
3498 NestLoop(b1t1 b1t2 b1t3 b1t4)
3499 NestLoop(b3t1 b3t2 b3t3 b3t4)
3500 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3501 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3502 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3503 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3509 MergeJoin(b3t1 b3t2)
3510 HashJoin(b3t1 b3t2 b3t3)
3511 NestLoop(b3t1 b3t2 b3t3 b3t4)
3512 MergeJoin(b3t1 b3t2 b3t3 b3t4 r3_)
3513 Leading(b3t1 b3t2 b3t3 b3t4 r3_)
3515 MergeJoin(b1t1 b1t2)
3516 MergeJoin(b2t1 b2t2)
3517 HashJoin(b1t1 b1t2 b1t3)
3518 HashJoin(b2t1 b2t2 b2t3)
3519 NestLoop(b1t1 b1t2 b1t3 b1t4)
3520 NestLoop(b2t1 b2t2 b2t3 b2t4)
3521 MergeJoin(b1t1 b1t2 b1t3 b1t4 r3_)
3522 MergeJoin(b2t1 b2t2 b2t3 b2t4 r3_)
3523 Leading(b1t1 b1t2 b1t3 b1t4 r3_)
3524 Leading(b2t1 b2t2 b2t3 b2t4 r3_)
3529 -----------------------------------------------------------------------------
3533 Join Filter: (b1t1.c1 = b1t4.c1)
3535 Hash Cond: (b1t3.c1 = b1t1.c1)
3536 -> Tid Scan on t3 b1t3
3537 TID Cond: (ctid = '(1,1)'::tid)
3540 Merge Cond: (b1t1.c1 = b1t2.c1)
3543 -> Tid Scan on t1 b1t1
3544 TID Cond: (ctid = '(1,1)'::tid)
3547 -> Seq Scan on t2 b1t2
3548 Filter: (ctid = '(1,1)'::tid)
3549 -> Tid Scan on t4 b1t4
3550 TID Cond: (ctid = '(1,1)'::tid)
3552 TID Cond: (ctid = '(1,1)'::tid)
3558 Join Filter: (b2t1.c1 = b2t4.c1)
3560 Hash Cond: (b2t3.c1 = b2t1.c1)
3561 -> Tid Scan on t3 b2t3
3562 TID Cond: (ctid = '(1,1)'::tid)
3565 Merge Cond: (b2t1.c1 = b2t2.c1)
3568 -> Tid Scan on t1 b2t1
3569 TID Cond: (ctid = '(1,1)'::tid)
3572 -> Seq Scan on t2 b2t2
3573 Filter: (ctid = '(1,1)'::tid)
3574 -> Tid Scan on t4 b2t4
3575 TID Cond: (ctid = '(1,1)'::tid)
3577 TID Cond: (ctid = '(1,1)'::tid)
3583 Join Filter: (b3t1.c1 = b3t4.c1)
3585 Hash Cond: (b3t3.c1 = b3t1.c1)
3586 -> Tid Scan on t3 b3t3
3587 TID Cond: (ctid = '(1,1)'::tid)
3590 Merge Cond: (b3t1.c1 = b3t2.c1)
3593 -> Tid Scan on t1 b3t1
3594 TID Cond: (ctid = '(1,1)'::tid)
3597 -> Seq Scan on t2 b3t2
3598 Filter: (ctid = '(1,1)'::tid)
3599 -> Tid Scan on t4 b3t4
3600 TID Cond: (ctid = '(1,1)'::tid)
3602 TID Cond: (ctid = '(1,1)'::tid)
3607 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3609 ------------------------------------
3611 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3612 -> Seq Scan on t1 v1t1
3614 -> Seq Scan on t1 v1t1_1
3617 /*+HashJoin(v1t1 v1t1)*/
3618 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1 v2 WHERE v1.c1 = v2.c1;
3619 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(v1t1 v1t1)"
3620 DETAIL: Relation name "v1t1" is ambiguous.
3629 ------------------------------------
3631 Hash Cond: (v1t1.c1 = v1t1_1.c1)
3632 -> Seq Scan on t1 v1t1
3634 -> Seq Scan on t1 v1t1_1
3638 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3640 -----------------------------------
3642 Hash Cond: (v1t1.c1 = v1t1_.c1)
3643 -> Seq Scan on t1 v1t1
3645 -> Seq Scan on t1 v1t1_
3648 /*+NestLoop(v1t1 v1t1_)*/
3649 EXPLAIN (COSTS false) SELECT * FROM s1.v1 v1, s1.v1_ v2 WHERE v1.c1 = v2.c1;
3652 NestLoop(v1t1 v1t1_)
3658 ------------------------------------------
3660 -> Seq Scan on t1 v1t1
3661 -> Index Scan using t1_i1 on t1 v1t1_
3662 Index Cond: (c1 = v1t1.c1)
3666 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3668 ------------------------------------
3670 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3671 -> Seq Scan on t1 r4t1
3673 -> Seq Scan on t1 r4t1_1
3676 /*+HashJoin(r4t1 r4t1)*/
3677 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r4 t2 WHERE t1.c1 = t2.c1;
3678 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(r4t1 r4t1)"
3679 DETAIL: Relation name "r4t1" is ambiguous.
3688 ------------------------------------
3690 Hash Cond: (r4t1.c1 = r4t1_1.c1)
3691 -> Seq Scan on t1 r4t1
3693 -> Seq Scan on t1 r4t1_1
3697 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3699 ----------------------------------
3701 Hash Cond: (r4t1.c1 = r5t1.c1)
3702 -> Seq Scan on t1 r4t1
3704 -> Seq Scan on t1 r5t1
3707 /*+NestLoop(r4t1 r5t1)*/
3708 EXPLAIN (COSTS false) SELECT * FROM s1.r4 t1, s1.r5 t2 WHERE t1.c1 = t2.c1;
3717 -----------------------------------------
3719 -> Seq Scan on t1 r4t1
3720 -> Index Scan using t1_i1 on t1 r5t1
3721 Index Cond: (c1 = r4t1.c1)
3725 ---- No. J-2-4 VALUES clause
3728 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;
3730 ------------------------------------
3732 -> Index Scan using t1_i1 on t1
3733 Index Cond: (c1 = 1)
3738 /*+ Leading(t3 t1 t2) HashJoin(t3 t1)NestLoop(t3 t1 t2)*/
3739 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;
3750 ------------------------------------
3752 -> Index Scan using t1_i1 on t1
3753 Index Cond: (c1 = 1)
3758 /*+ Leading(*VALUES* t1 t2) HashJoin(*VALUES* t1)NestLoop(*VALUES* t1 t2)*/
3759 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;
3762 HashJoin(*VALUES* t1)
3763 NestLoop(*VALUES* t1 t2)
3764 Leading(*VALUES* t1 t2)
3770 -------------------------------------------------
3773 Hash Cond: (t1.c1 = "*VALUES*".column1)
3776 -> Values Scan on "*VALUES*"
3777 -> Index Scan using t2_i1 on t2
3778 Index Cond: (c1 = t1.c1)
3782 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;
3784 -------------------------------------------------------
3787 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3789 Hash Cond: (t2.c1 = "*VALUES*".column1)
3792 -> Values Scan on "*VALUES*"
3794 -> Values Scan on "*VALUES*_1"
3795 -> Index Scan using t1_i1 on t1
3796 Index Cond: (c1 = t2.c1)
3799 /*+ Leading(t4 t3 t2 t1) NestLoop(t4 t3)HashJoin(t4 t3 t2)MergeJoin(t4 t3 t2 t1)*/
3800 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;
3806 MergeJoin(t1 t2 t3 t4)
3807 Leading(t4 t3 t2 t1)
3812 -------------------------------------------------------
3815 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3817 Hash Cond: (t2.c1 = "*VALUES*".column1)
3820 -> Values Scan on "*VALUES*"
3822 -> Values Scan on "*VALUES*_1"
3823 -> Index Scan using t1_i1 on t1
3824 Index Cond: (c1 = t2.c1)
3827 /*+ Leading(*VALUES* t3 t2 t1) NestLoop(t4 t3)HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)*/
3828 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;
3829 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(*VALUES* t3 t2)MergeJoin(*VALUES* t3 t2 t1)"
3830 DETAIL: Relation name "*VALUES*" is ambiguous.
3831 INFO: pg_hint_plan: hint syntax error at or near "MergeJoin(*VALUES* t3 t2 t1)"
3832 DETAIL: Relation name "*VALUES*" is ambiguous.
3833 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)"
3834 DETAIL: Relation name "*VALUES*" is ambiguous.
3841 HashJoin(*VALUES* t2 t3)
3842 MergeJoin(*VALUES* t1 t2 t3)
3843 Leading(*VALUES* t3 t2 t1)
3846 -------------------------------------------------------
3849 Join Filter: (t2.c1 = "*VALUES*_1".column1)
3851 Hash Cond: (t2.c1 = "*VALUES*".column1)
3854 -> Values Scan on "*VALUES*"
3856 -> Values Scan on "*VALUES*_1"
3857 -> Index Scan using t1_i1 on t1
3858 Index Cond: (c1 = t2.c1)
3862 ---- No. J-3-1 join method hint
3865 SET enable_nestloop TO on;
3866 SET enable_mergejoin TO off;
3867 SET enable_hashjoin TO off;
3868 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3870 ------------------------------------
3873 -> Index Scan using t1_i1 on t1
3874 Index Cond: (c1 = t2.c1)
3877 /*+NestLoop(t1 t2)*/
3878 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3887 ------------------------------------
3890 -> Index Scan using t1_i1 on t1
3891 Index Cond: (c1 = t2.c1)
3894 /*+HashJoin(t1 t2)*/
3895 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3904 ------------------------------
3906 Hash Cond: (t1.c1 = t2.c1)
3912 /*+MergeJoin(t1 t2)*/
3913 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3922 ------------------------------------
3924 Merge Cond: (t1.c1 = t2.c1)
3925 -> Index Scan using t1_i1 on t1
3931 SET enable_mergejoin TO on;
3932 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';;
3934 -----------------------------------------
3936 Join Filter: (t1.c1 = t2.c1)
3938 TID Cond: (ctid = '(1,1)'::tid)
3942 /*+NoNestLoop(t1 t2)*/
3943 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1 AND t1.ctid = '(1,1)';;
3952 -----------------------------------------------
3954 Merge Cond: (t1.c1 = t2.c1)
3958 TID Cond: (ctid = '(1,1)'::tid)
3964 SET enable_mergejoin TO off;
3965 /*+NoHashJoin(t1 t2)*/
3966 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3975 ------------------------------------
3978 -> Index Scan using t1_i1 on t1
3979 Index Cond: (c1 = t2.c1)
3982 /*+NoMergeJoin(t1 t2)*/
3983 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
3992 ------------------------------------
3995 -> Index Scan using t1_i1 on t1
3996 Index Cond: (c1 = t2.c1)
4000 SET enable_nestloop TO off;
4001 SET enable_mergejoin TO off;
4002 SET enable_hashjoin TO on;
4003 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4005 ------------------------------
4007 Hash Cond: (t1.c1 = t2.c1)
4013 /*+NestLoop(t1 t2)*/
4014 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4023 ------------------------------------
4026 -> Index Scan using t1_i1 on t1
4027 Index Cond: (c1 = t2.c1)
4030 /*+HashJoin(t1 t2)*/
4031 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4040 ------------------------------
4042 Hash Cond: (t1.c1 = t2.c1)
4048 /*+MergeJoin(t1 t2)*/
4049 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4058 ------------------------------------
4060 Merge Cond: (t1.c1 = t2.c1)
4061 -> Index Scan using t1_i1 on t1
4067 /*+NoNestLoop(t1 t2)*/
4068 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4077 ------------------------------
4079 Hash Cond: (t1.c1 = t2.c1)
4085 /*+NoHashJoin(t1 t2)*/
4086 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4095 ------------------------------------
4098 -> Index Scan using t1_i1 on t1
4099 Index Cond: (c1 = t2.c1)
4102 /*+NoMergeJoin(t1 t2)*/
4103 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4112 ------------------------------
4114 Hash Cond: (t1.c1 = t2.c1)
4121 SET enable_nestloop TO off;
4122 SET enable_mergejoin TO on;
4123 SET enable_hashjoin TO off;
4124 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4126 ------------------------------------
4128 Merge Cond: (t1.c1 = t2.c1)
4129 -> Index Scan using t1_i1 on t1
4135 /*+NestLoop(t1 t2)*/
4136 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4145 ------------------------------------
4148 -> Index Scan using t1_i1 on t1
4149 Index Cond: (c1 = t2.c1)
4152 /*+HashJoin(t1 t2)*/
4153 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4162 ------------------------------
4164 Hash Cond: (t1.c1 = t2.c1)
4170 /*+MergeJoin(t1 t2)*/
4171 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4180 ------------------------------------
4182 Merge Cond: (t1.c1 = t2.c1)
4183 -> Index Scan using t1_i1 on t1
4189 /*+NoNestLoop(t1 t2)*/
4190 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 /*+NoHashJoin(t1 t2)*/
4209 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4218 ------------------------------------
4220 Merge Cond: (t1.c1 = t2.c1)
4221 -> Index Scan using t1_i1 on t1
4227 /*+NoMergeJoin(t1 t2)*/
4228 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4237 ------------------------------------
4240 -> Index Scan using t1_i1 on t1
4241 Index Cond: (c1 = t2.c1)
4244 SET enable_nestloop TO on;
4245 SET enable_mergejoin TO on;
4246 SET enable_hashjoin TO on;
4248 ---- No. J-3-2 join inherit tables
4250 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4252 -----------------------------------------
4254 Hash Cond: (p2.c1 = p1.c1)
4256 -> Seq Scan on p2 p2_1
4257 -> Seq Scan on p2c1 p2_2
4258 -> Seq Scan on p2c2 p2_3
4259 -> Seq Scan on p2c3 p2_4
4260 -> Seq Scan on p2c1c1 p2_5
4261 -> Seq Scan on p2c1c2 p2_6
4262 -> Seq Scan on p2c2c1 p2_7
4263 -> Seq Scan on p2c2c2 p2_8
4264 -> Seq Scan on p2c3c1 p2_9
4265 -> Seq Scan on p2c3c2 p2_10
4268 -> Seq Scan on p1 p1_1
4269 -> Seq Scan on p1c1 p1_2
4270 -> Seq Scan on p1c2 p1_3
4271 -> Seq Scan on p1c3 p1_4
4275 /*+MergeJoin(p1 p2)*/
4276 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4285 --------------------------------------------
4287 Merge Cond: (p1.c1 = p2.c1)
4291 -> Seq Scan on p1 p1_1
4292 -> Seq Scan on p1c1 p1_2
4293 -> Seq Scan on p1c2 p1_3
4294 -> Seq Scan on p1c3 p1_4
4298 -> Seq Scan on p2 p2_1
4299 -> Seq Scan on p2c1 p2_2
4300 -> Seq Scan on p2c2 p2_3
4301 -> Seq Scan on p2c3 p2_4
4302 -> Seq Scan on p2c1c1 p2_5
4303 -> Seq Scan on p2c1c2 p2_6
4304 -> Seq Scan on p2c2c1 p2_7
4305 -> Seq Scan on p2c2c2 p2_8
4306 -> Seq Scan on p2c3c1 p2_9
4307 -> Seq Scan on p2c3c2 p2_10
4311 /*+MergeJoin(p1c1 p2c1)*/
4312 EXPLAIN (COSTS false) SELECT * FROM s1.p1, s1.p2 WHERE p1.c1 = p2.c1;
4316 MergeJoin(p1c1 p2c1)
4321 -----------------------------------------
4323 Hash Cond: (p2.c1 = p1.c1)
4325 -> Seq Scan on p2 p2_1
4326 -> Seq Scan on p2c1 p2_2
4327 -> Seq Scan on p2c2 p2_3
4328 -> Seq Scan on p2c3 p2_4
4329 -> Seq Scan on p2c1c1 p2_5
4330 -> Seq Scan on p2c1c2 p2_6
4331 -> Seq Scan on p2c2c1 p2_7
4332 -> Seq Scan on p2c2c2 p2_8
4333 -> Seq Scan on p2c3c1 p2_9
4334 -> Seq Scan on p2c3c2 p2_10
4337 -> Seq Scan on p1 p1_1
4338 -> Seq Scan on p1c1 p1_2
4339 -> Seq Scan on p1c2 p1_3
4340 -> Seq Scan on p1c3 p1_4
4344 ---- No. J-3-2-2 join partitioned tables
4346 EXPLAIN (COSTS false) SELECT * FROM s1.pt1, s1.p2 WHERE pt1.c1 = p2.c1;
4348 --------------------------------------------
4350 Hash Cond: (p2.c1 = pt1.c1)
4352 -> Seq Scan on p2 p2_1
4353 -> Seq Scan on p2c1 p2_2
4354 -> Seq Scan on p2c2 p2_3
4355 -> Seq Scan on p2c3 p2_4
4356 -> Seq Scan on p2c1c1 p2_5
4357 -> Seq Scan on p2c1c2 p2_6
4358 -> Seq Scan on p2c2c1 p2_7
4359 -> Seq Scan on p2c2c2 p2_8
4360 -> Seq Scan on p2c3c1 p2_9
4361 -> Seq Scan on p2c3c2 p2_10
4364 -> Seq Scan on pt1_c1 pt1_1
4365 -> Seq Scan on pt1_c2 pt1_2
4366 -> Seq Scan on pt1_c3 pt1_3
4369 /*+MergeJoin(pt1 p2)*/
4370 EXPLAIN (COSTS false) SELECT * FROM s1.pt1, s1.p2 WHERE pt1.c1 = p2.c1;
4379 --------------------------------------------
4381 Merge Cond: (pt1.c1 = p2.c1)
4385 -> Seq Scan on pt1_c1 pt1_1
4386 -> Seq Scan on pt1_c2 pt1_2
4387 -> Seq Scan on pt1_c3 pt1_3
4391 -> Seq Scan on p2 p2_1
4392 -> Seq Scan on p2c1 p2_2
4393 -> Seq Scan on p2c2 p2_3
4394 -> Seq Scan on p2c3 p2_4
4395 -> Seq Scan on p2c1c1 p2_5
4396 -> Seq Scan on p2c1c2 p2_6
4397 -> Seq Scan on p2c2c1 p2_7
4398 -> Seq Scan on p2c2c2 p2_8
4399 -> Seq Scan on p2c3c1 p2_9
4400 -> Seq Scan on p2c3c2 p2_10
4403 /*+MergeJoin(pt1_c1 p2c1)*/ /* will ignored */
4404 EXPLAIN (COSTS false) SELECT * FROM s1.pt1, s1.p2 WHERE pt1.c1 = p2.c1;
4408 MergeJoin(p2c1 pt1_c1)
4413 --------------------------------------------
4415 Hash Cond: (p2.c1 = pt1.c1)
4417 -> Seq Scan on p2 p2_1
4418 -> Seq Scan on p2c1 p2_2
4419 -> Seq Scan on p2c2 p2_3
4420 -> Seq Scan on p2c3 p2_4
4421 -> Seq Scan on p2c1c1 p2_5
4422 -> Seq Scan on p2c1c2 p2_6
4423 -> Seq Scan on p2c2c1 p2_7
4424 -> Seq Scan on p2c2c2 p2_8
4425 -> Seq Scan on p2c3c1 p2_9
4426 -> Seq Scan on p2c3c2 p2_10
4429 -> Seq Scan on pt1_c1 pt1_1
4430 -> Seq Scan on pt1_c2 pt1_2
4431 -> Seq Scan on pt1_c3 pt1_3
4435 ---- No. J-3-3 conflict join method hint
4437 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4439 ------------------------------------
4441 Merge Cond: (t1.c1 = t2.c1)
4442 -> Index Scan using t1_i1 on t1
4449 /*+HashJoin(t1 t2)NestLoop(t1 t2)*/
4450 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4451 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t1 t2)"
4452 DETAIL: Conflict join method hint.
4462 ------------------------------------
4465 -> Index Scan using t1_i1 on t1
4466 Index Cond: (c1 = t2.c1)
4470 /*+MergeJoin(t1 t2)HashJoin(t1 t2)NestLoop(t1 t2)*/
4471 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4472 INFO: pg_hint_plan: hint syntax error at or near "MergeJoin(t1 t2)HashJoin(t1 t2)NestLoop(t1 t2)"
4473 DETAIL: Conflict join method hint.
4474 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t1 t2)"
4475 DETAIL: Conflict join method hint.
4486 ------------------------------------
4489 -> Index Scan using t1_i1 on t1
4490 Index Cond: (c1 = t2.c1)
4494 /*+HashJoin(t1 t2)NestLoop(t2 t1)*/
4495 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4496 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)"
4497 DETAIL: Conflict join method hint.
4507 ------------------------------------
4510 -> Index Scan using t1_i1 on t1
4511 Index Cond: (c1 = t2.c1)
4515 /*+MergeJoin(t2 t1)HashJoin(t1 t2)NestLoop(t2 t1)*/
4516 EXPLAIN (COSTS false) SELECT * FROM s1.t1, s1.t2 WHERE t1.c1 = t2.c1;
4517 INFO: pg_hint_plan: hint syntax error at or near "MergeJoin(t2 t1)HashJoin(t1 t2)NestLoop(t2 t1)"
4518 DETAIL: Conflict join method hint.
4519 INFO: pg_hint_plan: hint syntax error at or near "HashJoin(t1 t2)NestLoop(t2 t1)"
4520 DETAIL: Conflict join method hint.
4531 ------------------------------------
4534 -> Index Scan using t1_i1 on t1
4535 Index Cond: (c1 = t2.c1)
4539 ---- No. J-3-4 hint state output
4542 /*+NestLoop(t1 t2)*/
4543 SELECT * FROM s1.t1, s1.t2 WHERE false;
4551 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4552 ----+----+----+----+----+----+----+----
4556 /*+HashJoin(t1 t2)*/
4557 SELECT * FROM s1.t1, s1.t2 WHERE false;
4565 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4566 ----+----+----+----+----+----+----+----
4570 /*+MergeJoin(t1 t2)*/
4571 SELECT * FROM s1.t1, s1.t2 WHERE false;
4579 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4580 ----+----+----+----+----+----+----+----
4584 /*+NoNestLoop(t1 t2)*/
4585 SELECT * FROM s1.t1, s1.t2 WHERE false;
4593 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4594 ----+----+----+----+----+----+----+----
4598 /*+NoHashJoin(t1 t2)*/
4599 SELECT * FROM s1.t1, s1.t2 WHERE false;
4607 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4608 ----+----+----+----+----+----+----+----
4612 /*+NoMergeJoin(t1 t2)*/
4613 SELECT * FROM s1.t1, s1.t2 WHERE false;
4621 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4622 ----+----+----+----+----+----+----+----
4627 SELECT * FROM s1.t1 WHERE false;
4628 INFO: pg_hint_plan: hint syntax error at or near ""
4629 DETAIL: NestLoop hint requires at least two relations.
4643 SELECT * FROM s1.t1 WHERE false;
4644 INFO: pg_hint_plan: hint syntax error at or near ""
4645 DETAIL: NestLoop hint requires at least two relations.
4658 /*+NestLoop(t1 t2)*/
4659 SELECT * FROM s1.t1, s1.t2 WHERE false;
4667 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4668 ----+----+----+----+----+----+----+----
4672 /*+NestLoop(t1 t2 t3)*/
4673 SELECT * FROM s1.t1, s1.t2, s1.t3 WHERE false;
4681 c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4 | c1 | c2 | c3 | c4
4682 ----+----+----+----+----+----+----+----+----+----+----+----
4686 ---- No. J-3-5 not used hint
4689 EXPLAIN (COSTS false) SELECT * FROM s1.t1 FULL OUTER JOIN s1.t2 ON (t1.c1 = t2.c1);
4691 ------------------------------
4693 Hash Cond: (t1.c1 = t2.c1)
4699 \o results/ut-J.tmpout
4700 /*+NestLoop(t1 t2)*/
4701 EXPLAIN (COSTS true) SELECT * FROM s1.t1 FULL OUTER JOIN s1.t2 ON (t1.c1 = t2.c1);
4710 \! sql/maskout.sh results/ut-J.tmpout
4712 -------------------------------------------------------------------------------
4713 Hash Full Join (cost={inf}..{inf} rows=1000 width=xxx)
4714 Hash Cond: (t1.c1 = t2.c1)
4715 -> Seq Scan on t1 (cost=xxx..xxx rows=1000 width=xxx)
4716 -> Hash (cost=xxx..xxx rows=100 width=xxx)
4717 -> Seq Scan on t2 (cost=xxx..xxx rows=100 width=xxx)
4719 \! rm results/ut-J.tmpout